This is the mail archive of the
ecos-devel@sourceware.org
mailing list for the eCos project.
Re: [ECOS] TWI/I?C driver for AT91
- From: Jonathan Larmour <jifl at jifvik dot org>
- To: Andrew Lunn <andrew at lunn dot ch>
- Cc: Tom Deconinck <t dot deconinck at gmail dot com>, eCos Devel <ecos-devel at ecos dot sourceware dot org>
- Date: Tue, 27 Nov 2007 16:44:42 +0000
- Subject: Re: [ECOS] TWI/I?C driver for AT91
- References: <e37cb5250711220842k3204f4c2sbb50afd41698acb3@mail.gmail.com> <20071122182743.GA11305@lunn.ch>
Andrew Lunn wrote:
> On Thu, Nov 22, 2007 at 05:42:11PM +0100, Tom Deconinck wrote:
>> Hello,
>>
>> Does anyone know if there exists a driver for the AT91 TWI peripheral?
>> It's Atmels implementation of I?C and it's used on the AT91SAM7S
>> family (and derivatives).
>> I would create a driver that fits in the eCos I?C driver (master
>> only), but I wanted to check to make sure nothing alike already
>> exists.
>
> I've been involved in a none eCos project which used an AT91SAM7S and
> the TWI port. This turned out to be more difficult than expected. If
> you don't feed it data fast enough it stops the transfer mid message
> with an abort of something. Also, there is no DMA for this device. So
> you need to make sure your other interrupt handlers are fast or you
> run into problems.
Hmm, I've done an AT91 TWI implementation for eCosPro, and didn't have
abort problems. But then there are caveats on its use as it isn't a
brilliant fit with the I2C API - in particular there's no way to send NACKs
without a STOP, and (I might be misremembering here - it's been a while) I
think possibly no way to do a STOP not in conjunction with a transfer.
Jifl
--
--["No sense being pessimistic, it wouldn't work anyway"]-- Opinions==mine