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.

TMS320F2800137: I2C pin is not pulled up, Bus busy bit is set after initialize I2C module

Part Number: TMS320F2800137
Other Parts Discussed in Thread: SYSCONFIG, C2000WARE

Tool/software:

Hello, I am learning to use I2C module in F2800137 mcu for my application.

when I used sysconfig 1.21 and initialize I2C module like the ex1_i2c_master example and I used I2CA, I checked all I2C register value right before I began transmission they had the same value as the example so there was no problem with config right?

But I got stuck in while loop checking for Byte sent bit, and my I2C Pins was never pulled up although I had external pulled up register so my data had never been sent.

here are my config:

  

Later I realized they are TDI and TDO used in Jtag, so there would maybe problem with them when debug, can anyone confirm this for me?

So I tried to used the I2CB (for different pins because I ran out of available Pin for my application) with the same config, but after I initialized this module and checked its registers, the Busy bit BB is set, but I did nothing after initialization.

I read the TMR, so I have to " wait a period larger than the total time taken for the longest data transfer in the application" but I do not know how to calculate it. Is there any other way or how can I read about this?

Here is how I know my BB bit is set: 

Does anyone have suggestion for me? Thanks for reading.

  • Update:

    I added delay time after initialization but the busy bit BB is still 1, the same when I added start and stop condition before data transfer.

    So I tried to used push/pull output/ floating input for SCL and SDA pin and they worked, the busy bit BB was 0 right after initialization. But if I used open drain setting their signal was always Low and the problem remained.

    So is there problem with C2000ware library itself? I am using C2000ware 5.3

  • Hi Hai,

    Thanks for your patience.

    As you mentioned, there is a bug for SYSCONFIG and you need to use  push/pull output/ floating input for SCL and SDA pins.

    We will fix this for next release.

    Thanks,

    Hadi