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.

TMS320F28P650DK: I2C interfacing issue

Part Number: TMS320F28P650DK
Other Parts Discussed in Thread: LAUNCHXL-F28P65X, SYSCONFIG

Tool/software:

Hi, I am using  the LAUNCHXL-F28P65X to test a I2C interface to a TLV493D-A1B6.

I am having a lot of trouble understanding how to set the I2C SDA I2C SCL Pin Qualification.

I am using sysconfig to set the Pin setting and I cannot get it to do anything when the outputs are set as Open Drain or Open Drain with pull ups.

It drives the signals in push pull mode but that's clearly not the correct way to drive the I2C bus.

I have tested the pins as normal digital pins as Open Drain will internal pull ups and they are fine.

I also came across this errata TMS320F28P65x Real-Time MCUs Silicon Errata (Rev. D) page 21 GPIO: "Open-Drain Configuration may Drive a Short High Pulse"

So two questions.

1. How should I configure the I2C module in syscfg for correct I2C bus operation.

2. Does the I2C module handle the issue mentioned in the errata or will there be conflict that risks damaging the MCU and TLV493D ?

 

  • Hi Colin,

    As indicated in EX #1, these are the GPIO configurations you'll need to use. No need to drive the GPIO explicitly as open drain formally as the I2C HW takes care of this. When using the following configurations, the errata is not of concern.

    This solution works is because the GPIOs are designed as push-pull. If you were to configure a regular GPIO as open-drain, it would work as an open-drain, but the errata would be applicable. If you were to configure an I2C GPIO as open-drain, you are configuring the GPIO as open-drain twice and this causes some HW issues with the internal structure. 

    Best Regards,

    Aishwarya

  • Hi Aishwarya, thanks for your prompt reply. Ok as long as I am setting the pin type corrrectly by setting them to push pull. If I have externl pull ups do I set them to not use the internal ones? Also if this is how it shuld be set why is the open-drain option offered. It doesnt work at all when I choose it?  Colin

  • Colin,

    I updated the previous response to have some more details on this. The open-drain configuration is given as an option for any module, but it should have been locked for I2C/PMBUS as it is in SysConfig for other devices. 

    Best Regards,

    Aishwarya