I2C speeds

Questions on control of serial busses
Post Reply
YahooArchive
Posts: 1462
Joined: Fri Oct 19, 2012 5:11 am

I2C speeds

Post by YahooArchive »

Hello,

I'm an idiot and I overlooked the fact that one of my devices is specified to a
*minimum* I2C speed of 400KHz, while the ArmExpress Lite tops off at 220KHz
(supposedly). I really need to be able to speed up communications. I've got a
two-week deadline.

Thanks.



YahooArchive
Posts: 1462
Joined: Fri Oct 19, 2012 5:11 am

Re: I2C speeds

Post by YahooArchive »

The LPC2103 supposedly supports I2C Fast-mode (i.e. *maximum* 400KHz) so I
assume you are looking for a controller that supports Fast-mode Plus (1MHz max)
are you?

If so and you want to stay with NXP as far as I can see that means you would
have to use I2C0 (not I2C1/2) of one of the Cortex-M3 series (e.g. LPC17xx or
LPC13xx) mcu's. Consequently you would need a development system that supports
the Thumb-2 instruction set.

--
Chris Burrows
CFB Software
Armaide: LPC2xxx Oberon-07 Development System
http://www.cfbsoftware.com/armaide

YahooArchive
Posts: 1462
Joined: Fri Oct 19, 2012 5:11 am

Re: I2C speeds

Post by YahooArchive »

> The LPC2103 supposedly supports I2C Fast-mode (i.e. *maximum* 400KHz) so I
assume you are looking for a controller that supports Fast-mode Plus (1MHz max)
are you?

I haven't seen an i2c device that requires 400 KHz operation, maybe you mean to
get a certain throughput. Most times we run into devices that can't even
support 50 KHz.

The 2103 i2c hardware does support fast mode (400KHz max), but those pins are
not connected on the ARMexpress (24 pin limitation)

So the i2c you are running is bit-banged.

You can probably goose that up from the 220 Kb rate, by tuning up the I2C.lib
BASIC code. Unwinding loops, meaning taking a for loop and making it inline
code of 8 bit transfers rather than a loop of 8 times.

As noted faster than 400 Kb operation requires specialized IOpads with short
active pullups, this is a feature on some newer NXP parts.

danlee58
Posts: 210
Joined: Thu Jan 17, 2013 2:29 am

Re: I2C speeds

Post by danlee58 »

I need to set the clock speed for SCL1 on my PRO board. I have a funtion call !2CSPEED(400), but I don't think that applies to SCL1, only SCL0. I need to duplicate the function for SCL1, but I can't find the Source code.

Which module defines I2CSPEED?

basicchip
Posts: 1029
Joined: Fri Oct 19, 2012 2:39 am
Location: Lake Tahoe, CA
Contact:

Re: I2C speeds

Post by basicchip »

I2CSPEED is in cor_bitbang.c

Have you ever used grep? There is a version installed with the MakeItC directory.

I allows you to search for text strings in files, and is used by the search in MakeItC, which is another way to find it.

Post Reply