ADL I2C operation causes unit reset...


#1

Hello everyone.

I have a problem using ADL I2C operation routines on a Q2686 module with Wavecom OS 6.60…

The ADL user guide mentions that adl_busSubscribe() function can be used to subscribe to up to 8 I2C handles concurrently. My project requires I2C communication with more than 8 I2C devices so the only way to work it out is to subscribe for an I2C device each time I need to communicate with it, perform the I2C communication and then unsubscribe to free the handle…

The problem is that after a short while of operation the unit resets… When I use my own routines for I2C bus communication (handling the appropriate GPIO ports myself instead of subscribing to ADL I2C bus operation) no reset occurs but the I2C bus speed is extremely slow… When I use ADL routines to communicate with only one I2C device (without calling adl_busUnsubscribe() function) everything works fine and definitely faster than when I use my own routines for I2C bus communication…

I suppose that the memory allocated by adl_busSubscribe() is not properly released by adl_busUnsubscribe()… Has anybody faced a similar problem?

Thanks in advance…

George


#2

We had the similar problem with I2C in the OS 6.60. We solve with unsubscribed I2C, set and reset I2C pins and subscribed I2C - after this sequence I2C runs. But in the new OS 6.61 was a new problem with I2C (memory write). Because Wavecom support is poor - we changed type of memory to SPI interface.

Martin


#3

Thank you very much for your answer, Martin.

I 'll give it a try as soon as possible…

George


#4

Unfortunately, the unit’s behavior remains the same even when using this set/reset sequence… We still get a unit reset!
Thank you very much for the tip, anyway…

Any other suggestions would be greatly appreciated…

Best regards,
George