Yahoo Groups archive

AVR-Chat

Index last updated: 2026-04-28 22:41 UTC

Message

Re: [AVR-Chat] I2C interface question (AVR <-> ARM)

2006-04-22 by Ned Konz

On Apr 22, 2006, at 10:50 AM, Larry Barello wrote:

> I am trying to interface some AVR boards to an Arm9 board (Atmel  
> at91RM9200
> @ ~60mhz).  This worked at one point but now it isn't and I am getting
> stumped.
>
> There appears to be ~200ns of delay between the SDA and SCL when  
> generating
> the START condition.  This seems too small for the AVR @ 12mhz but  
> I can't
> tell from the data sheet.
>
> When running my commands (SMBus master/slave) from another AVR  
> everything
> works as expected.  When the ARM9 is the master nothing works even  
> though
> the waveforms on the bus appear correct.  The only thing I am not  
> sure of is
> the start condition as I have only an analog scope with a ~100ns or  
> so delay
> line...
>
> So, the question: has anyone connected an ARM9 with an AVR via I2C  
> (oh, btw
> this is using Linux with our own driver) and got it to work?  Any  
> setup or
> operational gotcha's I need to know about?

I did a Linux driver for an SMBus card (using an existing parallel- 
port i2c driver as a basis); when doing this I kept referring to the  
Philips I2C specification.

The delay you're referring to is, I assume the SDA-low to SCL-low  
delay; the Philips I2C spec puts the minimum for this as

tHD;STA + tf

= 4usec + 0 (standard mode) = 4usec
= 600nsec + (20+0.1 * Cb)nsec (fast mode) = 630nsec @ 100pF capacitance
(Cb = total cap of one bus line in pF)

So you're way too fast for the standard.

You'd probably do best to stick to the standard timings.

-- 
Ned Konz
MetaMagix embedded consulting
MetaMagix@gmail.com

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.