Sign In

Don't have a Xilinx account yet?

  • Choose to receive important news and product information
  • Gain access to special content
  • Personalize your web experience on Xilinx.com

Create Account

Username

Password

Forgot your password?
XClose Panel
Xilinx Home
Reply
Regular Visitor
bsutin
Posts: 41
Registered: ‎04-08-2009
0
Accepted Solution

i2c Microblaze driver recovery from dropped clock

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,

 

Brian

Regular Visitor
bsutin
Posts: 41
Registered: ‎04-08-2009
0

Re: i2c Microblaze driver recovery from dropped clock

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.

 

Brian