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.

I2C Boot Mode for C28346 ControlCARD

Other Parts Discussed in Thread: SPRC876

Hi all,

Please excuse me for my amateurish question if it is, as I'm very new to this. I've posted this exact same question in another thread but there's no reply, so I'm reposting this as a new thread.

I'm currently using the C28346 Dim168 ControlCARD with a Blackhawk USB2000 JTAG (just some backgound info). What I would like to achieve is to load the code into the control card and run it using I2C boot mode.

I've ran the hex2000 utility and located the resultant file (.x00 .x01 .x10 .x11 etc.) at the hex2000 folder. The command I used is   location> hex2000 filename.out -i2c8 -i2cpsc 29 -i2cclkh 5 -i2cclkl 10 -a

My questions are:

1)Which Hex Utility Output Format should I assign for the Hex Utility? ASCII-HEX, TI-Tagged or some others?

2)The next step will be to program the resultant data into the EEPROM found on the ControlCARD. If I do not have an EEPROM programmer, I can also use the C28346 MCU to program it to the EEPROM alternatively. I'm having problem with this as I could not understand the I2C to EEPROM from the example code found in file. Is there any more direct example code on accessing the EEPROM through I2C available, which I can try learning from?


I've tried searching in the TI literature as well as the E2E forum to no avail. If there's existing literature, please kindly point me to the literature.

  • Did I posted in the wrong place?

    I did referred to document sprufn5a before posting this. Hope can get some pointers from here.

  • I am also wondering a similar thing.  For the C28346 Experimenter's Kit, how do I load a program onto the EEPROM and have the C28346 boot and run this program when it is power cycled?  Since this MCU doesn't have any flash, I cannot use the FlashBurn utility.  I am currently using a XDS100v2 to debug and run programs.



  • Hi Jake, Hi Shen Li Na

    The C28346 experimenter's kit has a Serial Communication Interface, SCI.If you download all the hardware samples, you can find the TI general purpose GUI, and also the source code of this GUI. Just look at it and find out how to boot Delfino over SCI. It's quite simple.

    As a next step you can write a firmware loader by yourself. With this firmware loader you have to program firmware to i2c. Just use the *.a00 format, with special settings for i2c and settings for the clocking registers of i2c that will be loaded at the start. If you download sample source code for C28346 you got an example how to program i2c eeprom. To understand this example you need to understand how i2c works. So you can easily understand the example. Just change the example to write blocks to i2c.

    Now you can use the TI GUI to write blocks to Delfino by SCI and save these blocks to i2c.

    If you want to write your own GUI, be aware of SCI baud rate, you just can boot Delfino with a maximum speed of 38400 baud. At higher baudrate you can't boot it in SCI boot mode. But if Delfino has booted, you can change to a higher baud rate.

    As far as i know, there is no utility available for any debug tool. The answer i got from TI was... do it yourself ;-)

    Unfortunately I'm not in the office now, so i can't give you the exact filenames, where you can find all these information. On monday i'll be back at office and i could give you more information.


  • Hi Eggi,

    Thanks for the reply, I'll have a look out on the GUI right away.

    If I've understand you correctly, the process of doing it is first to have a firmware loader to interface with the GUI (getting .a00 file from GUI) and then load it to EEPROM through I2C. And then make use of the GUI to load the firmware.

    I'll try out the method. Once again, thank you very much.

    Shen Lee

  • I've had a look at those files and I've found the GUI. This is the GUI that I'm looking at: C:\TI_F28xxx_SysSW\~GeneralPurposeGUI\GeneralPurposeGUI

    And the I2C example that you've mentioned, I'm presuming is this : C:\tidcs\c28\DSP2834x\v110\DSP2834x_examples\i2c_eeprom

    Please let me know if I'm looking at the wrong files. I'll work on this and hopefully I'm able to learn it to boot from the EEPROM.

  • Hi Eggi,

    Yes thank  you for your reply.  I have read it over along with Shen Lee's post however I am still a little confused.  What exactly is the firmware loader?  It is my impression that the firmware loader is a program I write and load on to the Delfino which takes the data from the SCI and transfers it to the EEPROM.  So the flow would be:

    General Purpose GUI --> SCI --> Delfino --> I2C --> EEPROM

    Once the firmware loader is used to transfer your new program from the SCI to the EEPROM, you can simply boot from the EEPROM?

    Thanks for all the help,


  • Hi Shen Lee Na,

    That's right, you're looking at the right files.  !
    I used the source code of C:\TI_F28xxx_SysSW\TwoChannelBuck\~GUI\~Source to get an idea how to boot Delfino in SCI boot mode.

    Good Luck


  • Hi Jake,

    Well, what's a firmware loader. As you mentioned correctly, it's a program you first load to Delfino. This program communicates with a host pc based application by SCI.Since Delfino has no flash, you need to boot it. I choosed SCI, because I had the GUI Solution.

    Then you have to convert the firmware, you want to run on Delfino with hex2000 utility.

    I used the following commands:

    /* Hex converter command file. */

    -a                 /* Select ascii-format */
    -o Example_2834xI2C_eeprom.a00     /* Hex utility out file */
    -boot                 /* Consider all the input sections as boot sections */
    -i2c8                 /* Specify the SPI 8-bit boot format */
    -i2cpsc  0x1D            /* setup the i2c   
    -i2cclkh 0x05           
    -i2cclkl 0x0A   
    Example_2834xI2C_eeprom.out    /* Input COFF file */

    Your host application sends package by package to the firmwareloader. The firmwareloader programs i2c. If you have finished load firmware to i2c, just choose i2c boot mode and Delfino will boot standalone.

    good luck



  • Hi Eggi,

    Thank you for explaining these concepts more to me.  I feel that I now understand the process you are describing.  I have not used the hex2000 utility before so thank you for posting the commands to use.  I will look more into this now that I have a good starting place.

    Thanks again,