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.

[参考译文] CC3100:使用 SPI 时器件与主机的同步字不正确

Guru**** 2392905 points
Other Parts Discussed in Thread: CC3100, CC3100BOOST

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/687070/cc3100-device-to-host-synchronization-word-is-not-correct-when-using-spi

器件型号:CC3100

当尝试使用 SPI 在我们的微控制器和板载 CC3100之间进行通信时、CC3100使用错误的同步字进行回复。 它根据示波器的指示以0x5E6E66D5或0x3CDCCDAB 进行回复。 我们已经排除了电源、快速时钟晶体、慢速时钟晶体和传输到 CC3100的 MOSI 数据。 我已附加示波器图来备份我们看到的内容。 通道1 = CC3100芯片选择、通道2 = MOSI、通道3 = MISO、通道4 = CLK

图1:上电期间的信号。

图2:主机到器件同步字:0x65877856

图3:4个0数据包的传输。

图4:设备到主机同步字:0x3CDCCDAB

我们有一个具有板载 CC3100的电路板、但这些图是通过我们的微控制器连接到 TI 的 CC3100BOOST 板并取消配置板载 CC3100来绘制的、以尝试从我们的末端消除任何硬件问题 从 MOSI 事务中可以看出、我们使用正确的 SPI 模式0、并且我们的 SPI 速度低于1MHz、这不违反最大 SPI 速度数。 Atmel Cortex M4处理器用于与 CC3100连接。

感谢你的帮助。

Bob

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

    尊敬的 Bob:

    基于您所看到的用于托管同步字的器件以及看起来的信号电平、MOSI 线路上存在问题。 将 Atmel 微控制器连接到 CC3100是否存在任何布局问题?

    我还建议进一步降低 SPI CLK 速率、以消除对线路的任何重大寄生效应。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉、通道2是 MISO、通道3是 MOSI。 我错了原来的帖子。 根据我们项目的设计方式、我们期望 MISO 大约为3V、而主机为3.3V。 CC3100由3V 供电。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    更新了:我发现嵌入式软件的休眠保持时间为1ms。 将其更改为15ms、以使用最短10ms 的保持时间。 这样做会导致 CC3100仅在 MISO 上始终产生0x5E6E66D5输出。

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

    Bob -

    我认为您需要清理 SPI 线路-您在采集时会显示很多噪声、并在边缘产生明显的振铃-您的问题是该问题或某种类型的同步问题。 。

    如果你获取你现在得到的结果并将它移动两位(这是一个理论)-只是 -你可以开始推导出正确的值。

    您应该得到的结果

    0011 1100 1101 1100 1100 1101 1010 1011

     3.     C     D C         C   D    A    B

    您正在获得的结果

    0101 1110 0110 1110 0110 0110 0110 0110 1101 0101

      5    E    6.     e    6    6.     D 5.    

    因此、如果您清理了行/发现了同步问题、您可能会得到正确的值

    在这种情况下、振铃可能不足以导致这种情况、但它仍应更干净-

    我建议在这里完成此操作后、再进行一次屏幕捕获并排列芯片选择、MISO、MOSI 和 CLK 线路、以便您可以看到正在进行的操作以及空闲状态。  

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们的微控制器和 CC3100之间有1K 系列端接电阻器。 短接已解决此问题。 话虽如此、我感到惊讶的是、这导致 MISO 延迟一位、而不是总线故障。 Josh、您能想到终端电阻器为什么会导致 CC3100上的 MISO 位移? 谢谢你。

    由于我改善了探头的接地、因此我获得了更好的示波器图、波形也更干净。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Bob -
    您短路了什么? 您是指缓冲器还是终端(电阻器)? 使用缓冲电阻器和1k 时、无论采用哪种方式、都很可能是一个高值、并且该值会引入延迟(这是不必要的)、因为导线不仅仅是一根导线(它也是一个电感器、一个电容器和一个电阻器)。  
    很高兴这能为您解决。

    JDW

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

    以下是解决我们问题的方法:

    CC3100和我们的微控制器之间有1K 的串联端接电阻器、用于 MISO、MOSI 和 SCLK。 当这些电阻器短路时、SPI 开始按预期工作。 奇怪的是、我没有在示波器上看到非单调时钟边沿、我甚至在该测试中使用了有源 FET 探针。