打印

LPC2148 SSP读写SD卡初始化问题??

[复制链接]
3215|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
TANG2008|  楼主 | 2010-6-1 22:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有知道给解答一下,谢谢。在用LPC2148读写SD时,使用的是SSP通信模块(SPI)去读写SD卡,在使用还有文件系统。我在主函数中
int main()
{
  IoInit();
  DSTATUS1 = disk_initialize(0);//inital SD
}
在使用JLINK 调试过程中调试指针总是
在下面函数语句中停留(我没有设置断点的)
BYTE spi_write_read( BYTE outgoing )
{
SSPDR = outgoing;
停留在此//while( !( SSPSR & ( 1 << SSPSR_RNE ) ) ) { ; }
incoming = SSPDR;
return incoming;
}不知道为何???很困惑,再次感谢了。

ssp.rar

816 Bytes

相关帖子

沙发
wxw2000| | 2010-6-2 11:03 | 只看该作者
1# TANG2008

SSPDR = data;
while( 0x10 == (SSPSR&0x10) );  // 等待spif置为,发送数据完成


另:ssp在进行读取时,需要进行伪写数据。

使用特权

评论回复
板凳
TANG2008|  楼主 | 2010-6-2 11:12 | 只看该作者
好像还是不行啊,你看看我的初始化SSP有问题吗??还有你把你的具体的设置
   unsigned char inb;

   /* Wait if TNF cleared, Tx FIFO is full. */
   SSPDR = outb;
   while ( 0x10 == (SSPSR&0x10));
   /* Wait if RNE cleared, Rx FIFO is empty. */
   SSPDR = 0xff;
   while ((SSPSR & RNE) == 0);
   inb = SSPDR;
   return inb;
还是不可以的???

使用特权

评论回复
地板
wxw2000| | 2010-6-2 13:56 | 只看该作者
3# TANG2008

ssp初始化函数里需设置时钟分频、时钟输出相位及极性等

SSPCR0 = (0x01<<8)|   
    (0x00<<7)|      //CPHA = 0
    (0x00<<6)|     //CPOL时钟极性
    (0x00<<4)|
    (0x07<<0);


SSPCR1 = (0x00<<3)|     
   (0x00<<2)|      
    (0x01<<1)|
     (0x00<<0);            
SSPCPSR = 0x06;   //设置pclk分频值
SSPICR  = 0x03;   //ÖжÏÇå³ý¼Ä´æÆ÷

使用特权

评论回复
5
wxw2000| | 2010-6-2 13:57 | 只看该作者
1# TANG2008

可以看看周工的例程里怎么对sd卡操作的

使用特权

评论回复
6
TANG2008|  楼主 | 2010-6-2 17:22 | 只看该作者
这些也是一样的,呵呵。问题找到了,启动代码有些问题。谢谢大家的指点。

使用特权

评论回复
7
sanmu_ldy| | 2010-9-19 11:36 | 只看该作者
请问一下,我在使用LPC2148的SSP同样出现了你的问题,你是怎么解决这个问题的呢? 我软件仿真时,SSPDR根本写不进去数据。我设置为SPI模式。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

65

帖子

0

粉丝