Downloading into the CYBLE-013025-00 module – KBA222505
Translation - Japanese: CYBLE-013025-00モジュールへのダウンロード– KBA222505 - Community Translated (JA)
How to program application code to the CYBLE-013025-00 module?
The HCI-UART interface is used to download the application code to our modules in development or for production. To download your application, you need to follow the hardware setup and software procedure shown below. A recovery procedure may be required to download the application successfully, if errors are encountered during programming.
The HCI-UART interface available on the CYBLE-013025-00 does not support hardware flow control, so only the HCI-UART Tx/Rx signals need to be connected to allow for programming of the module. Ensure that the HCI-UART Tx/Rx signal connections are accessible during the programming step (access can be on the host board, or as part of a customer developed manufacturing programmer). The programming steps will differ depending on use-case (evaluation kit versus module only).
I. To program a stand-alone CYBLE-013025-00 module on a host board
- A USB-to-UART bridge, such as the FT232 (shown in Figure 1), can be used for USB-to-UART conversion.
- Connect the module’s VCC/GND/UP_Tx/UP_Rx connections to the VCC/GND/Rx/Tx connections on the USB-to-UART bridge
- Ensure that the VCC voltage of the USB-to-UART bridge is 3.3V.
- Assert UP_RX to HIGH and then power on or reset the module. This process will put the module into HCI mode and ready for programming.
Figure 1. Connection between CYBLE-013025-00 and FT232
Tips: The Tx signal on most USB-to-UART bridges is HIGH after power-on. Power cycling (OFF then ON) the USB-to-UART bridge can put the module into HCI mode if the default Tx signal level is HIGH on initial power up.
II. Program the CYBLE-013025-00 module on the CYBLE-013025-EVAL evaluation kit
The CYBLE-013025-EVAL kit includes a USB-to-UART chip integrated on the kit. Customers can connect the evaluation board directly to PC via USB. To enable HCI-UART communication on the evaluation board, follow the steps and configurations below:
- Ensure that the SW1 configuration is properly set on the evaluation board.
- SW1 positions 1, 2, 3, and 4 should be set to OFF.
- SW1 positions 5 and 6 should be set to ON.
- Press the SW2 button (RESET) after the SW1 positions are correctly set. This process will put the module into HCI mode and ready for programming.
Figure 2. Top and Bottom View of CYBLE-013025-EVAL
- Programming using WICED Smart
- Download WICED Smart SDK 2.2.3 from community.cypress.com/t5/Public-Archive/WICED-Smart-SDK-2-2-3-7z-Archive/m-p/247688 and install.
- Create a Make Target as follows:
- Replace the “hello_client” with your project’s name.
- Replace “124” of the port number of the USB-to-UART the bridge, which can be found in Device Manager on PC.
- “PLATFORM_NV=SFLASH” is required for downloading the application code to SFLASH.
- Place the module into HCI-Mode as described in the Hardware Setup section above.
- Double click the Make Target.
- After a brief compile process, the Console output in the WICED Smart SDK should indicate success, as shown in the below Figure 3.
- Programming using command line
- Download WICED Smart SDK v2.2.3 from community.cypress.com/t5/Public-Archive/WICED-Smart-SDK-2-2-3-7z-Archive/m-p/247688 and install.
- Open the Command Prompt (cmd.exe) on your PC and navigate to the WICED Smart SDK folder, (e.g. ”…\WICED\WICED-Smart-SDK-2.2.3\WICED-Smart-SDK”).
- Run the following commands to program the target .hex file to the CYBLE-013025-00 module:
“Tools\ChipLoad\Win32\ChipLoad.exe -BLUETOOLMODE -PORT COM52 -BAUDRATE 115200 -MINIDRIVER Platforms/BCM920737TAG_Q32/uart_DISABLE_EEPROM_WP_PIN1.hex -BTP Platforms/BCM920737TAG_Q32/20737_SFLASH.btp -CONFIG build/ezserial_013025-CYBLE_013025_EVAL-rom-ram-Wiced-release/ezserial_013025-CYBLE_013025_EVAL-rom-ram-Wiced-release.hex -CHECKCRC -NOVERIFY -DLMINIDRIVERCHUNKSIZE 251”
Notes on the colored items above:
This should be replaced by the name of the target .hex file desired to be programmed to the module, along with its folder name.
This is the COM port number assigned by the PC.
This is the minidriver .hex file. The minidriver is a set of code and data that replaces the download code in the ROM of the CYW20737 chipset used on the CYBLE-013025-00 module.
This is the Serial Flash configuration file for the CYW20737 chipset.
Refer to Figure 3 and Figure 4 for command line implementation used for programming.
Figure 4. Screenshot when Downloading Starts
Figure 5. Screenshot when Programming Completes
3. Performing a Recovery Procedure
In some cases, the firmware download procedure fails even though all connections and switch configurations are correct. This may occur because of SFLASH corruption due to incorrect a1pplication design, attempting to load large firmware image (application size should not exceed ~26 KB), or power loss during a firmware download process. If any of these issues occur, you will need to recover the module using the below steps:
- To recover the CYBLE-013025-00 module with a USB-to-UART bridge:
- Power cycling (OFF then ON) the USB-to-UART bridge should put the module back into HCI mode if the previous download fails.
- To recover the CYBLE-013025-EVAL board using WICED Smart:
- Copy and paste the original make target to a new entry.
- Change the name of the new target in the following ways:
- Replace 'download' with ’recover'
- Add UART=COMxx as an additional argument. The COMxx value should be the host serial port number assigned by the PC which is connected to the HCI-UART programming interface on the evaluation board.
- The final make target name should be similar to the name shown below:
find_me-CYBLE_013025_EVAL recover UART=COM17
- On the CYBLE-013025-00_EVAL board, while holding the Recover button (SW4), press and release the Reset
button. Release the Recover button shortly after the Reset button has been released. This process will cause the module to boot into recovery mode.
- Double-click on the new make target to perform a recovery download.
- The application will boot properly on the module.