[En-Nut-Discussion] GPIO on the ethernut board 3.1

Eric Haver havereric1 at gmail.com
Fri May 7 02:23:58 CEST 2010


Hello List,

You can go without double access, on the AT91SAM7 anyway:
>From the detailed manual:

27.4.5 Synchronous Data Output
>>
>> Controlling all parallel busses using several PIOs requires two successive
>> write operations in the
>> PIO_SODR and PIO_CODR registers. This may lead to unexpected transient
>> values. The PIO
>> controller offers a direct control of PIO outputs by single write access
>> to PIO_ODSR (Output
>> Data Status Register). Only bits unmasked by PIO_OWSR (Output Write Status
>> Register) are
>> written. The mask bits in the PIO_OWSR are set by writing to PIO_OWER
>> (Output Write Enable
>> Register) and cleared by writing to PIO_OWDR (Output Write Disable
>> Register).
>> After reset, the synchronous data output is disabled on all the I/O lines
>> as PIO_OWSR resets at
>> 0x0.
>>
>
I have not tried it myself, but imagine it probably works on the SAM9 also.

*E

On Thu, May 6, 2010 at 12:47 PM, Ulrich Prinz <uprinz2 at netscape.net> wrote:

> You cannot go without double-access.
>


> Best regards, Ulrich
>
> Am 06.05.2010 08:49, schrieb Paul Govers:
> > Hello,
> >
> > i have a question about the GPIO on the Ethernut board 3.1, i was
> > wondering
> > if it is possible to set the IO port without an "extra step".
> > for example:
> >
> > to set an output i have to use an other register to clear the output.
> > if i want to go from IO output "1000" to "0100" i suspect that i can
> > only
> > realize this with the following steps:
> >
> > if the current output(binary) is 1000
> > then the "extra step" outr(PIO_CODR, 0x80); (i don't want this, but i
> > have
> > to set bit to zero)
> > result IO output: 0000
> > then outr(PIO_SODR, 0x40);
> > result IO output 0100
> >
> > is there a way to direcly go from output 1000 to 0100 ?
> > i think that my display driver becomes confused about the extra IO state
> >
> >
> > Greetings Paul
> >
> >
> >
> > _______________________________________________
> > http://lists.egnite.de/mailman/listinfo/en-nut-discussion
> _______________________________________________
> http://lists.egnite.de/mailman/listinfo/en-nut-discussion
>



More information about the En-Nut-Discussion mailing list