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.

[参考译文] CC3120MOD:关于主机 SPI 时序规格

Guru**** 2393215 points
Other Parts Discussed in Thread: CC3120MOD, CC3120

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/741520/cc3120mod-about-host-spi-timing-spec

器件型号:CC3120MOD
主题中讨论的其他器件: CC3120

您好!

我的客户正在将 CC3120MOD 的 Wi-Fi SDK 插件移植到 TI 以外的 MCU。

他们想知道主机 SPI 时序规范。

HOST_SPI_CSn 激活到 SPI 时钟的最长时间。
同步字中字节到字节的最大时间。

即使您没有最长的时间、也请给我一些建议以小心。

此致、
Yojiro

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

    Yane-San、您好!

    对于 CS 引脚或数据的字节到字节传输持续时间、没有明确的时序要求。 由于主机 MCU 是 SPI 主器件、所有同步都由中断线路和 SPI 主机驱动器本身自动处理。

    您必须注意的一个数字是 CC3120 SPI 模块本身的最大 SPI 时钟频率。 这是20MHz (如 CC3120数据表 www.ti.com/.../cc3120.pdf 的第4.14.2节所示) 、可能低于主机 MCU 的功能。

    此致、
    Tim

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

    感谢你的答复。

    当在字节到字节之间传输同步字的持续时间大约为30ms 时,SDK 驱动程序发生错误“sl_device_event_fature_sync_loss”。
    在这种情况下,是由 SDK 驱动程序超时引起的?

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

    Yane-San、您好!

    通常、如果移植层存在问题以及与 CC3120的整体交互、则抛出 sl_device_event_fated_sync_loss。 SPI 通信可能会出现问题、也可能指示主机驱动程序移植方式的时序不正确。  

    有关如何移植器件的一些问题:

    • 您是否正在使用 RTOS? 如果是-哪一个? FreeRTOS? CMSIS-RTOS?
    • 您的 SPI 时钟的数据速率是多少?
    • 您将什么用作移植层的基础? 我建议从 此处的最新版本的 Wi-Fi 插件开始  、并将  simplelink_sdk_wi_plugin_2_30_00_10/source/ti/drivers/net/wifi 导入到  IDE 中。具体而言、您应该考虑修改 cc_PAL.c/cc_pal.h 和 user.h 文件以使用您的实现
    • 您是否有所有相关信号的逻辑分析仪跟踪? SPI、IRQ、NHIB 等?

    谢谢、此致、

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

    Tim、您好!

    我的客户正在移植到不是 TI 的 MCU。
    很抱歉、我没有一些详细信息。

    它们基于 v1.60.00.07使用。
    v2.30.00.10尚未打开 到 SDK 插件页面
    我确认 Resource Explorer 已更新到 v2.30.00.10。
    我想通知他们插件正在更新。

    它们根据 《编程人员指南》的移植主机驱动程序来实现代码。

    它们是为了缩短字节到字节的时间以修改源代码、不再发生错误。
    我已确认 SDK 源代码、我认为发送同步字时会通知 sl_device_event_fature_sync_loss 错误是信标超时(SYNC_pattern_timeout_in_msec:50msec)。  
    这种解释没有问题吗?

    此致、
    Yojiro

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

    Yane-San、您好!

    这就解释了它、但是如果信号量在50ms 内挂起、我有点担心... 这是相对较长的时间、可能是时间戳机制移植错误的症状。

    具体而言、在该文档中、我建议查看16.8 Implement Timestamp Services  部分。 具体而言、  在 cc_pal.c 文件中、您将看到以下函数:

    您需要将其更改为适合您的非 TI MCU RTOS 的任何 RTOS 特定函数。 例如,对于 CMSIS-RTOS,这将是  osKernelGetTickCount()。  例如,对于 FreeRTOS,这将是  xTaskGetTickCount()。 此外、必须定义以下宏以建立时基:

    如果未定义第一个宏、那么您的信标可能会认为超时需要50ms、但它实际上是在较短的持续时间内超时(这将解释您的问题)。  

    此致、

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

    感谢您的热情支持。
    我会将此信息告知我们的客户。

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

    您好、Yojiro

    您是否解决了此问题?

    我有类似的情况、有时(在1分钟后甚至在3小时后)我会收到 sl_device_event_fated_sync_loss 事件。 我的 TimerGetCurrentTimestamp()函数已通过 xTaskGetTickCount()正确映射(我正在基于 Tiva MCU 的 FreeRTOS 环境中工作),由于我有1ms 的系统周期,所以我在 user.h 上离开了

    #define SL_TIMESTAMP_TICKS_IN_10_milliseconds (_u32)(10) 

    我还尝试增加  SYNC_pattern_timeout_in_msec、但它不会解析任何内容... 是否有提示?