① 当单片机的SPI通信有多个从机时,是不是每一个从机上都要连接一个CSN,另外的SCK,MOSI,MISO都是并联的
当单片机的SPI通信有多个从机时,确实是每一个从机上都要连接一个选片信号CSN,另外的SCK,MOSI,MISO都是并联的。见下图SPI总线的结构图。
一般情况下,从机少于4、5个时,主机用一个IO脚作从机片选还可以。但从机过多了,就不能采用这种方式片选了,占用主机IO脚太多了,应该用74HC138实现片选,可节省主机IO脚了。
② pic单片机 spi 通信最多接几个从单片机,50个可以吗
按照你的命题,SPI通讯,拿一个PIC做主机,50个为从机,每个从机必须要花销一个IO口作为使能控制。
如果你选的单片机有53个IO口以上型号的,是可以挂50个SPI接口从机的,但这样做有意义吗?
带较多从机时建议 你用UART串行口或I2通讯,一般带SPI的PIC单片机也都带有这两个口
③ STC单片机的SPI通信,主机发送数据给从机正常,然后从机返回主机的数据第一位有时候不正常
SPI是通讯时,主机发送一个数据后,从机也会返回一个数据的,这相当于一个移位寄存器,这边数据进那边数据就被移出来,但被移出来的这个数据是随机的。除非是从机主动发送数据给主机,若这时主机接收不正确,那就是接收那边的时序写错了吧,可以上传截图进一步分析
④ STC单片机的SPI从机通讯问题
那有这么简单!!
想不想实现这样通信协议?
输入输出一体化模块:
板子上的硬件资源有52单片机一个,8*8led点阵屏16个,4位一体数码管8个(32个显示位位),led灯16个,4*4矩阵键盘,74ls154,74ls373,分立与门,或门等等。
主程序负责所有器件驱动以及和外界数据交换。模块上有键按下后通知主机读取键值
和外界通信有4种通信协议可选,1_Wire,I2C, UART, SPI。 每种协议都支持总线上挂接256个模块。
1_Wire 总线模式时所有模块可以挂接在单线上 。(每秒传输27531字节)
I2C 模式时所有模块可以和标准的I2C器件挂接在一起 。(每秒传输38782字节)
UART 模式时所有模块还可以直接被PC机控制 。。(每秒传输37062字节)
SPI 模式时所有模块可以和标准的SPI器件挂接在一起。。(每秒传输38782字节)