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.

TMS320F28335: sci programming issue

Part Number: TMS320F28335
Other Parts Discussed in Thread: C2000WARE

Hi Team,

During my customer's test, the waveform of sci programming they catched is different from the sprabv4f.

Serial Flash Programming of C2000 Microcontrollers (Rev. F)

The frame header and frame tail of the Flash Kernel A (TMS320F28335) data frame captured by the logic analyzer are as follows:

The Flash Kernel B frame header and frame tail provided by the document are as follows:

Since the document does not write about the frame header of Flash Kernel A, there is no corresponding protocol that can match it, and the wave capture of Flash Kernel A and Flash Kernel B is also different.

So they would like to ask if you can provide relevant protocol and information.

--

Thanks & Regards

  • Hi Yale,

    For Flash Kernel A devices, I'll need to take some time to check it out on the scope to see what the protocol is.

    For F28335x:

    - a block made of word data and byte data is sent to the device 

    - the flash kernel project shows that a checksum is sent after flashing the program. 

    Will get back to you by tomorrow. 

    Thanks and regards,

    Charles

  • Hi Yale,

    As update, the protocol for Flash Kernel A does not involve a header like Flash kernel B. This header is more for receiving command packets from the user. Protocol is to send data blocks at a time depending upon transmission count value until zero block size is encountered. 

    Thanks,

    Charles

  • Hi Charles,

    My customer still have some questions:

    The early handshake still cannot be parsed out intuitively. I used CCS to output the .out file into sci8 format, but it cannot be completely matched with the waveform.

    I also used the boot file in C2000Ware to generate waveforms, but I couldn't match it completely.

    Can you tell me the reason for this situation or provide relevant bootload information and files?

    Or explain how this waveform is generated? What file does this waveform come from?

    In the documentation, the data flow about the waveform is also inconsistent with the generated waveform.

    --

    Thanks & Regards

  • Hi Yale,

    Relevant bootfile information for this device can be found here: C:\ti\c2000\C2000Ware_5_00_00_00\libraries\boot_rom\f2833x\v2_0\rom_sources

    The waveform I believe to see a starting address of 0x0000ED6D, block size of 2 for code entry, first block to be loaded starting at 0x00000000. 

    The handshake seen by autobaud is carried out by 'A' value (0x41). Are you able to see this on the scope?

    Checking, is the .out file you used to match for the F28335 project or for F280039C (I see demo above)? What does the signal look like when waiting for SCI input from a file?

    Thanks,

    Charles

  • Hi Charles,

    The reply from the customer:

    I have found the relevant boot files. The first frame is indeed 0x41.

    My question is:
    Are the handshake waveforms of all project files of 28335 consistent, even if the .out files or hex files are different? Is the same for 280039C?

    Because I have multiple routines here, including ti's and third-party‘s, all of which can be successfully run on the board.

    By capturing the wave with a logic analyzer, the waveforms of the handshake phase of device under different projects are consistent.

    The following is the wave capture of 28335, which is two different project files.

    However, the waveform data of this handshake cannot be found in the hex file converted from the .out file of the wave capture, nor can it be found in the boot file of the related device.

    For example, 0x1BCC does not appear in the hex file I programmed or the i00 file converted by .out.

    Then I also tried to convert the boot.out file of 28335 in C2000Ware, but I did not find the 0x1BCC waveform in the header.

    Is this because the file command I converted is wrong? Or other reasons?

    Or is this waveform a proprietary waveform of C2Prog, or do I need to find the corresponding data from assembly?

    --

    Thanks & Regards

  • Hi Yale,

    Are the handshake waveforms of all project files of 28335 consistent, even if the .out files or hex files are different? Is the same for 280039C?

    Yes the handshake waveforms should be consistent across all devices.

    The handshake data exists outside of the waveform data. 

    > Is this because the file command I converted is wrong? Or other reasons?

    I'm actually not sure on this, as I haven't tried to convert the bootROM .out before. I'll have to gain some more information on this and C2Prog waveforms.

    Thanks and regards,

    Charles