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.
- Filter Interrupt (I need to filter the current readings) 2 mu s
- Controller Interrupt (calculate PWM duty cycle) 20 mu s
- Step interrupt (ask for a step) x-ternal async
- 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