完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
关硕,关济实
(东北电力大学 自动化工程学院 吉林 吉林 132012) SPI(Serial Peripheral Interrace,串行外设接口)是摩托罗拉公司推出的一种同步串行通讯总线,用于微处理器/微控制器和外围扩展芯片之间的串行连接,现已发展成为一种工业标准。讯通科技的PTR8000无限通讯模块就是以SPI为通讯接口的器件,由于其优越的性能被广泛应用于众多领域。它的SPI接口需要占用微处理器四个I/O线。SPCE061A是凌阳公司的推出的具有语音功能的16位单片机,I/O资源丰富,但不具备SPI接口。在实际应用中,出于产品体积、成本和可扩展性及应用场合等方面的考虑,我们选择二者结合组成无线通讯系统,用软件模拟方式实现SPI串口通讯,限于篇幅,仅介绍读命令的时序和应用子程序。此方法同样适用于其他不具备SPI接口的MCU与SPI接口器件的通信。 |
|
相关推荐
3个回答
|
|
1 SPCE061A板与PTR8000硬件连接
图1所示为SPCE061A单片机与PTR8000的硬件连接图。 2 PTRS000通讯模块的SPI总线的工作原理 PTR8000通讯模块作为从设备,其SPI接口使用4条I/O口线:串行时钟线SCK、输出数据线MISO、输入数据线MOSI和高电平有效的从机选择线CSN。PTR8000的SPI总线接口读命令时序如图2所示。写命令如图3所示。 |
|
|
|
3软件模拟SPI接口的实现方法
对于不具备SPI串行总线接口的SPCE061A单片机来说,可以使用软件来模拟SPI的操作。图1中IOBl模拟SPI主设备的数据输出端SDO,IOB0模拟SPI的时钟输出端SCK,IOA4模拟SPI的从机选择端CSN,IOB9模拟SPI的数据输入端SDI。 上电复位后首先将IOB0(SCK)的初始状态设置为0(空闲状态)。 读操作:SPCE061A首先通过IOB1口发送1位起始位(1),2位操作码(10),6位被读的数据地址,然后通过IOB9口读1位空位,之后再读16位数据(高位在前)。 写操作:SPCE061A首先通过IOB1口发送1位起始位(1),2位操作码(01),6位被写的数据地址,之后通过IOB1口发送被写的16位数据(高位在前),写操作之前要发送写允许命令,写之后要发送写禁止命令。 写允许操作(WEN):写操作首先发送l位起始位(1),2位操作码(00),6位数据(11XXXX)。 写禁止操作(WDS):写操作首先发送1位起始位(1),2位操作码(00),6位数据(00XXXX)。 下面介绍用SPCE061A模拟SPI的子程序。 对于不同的串行接口外围芯片,它们的时钟时序是不同的。上述子程序是针对在SCK的上升沿输入(接收)数据和在下降沿输出(发送)数据的器件。这些子程序也适用于在串行时钟的上升沿输入和下降沿输出的其他各种串行外围接口芯片,只要在程序中改变IOB0(SCK)的输出电平顺序进行相应调整即可口。 |
|
|
|
4结 语
本文介绍了通过软件模拟SPI总线接口,实现非SPI接口单片机与SPI接口的存储器之间数据传输的实现方法,给出了用SPCE061A编写的模拟SPI串行总线读PTR8000的子程序。该方法同样适用于其他单片机、ARM、微型计算机等。 |
|
|
|
只有小组成员才能发言,加入小组>>
1908个成员聚集在这个小组
加入小组843 浏览 2 评论
12793 浏览 0 评论
4088 浏览 7 评论
2312 浏览 9 评论
2126 浏览 2 评论
433浏览 2评论
721浏览 2评论
847浏览 2评论
572浏览 1评论
629浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 20:31 , Processed in 0.750391 second(s), Total 49, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号