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.

Embedded programming command 0x33 (Switch Uart to APPS MCU) is not acknowledged

Other Parts Discussed in Thread: CC3200

I am implementing embedded programming code for our target.  I can get the CC3200 into boot mode, read the version, and storage list but do not get an ack when I issue command 0x33 to switch the internal uart mux.

My command to do this is :  0x00, 0x07, 0xab, 0x33, 0x01, 0x96, 0xe6, 0xab

I suspect my crc.  I calculate the CRC by adding from the opcode (0x33) to the end of the data (0xab) into  uint32, extracting the LSByte of the sume an inserting it into the crc field (after length field).

What am I doing wrong?  Is 0xAB the correct checksum for this command? 

Thanks

  • Sorry ... CRC is 0x5B ... not 0xab in the above. Still no ack!
  • Hi,

    This is the correct data stream so you should get an ACK.

    The package also include a logic capture with TX/RX capture so you can always use it as a reference and compare. You can also capture your own.

    The only issue I can think of is related to the CC3200 version you are using.

    This package is supported by production devices only and you may be using a non-production device. Can you check what the silk label on your CC3200 chipset indicates?

    Shlomi

  • Will do but the chip is buried. Here is the version info I get.

    The logic analyzer shots in the embedded programming app note on pages 15,16,17 show a 0x00,0x03 command issued before the desired command. In each case the desired command is ignored the first time and then the responds on the 2nd attempt. This is not described in the app note. The app note never mentions a 00,03 command nor does the python programming example.

    Are these required?

    version info response is
    00 1e 17 00 04 01 02 00 00 00 00 00 00 00 00 00 00 00 10 00 --> 00

    After I receive the version info response, the boot loader will not respond to any command (e.g. if I send version info again, I get no response, if I send the switch mux I also get no response, if I send a status request (0x23) I get no response).

    Thanks,
    ..M
  • Hi,

    From the version respond it seems as a production device (boot loader is 2.1.4.0).

    Please use the *.logicdata file for all required information and not the screen shots for full details.

    The 0x03 0x00 is the length of the command. It is used for short commands like GetVersionInfo or GetStorageList.

    Please let me know if you are getting no ACK if you follow the exact byte stream as captured in the *.logicdata.

    Shlomi

  • OK .. working now.

    The host processor needs to send an Ack (00,CC) when it receives the version info.  This was missing from the documentation.

    I have another problem with the size of the image now.  We don't have capacity to store 1MB of image in our host target.  I tried to create a 512M image (lowest image size that is select-able in the image creation tool) but it fails with "Total size of files + the Gang image  exceeded the storage size".

    I looked at the 1MB image file that is created and most of it is unused but the used space is in high memory (>512M).  Is there anyway to adjust this?

    Thanks,

    ..M

  • Hi,

    I appologize for the late response as I was OoO.

    In any case, I am happy that it is finally working.

    Regarding the image size, it cannot be reduced as the boot loader program that extract it expect this structure where the header is at the beginning of the image and the content at the end.

    Maybe you can save only the content itself with offsets (say offset-length-content for each of the 2 blocks of information and program each one as described). If you choose to do it, please remember:

    1. the first 8 bytes header needs to be programmed last
    2. when you erase, it is applied in 4KB chunks. You need to erase before any invoke for raw_write()
    3. All the 0xFF in between these 2 sections are not really needed as if other files are programmed to this area (say later on by your application), it is erased anyway as part of the sl_FsWrite() API

    Shlomi

  • Hi,

    Did the above post answer your query? please verify the answer.

    Shlomi

  • Hi,

    I am closing the thread, if issue still exist please open a new thread and add a link to this one for reference.

    Shlomi