打印
[微控制器/MCU]

NXP LPC系列ARM的SPI总线应用总结

[复制链接]
4481|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bit6019|  楼主 | 2010-6-26 16:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近使用了NXP的LPC213x/LPC214x和LPC1114的SPI(SSP)总线,特地再此总结一下,这使用SPI总线时,硬件及软件的注意事项。本人刚使用LPC213x/LPC214x ARM时参考的是周公的《深入浅出ARM7-LPC213x_214x(上/下)》(此书网络上有清晰的PDF版本,本人也买了两本,呵呵,喜欢看纸质书)。我想很多网友刚开始接触LPC也是看这两本书吧,这此书中中的描述及书中原理图的设计可能会误导很多网友(至少本人被误导了)。下面就说说容易误导的原因。


1.JPG (21.71 KB)
2010-6-22 08:36





    由周工书上介绍SPI总线的配置,可以看出。在SSEL脚上连接了一个上拉电阻,而片选用的是别的IO口,所以,可能会有人误解SSEL管脚不能用做从机的片选,为了证实这一点,我们再看看关于SPI管脚的描述:



2.JPG (79.39 KB)
2010-6-22 08:36





       看看红圈里边的注解:需要选择另外的管脚与从机的片选进行连接,并且SSEL管脚必须接高电平,器件才能进入主机状态。这与上面的图是吻合的。当然这样使用绝对没有问题,但是我们都不想浪费SSEL管脚,而且选择另外的管脚作为SSEL。这样说很别扭,那么怎么办呢?

相关帖子

沙发
bit6019|  楼主 | 2010-6-26 16:43 | 只看该作者
再找找别的资料看看,在周工的《周立功LPC213X开发板》的《第3章-LPC2131使用指南》中找到《LPC2131_2132_2138-user_cn》(当然网络上也有)。在里边对寄存器进行了详细的描述:
3.JPG (80.5 KB)
2010-6-22 08:48





      看看红圈中对SSEL的描述:早期的Philips ARM器件SSEL管脚是不能用在作为别的用途的,只能应用来作为从机的选择端口,如果要应用作为主机,必须接高电平。但是现在的ARM单片机,其SSEL端口是可以设置成为GPIO输出端口,与从机的片选相连,作为从机选择端口的。但是必须要注意,在这种情况下,单片机只能作为主机。



      由此我们可以知道,SSEL管脚可以像别的单片机的SSEL端口一样,可以与从机相连,作为从机片选端口。当然SSP总线就不用说了,它更加灵活,它的SSEL端口也可以这样使用。

4.JPG (38.46 KB)
2010-6-22 08:51





      对与LPC1114的SSP总线就不用再说了,与LPC213x的SSP总线是一样的。但它的片选端口有两个,需要根据实际应用进行设置。

使用特权

评论回复
板凳
bit6019|  楼主 | 2010-6-26 16:44 | 只看该作者
在使用SPI总线来控制SD卡时,需要特别注意时钟的设置,如果设置不当将会造成初始化失败,更别别说读写SD卡了。这是因为SD卡初始化时时钟速率一般比较低,如果设置太高就会失败,但是设置太低了SD卡的读写速度也非常低,所以应该在初始化时,按照低速进行,初始化完毕后,再提供的最快速度。


    这样点就不在多说,对于LPC1343的设置可以阅读网友zhdp 的帖子《lpc1343读写SD卡的FAT文件》http://bbs.**/thread-108275-1-1.html 对于别的单片机的设置原理是一样的,可以参展IC资料进行设置。

使用特权

评论回复
地板
huzixian| | 2010-6-26 17:24 | 只看该作者
很好的总结,对初学者相当有用啊!

使用特权

评论回复
5
playjian| | 2010-8-9 22:36 | 只看该作者
2# bit6019 大侠~~~最近也在用lpc弄sd卡~~请问一下初始化的速率多少比较合适~~~初始化完成后通讯的速率又可以设置到多少~~???谢谢了~

使用特权

评论回复
6
yalingcat| | 2010-8-13 10:33 | 只看该作者
谢谢分享,学习了

使用特权

评论回复
7
mochou| | 2010-8-13 17:26 | 只看该作者
学习下,正在用spi。

使用特权

评论回复
8
6019赵文| | 2010-8-16 22:32 | 只看该作者
有源码吗?读一下好好的!

使用特权

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

本版积分规则

221

主题

1344

帖子

1

粉丝