这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » SSP,LPC213x,SSP,SPI1 用过SSP的请进:LPC213x,使用

共2条 1/1 1 跳转至

SSP,LPC213x,SSP,SPI1 用过SSP的请进:LPC213x,使用SSP作SPI1的困惑。

院士
2006-09-17 18:14:16     打赏
SSP,LPC213x,SSP,SPI1 用过SSP的请进:LPC213x,使用SSP作SPI1的困惑。



关键词: LPC213x     用过     请进     使用     困惑    

院士
2006-12-22 22:43:00     打赏
2楼
问 应用:我的应用是这样的:同过SPI总线连接一个Flash,型号AT45DB021。
在原先的设计下使用LPC2104的SPI0,一切正常。

困惑:使用LPC2132时,我将Flash挂在SSP上就是SP1,而不是SP0。不知道如何设置。试过SPI的4种模式,都不工作。

请问:读SSP模块的SSPDR,可以使用C语言的 a = SSPDR;吗?为什么这句不能将SSP的FIFO清除?有没有设置SSP和作为SPI使用的例子代码,仍过来一个。最好是C的。 1: 等热心人。 2: re:1。要保证您的相关寄存器地址正确;
2。SSP有2个控制寄存器,设置是不是完全正确?
3。AT45DB021时钟低有效还是高有效?必须和SSP的极性一致。 3: 谢谢周工。但仍未解决。/****************************************************************************
* 名称:SSPIni()
* 功能:初始化SSP接口,设置为SPI主机。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void  SspIni(void)
{  SSPCPSR = 0x52;        // 设置SPI时钟分频
   SSPCR0 = 0x0007;        // 设置SSP接口模式,SCR=0 分频值为0+1,CPOL=0,
                  //CPHA=0,FRF=00 选SPI,DDS=0111 8bit数据格式
   SSPIMSC = 0x00;        // 取消所有中断使能。                            
   SSPCR1 = 0x2;        // MS=0 主机,SSE=1 使能SSP
   SSPICR = 0x0;
}


/****************************************************************************
* 名称:MSendData()
* 功能:向SPI总线发送数据。
* 入口参数:data        待发送的数据
* 出口参数:返回值为读取的数据
****************************************************************************/
uint8  MSendData(uint8 data)
{
   SSPDR = data;        // 是不是这条错了,SSPDR是16bit,而data是8bit
   IOSET1 = TORCH;        // 测试指示灯
   while( 0==(SSPSR&0x01) );    // 等待SPIF置位,即等待数据发送完毕
   IOCLR1 = TORCH;        // 测试指示灯关
   
   return(SSPDR);
}

下面图为45DB021的时序,我使用LPC2132的SPI0端口模式0,正常工作。 4: SSP连接SPI SST25VF040我的情况好一点,仔细分析过,发现读的时会丢失刚开始的2个字节,晕死了,都不知道怎么搞的,高手请赐教!!!

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]