[ZLG-ARM] LPC2366 SPI(SSP0)速度低问题

[复制链接]
 楼主| mrbbsp 发表于 2011-8-26 11:21 | 显示全部楼层 |阅读模式
spi, LPC, tmp, TE, AD
用LPC2366的SSP0连接一个SPI fash(SST25VF032B),能读写到,发现速度不理想,看SCLK波形,如下:


发一串用了2.5us但是等待bus空闲发了3.5us;觉得这3.5us太浪费了
请问怎么缩短等待的时间呢,多谢

我的代码:

/************************************************************
函数功能: SPI操作 读一个字节数据
入口参数:
出口参数:返回读到的字节
返回说明:
其    他: 对于SPI读和写是同时进行的 全双工
************************************************************/
U8 ReadSpi2(U8 dat)
{
    U8 temp;
    SSP0DR = 0x55;
while ( !(SSP0SR & SSPSR_RNE) );
//while ( (SSP0SR & SSPSR_BSY) );
temp = SSP0DR;
    return  temp;
}


/************************************************************
函数功能: 连续读取指定长度的字节数
入口参数:
出口参数:
返回说明:
其    他:
************************************************************/
void ReadByteLen(U32 addr,U8 *readbuf,U16 len)
{
    U8 tmp;
    U16 tmp1;
U8 i;
volatile U8 dummy;
   
    //SST25_CS = 0;
    SSTT25_CS_L();
    WriteSpi2(0x0b);
                       
    tmp = (U8)(addr >> 16);         //写地址
    WriteSpi2(tmp);
    tmp = (U8)(addr >> 8);     
    WriteSpi2(tmp);
    tmp = (U8)addr;     
    WriteSpi2(tmp);   
    WriteSpi2(tmp);     //dummy addr   
for(tmp=0; tmp <8; tmp++)
{
  dummy =  SSP0DR;   //clear the RxFIFO
}
    for (tmp1 = 0; tmp1 < len; tmp1++)   //读数据
    {
        *readbuf =  ReadSpi2(0x55);
        readbuf++;
    }
    //SST25_CS = 1;
SSTT25_CS_H();
}

本帖子中包含更多资源

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

×
yoyowodeai 发表于 2011-8-29 19:12 | 显示全部楼层
你的SPI波特率多少了?
shuaibaobao 发表于 2011-11-24 13:06 | 显示全部楼层
tmp = (U8)addr 这儿看不懂。
lzyyoumuren 发表于 2014-11-20 09:42 | 显示全部楼层
楼主:速度最后快了吗?
lzyyoumuren 发表于 2014-11-20 09:43 | 显示全部楼层
我现在用1768一个spi接液晶屏,用一个ssp口接外部flash不知道这个方案可行吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

39

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

12

主题

39

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部