With regards to the 1611 I2C... I've used it extensively. Be sure you read the HW errata. There are several known HW issues with the 1611 hw i2c. Includes missed irqs, bad flags and slipped bits. There is just some general badness there.
The 2xxx parts are much better. -JZ > ---------------------------------------------------------------------- > > Message: 1 > Date: Mon, 5 Oct 2009 20:38:31 +0200 > From: "JMGross" <msp...@grossibaer.de> > Subject: Re: [Mspgcc-users] i2c question > To: "MSPGCC mailing list," <mspgcc-users@lists.sourceforge.net> > Message-ID: <e040bel95hldkt.rz...@mo-p00-ob.rzone.de> > Content-Type: text/plain; charset="ISO-8859-1" > > > Hi! > > I too was very confused about the I2C hardware (in the 1611) when I had to > exchange data with an I2C RTC module. I found that setting up the transfer > and handling it was way too complicated for a few bytes. Or even did not > properly fit for some devices (where you first send a byte to set the start > address, then switch to read mode) Maybe with continuous data streams or > large data chunks and together with DMA it might be worth the effort, but > just for writing or reading one byte or two, doing it by direct port pin > manipulations is far easier - at least if you're the only master :) > I ended up with a software I2C function set (the UART does better when used > as SPI ). Depending on your clock speed, you can be quite fast and have > full control over transfer and handshake. > > Anyway its strange that it works at 25kHz clock and not at 100kHz. > even 60 events per channel and 6 channels is just 360 events/s, leaving you > with 3ms per event, which is lots of time to do things, even manually. > > Some wild guesses: > Are you sure about the clock speed? Maybe you just THINK it is 100kHz but > it is far more? And the client cannot keep up... Do you react to transmit > buffer empty fast enough? If not, you're getting a transmit buffer > underflow error (which shouldn't be a problem on I2C as it is a > synchroneous transfer) Are you using the correct operation mode? All these > multi-master stuff can mess things up. Trouble is just one wrong bit away > :) Is your hardware properly built? (pullups/line termination)? Some things > cause trouble at higher speeds but do not show on lower speeds. > > Good luck! > > JMGross >