我试图通过基于Silicon Labs数据通道命名的SDIO搜索找到与该问题相关的答案。但是,我充斥着与SDIO协议有关的SD记忆卡串行通信的话题-完全不同。
我想将PIC MCU(SPI总线)与Silicon Labs FM TX / RX 47XX芯片接口,这些芯片描述了串行控制接口及其多种使用方式-他们所说的2线(基本上是I2C)或它们叫什么。调用3线制,并称为“ SPI”。 3条线是SLCK,SEN和SDIO(时钟,使能和同一条线上的数据输入/输出半双工)。
我的问题是SPI具有全双工功能-同时发送和接收。即使我所见过的每个实现实际上都是半双工的-先发送后再接收-硬件通过SDI / SDO或MISO / MOSI进行布线,或者在SPI模块中称为任意线路;单独的数据输入和数据输出线。连同SCLK和SEN(时钟和启用)。
我不确定如何进行连接-以及是否可以正常工作。是否将PIC(SPI模块)的SDI和SDO引脚都连接到Si47XX上的同一SDIO?由于Si47XX是半双工的,因此很有意义。但我从未见过将两条线绑在SPI接口上。例如,不确定引脚是否始终为Hi-Z,并且我不想炸出东西。我需要添加上拉/下拉吗?
奇怪的是,我似乎找不到这种情况的实际接线图。当我搜索3线SPI时,我总是会看到SEN绑定的示例,因为仅使用了一个从属设备,而不是我的情况。一如既往,任何建议将不胜感激。 -里克
答案 0 :(得分:0)
可以使用以下示意图将SPI和3线设备互连。哪个设备是主设备,哪个设备是从设备都没关系。
SPI device 3-wire device
----+
SDO |--/\/\/\-+ 3k
| | +---
SDI |---------*--------| SDIO
| |
SCK |------------------| SCK
SEN |------------------| SEN
----+ +---
如果3线设备处于接收状态,则SDO信号通过电阻到达(Hi-Z)SDIO引脚,再回到SDI引脚。 如果3线设备处于传输状态,则SDIO输出将覆盖SDO值。
这样的连接示例可以在第37页的FT2232H的FTDI数据表中看到(图4.1RS232配置)—93С46到FT2232H的连接。
在较低的SPI频率下,可以使用较高的电阻器值来降低上覆电流。它也取决于走线的长度,但在通常情况下,对于高达2 MHz的频率,3k的边距非常好。
p.s。看来问题不在于编程。可以将其移至electronics.stackexchange.com吗?