Hello,
I'm trying to develop a path forward to program and debug the TI CC3220S module built into a Murata module (LBWA1ZZ1KR), and am seeking some advice. I would like to develop a solution that can be used during development as well as make strides towards a scheme that can support production, possibly leveraging a Segger Flasher tool.
The two options for programming the device:
Programming the SPI flash directly may not be an option, as the Murata module may not allow proper access to the required pins. The alternative of programming through the UART seems like the most feasible option.
To put the device in a mode where it is programmable via the UART requires Sense on Power-up (SOP) pins being set in a specific way. (CC3220x Datasheet - Functional Configurations)
The CC3220S supports both SWD and JTAG debugging, but only the UARTLOAD_FUNCTIONAL_4WJ (JTAG) supports loading and debugging without changing the state of the SOP pins between programming and debugging. This is significant, because the VCOM on the J-Link could be used program the device via its UART, but my understanding is that the VCOM shares pins with JTAG programming mode.
So, I think this leaves me with a couple of options, both of which seem to require writing J-Link Scripts to work properly.
The first would be if the device was in UARTLOAD_FUNCTIONAL_4WJ mode:
One caveat for this config is the VCOM Tx pin must be configured to a pin that isn't the JTAG's TDI pin.
The second would be if the device was in FUNCTIONAL_2WJ mode during debug:
The 2 Wire mode is preferable to save a bit of board space required by additional debug pins, but it's certainly not a necessity that 2 Wire mode is used. (Especially if it makes things easier.)
Maybe there's an easier solution that I've overlooked. It seems in whatever way I approach this, due to the configuration of the Flash/Device/Module architecture, it may require some J-Link scripting. Is there some advice or insight anyone can offer to start me down the right path with the least risk? How has Segger conceived of programming and debugging of the CC3220S module? Am I way off the rails?
Thank you very much!
-Tom
I'm trying to develop a path forward to program and debug the TI CC3220S module built into a Murata module (LBWA1ZZ1KR), and am seeking some advice. I would like to develop a solution that can be used during development as well as make strides towards a scheme that can support production, possibly leveraging a Segger Flasher tool.
The two options for programming the device:
- Program the attached SPI flash directly (Not a good option)
- Program the SPI flash through the CC3220S via its UART
Programming the SPI flash directly may not be an option, as the Murata module may not allow proper access to the required pins. The alternative of programming through the UART seems like the most feasible option.
To put the device in a mode where it is programmable via the UART requires Sense on Power-up (SOP) pins being set in a specific way. (CC3220x Datasheet - Functional Configurations)
The CC3220S supports both SWD and JTAG debugging, but only the UARTLOAD_FUNCTIONAL_4WJ (JTAG) supports loading and debugging without changing the state of the SOP pins between programming and debugging. This is significant, because the VCOM on the J-Link could be used program the device via its UART, but my understanding is that the VCOM shares pins with JTAG programming mode.
So, I think this leaves me with a couple of options, both of which seem to require writing J-Link Scripts to work properly.
The first would be if the device was in UARTLOAD_FUNCTIONAL_4WJ mode:
- Have the J-Link reset the module (or manually do this)
- Use the VCOM to send a UART break to the device to make it enter UARTLOAD mode before it times out
- Load the firmware with TI's UniFlash through the VCOM UART interface
- Reset the CC3220S and attach in JTAG mode for debugging
One caveat for this config is the VCOM Tx pin must be configured to a pin that isn't the JTAG's TDI pin.
The second would be if the device was in FUNCTIONAL_2WJ mode during debug:
- Script the J-Link to set the SOP pins to the UARTLOAD configuration
- Reset the CC3220S to enter UARTLOAD mode
- Load the firmware with TI's UniFlash through the VCOM UART interface
- Script the J-Link to set the SOP pins to the FUNCTIONAL_2WJ configuration
- Reset the CC3220S and attach in SWD mode for debugging
The 2 Wire mode is preferable to save a bit of board space required by additional debug pins, but it's certainly not a necessity that 2 Wire mode is used. (Especially if it makes things easier.)
Maybe there's an easier solution that I've overlooked. It seems in whatever way I approach this, due to the configuration of the Flash/Device/Module architecture, it may require some J-Link scripting. Is there some advice or insight anyone can offer to start me down the right path with the least risk? How has Segger conceived of programming and debugging of the CC3220S module? Am I way off the rails?
Thank you very much!
-Tom
The post was edited 7 times, last by tom_bresson ().