[ZLG-ARM] LPC2134 SPI接口问题

[复制链接]
2856|4
 楼主| wylinder 发表于 2007-12-3 14:34 | 显示全部楼层 |阅读模式
一个系统采用LPC2134设计的,采用SPI与一个外部SPI FLASH,但是一直无法操作,寄存器设置上也只有几个寄存器,SPCR, SPCCR。这两个寄存器分别设置成SPCCR = 60; SPCR = 0xA8; 即采用中断方式工作,但是有时能够进入中断,有时候进不去,即使通过向SPDR里边写数据也产生不了中断;通过查询方式,即把SPSR设置成0x20,通过软件查询SPSR中的最高位也有时查询不到状态位变化。从NXP网站上下载了DEMO软件,按照他的中断方式进行改写,也是一样的问题,不知道哪位是否有使用过这个芯片,可以指点一二?另外,NXP的勘误表中有提到SPI1的问题,对于SPI0没有提到,我用的是SPI0。
lyl831015 发表于 2007-12-3 16:29 | 显示全部楼层

您好,SPI0是没有问题的。

&nbsp;&nbsp;您好,SPI0是没有问题的。可能是您的程序初始化有问题,比如上面的描述“查询方式,即把SPSR设置成0x20”,是查询方式还是中断方式由SPCR里的SPIE位决定。<br />&nbsp;&nbsp;上面还描述说有时标志位会置位,有时不会,那么可以检查一下Flash连接是否正确,比如是否出现虚焊造成数据不能稳定传输。<br />&nbsp;&nbsp;另外给出一段SPI初始化代码供您参考一下,这是从实现了SPI&nbsp;Flash通信的例程里截取下来的。<br />void&nbsp;&nbsp;mspiInit&nbsp;(void)<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL0&nbsp;=&nbsp;0x00005500;&nbsp;&nbsp;/*&nbsp;&nbsp;设置SPI管脚连接&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL1&nbsp;=&nbsp;0x00000000;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL2&nbsp;=&nbsp;PINSEL2&nbsp;&&nbsp;(~0x08);/*&nbsp;&nbsp;P1[25:16]连接GPIO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;IO1DIR&nbsp;&nbsp;=&nbsp;__SPI_CS;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;&nbsp;设置P1.24控制口为输出&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL0&nbsp;=&nbsp;(PINSEL0&nbsp;&&nbsp;(~(0xFF&nbsp;&lt&lt&nbsp;8)))&nbsp;|&nbsp;(0x15&nbsp;&lt&lt&nbsp;8)&nbsp;;&nbsp;&nbsp;&nbsp;/*&nbsp;&nbsp;配置P0.4=SCK0,P0.5=MISO0&nbsp;&nbsp;&nbsp;&nbsp;*/<br />/*&nbsp;&nbsp;P0.6=MOSI0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />/*&nbsp;&nbsp;(P0.7=GPIO不需要配置)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;SPCCR&nbsp;=&nbsp;0x52;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;&nbsp;设置SPI时钟分频&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;SPCR&nbsp;&nbsp;=&nbsp;(0&nbsp;&lt&lt&nbsp;3)&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;&nbsp;CPHA&nbsp;=&nbsp;0,&nbsp;数据在SCK&nbsp;的&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;&nbsp;第一个时钟沿采样&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1&nbsp;&lt&lt&nbsp;5)&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;&nbsp;MSTR&nbsp;=&nbsp;1,&nbsp;SPI&nbsp;处于主模式&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0&nbsp;&lt&lt&nbsp;6)&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;&nbsp;LSBF&nbsp;=&nbsp;0,&nbsp;SPI&nbsp;数据传输&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;&nbsp;MSB&nbsp;(位7)在先&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0&nbsp;&lt&lt&nbsp;7);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;&nbsp;SPIE&nbsp;=&nbsp;0,&nbsp;SPI&nbsp;中断被禁止&nbsp;&nbsp;&nbsp;&nbsp;*/<br />}
kernel99 发表于 2007-12-4 09:39 | 显示全部楼层

仅供您参考

您使用的外部SPI&nbsp;FLASH是否有片选(CS)管脚,如果有的话,应该在向SPDR里边写数据前,设置片选信号!
kernel99 发表于 2007-12-4 09:44 | 显示全部楼层

仅供您参考

最好把SPI0的SSEL0管脚设置成输出为高电平,或通过电阻上拉至高电平
zlgarm 发表于 2007-12-4 11:11 | 显示全部楼层

re~~

写数据前发条指令把FLASH擦除....
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

29

帖子

0

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