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.

[参考译文] CC3351:MCU SDK R7.2 的 HCI UART 配置

Guru**** 2581345 points
Other Parts Discussed in Thread: CC3351

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1572978/cc3351-hci-uart-configuration-for-mcu-sdk-r7-2

器件型号:CC3351


工具/软件:

您好:

我当前使用的是带有 BPcc3351 接线的 MCU 板。 我的 RTOS 是 Zephyr。

以下是我的接线:

- MCU TX -> BPCC3351 P1_3

- MCU RX -> BPCC3351 P1_4

- MCU CTS -> BPCC3351 P2_37

- MCU RTS -> BPCC3351 P2_36

我的 UART 配置设置为 9600(我还会尝试 115200)波特、而无需硬件流控制。 我在 SDK 示例中找到了这些值。

当 MCU 启动时、它开始初始化 CC3351 的 WLAN 部分并发送其固件。 然后、BT HCI (H4) 初始化首先发送一个复位命令、我可以在 UART (h01 h03 h0C h00) 上观察到该命令(使用逻辑分析仪)。

发送命令后、不会交换数据。 CC3351 应该回复一条“命令已完成“消息、但不会显示这条消息。 此外、从 CC3351 日志中可以看出、我没有看到任何与蓝牙/UART 连接相关的日志。

我还将使用 Linux BeagleBoard 和 Linux SDK 进行初始化进行比较、然后在探测 UART 连接时、我会看到“复位“命令发送和“命令完成“响应。 但是、Linux SDK 使用的 UART 配置与我在 CC3351 配置文件中看到的配置不同(启用了 115200 波特和硬件流控制)。

我想我目前在 MCU 端遇到 UART 配置问题、请问我使用的 UART 配置是否正确? 或者我是否缺少用于初始化 CC3351 的 BT UART 的配置?

我向此票证附加了一个日志文件、其中包含 CC3351 的日志以及引导序列。

e2e.ti.com/.../boot_5F00_cc3351.csv

提前感谢、

Gaetan

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

    尊敬的  Ga é tan:

    9600 应该是默认波特率。 您是先发送 BLE_ENABLE 命令了吗? 我指的是函数“Ble If_Enable BLE“。

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

    此外、固件日志中似乎没有处理中断。 IRQ 是否仍为高电平?

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

    您好 Sabeeh,  

    感谢您确认波特率。

    我尝试向“Ble If_Enable BLE“添加一个电话、该电话运行正常、但未解决我的问题。 起初我并没有称呼它、因为我期望仅使用 CC3351 的 HCI H4 UART 部分、主机 BLE 栈由我侧的 Zephyr RTOS 提供(不能像示例中那样灵活)。 此外、在我的配置文件中、ble_enable 设置为 true、因此我觉得够了。

    我附上了 CC3351 的日志文件。 发送  Bleble.ble If_Enable 命令大约出现在第 27/28k 行(抱歉,这不是很精确)。

    我还添加了配置文件(如果可以提供帮助)。

    我已与逻辑分析仪检查、WLAN_IRQ 上没有待处理的 IRQ、BLE_IRQ 上没有信号。

    e2e.ti.com/.../7183.stream.csve2e.ti.com/.../8764.cc33xx_2D00_conf.txt

    谢谢、

    Gaetan

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

    尊敬的 Gaetan:

    我已经查看了您的日志、我没有看到任何明显的问题。 您正确发送了 BLE_ENABLE 命令、我在固件日志中看到了相同的内容。 我还看到固件正在将信息传回主机。 所以,我很难找出一个确切的原因。 我想说您确实遵循 SDK 中所示的相同命令。

    您能否提供 UART 线路的逻辑捕获? 我希望看到数据来回传输。

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

    您好 Sabeeh,

    我在这个问题上又做了一次尝试。

    按照 cc33xx_thick_mac_network_terminal 的说明、使用 BLE 似乎有 3 项工作要做:

    -在 cmdWlanStartCallback 中使用 WLAN_START 初始化 WIFI 芯片

    -在 cmdWlanStartCallback 中配置电源管理和 TX 控制

    -以 cmdBleStartCallback 启动 BLE 堆栈 (nimble)

    我在 Zephyr 上也做了同样的事情:

    - 在 wifi 驱动程序初始化期间用 WLAN_START 初始化 wifi 芯片

    - 在 WIFI 驱动程序初始化期间配置电源管理和 TX 控制

    -启动 Zephyr BT 堆栈(从外壳,在 WLAN 初始化之后)。 此 BT 堆栈初始化会发送 HCI H4 复位命令。

    我暂时删除了所有与 wifi 接口相关的内容、如 role_up、以便与示例代码保持一致。

    发送 HCI H4 RESET 命令但 CC3351 芯片没有答案时、我仍然存在相同的问题。

    我已将 CC3351 发送的消息日志附加到该日志并从逻辑分析仪捕获 UART 信号。

    此外、我注意到很多日志“主机接口未关闭“、我不知道原因是什么、但当我反转 UART TX 和 RX 时、这些日志似乎不存在。 虽然问题仍然存在、但我在日志中找不到有关 BLE HCI 的任何信息。

    提前感谢

    Gaetan

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

    您好、很抱歉我的迟到消息、发送得太早了。

    我发现了这个问题,这是一个电汇问题+错过调用 “Ble If_Enable BLE“.

    非常感谢您的帮助!

    Gaetan