HCI Mode Introduction

 

The CYW20706 can run as a single-chip Bluetooth device with the Cortex-M3 microprocessor core or run as a Bluetooth controller only device in HCI mode. A Bluetooth controller only device supports the Bluetooth HCI interface as defined in the Bluetooth Core specification.

 

In HCI mode, we can connect a HOST MCU, a tester or a system which runs Linux or Android through the HCI UART interface. To successfully run the device in HCI mode, there are some initializations need to be done because the ROM code in the device is too old.

 

How to Run HCI Mode

 

There are two conditions for the customer’s application:

 

1. The device has a flash connected with it.

 

(1) Download an application FW to initialize the configuration.

You can download any demo code (for example, hello_sensor) in the SDK for the initialization. I attached an application code based on hello_sensor for reference. There are two things to consider:

  • Disable the trace log by wiced_set_debug_uart(WICED_ROUTE_DEBUG_NONE).
  • Set the baud rate for HCI UART in the const wiced_transport_cfg_t  transport_cfg{}.

(2) Pull the CTS to high during the power on reset or hardware reset.

This will enable the device to enter HCI mode and receive all the HCI commands. If you are testing with the CYW20706 kit board or related module kit board, the CTS pin will be pulled up if you plug the USB to the computer while the UART port on the computer is close.

(3) Connect the device with CYBluetool and sent reset command. The baud rate is set in the const wiced_transport_cfg_t  transport_cfg{} configured before. Then the device will accept all the HCI commands.

 

2. The device doesn’t have a flash connected with it.

 

(1) Download an application to RAM to initialize the configuration.

You can download an application which is described in the last chapter to the RAM to initialize the device. There are two methods to download application to RAM: using the Client Control or using HCI command. You can find both methods in the document WICED-HCI-Control-Protocol.pdf in the folder like C:\Users\xxxx\Documents\WICED-Studio-6.2.1\Doc\.

(2) Connect the device with CYBluetool and sent reset command. The baud rate is set in the const wiced_transport_cfg_t  transport_cfg{} configured in the application. Then the device will accept all the HCI commands.