Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: I2C on LPC2148

2006-04-22 by Danish Ali

Hi Sutton,
Not wishing to appear rude, how about if you genuinely cut-and-paste
your code and then we can see if anything looks wrong.
IMHO you can get enough information to know the system is good from
a write - that's where you'll get acknowledges.
And the master should not assert acknowledge when writing.

I have never needed a logic analyser to debug I2C. You should be
able to see enough by doing <start> <address> *ack* <stop>
on an oscilloscope - repeatedly if it's not a storage 'scope.

Oh and one more thing. I don't know what development toolset you're
using but be careful about using the Crossworks debugger
to look at hardware peripherals (my experience was with the VIC but the
same might apply to I2C hardware). I think the Crossworks debugger
uses memory accesses to read the state of the peripherals and so
if you have a given peripheral viewed, that peripheral will think the
processor has read all the registers, and this might change its state.
The Keil debugger allows you to view the peripheral registers without
touching them (how? perhaps they are on a scan chain?).

Help us to help you,
 - Danish
--- In lpc2000@yahoogroups.com, "Sutton Mehaffey" <sutton@...> wrote:
>
> I had a typo in my posted text.  I actually was using 'A0' for the
> write and a 'A1' for a read.  I went back and double checked to be
> absolutely sure.  I guess the logic analyzer is the way to go, because
> I still can't spot my problem.
> 
> Sutton
> 
> 
> 
> --- In lpc2000@yahoogroups.com, "Danish Ali" <danish@> wrote:
> >
> > Watch out! You've used 0xA1 as your address. That implies
> > a READ. It should be 0xA0 for a write.
> > 
> > Hope this helps,
> > Danish

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.