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.

CC3220: Protocol for image programming over UART?

Part Number: CC3220
Other Parts Discussed in Thread: CC2640, CC3120, UNIFLASH, CC3100, CC3200

We are looking at the possibility of using a CC3220 in conjunction with a MSP430 or CC2640. The CC3120/CC3220 Programmer's Guide refers to different methods of programming the CC3220 device. We would much prefer to use our own tool chain to program devices in the factory, which presents a problem with the CC3220. The Image Creator tool uses the UART interface to program the device - is the protocol for this documented anywhere so that we could instead program the CC3220 from the MSP430/CC2640's UART interface?

  • Hi Ed,

    There is always the option of creating the image in Uniflash, and then programming directly to the serial flash through SPI. This was actually the primary method of programing intended
    -Aaron
  • Hi Aaron,

    I think I'm missing something here. Are you saying we would allow our other processor (say a MSP430) direct access to the serial flash? If so, would we just mass erase the flash and write the image starting at some fixed address (like 0)? And then when we reset the CC3220 it would recognize that a fresh image was programmed, resulting in the CC3220 creating its file system and setting up the files contained in the image?

    I was thinking that Uniflash was using the UART similar to the CC3100 where some special startup sequence would be used to format the flash and then use the UART to transfer the actual image to the CC3220.

    -Ed
  • HI Ed,

    It doesn't quite work the same for CC3200. There have been changes to the way the filesystem works because of security considerations. Yes, you will mass erase the flash, write the image starting at 0 offset, and the CC3220 will detect that it is a fresh image. It is as you said.

    -Aaron
  • Hi Aaron,

    OK that makes more sense. One more question, if I may... I was poking around in the CC3220 Programmer's Guide last night, and I did find some good information in chapter 6 (CC3220 ROM Services). It looks to me like we could set the SOP pins to 0b100 and then load the image via the UART. I assume the bootloader would take care of the serial flash mass erase and storing the image in the serial flash. The only thing that wasn't mentioned was which pins were to be used for the UART in this mode, and what UART settings to use. For example, I assume flow control needs to be used since it sounds like there is no ACK-type of response to the data that is sent. And of course what baud rate should be used, etc. Do you know if this information is available anywhere?

    The reason I'm pushing for this type of solution is that it would be much easier for our factory tools to talk to 1 "master" processor (i.e. the MSP), and have that worry about distributing images/data to the rest of our system.

    -Ed
  • Hello Ed,

    You are referring to embedded programming feature that was first introduced in Gen1.

    For Gen2, the UART setup is the same, i.e. 921600, 8 bits, no parity, 1 stop bit. Also, no flow control is used. There are ACK packets as part of the protocol.

    To make life easier, I am in the process of releasing similar package for Gen2.

    Hard to tell the exact date as it must go through legal, tech writer, etc, but should be couple of weeks timeframe.

    Regards,

    Shlomi

  • Hi Shlomi,

    That will be perfect. Thank you!

    -Ed
  • Hi Ed,

    As promissed, Embedded Programming package for CC3x20 is out.

    You can find it under http://www.ti.com/tool/embedded-programming

    Regards,

    Shlomi

  • Thank you Shlomi - that's very helpful!