请教SPI通信的几个问题

2019-03-24 20:50发布

想用Mega16和ST7538(一款FSK方式的电力载波调制芯片)做电力载波通信模块,具体连接为:

电力线——ST7538——(SPI通信)——Mega16——(Uart)——PC串口

(其中ST7538要求SPI通信中必须作为主机,提供时钟输出,但ST7538的工作方式都必须要由Mega16来控制。)



现就SPI通信想请教大侠们几个问题:

1.SPI通信的从机发送数据怎么实现?看书上说nSS拉低就开始数据移位交换了,还是必须要主机写入SPDR才可以发起通信?

2.SPI通信当主机发起一次通信之后,是就传输SPDR里的8位之后就进入发送完成中断还是等连续的遗传数据都传输完之后才进入(假设已开启中断使能)?

3.波特率和通信时钟的关系?貌似通信双方只要使用相同的波特率和帧格式、时钟只要一致就可以通信,而并不要求其特定值? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
chunyang
1楼-- · 2019-03-25 05:20
关于SPI的操作,楼主应该仔细去看看7538的器件手册,MCU用软件模拟SPI接口会更方便,SPI接口不讲究什么波特率,由时钟频率决定,是同步模式的,波特率则是异步通讯时才存在的。
大能苗
2楼-- · 2019-03-25 05:52
是的,你说的是对的。可是我看遍了数据手册,也没找到SPI的通信时钟是多少。虽说只要双方使用同一时钟信号就好,可是我担心通信时钟会不会超过Mega16时钟信号的1/4。

另,我的前两个问题版主可否给指点一下?谢谢。

一周热门 更多>