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.

TMS320F28033: TMS320F28033

Part Number: TMS320F28033
Other Parts Discussed in Thread: C2000WARE

Hello:

      I think I would like to ask about the I2C communication of TMS320F28033.enable the FIFO module, and the depth of the FIFO module is 4. According to the

following figure, the E2PROM timing ControlByte is configured in the I2caRegs.I2CSAR register, and the address and data written to the E2PROM are configured in the

I2caRegs.I2CDXR register. Will ControlByte take up space in the FIFO? For example, if I want to transmit 16bits of data now, the address is divided into high bits

and statuses, a total of 16bits, and 2Bytes of data bits. Is this configuration possible? Thank you~

  • Hi Xiaolin,

    Will ControlByte take up space in the FIFO?

    Yes, it will need to.

    We have an I2C EEPROM software example for the F2803x device available in C2000WARE.

    • C:\ti\c2000\C2000Ware_4_01_00_00\device_support\f2803x\examples\c28\i2c_eeprom

    Alternatively you can look at the I2C driver files used in the F2806x examples below, as they may be easier to leverage:

    • C:\ti\c2000\C2000Ware_4_01_00_00\device_support\f2806x\examples\c28\i2c_Lib_eeprom_polling
    • C:\ti\c2000\C2000Ware_4_01_00_00\device_support\f2806x\examples\c28\i2c_Lib_eeprom_interrupt

    Best,

    Kevin

  • That means 2803X I2C, FIFO depth is 4, ControlByte occupies 8bits, configured in I2caRegs.I2CSAR register, high and low addresses, a total of 16bits, the

    remaining 8bits, can only transmit 8bits data at a time?

  • Hi Kevin,

    Thanks for your kindly support on this topic. This is a question from my customer.

    Actually the fact that 'control byte' would occupy FIFO space is not something I am aware of.

    If my understanding is correct, to achieve the communication as above picture, customer still need to use 8bit address mode(Control byte is configured as address). Would this occupy FIFO space as well? Can you help to confirm that?

    The 'address high/low byte' would be data byte which would definitely take 2 bytes. I think this is something for sure.

    Regards,

    Brian

  • Hi Brian,

    If my understanding is correct, to achieve the communication as above picture, customer still need to use 8bit address mode(Control byte is configured as address). Would this occupy FIFO space as well? Can you help to confirm that?

    The 'address high/low byte' would be data byte which would definitely take 2 bytes. I think this is something for sure.

    Sorry, I did not notice the image where the Slave Address is represented as the "Control Byte". You're understanding is all correct then. I answered this similarly to Green Deng below as well:

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1115592/tms320f28033-question-of-i2c-fifo

    In other I2C devices the Control Byte is often documented as a byte after the slave address, that is why I got confused.

    Best,

    Kevin

  • HI,Kevin:

         The ControlByte we are talking about refers to the read and write E2PROM data format. ControlByte is configured in I2caRegs.I2CSAR,  while Address

    (High Byte and low Byte) and Data are configured in the I2caRegs.I2CDXR register.According to what you said, I2caRegs.I2CSAR will not occupy FIFO

    space, is that only the data configured in I2caRegs.I2CDXR will occupy the FIFO space?

       The format of E2PROM write data is as follows:

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1115592/tms320f28033-question-of-i2c-fifo

    Thank you ~

  • Hi Xiaolin,

    For this case, I believe the control Byle is configured as address, while the address high/low byte and data are all configured as data which would occupy FIFO. Thus in this way, you should be able to transmit 2 data byte every time (2 byte address + 2 byte data).

    Regards,

    Brian