[En-Nut-Discussion] TWI at AT91SAM9260 and Nut/OS Driver

Harald Kipp harald.kipp at egnite.de
Tue Jun 24 18:22:12 CEST 2008

af_80 wrote:
> Harald Kipp wrote:
>> May be I'm blind, but I can't see any call to TwInit().
> Why should I use TwInit()? I thought its specifies the Slave address. Can
> you explain it please?
 > Initialize TWI interface.
 > The specified slave address is not used here as we don't support 
 > on AT91SAM7X

As documented, it initializes the hardware. The parameter is ignored, 
the function still must be called as stated in the TwMasterTransact() doc.

> To test is i included this function with sla address 0x00 (and an other) but
> the lines stays without some changes.

It would be a good idea to check the return result of TwInit.

What else can you do? Copy the at91_twi.c to your application directory 
and add it to your application's Makefile. This way the library module 
will be kept intact and replaced by a local copy. As you are using 
DEV_DEBUG, so you can freely use printf() in your local copy to further 
debug the code, even inside the interrupt routine.

Alternatively you can copy dev/twbbif.c to your application directory 
and add it to your Makefile instead. This is the bitbanged version, 
which I used so far. The at91_twi.c had been contributed by Ole, who is 
obviously too busy right now to respond.

Btw. the Olimex hardware provides pull-up resistors, right?

I further assume, your measurement was done using a well triggering 
storage oscilloscope.


More information about the En-Nut-Discussion mailing list