Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

I2C 16bit Interface

Status
Not open for further replies.

i2c2k

New Member
hi!

i tried to control a 16-bit interface (MCP23016 by microchip) as an output
and i was successful (i wrote to the i2c-adress 01000000 port 0 and 1 of
the device) . but then i tried to read from a port configured as an input
(I2C-adress 01000011 when R/!W=1; port no 0 of the MCP23016), this
action was successful to. but after the I2C-acknowledge-clock goes low
the MCP23016 doesn't stop to hold SDA low. so it's clear, that every
further action fails, because the SDA line is always low.

i captured the waveforms with a programme i wrote for this purpose.
when you have experience with the MCP23016 please download the
attachment!
the programme examines the waveform and comments S (Start), P
(Pause) and also numerizes them (start no 1, pause, start no 2, pause, ...).
after a "S" the clock impulses are counted (0, 1, 2, ...)
after the 8th clock (7) an acknowledge ("A") is identified by the programme.

in my case after "S7" the i2c-adress is sent (01000011 --> read=1) and
the two bytes are sent back (both bytes are 0). but after the second
acknowledge-clock-impulse the SDA-line doesn't go HI again.
can anybody tell me why?

tank you!!!
 

Attachments

  • graph.gif
    graph.gif
    78.6 KB · Views: 367
Status
Not open for further replies.

New Articles From Microcontroller Tips

Back
Top