Hi!
I'm working on LPC1857 controller and I required to test the i2c code I wrote. As far as I can see,as per data-sheet I've got all right with code. While the application is run, i2c is disabled.
I debugged and found that while clearing only the i2c-interrupt flag the entire control register for i2c is cleared, thereby disabling i2c.
>LPC_I2C0->CONCLR |= 0X00000008; // clear i2c interrupt only
Hope I made my doubt clear.
Thanks for anyone suggest anything to avoid this problem.
Hi again.
I've got the previous problem solved. But i2c is not working as expected, instead goes to an end of session as soon as it starts, but it doesn't go like that while I do Single step debug where it works perfect. I thought of lowering frequency will help, but no.
Can you throw some light on this?
Thanks.
When single-stepping, the I2C controller often still operates at full-frequency.
So if the program works when single-stepping but not when running full-speed, then you might write to an I2C register before the previous operation has finished. When single-stepping, you add extra time between the instructions of your main loop, giving the I2C interface enough time.
Hi, I have the same problem using LPC 1227, while clearing only the i2c-interrupt flag the entire control register for i2c is cleared, disabling i2c. How did you solve that? Thank you!