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.

TMS320F2808 I2C trouble with width pulse

Other Parts Discussed in Thread: TMS320F2808

Hi I have troubles with the I2C module of the TMS320F2808, the situation is the next:

Some of the pulses of the SDA have a very small width, 50nano seconds exactly, then obviously the I2C device can't see this kind of pulses since 4.7 micro seconds is the small time for the I2C bus specification.

I post one photo of the signals. Yellow signal is form SCL pin and purple signal is from SDA, both form DSP TMS320F2808:

 

As you see in the last figure, there are 2 signals of very small width.

I prove the same code in another microcontroller, (RabbitRCM3400), and it appears on the next figure:

Like you see, those signals that in DSP appear with very small width, in RabbitRCM3400 appear with a correct width.  I use the same conditions for both microcontrollers (Rabbit and DSP) and for comunicate to the same device (a motor driver XBLDC).

I have modified the frecuency and the width of low and high pulses, like in the next part of code:

    I2caRegs.I2CPSC.all = 9;        // Prescaler - need 7-12 Mhz on module clk
    I2caRegs.I2CCLKL = 220;            // NOTE: must be non zero 10 333khz aumentar para bajar la frecuencia con 20 = 233
    I2caRegs.I2CCLKH = 110;            // NOTE: must be non zero  5. En microsegundos por 10.

but it not solve my problem, the motor driver XBLDC doesn't responds, but with RabbitRCM3400 works correctly, so the problem isn't the motor driver.

Do you have any suggestions for to solve this problem?

 

Gerardo Flores.