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 interrupt does not jump anymore after 7 minutes

Other Parts Discussed in Thread: TMS320F28335

Hello everyone out there,

I have a Stepper Motor driver implemented on a TMS320F28335. The project is organized with 4 interrupts with the following priority set by SW, the temperature is read by a sensor and has to be retrieved via I2C.

  1. Filter Interrupt (I need to filter the current readings) 2 mu s
  2. Controller Interrupt (calculate PWM duty cycle) 20 mu s
  3. Step interrupt (ask for a step) x-ternal async
  4. Temperature Interrupt (I2C, buffer is then read every second).

Everything works fine except that after about 7 minutes of operation the I2C interrupt does not jump anymore and my temperature reading is not updated. If I have a look at my registers with CCS when this happens I always find that :

  • I2CSTR.bit.BB = 1 (bus is full)
  • I2CSTR.bit.RSFULL = 1 (overrun detected)

I really have no clue about what this could be mainly because for the first (more or less) 7 minutes everything works fine.

I am not even really in need of a final solution, I may just want to know how to reset completely the I2C module, clear the bus, the read shift register and re-enable the interrupt. I can eventually do this on a regular basis (say every minute) if this helps.

 

Thanks so much for you attention, any help is really appreciated,

       Andrea