该HCI接口在蓝牙核心规范中有定义。
在HCI模式下,我们可以通过HCI UART接口连接主机MCU、测试机或运行Linux或Android的系统。为了在HCI模式下成功运行并使用CYW20706设备,需要进行一些初始化,因为设备中的ROM代码太老了。
如何启动HCI模式
有两个应用场景通过不同的方法启动HCI模式:
- CYW20706有外接flash的应用场景。
(1).下载应用程序去初始化配置CYW20706。
您可以下载SDK中的任意的Demo代码(例如hello_sensor)对CYW20706进行初始化。我附上了一个基于hello_sensor的应用程序代码作为参考。但是有两件事需要考虑:
a).通过wiced_set_debug_uart(WICED_ROUTE_DEBUG_NONE)禁用trace log。
b).在const wiced_transport_cfg_t transport_cfg{}中设置HCI UART的波特率。
(2).上电复位或硬件复位时,将CTS拉高。
上电复位或硬件复位时,拉高UART的CTS Pin,将使设备进入HCI模式,并接收所有的HCI命令。如果您正在使用CYW20706 EVB套(件板或相关模块套件板)进行测试,当您将USB插入计算机,而计算机上的UART端口是关闭的,则CTS引脚将被自动拉高。
(3).用CYBluetool连接CYW20706设备,发送reset命令。波特率在前面配置的const wiced_transport_cfg_t transport_cfg{}中设置。然后CYW20706将接受所有的HCI命令。
- CYW20706没有外接flash的应用场景。
(1).下载一个应用程序到RAM来初始化配置CYW20706。
您可以查看另外一篇博文,描述如何下载应用程序到RAM来初始化设备。有两种方法下载应用程序到RAM:使用Client Control或使用HCI命令。您可以在文件WICED-HCI-Control-Protocol.pdf中找到完整的下载过程。该文件一般在C:\users\xxxx\documentswiced-studio-6.2.1\Doc\这样的文件夹中。
(2).用CYBluetool连接CYW20706设备,发送reset命令。波特率在应用程序中配置的const wiced_transport_cfg_t transport_cfg{}中设置。然后CYW20706设备将接受所有的HCI命令。
评论