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.

[参考译文] CC3301:使用 CMD0设置 SPI -标志和格式

Guru**** 2347070 points
Other Parts Discussed in Thread: CC3301
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1479784/cc3301-setting-up-spi-with-cmd0---flags-and-formatting

器件型号:CC3301

工具与软件:

我的设置:

  • 使用 CC3301配套芯片定制电路板
  • 在 SPI 端口上进行探测

目标:

  • 通过发送 CMD0在主机 MCU 和 CC3301之间设置 SPI 通信

发送 CMD0时、探针读取以下字节序列:0x00、0x80、0xFE、0xFF、0x73、 0xF2、0x10、0x00 (大端字节序、无位混合)
当根据数据字节序和32位字长重新排序时:0xFFFE80000010F273。  此数据序列不会导致 MISO 通道在 CMD0最后一位发送完毕后下降至低电平-我理解这一点是为了表明 CC3301了解 要遵循的 SPI 封装设置。 查看字节序列(并保持`bus_sendInitCommand (...)`的左侧位移 请记住)、  `de`标志设置为0 --小端字节序。

如果我通过在填充 aCRCBuffer 之前添加以下行、手动将函数中的标志设置为高电平:

aTempCmd0[6]= initCmd[5]|= 2;

序列改变为 0x00、0x80、0xFE、0xFF、0x3B、 0xF6、0x10、0x00、但结果仍然相同-- MISO 通道上无响应。



但是、如果我手动重新排序代码中的字节、这样字节序列为: 0xFF、 0xFE、0x80、0x00、0x00、  0x10、0xF2、0x73、表示工作正常!  

不过、在本例中、这并不是一个很好的解决方案、因为字节顺序将在其他所有地方都错误。 这也表明芯片的使能信号设置的很好--我发送 CMD0的方式肯定有问题、我猜的是格式。


因此、我提出了一些问题:

1.在任何情况下、CMD0是否应使用小端字节序和不进行位混合发送、或者是否应遵循 内部标志中指定的格式?   
2.在函数`bus_sendInitCommand (...)`中  ``config_params`被忽略、并初始化并改用本地` uint32_t config `-那么、我应该如何更改 Δ t e `d标志?
 我对"MISO 通道降至低电平"的假设是否表示 CC3301理解 要遵循的 SPI 封装设置?
4.我可以向 CC3301发送命令来查看它是否能够响应吗?


提前感谢、

  Albert

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    不确定要对原始命令(尚未深入到此函数中的位)进行哪些更改、但最终命令应该与正在运行的第二张图片中的命令相同。

    MISO 线下降表示芯片有响应。

    是的、您应该参考配置(我假设它是为配置的外部控制而准备的、但从未使用)。

    Shlomi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    为了发送第二个图像中显示的命令、我必须修改函数`BUS_sendInitCommand (……)`、这意味着我 MCU 上的 SPI 设置与 CC3301-drivers 中的默认 SPI 设置不一致。 这就是为什么我要问"不"问题的原因 1、因为我想知道 我是否可以从映像2中手动强制发送字节序列、然后按照字节序列内部标志中指定的格式进行操作?

    Albert


  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    再次,不确定为什么你必须手动更改  BUS_sendInitCommand (),但代码是硬编码为32位模式,小端字节序。

    我可以尝试在内部找到、但我认为它目前不支持其他组合。

    此致、

    Shlomi