Hello, can you tell some more about the I2C reset, how this works. If it is possible that you can post you're code. I think some people on this group will thank you. Thanks Roy --- In lpc2000@yahoogroups.com, "jim_e_dallas" <jim_e_dallas@y...> wrote: > > Some erroneous I2C data on the bus can cause this condition. If an > I2C node sends a start condition with out a valid stop, then the I2C > interface will think the bus is busy and never generate the start > condition. When I write an I2C interface, I generally use a "switch > (I2CSTAT)" with a case for each of the possible I2CSTAT states. Then > I add a bus free timeout counter and a message length timeout > counter. The Bus free timeout is for the condition mentioned above > and starts a timer when the start condition is requested and is reset > when the start condition has been transmitted. If too long a time > goes by without a start condition being sent, then the timeout would > reset the I2C interface so it no longer thinks the bus is busy. The > message length timeout also helps recover from the condition where a > master does not send out enough SCL clocks to complete a slave > transmission. If the slave send out a '0' and no more clocks are > received a "stuck bus" can occur. A message length timeout is started > when a start condition is received and reset when a stop condition is > received. If the stop condition is not received, the the I2C > interface is reset after a period of time and releases the bus from > it's "stuck" condition. These timeouts may vary depending on the > application. > > Regards, > > Jim E. > > --- In lpc2000@yahoogroups.com, "semetex01" <info.semetex@s...> wrote: > > > > --- In lpc2000@yahoogroups.com, "neptunus1000" <roykrikke@h...> > wrote: > > > > > > Hello everybody, > > > > > > is there realy nobody how had ths problem before. Or is there > realy > > > nobody how now's a solution. > > > > > > Thanks Roy > > > > > > --- In lpc2000@yahoogroups.com, "neptunus1000" <roykrikke@h...> > > wrote: > > > > > > > > Hello, > > > > > > > > "Was there indeed a pull-up resistor missing on the Olimex > > board?" > > > > YES there was one missing. > > > > > > > > I put for the testing two pull-up on the bus of 4,7K and > > connected > > > to > > > > the 3.3 Volt. When I'm debugging the program. The program is > > still > > > > hanging on the while(I2STAT != 0x08);. When I measure the both > > I2C > > > > lines with pull-up, the lines have 3.3 Volt. The program is not > > > > working. If I disconnect the pull-up resistor the SDA line is > 3.3 > > > > Volt and the SCL line is 0 Volt. This is oke if I look in the > > > schema > > > > of the Olimex board. I really don't understand why it is not > > > working. > > > > > > > > Of course I can build some code for 'bit-bang', but if the uC > has > > a > > > > I2C bus. Then it is ugly to build a 'bit-bang' routine. > > > > > > > > I measured with a FLUKE 123 scope meter. > > > > > > > > Best Regards > > > > Roy > > > > > > > > --- In lpc2000@yahoogroups.com, "Aalt Lokhorst" <lokhorst@s...> > > > wrote: > > > > > Hello Roy, > > > > > > > > > > Was there indeed a pull-up resistor missing on the Olimex > board? > > > > > > > > > > If you can measure low and high levels on both I2C lines now > > then > > > I > > > > > expect that the hardware is fine. If there is also a I2C > device > > > on > > > > the > > > > > bus and it is still not working then i assume it is a > software > > > > problem. > > > > > > > > > > In the past I used I2C on a 8051 with some 'bit-bang' > routines. > > > > Until > > > > > now I didn't use the I2C of the ARM. This will change in the > > next > > > > few > > > > > weeks but for the moment I can't help you. > > > > > > > > > > In the files section of the yahoo group are some examples. If > > the > > > > > pull-up indeed was missing in the hardware then you probably > > > spend > > > > a lot > > > > > of time with software debugging without any change to > succeed. > > > > > Might be the moment to start debugging again, use an > > oscilloscope > > > > if you > > > > > have it and study the signals to see where it fails. > > > > > > > > > > Best Regards > > > > > Aalt, > > > > > > > > > > > > > > > -- > > > > > ============================== > > > > > Aalt Lokhorst > > > > > Schut Geometrische Meettechniek bv > > > > > Duinkerkenstraat 21 > > > > > 9723 BN Groningen > > > > > P.O. Box 5225 > > > > > 9700 GE Groningen > > > > > The Netherlands > > > > > Tel: +31-50-5877877 > > > > > Fax: +31-50-5877899 > > > > > E-mail: Lokhorst@S... > > > > > ============================== > > > > > > > > > > > > > > > neptunus1000 wrote: > > > > > > > > > > > > Hello Aalt, > > > > > > > > > > > > with on both lines a pull-up the code is still not working > > oke. > > > > > > Please help my. > > > > > > > > > > > > --- In lpc2000@yahoogroups.com, "Aalt Lokhorst" > > <lokhorst@s...> > > > > wrote: > > > > > > > Hello Roy, > > > > > > > > > > > > > > Is there a pull-up on the SCL line? I can't find it in > the > > > > > > schematic > > > > > > > drawing but probably I missed it. > > > > > > > > > > > > > > As far as I know both lines need a pull-up because SDA > and > > > SCL > > > > > > lines are > > > > > > > 'open-drain' outputs. > > > > > > > > > > > > > > Best Regards, > > > > > > > Aalt > > > > > > > > > > > > > > -- > > > > > > > ============================== > > > > > > > Aalt Lokhorst > > > > > > > Schut Geometrische Meettechniek bv > > > > > > > Duinkerkenstraat 21 > > > > > > > 9723 BN Groningen > > > > > > > P.O. Box 5225 > > > > > > > 9700 GE Groningen > > > > > > > The Netherlands > > > > > > > Tel: +31-50-5877877 > > > > > > > Fax: +31-50-5877899 > > > > > > > E-mail: Lokhorst@S... > > > > > > > ============================== > > > > Roy, > > > > I had this problem (I2C start not generated and I2C status at 0xf8 > > forever) on an Olimex board (LPC-WEB 2124) and a pull-up on SCL > fixed > > it. > > > > H.A.
Message
Re: initializing I2C problem
2005-04-16 by neptunus1000
Attachments
- No local attachments were found for this message.