02-09-2010 02:17 PM
I am using the xps_iic 2.00a i2c core with the SDK Microblaze drivers to communicate with Analog Devices ADM1911, which have no hardware reset. When a clock pulse gets lost, the ADM1911 can be left holding the data line low, which signals that the bus is busy. The only way to clear the ADM1911 is to send 16 clock pulses. How do I make the driver send out these pulses? Do I have to deal directly with the IP core?
Thanks in advance,
Solved! Go to Solution.
02-18-2010 08:14 AM
Solution: Send 0x21, 0x00, and 0x01 successively to the xps_iic CR register with 5 us pauses in between. 0x21 puts the core in repeated start, dropping the clock line. 0x00 and 0x01 put the core in and out of slave mode, restoring the clock.