在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 2597|回复: 1

[求助] 关于wince spi驱动的一个问题

[复制链接]
发表于 2011-3-24 20:24:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我在写一个wince的spi驱动来读取ad的数值,
使用查询方式读取2440 spi总线上的数据
void write_spi(unsigned char txdata)
{
  // Check the status of Transfer Ready flag(READY=1) ,and then write data to SPTDAT0
  v_pSPIPregs->SPTDAT0 = txdata; // Write Potentiometer value
  RETAILMSG(TRUE, (TEXT("INFO:write_spi data (%ld).\r\n"), v_pSPIPregs->SPTDAT0));   
  RETAILMSG(TRUE, (TEXT("INFO:before while loop v_pSPIPregs->SPSTA0 is (%ld).\r\n"), v_pSPIPregs->SPSTA0));   
  // Wait to complete write data
  while(!(v_pSPIPregs->SPSTA0 & 0x01== 0x01 )); //SPSTA0的READY是否置位
  RETAILMSG(1,(TEXT("write_spi delay is over\n")));
}
每次调试到上述代码中的while(!(v_pSPIPregs->SPSTA0 & 0x01== 0x01 )); 时,cpu就不停地执行该循环,不再继续执行。
我开始怀疑是2440的时钟有问题 我写了
RETAILMSG(TRUE, (TEXT("INFO:before write data v_pSPIPregs->SPSTA0 is (%ld).\r\n"), v_pSPIPregs->SPSTA0));   
v_pSPIPregs->SPTDAT0 = txdata;  
RETAILMSG(TRUE, (TEXT("INFO:write_spi data (%ld).\r\n"), v_pSPIPregs->SPTDAT0));  
RETAILMSG(TRUE, (TEXT("INFO:after write data v_pSPIPregs->SPSTA0 is (%ld).\r\n"), v_pSPIPregs->SPSTA0));  
结果打印显示该标志位一直为0 也就是繁忙 所以后面的while循环当中 该标志位一直为繁忙 所以不停地打印语句 也就是说 往里面的写入的数据都没有发送出去 有可能是时钟的问题 可是我设置了时钟使能
s2440SPIPWR->CLKCON |= SPI_POWER_ON;// SPI clock enable
时钟频率为:
  // Baudrate = PCLK/2/(Prescaler value + 1)
  // PCLK = 400M/6 = 66.7MHz
  // Prescaler value = 0x22= 34
  // Baudrate = 66.7MHz/2/(34 + 1) = 0.95MHz
  
  v_pSPIPregs->SPPRE0 = 0x22;
这究竟是什么导致了该标志位一直为繁忙状态呢。。。是不是没有时钟 导致写入的数据都无法发送出去呢?
 楼主| 发表于 2011-3-25 12:15:00 | 显示全部楼层
回复 1# Rain_ning


    问题已解决 是SPI的寄存器往内存映射时候出问题了
VirtulaCopy的最后一个参数应该添加PAGE_PHYSICAL
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-24 05:05 , Processed in 0.018156 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表