TI中文支持网
TI专业的中文技术问题搜集分享网站

两个AFE4400挂接在同一个spi总线上的问题

我有一个设计上用到两块AFE4400芯片,想把这两片芯片挂在同一个SPI口上与MCU通信。对于多设备连在同一个SPI上,手册上有如下描述:

“Note that when the AFE4400 is deselected, the SPISOMI, CLKOUT, ADC_RDY,PD_ALM, LED_ALM, and DIAG_END digital output pins do not enter a 3-state mode. This condition, therefore, must be taken into account when connecting multiple devices to the SPI port and for power-management considerations. In order to avoid loading the SPI bus when multiple devices are connected, the DIGOUT_TRISTATE register bit must be to 1 whenever the AFE SPI is inactive. ”

这段话的意思是,默认情况下,当一个SPI设备片选没有被选中时SPISOMI引脚不是高阻态,这导致没办法通信。手册提到的解决办法是在SPI没有被激活(inactive)时往DIGOUT_TRISTATE这个寄存器位上写1。有如下疑问:

(1)SPI没有被激活(inactive)是什么意思?因为任何对AFE4400的寄存器操作都要通过SPI,如果SPI没有被激活,如何进行SPI通信?

(2)SPISOMI引脚对于AFE4400是输出引脚,如果在复位后初始情况下(DIGOUT_TRISTATE为0),仅有一个AFE4400的spi片选被选中,这时两个AFE4400的SPISOMI是接在一起的,当输出不同电平时将会有冲突,如何解决?

 

能否提供一个多个AFE400接在同一个SPI总线的使用案例作为参考?

期望有人回答疑问,谢谢!

Marc Liu:

您好,

感谢您选择TI的芯片,关于您的问题,回答如下:

(1) 当某一个设备没有被片选时,其SPISOMI不是高阻态,可能会对总线造成干扰;所以当某一设备不使用总线时,必须将其DIGOUT_TRISTATE设置为1

(2)当SPI总线上有多个设备且同时复位时,您可以在复位后,将所有DIGOUT_TRISTATE设置为1; 当需要读取某一个设备的数据时,将其DIGOUT_TRISTATE reset为0;读取完数据之后,再将该位设置为1。

这边暂时没有案例可以参考,如果还有疑问,欢迎再次到论坛提问,谢谢!

Marc

赞(0)
未经允许不得转载:TI中文支持网 » 两个AFE4400挂接在同一个spi总线上的问题
分享到: 更多 (0)