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:4线 UART 拓扑移植

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/870483/cc3120mod-4-wire-uart-topology-porting

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

在定制硬件板上、CC3120MOD 通过4线 UART 拓扑连接到 LPC54114 MCU。

我开始使用 FreeRTOS 从 CC3100SDK_1.3.0移植 TI WIFI 驱动程序。

我对 user.h 进行了如下修改

#define SL_IfOpen UART_Open
#define SL_IfClose UART_Close
#define SL_IfRead UART_Read

#define SL_IfRegIntHdlr (InterruptHdl,pValue)//无
#define SL_IfMaskIntHdlr ()//无
#define SL_IfUnMaskIntHdlr ()//无

当我以"sl_Start (0、0、0);"开始时

库在 _SlDrvSyncObjWaitTimeout (..)的 sl_start 例程中等待 函数、我假设这是因为缺少 HOST_IRQ 连接。
这种假设是否正确?

是否有关于如何在4线 UART 拓扑中移植库的说明?

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

    Peter、

    请看以下网址: http://www.ti.com/lit/ug/swru455h/swru455h.pdf

    第273页提供了有关如何移植主机驱动程序的信息。

    BR、

    Vince

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

    您好、Vince、

    我知道这份文档,但仍然想知道如何处理"sl_IfRegIntHdlr()"。

    此说明假定已连接 Host_int、但正如我提到的、硬件中使用了4线 UART 方法(不含 host-int IRQ)。

    如何通过移植解决此问题?

    GR Peter

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

    尊敬的 Peter:  

    主机 IRQ 是器件正常运行所需的引脚。 周围没有一种干净的方法。

    BR、

    Vince  

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

    您好、Vince、

    数据表(http://www.ti.com/lit/ds/symlink/cc3120mod.pdf) 第5.13.2.2章 和 wiki.TI (https://processors.wiki.ti.com/index.php/CC3100_UART_Host_Interface)介绍了不带主机 IRQ 中断的4线 UART 配置。  
    因此、有一点困惑、即交付的代码库不支持这一点。

    是否有更详细的描述来说明库如何与主机 IRQ 触发器和字符接收触发器一起工作。 移植指南之外的其他内容。
    是否还有主机 IRQ 中断和数据发送的时序图?

    我查看 了 CC3100-SDK 中 msp430f5529lp 的示例项目(我使用其他控制器)、UART 也只有 SL_IfRegIntHdlr ()连接到 UART 字符接收器中断。 HOST_IRQ 仅在 CLEAR_CTS 条件下使用。

    我设法创建的相同解决方案、将 sl_IfRegIntHdlr()连接到我的 UART 字符接收。  

    我可以看到、有时从 WiFi 芯片启动时发送的第一条消息会被接收、同步字符和操作码会被读取。
    在大多数情况下、会发生超时。 计时或同步存在一些计时问题。  

    有什么建议可以发现问题吗?

    您好、Peter

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

    其他信息:

    WiFi 模块由制造商使用 sp_3_10.05_2.0.0.0_2.2.0.6.bin 作为接入点(AP)进行编程
    器件类型:CC3120、安全
    硬件版本:49.
    模块处于 AP 模式。
    通过电话、我可以访问 simplelink 设置页面并配置 SSID。

    之前的问题是 UART allready 在库启动之前收到一条消息。
    现在、我从 sl_Start (0、0、0)命令接收到始终为1的数据。 因此 MODE = 1 (Role_Unknown)。

    接收到的数据144个字节: 0xBA、0xDC、0xCD、0xAB、0x08、 0x00、0x14、0x00、0x28、0x00、 0x04、0x06、0x00、0x00、0x00、 0x00、0x33、0x33、0x33、0x33、 0x00、0x00、0x00、0x31、0x00、 0x00、0x00、0x00、0xBA、0xDC、 0xCD、0xAB、0x25、0x18、0x14、 0x00、0x28、0x00、0x04、0x06、 0x00、0x00、0x00、0x00、0x01、 0x2D、0x7B、0x0A、0x01、0x2D、 0x7B、0x0A、0x00、0x00、0x00、 0x00、0xBA、0xDC、0xCD、0xAB、 0x2E、0x08、0x50、0x00、0x28、 0x00、0x04、0x06、0x00、0x00、 0x00、0x00、0xD4、0x11、0xA3、 0x22、0x39、0xEF、0x00、0x00、 0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x00、0x00、0x00、 0x00、0x00、0x00、0x00

    接收到主机发送消息后:0xFF、0xEE、0xDD、0xBB、0x21、 0x43、0x34、0x12。
    模块对它没有响应。  

    可能是什么问题。

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

    Peter、

    从 sl_Start()收到(1)后,您是否能够调用任何 sl_调用? 是否可以重新配置到工作站? 器件处于工作站模式是很奇怪的、但在 sl_Start()上返回(1)。 请看一下您的移植层、并确保在主机驱动程序中添加跟踪调试消息。 这将为您提供更多调试打印、以帮助您确定问题。

    BR、

    Vince

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

    现在、我使用了 BOOSTXL-CC3120MOD 的 CC3120MOD、并将其连接到具有定制硬件使用的同一处理器的评估板。

    现在、我可以连接 HOST_IRQ 线路和 UART 线路 RX、TX、RTS 和 CTS。 SPI 的其他线路保持断开。 仅具有上拉至电源(3V3)的 HOST_SPI_CS。
    但问题仍然相同。

    奇怪的是、IRQ 线路保持高电平、但 CC3120MOD 不会再发送字符。
    以下是 I/O 线路的捕获。

    1.数据接收
    2.开始数据接收的缩放
    3.上电和数据接收。

    有什么想法、Host_IRQ 线路保持高电平可能是什么问题?


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

    Peter,运行 sl_Start()时是否连接了 NHIB/RESET 引脚并进行切换?

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

    您好、Vince、

    昨天我没有看到您的回应。

    我使用 MQTT_CLIENT 的示例文件。

    在启动 mqttClient()任务之后,会运行"vSimpleLinkSpawnTask()"。

    此任务调用 configureSimpleLinkToDefaultState(),该函数调用 sl_Start (0、0、0)。 这将返回1。

    发送 sl_WlanSetMode (Role_STA)等命令后、模块不响应。

    如何启用跟踪调试消息?

    GR Peter

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

    您好 Vincent、

    是的,我将 NHIB 连接到 了 sl_DeviceEnable()和 sl_DeviceDisable()宏。
    在    sl_Start()函数中调用 sl_DeviceEnable()和 sl_DeviceDisable()之间没有延迟。
    因此、我在禁用函数中添加了20ms 的延迟。

    我在主机库外部加电时调用一次的复位线路、持续大约300ms。

    当调用 sl_DeviceDisable ()时,IRQ 线路变为低电平,在计算 sl_DeviceEnable ()后,IRQ 线路变为高电平+/- 80ms

    请参见下面的两张信号图。

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

    Peter、您是否可以捕获 NWP 日志?  https://processors.wiki.ti.com/index.php/CC3120_%26_CC3220_Capture_NWP_Logs

    Vince  

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

    您好、Vince、

    请参见附件中的 CSV 文件。

    e2e.ti.com/.../NWP_5F00_untitled.csv

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

    Peter、

    您能否使用 Putty 等串行端口读取器来捕获此内容? 我需要通过解析器运行二进制文件、它无法解析 Excel 格式。

    谢谢、

    Vince

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

    e2e.ti.com/.../data.log

    我无法将其登录到 PuTTy、无法连接到 PC 上的串行端口、但我可以解析它、
    我删除了"0x"、并将数据复制到十六进制编辑器并保存。

    我希望您可以使用此格式。

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

    您好、Vince、

    我希望您能随时了解更多信息。

    等待反馈。

    大家好。 Peter Kwekekeboom

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

    尊敬的 Peter:

    感谢转换、是的、我能够解析日志。 我看到器件成功启动、这是一个很好的迹象。

    我刚才注意到您提到过您正在使用 CC3120MOD。 对于该器件、该器件使用我们的 CC31xx SDK、与我们的第1代 CC3100 SDK 不兼容。 以下是链接: http://www.ti.com/tool/SIMPLELINK-WIFI-CC3120-SDK-PLUGIN

    话虽如此、这些 SDK 仅在您未使用的平台上提供示例、因此您需要移植主机驱动程序。 因此、我实际上建议从 CC3220 SDK 移植主机驱动程序。 与 CC31xx 插件相比、这种情况每季度都会更新、并且更新速度会更快。

    http://www.ti.com/tool/SIMPLELINK-CC32XX-SDK

    User.h 应该是类似的、所以移植不需要很长时间。 我相信在你这么做之后,你将能够得到 sl_Start()来返回。

    BR、

    Vince  

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

    您好、Vince、

    感谢您的反馈。 我将下载并进行新的移植。

    GR Peter

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

    您好、Vince、

    我正在使用 FreeRTOS、对于 CC3100、有一个 OSI_FreeRTOS 自适应文件、在 CC32xx 中我找不到该文件。

    是否有 FreeRTOS 移植示例?

    GR Peter

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

    Peter、

    首先、如果您希望在器件上安装 FreeRTOS、我将与您的 MCU 供应商联系。 我发现以下可能有用的主题- https://community.nxp.com/thread/422461

    启动并运行后、移植主机驱动程序应该很简单。 在示例中包含主机驱动程序、并映射 user.h 中的所有函数

    BR、

    Vince  

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

    您好、Vince、


    我已经准备好了一个带有我使用的控制器的 FreeRTOS、这是用于我的目标硬件的工作项目。

    对于错误的 CC3100 SDK、我通过使用 CC3100 SDK 示例项目中提供的"OSI_FreeRTOS.c"、设法将 WiFi 主机驱动程序移植到我的器件。  

    但我需要为 CC3120移植 CC32xx SDK WIFI 主机驱动程序。 我正在寻找示例项目、但这是缺失的。

    1.能否使用 CC3100 SDK 中的"OSI_FreeRTOS.c"?

    如果不是、ti/posix/freeRTOS 中的 deliverd FreeRTOS 文件夹包含一些限制、即它只能与 IAR 一起使用、但我不使用 IAR。 如何解决此问题?

    大家好。 Peter

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

    Peter、

    我会尝试使用可移植示例进行第2代的移植工作。  

    对于 POSIX 支持、这会变得很复杂。 您使用的是什么编译器?(我假设是 Keil?) 问题是 Keil 在默认编译器包含的示例中没有所需的所有支持文件。 我看到另一个用户能够通过安装 IAR 并打开 IAR 项目来完成此操作、然后使用此项目作为参考、您可以将编译器包含的内容从 IAR 编译器拉入 Keil 编译器。 不幸的是、这就是我所知道的全部信息。

    此致、

    Vince  

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

    您好、Vince、

    我使用的是 LPC 控制 器"mcuxpresso "的工具集、也就是 GNU 编译器。

    不确定您的意思 是"我会尝试使用可移植示例进行第2代的移植工作。 "?  

    1.使用较早一代的 OSI_FreeRTOS 文件。

    使用第2代的示例。 那么、以下哪个示例?

    GR Peter

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

    Peter、

    很抱歉造成混淆。 您是从我们 SDK 中的示例开始并尝试将其移植到 MCU、还是只是希望将主机驱动程序引入到 MCU 上的现有应用?

    请查看第19章以获取移植指南: http://www.ti.com/lit/ug/swru455i/swru455i.pdf

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

    我不会从第1代 SDK 中获取任何内容。 开始使用 Gen 2 SDK 并移植主机驱动程序。  

    BR、

    Vince

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

    您好、Vince、

    在第1代 SDK 中、有一个针对 FreeRTOS 准备好的 OS_ADCTIF 层、对于第2代 SDK、我找不到这一层。

    我有一个使用 FreeRTOS 的控制器工作项目。 我想向其中添加 wifi 主机驱动程序。
    建议您从哪个示例或如何开始。

    步骤直到19.6非常清楚。
    问题从移植指南的第19.7步开始、我希望 FreeRTOS 有一个干净的示例?

    我找到的示例基于 IAR 和 Keil、需要一些我没有的示例。

    您好、Peter

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

    Peter、

    OSI_FreeRTOS 是一个抽象层、用于将 MSP432 TI-RTOS 与 user.h 中的 POSIX 实现相桥 在 user.h 中、您可以直接定义这些对象、就像 FreeRTOS 中所提到的那样-锁定对象是互斥对象。

    此致、

    Vince  

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

    现在还没有时间进一步解决这一问题。
    我遇到了一些无法使用的标题问题。
    对于我的项目的另一项、我发现使用的 FreeRTOS 版本非常旧。

    我想知道 FreeRTOS 版本是否会因移植而导致任何问题?

    那么、SDK2版本是否也适用于旧版本的 FreeRTOS、如 V8.0?

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

    尊敬的 Peter:

    我相信我们推荐使用 SDK 的 FreeRTOS V10。 我强烈建议您将其更新为最新版本。

    BR、

    Vince  

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

    您好、Vince、

    感谢您的回答。

    Peter