Hi,
I'm using the CSL to control the Maxim 9856 codec over I2C interface from my C5502. I've been using it for a while to initialise the codec into the required state and all works fine. However now I want to control a register in real time to implement an AGC and am noticing that the call to I2C_write() is taking of the order of 1.3ms (approx 380,000 clock cycles). This is causing serious problems with my real-time performance.
I've noticed that I'm only running the I2C at half the maximum clock rate according to the Maxim datasheet. I hope this will decrease the processing time, but even with a 50% increase I'll still experience a 650us delay that I'd rather not have,
Is there a way to use the I2C_write function (or any other function) to write to the I2C without incurring a delay, and receiving the return code via asynchronous callback (i.e. the XRDYINT interrupt)?
The I2C is operating in master mode, using SADP transfer and writing 2 bytes. The config uses 7-bit address mode with 8 bits/byte. The current clock rate is 200kHz, which I shall try increasing to 400kHz.
Thanks.
Chris