This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好
您能否告知我如何使用 MSPM0 SPI 模块进行"双向"访问。
我的外部外设具有3线 SPI 接口和单一双向数据线。
--此致,
维克多
您好
没有任何关于双向( 单个 数据线) SPI。
如果您确实有一些更准确的信息、请。
您能告诉我们什么是外设吗? SPI 是基于同步发送/接收构建的、因此我不知道"双向"数据线路是如何工作的。
3线通常是:
SPI 时钟
从控制器到外设的 SPI
从外设到控制器的 SPI。
芯片选择功能。
我在 SPI 中没有看到任何针对3引脚(双向)的配置。 我怀疑您必须自行交换 IOMUX PF 位。
或者编写他自己的"软件串行"位拆裂功能。 您可以使用 Arduino 代码作为参考。
正如 Keith 提到的、查看外设所使用的方案会有所帮助。
与 Bruce 提到的类似、我可以说我已经在 MSPM0上使用了单条双向 UART 线路、正如他提到的、您确实需要手动更改 IOMUX。 在我的执行中、UART 外设只被用来检测一个启动条件、其它的一切都是位拆裂的。 我认为需要以类似的方式实现您提到的外设的 SPI 实现。
感谢所有的回答!
有许多3线 SPI 器件。 例如、TDA5150
仅供参考.. STM32支持这样的3线 SPI 模式。
我知道 GPIO"位拆裂"、可能这只是正确/最简单的选择。
--此致
您好、Victor:
感谢您的反馈。
是的、MSPM0器件本机不支持此功能、因此您至少需要对该功能的一部分进行 Bitbang 处理。 您可以从将 PICO 引脚连接到 TDA51500/其他 SDIO 线路的 SPI 开始实施。 查看 TDA5150数据表、您可以使用 SPI 模块发送器件地址和数据、或者读取-发送器件地址、然后将引脚交换至 GPIO 以读取每个数据位。 我们目前没有配套资料来支持这一目标、但我想指出的是、这正是我们的客户所寻求的。
你好,迪伦
感谢您的回答和支持。
BTW、我认为许多 TI 器件都具有类似 SPI 的3线接口。 例如、DAC38RF8x 支持3线(默认)和4线制 I/F。
不知道原因、但3线通常用于射频芯片... 传统?)
接地引脚太多、占用了空间。 8^)
我认为您不需要使用软件 SPI。 成本是 在每个换行时执行一次寄存器写入、您 还必须使用软件 SPI 执行此操作。 STM32还要求主器件显式转弯(也是一次寄存器写入)。
我尚未使用 TI 模式[Ref TRM (SLAU846A) Sec 17.2.3.2]、但我只是注意到只要 SPI 变为空闲状态(即 Tx tri 变为空闲状态)、SPI 就会使 MOSI (PICO)处于状态。 这似乎可以用来减轻人们期望在线路转弯时发生的(瞬时)总线冲突。 显示为 TI 模式仅支持 MODE=(0、0)、这可能是问题、也可能不是问题。 它的/CS 看起来也有点奇怪、但我希望您无论如何都不想使用硬件/CS。
[编辑:我忘记了我们只讨论1个引脚。]