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.

[参考译文] CC3100MODBOOST:通过 UART 与 stm32F1控制器连接

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1067508/cc3100modboost-interfaced-with-stm32f1-controller-via-uart

部件号:CC3100MODBOOST
“线程”中讨论的其它部件:CC3100CC3100SDK

我正在通过 UART 处理 CC3100 WiFi 模块与 STM32F1控制器之间的连接。我尝试配置该模块以与 UART 通信, 我需要将模块设置为 AP 模式或工作站模式。但在我的模块中调试时,模块设置为“未知状态”。我已包括 SL_Start(0,0,0)功能的 API,是否有人可以向我提供如何继续操作的提示?

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

    您好,Pradeepa,

    您能否包括您看到的“未知状态”错误的屏幕截图? 您是否遵循了 CC3100和 STM32F4准备指南中的说明?

     e2e.ti.com/.../4606.CC3100-_2600_-STM32F4-Bringup-Guide.pdf

    谢谢,
    雅各布

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

    你好,Jacob,

    感谢您的宝贵支持! 我已经参考了这份您提供给我参考的文档。基于这一点,我可以通过 SPI 接口在工作站模式或 AP 模式下连接 cc3100模块。但我需要在 UART 接口中连接。 基于 SPI,我还实施了 UART。 我不知道,我在哪里犯了错误?

    请您指导我,如何继续?

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

    您好,Pradeepa,

    我们只提供 SPI 接口的实现;但是,也可以使用 UART 接口。 我们过去曾有过有关此主题的文档,但网站已不复存在(请参见此主题)。 我会看看我能否在内部找到它。

    您可能还会发现主机驱动程序 API 非常有用。

    谢谢,
    雅各布

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

    您好,Pradeepa,

    我找到了一些文档页面,这些页面可能有助于指导您的 UART 与主机驱动程序的接口。 请参阅这些附件。

    e2e.ti.com/.../CC3100-Host-Interface-_2D00_-Texas-Instruments-Wiki.pdf

    e2e.ti.com/.../CC3100-SPI-Host-Interface-_2D00_-Texas-Instruments-Wiki.pdf

    e2e.ti.com/.../CC3100-UART-Host-Interface-_2D00_-Texas-Instruments-Wiki.pdf

    谢谢,
    雅各布

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

    你好,Jacob,

    感谢您的响应。我参考了您建议的上述文档。调试过程中,在_SlNonOsRetVal_t _SlNonOsSemGet()函数后,调试器输入到错误处理程序()函数中。能否指导我,如何继续?

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

    您好,Pradeepa,

    您使用的是哪种 RTOS? 当您的应用程序尝试创建信号量(通常与 RTOS 关联)时,它看起来会失败。

    谢谢,
    雅各布

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

    你好,Jacob,

    感谢您的回复。我们没有使用任何 RTOS。 在 SL_START() API 中,在该函数“RetVal=_SlDrvSyncObjWaitTimeout()”之前,调试时 RetVal 的值为-120,之后将设置为“未知状态”。此外,如果我们继续调试,则在调试器输入到 Error()函数后,它将被吸入 UART_WaitHandler UntilTimeout()。

    在“WiFi 模块的 UART 接口”中进行一些查询。 您能否分享技术人员的邮件 ID 或您的邮件 ID,并请求召开一次小型会议来澄清问题,更快地工作将更有帮助。

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

    您好,Pradeepa,

    -120错误为“SL_ERROR_DOMAIN_NAME_INVALID”。  

    您能否共享 UART 线路(RX,TX,RTS,CTS)的逻辑分析仪捕获?

    谢谢,
    雅各布

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

    你好,Jacob,

    感谢您的宝贵回应。 我在这里附加了 UART 线路的波形(TX,RX,RTS,CTS),同时还附加了 CC3100 Wifi 模块的 NHIB (休眠)和 IRQ (中断)引脚的波形。

    在上述波形中,指示 UART 线路(放大)。

    第二个波形表示相同的 UART 线路(已缩小)。

    在上述波形中,IRQ 引脚为 Channel_4,NHIB 引脚为 Channel_5。

    谢谢,此致,

    普拉迪帕。

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

    您好,Pradeepa,

    明天我将在这里跟进。

    最佳
    雅各布

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

    您好,Pradeepa,

    很抱歉耽误你的时间。 在上述波形中,这些 UART 波形是否来自 STM32F1主机? 似乎 RTS 设置为低,使 CC3100能够开始与主机通信。 UART 通信应该如下所示:

      

    是否有东西拉高 RTS 引脚? 您在软件中做了哪些更改以启用 STM32F1和 CC3100之间的 UART 通信?

    谢谢,
    雅各布

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

    你好,Jacob,

    感谢您的回复。 我为 UART (如 UART.c 和.h 文件)创建了单独的头文件。在此文件中,实施了四项功能。

    1.UART_Open()-->初始化 UART,禁用 CC3100。

    2. UART_CLOSE ()-->取消 UART 初始化,禁用 CC3100中断。

    3. UART_READ()-->使用 HAL 库 UART 功能接收数据。

    4. UART_Write()-->使用 HAL 库 UART 功能传输数据。

    在 SL_Start() API 中的 SL_OPEN ()函数后执行上述函数。这是我在软件中所做的更改,以启用 STM32F1和 CC3100之间的 UART 通信。

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

    您好,Pradeepa,

    我认为您还需要一个功能:UART_IRQ。 这将启用 主机 IRQ 的中断例程:

    参照您的上述 UART 捕获,IRQ 线路应处于活动高电压。 初始化期间,当 nReset 保持较高时,会断言 NHIB。 在初始化完成之前,设备此时应将 HSOT_IRQ 线路驱动为低电平。 在初始化过程中,直到第一次断言 host_IRQ,主机不与设备通信非常重要。 否则,可能无法建立正确的连接。 请参阅《CC3100主机接口指南》(如上所附)中的更多详细信息。

    NHIB 时间:  

    上面的 NHIB 引脚似乎已被断言,但 host_IRQ 线路始终很低。 它最初应该是高的,然后由设备驱动为低。

    谢谢,
    雅各布

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

    你好,Jacob,

    感谢您的宝贵回应。 我在这里附加了波形。CC3100模块可以传输数据。 但 STM32F1控制器无法接收到数据。 调试时,它输入到错误处理程序()函数中。我们捕获的波形与您发送的波形类似。 请您指导我,如何继续? 可能是 UART 接口出现问题。

    谢谢,此致,

    普拉迪帕

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

    您好,Pradeepa,

    我明天会跟进。

    谢谢,
    雅各布

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

    您好,Pradeepa,

    抱歉,我需要另外一天的时间来回复。

    谢谢,
    雅各布

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

    您好,Pradeepa,

    [引用 userid="456020" url="~/support/wireless-connectivity /wi-fi-group/wi-fi /f/wi-fi-forume/1067508/cc3100modboo-interfaced-with -stm32F1-controller-via -UART/3978799#3978799]\n 您的 NHIB 引脚似乎在上面被断言,但 HIRQ_host 线路始终很低。 最初应该是高的,然后由设备驱动的是低的。

    我想我可能在前面的一段话中弄糊涂了,我很抱歉。 我认为 host_IRQ 应该处于活动状态下,然后被驱动为高。 请参阅 CC3100 UART 主机命令流图形 I Shared。  

    此外,您的 CC3100 RTS 线路也应处于低有效状态。 您能驱动这些引脚并发布另一个 UART 逻辑分析仪跟踪吗? 此外,您使用什么波特率在两台设备之间进行通信?

    谢谢,
    雅各布

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

    你好,Jacob,

    感谢您的宝贵回应。 我在这里连接了 CC3100模块的 UART 接口的逻辑分析仪波形和 STM32F1控制器。 同时  

    调试程序调试代码后,将进入 UART_WaitOnFlagUntilTimeout()函数。之后,将进入错误处理程序()函数。 可以了

    请指导我,如何继续?...加快工作速度将非常有帮助。

    谢谢,此致,

    普拉迪帕

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

    您好,Pradeepa,

    我明天就要对这一点发表评论。

    谢谢,

    雅各布

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

    您好,Pradeepa,

    UART_WaitOnFlagUntilTimeout()错误何时生成? SL_Start 是否成功返回?

    关于 CC3100上的 UART 通信,重置行被切换,然后在声明 IRQ 后切换。 断言 IRQ 后,UART 通信开始。  

    如果 SL_Start 功能成功返回,但 UART 失败,请提交 SimpleLink Wi-Fi 硬件设计审查

    谢谢,
    雅各布

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

    你好,Jacob,

    感谢您的回复。 SL_Start API 返回“1”(即模块设置为“未知状态”)。 中断不是来自 UART 通信中的 CC3100模块。 但当我使用 CC3100模块的 SPI 接口时,模块发生中断。

    现在,在 CC3100MODBOOST WiFi 模块蒸发套件中,即使 SPI 接口也不会发生中断。这可能是什么问题? 模块是否处于工作状态? 还是其他原因?

    TI 的某人是否可以有任何 解决方案? 进一步开展工作将非常有帮助。

    谢谢,此致,

    普拉迪帕

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

    您好,Pradeepa,

    首先,请确保 IRQ 和 RTS 线路与我在上一篇文章中共享的映像相匹配。 我可以告诉大家,当两条线路应该处于低电平时,这两条线路的状态就像高电平一样。

    此外,确保定义 SL_IF_TYPE_UART,以便 SL_IfOpen 知道调用 UART_Open 而不是 SPI_Open。  

    在上面我共享的 CC3100 UART 主机接口文档中,您可以看到 SimpleLink 驱动程序调用 UART 驱动程序的正确功能。 您的实施是否通过了 SL_IfOpen?

    谢谢,
    雅各布

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

    你好,Jacob,

    感谢您的持续响应。 在 CC3100 WiFi 模块的 UART 接口中,我确保 IRQ 和 RTS 线路与您共享的上述图像不匹配。

    以上波形显示 Host_IRQ 和 RTS 线路。 我不知道为什么它最初处于高位。 在构建项目时,我的代码中有一些警告。 这是否会导致任何问题?

    在 SL_fopen() API 之后,UART 被初始化,在程序进入 UART_receive()函数后,它只收到两个值“0x7c”,“0xFE”。在此之后,调试器输入 UART_WaitOnFlagUntilTimeout()函数,最终被吸入错误处理程序()函数。

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

    您好,Pradeepa,

    我将补充一些关于您应该看到的内容的评论:NHIB 应该启动,然后设备应该发送“初始化完成”事件日志。 两者的 RTS 线路应较低,以允许数据交换。 只要 CC3100设备有主机待处理的内容,IRQ shoudl 就会很高,当主机向其发送数据时,IRQ shoudl 就会很低。  

    您能否根据随附的指南记录 NWP 日志? 我想看看您是否收到过“init complete”消息。  放大 TX 数据行并使所有其他行仍在帧中也很有帮助。

    e2e.ti.com/.../2022.CC3100-_2600_-CC3200-Capture-NWP-Logs-_2D00_-Texas-Instruments-Wiki.pdf

    谢谢,
    雅各布

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

    你好,Jacob,

    感谢您的响应。STM32F1控制器的 CC3100模块的 UART 接口是否有任何示例可用。 如果您有此示例,可以分享吗?

    谢谢,此致,

    普拉迪帕

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

    您好,Pradeepa,

    没有,我们没有专门针对 CC3100模块的 UART 接口的示例。 在 CC3100SDK 的平台目录中,我们确实有用于 TIA-c-launchpad 和 msp430f5529lp 的 UART 示例。 您可以参考 STM32 UART 接口的参考。 您还可以在 E2E 上找到实施方案。

    我还可以帮助处理我在上一篇文章中提到的 NWP 日志。

    谢谢,
    雅各布

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

    你好,Jacob,

    感谢您的响应,基于 CC3100SDK 上提供的示例,为采用 STM32F1控制器的 CC3100模块的 UART 接口实施了代码。

    我在这里附加了 UART 接口(UART.c)的图像

    以下是 board.c 的图像

    代码中是否需要进行任何修改?

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

    您好,Pradeepa,

    我将在本周晚些时候跟进此请求。

    谢谢,
    雅各布

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

    您好,Pradeepa,

    我不太熟悉调用 STM32所需的 API。 我建议查看这些博客中的信息:

    对于 CC3100,您是否了解 了 CC3100SDK 中现有的一些主机驱动程序端口

    谢谢,
    雅各布