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.
工具与软件:
大家好、团队成员:
我的客户正在查找 MICROWIRE 示例代码。 是否有人会将我带到 MICROWIRE 示例代码?
SysConfig 中也没有相应选项。
此致、
TED
我记得、MICROWIRE 是 SPI 的一个子集。 您要查找什么具体的 MICROWIRE 功能?
SPI 示例如下所示:
https://dev.ti.com/tirex/explore/node?node=A__AJwOQBR.oN.JLxoLVOhUdg__MSPM0-SDK__a3PaaoK__LATEST
据我所知、MSPM0 SPI 没有3线(共享 MISO/MOSI) SPI 配置。
Bruce、您好!
MSPM0通过硬件支持 MICROWIRE 帧、它具有用于此的寄存器字段、数据表显示它支持 MICROWIRE。
但 SDK 中没有示例。 而 TRM 中没有帧格式。 您还能补充吗?
我的客户希望构建 MICROWIRE 从器件、 8位 ADDR 和16位数据。 仅读取函数。
此致、
TED
我希望知道答案的某个人(来自 TI)现在能够发言、但我开始怀疑这一特性不受支持。
除您提到的项目外、我注意到:
4) 4) TI-Drivers (frameFormat[])和 DriverLib (枚举 DL_SPI_FRAME_FORMAT)均无法识别此功能。
5) 5) hw_spi.h 中的 CMSIS 定义名为"SPI_CTL0_FRF_MIRCOWIRE"、这是我预期如果有人使用过 CMSIS 的话、可能会注意到的拼写错误。
我还没有尝试过这个功能、所以我不知道它可能提供什么;我发现的实现方式差异很大。
---------------
也就是说、我对提议的软件 Slave 能否正常工作有一些疑问:
A) MSPM0 SPI 不支持不同的 Tx 和 Rx 帧大小。 (您可以使用 framesize=4执行某些操作。)
b) uWire 协议只为从器件(软件)提供一个单 SCK 时间来解码请求并提供结果、这是非常严格的时序、除非您可以说服主器件在适当的时间暂停。
[编辑:从机帧大小至少为每个 TRM 7 (SLAU893A)第12.2.2.2.2节]
观察到控制器(主器件)侧的行为:
1) 1)请求(控制器 Tx)假定为8位
2) 2)根据设置的帧大小(DSS 设置)来调整响应(控制器 Rx)的大小
3) PICO (MOSI)在它进入 Rx 的 Hi-Z 之前的"IDLE" SCK 周期内(((8+1)个总 Tx 位)被驱动为低电平(=0)。
4) SCK 是连续的(没有可见的停顿)。
5) 5)片选(CS1)低电平有效。
我还没有尝试过外设(从器件)方面、但我希望这些假设也能支持。
测试案例:我从示例 spi_controller_multibyte_fifo_poll 开始、并在 SYSCFG_DL_init 调用后添加了该示例:
DL_SPI_disable(SPI_0_INST); DL_SPI_setFrameFormat(SPI_0_INST, SPI_CTL0_FRF_MIRCOWIRE ); // MicroWire [sic] DL_SPI_enable(SPI_0_INST);
对于示波器:我还设置 PICO 的内部上拉电阻、并将帧大小设置为16 (使用 SysConfig)。
[编辑:我在 MSPM0G3507上执行了该操作、但我认为 SPI 单元与 C 系列上的相同。]
[编辑:关于/CS 的注释。]
感谢您的努力 Bruce!
我使用2个 C1104 LaunchPad 进行了类似的实验、其中一个运行 spi_controller_multibyte_fifo_poll、另一个运行 spi_peripheral_multibyte_fifo_poll。 [注意:对于后者、README.md 与.syscfg 不匹配。] 上述每个模块都更改了代码、且帧大小(DSS)设置为=16。 数据已正确发送/接收。
1)外围设备(从设备)似乎具有相同的假设--请求为8位、响应根据帧大小(DSS)而定。
2)外设 Tx 字节从 Tx FIFO 汲取仅用于响应时隙、因此即使 不同时传输这些位、SPI"发送字节帧/接收字节帧"惯例也适用。
3) 3)控制器(主器件)侧没有明显的机制可以在 Tx 和 Rx 阶段之间暂停来为外设提供解码请求的时间。
[编辑:修正了少量措辞。]
不客气。 现在、我了解有关 MICROWIRE 的更多信息。
在 CC1310 TRM (SWCU117I) Sec 中有一个非常类似的 MICROWIRE 实现(不是巧合)的有用演示 20.4.4.7。它包括波形。
这是应用于 MSPM0的时序图
谢谢。 您在哪里找到了这个? (我在任何 MSPM0 TRM 或 AppNotes 中都没有看到该错误。)
TI 将在下一个版本 TRM 中更新此时序图。