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 bootloading



I want to use the I2C boot option for the 28335. 
 
We have the equivalent of the TMS320F28335 eZdsp Starter Kit, so code/explanations for that platform will work. 
Updated all software as of this month. We are using the SD USB510 emulator.
 
I have a preliminary program (following pretty closely TIs example programs from sprc530) that I run from CCS, 
but now I want to test it out standalone. For multiple reasons, I think it makes the most sense to boot (or otherwise xfer code to)
the DSP from the I2C serial EEPROM (cat24c256). PLS don't reply saying just run from DSP flash.
 
A step-by-step example program (e.g. just to blink an LED) would be perfect. 

I can only find minimal hints on how to accomplish this.For example, I need to use the hex2000 utility with the appropriate options. The latest "boot rom reference guide" states
 "Updates will be made to support the I2C boot. See the Codegen release notes for the latest information."
There is an ecan example there, not I2C, so besides trying many days of trial and error, I don't see how to proceed with this route.

Any help would be appreciated. Contacted TI support almost 2 weeks ago with no response (other than use DSP flash).

 

  • I assume your reference to the latest "boot rom reference guide" was SPRU963.

    From Section 3.1 of that guide, it discusses the C2000 Hex Utility which can be used to create the appropriate stream format for the I2C-A port.  The boot process for I2C-A is discussed in Section 2.21 of the same document.
    Using the example, although specified for eCAN booting, I would suggest the command line for the I2C booting to be:

    windows prompt> hex2000 program.out -boot -i2c8 -i2cpsc 0x01 -i2cclkh 0x0036 -i2cclkl 0x0036 -a

    Section 2.21 of SPRU963 indicates to use I2C-A boot, the input clock frequency  to the device must be between 28MHz and 48MHz.  This would result in the I2C reference clock to be 7MHz to 12MHz when the boot rom sets I2CPSC=0x01.  There is a note that the I2CPSC value could be set to another value based on the value placed on the -i2cpsc <value> switch, but it is not advisable.  Therefore, my suggestion is to use -i2cpsc 0x01.

    The boot rom will configure I2CCLKH and I2CCLKL to be 50% duty cycle and run at 100KHz when the I2C clock is 12MHz.
    Using the I2C Module Reference Guide (SPRUG03), this would suggest both I2CCLKH=0x0036 (54 decimal) and I2CCLKL=0x0036 (54 decimal).

    The I2C Module Reference Guide uses the following formula for determining the I2C frequency:

    T = (IPSC + 1) * [(I2CCLKL + d) + (I2CCLKH + d)] / (I2C input clock)

    d = 6 for IPSC = 1