Forums

Port 1 of LPC 2148 completely switched to GPIO does not work.

Started by "joerg.nagel" June 28, 2006
Thank you Joel for the nice and concise Special Pins list.

SO, if P1.20 controls the TRACE/GPIO pins, what is:

PINSEL2 register, bit 3 GPIO/TRACE:
0 Pins P1.25-16 are used as GPIO pins.
1 Pins P1.25-16 are used as a Trace port.

used for ??? I wish the manual woul have a note here that says
that it overrides or does not override the P1.20 RESET condidtion.

My P1.20 pin happens to be not connected now, but the doc says
it has an internal pullup... I don't know if that means it
has an internal resistive pullup when RESET occurs, but I will
try grounding it anysay tonight when I get home.

This may very well be my problem.
I'll report back if it fixed it or not.
Thanks for all of the help !
boB

--- In l..., Joel Winarske wrote:
>
>
> > I just found this NOTE in the LPC214X manual:
> > "
> > P1.20/TRACESYNC 48[6] I/O P1.20 General purpose digital
> > input/output pin O TRACESYNC Trace Synchronization. Standard
I/O
> > port with internal pull-up.
> > Note: LOW on this pin while RESET is LOW enables pins P1.25:16 to
> > operate as Trace port after reset
> > "
>
> LPC214x "Special" Pins
> -----------------------
> P0.2 - open drain, requires external pull-up for output
functionality
> P0.3 - open drain, requires external pull-up for output
functionality
> P0.11 - open drain, requires external pull-up for output
functionality
> P0.14 - open drain / sampled on reset. If low serial boot loader
starts.
> Requires external pull-up for output functionality
> P0.31 - sampled on reset. If low JTAG port is disabled
> P1.20 - sampled on reset. If low enable P1.16:25 to operate as
Trace port
> P1.26 - sampled on reset. If low enables P1.26:31 to operate as
debug port
> P1.16:26 have internal pull-ups
>
>
> Joel Winarske
> www.indyelectronics.com
>



An Engineer's Guide to the LPC2100 Series

> -----Original Message-----
> From: l...
> [mailto:l...]On Behalf
> Of bobtransformer
> Sent: Tuesday, September 12, 2006 3:58 PM
> To: l...
> Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched to GPIO
> does not work.
>
> Thank you Joel for the nice and concise Special Pins list.
>
> SO, if P1.20 controls the TRACE/GPIO pins, what is:
>
> PINSEL2 register, bit 3 GPIO/TRACE:
> 0 Pins P1.25-16 are used as GPIO pins.
> 1 Pins P1.25-16 are used as a Trace port.
>
> used for ??? I wish the manual woul have a note here that says
> that it overrides or does not override the P1.20 RESET condidtion.
>
> My P1.20 pin happens to be not connected now, but the doc says
> it has an internal pullup... I don't know if that means it
> has an internal resistive pullup when RESET occurs, but I will
> try grounding it anysay tonight when I get home.
>
> This may very well be my problem.
> I'll report back if it fixed it or not.
> Thanks for all of the help !
> boB
> --- In l..., Joel Winarske wrote:
> >
> >
> > > I just found this NOTE in the LPC214X manual:
> > > "
> > > P1.20/TRACESYNC 48[6] I/O P1.20 General purpose digital
> > > input/output pin O TRACESYNC Trace Synchronization. Standard
> I/O
> > > port with internal pull-up.
> > > Note: LOW on this pin while RESET is LOW enables pins P1.25:16 to
> > > operate as Trace port after reset
> > > "
> >
> > LPC214x "Special" Pins
> > -----------------------
> > P0.2 - open drain, requires external pull-up for output
> functionality
> > P0.3 - open drain, requires external pull-up for output
> functionality
> > P0.11 - open drain, requires external pull-up for output
> functionality
> > P0.14 - open drain / sampled on reset. If low serial boot loader
> starts.
> > Requires external pull-up for output functionality
> > P0.31 - sampled on reset. If low JTAG port is disabled
> > P1.20 - sampled on reset. If low enable P1.16:25 to operate as
> Trace port
> > P1.26 - sampled on reset. If low enables P1.26:31 to operate as
> debug port
> > P1.16:26 have internal pull-ups
> >
> >
> > Joel Winarske
> > www.indyelectronics.com
>
On the design I have that uses Port 1, I have a pullup on P1.20,
though as I understand it, this should not be necessary. In software,
I write 0 to PINSEL2. It turns out that this is a small bug as, I had
intended to leave the debug port active, but didn't, which I just
discovered in writing this. Maybe this is what makes my design work.

It is interesting to read the description of PINSEL2 in the most
recent copy of the User's Manual. It states:

"Warning: use read-modify-write operation when accessing PINSEL2
register. Accidental write of 0 to bit 2 and/or bit 3 results in
loss of debug and/or trace functionality! Changing of either bit
4 or bit 5 from 1 to 0 may cause an incorrect code execution!"

But, then in the description of the reserved bits which are bits
0, 1, and 4 to 31, the manual states:

"Reserved, user software should not write ones
to reserved bits. The value read from a reserved
bit is not defined."

So, can anybody tell me how we are to preserve the bits 4 and 5,
without reading them (which is undefined), and without writing
a one or a zero? The info here is rather contradictory. Writing
bits 4 and 5 from a 1 to a 0 can cause problems, but reserved bits
are not to have a 1 written to them, and the reading of reserved bits
is undefined. Perhaps the Philips/NXP crew can shed some light on this.

Thanks,

Mike
Using RMW (PINSEL2 = (PINSEL2 & 0x0F) | value)
should take care of the high reserved bits. I'm not doing the AND
though... Now that you mention this, I think I better do it too.

I am using the JTAG port working though so don't want to clear
bit 2. Maye I should try resetting it and see if my JTAG debug
goes away.

I will pull up that P1.20 bit too and see if it fixes P1.

boB
--- In l..., "Michael Anton" wrote:
>

> On the design I have that uses Port 1, I have a pullup on P1.20,
> though as I understand it, this should not be necessary. In
software,
> I write 0 to PINSEL2. It turns out that this is a small bug as, I
had
> intended to leave the debug port active, but didn't, which I just
> discovered in writing this. Maybe this is what makes my design
work.
>
> It is interesting to read the description of PINSEL2 in the most
> recent copy of the User's Manual. It states:
>
> "Warning: use read-modify-write operation when accessing PINSEL2
> register. Accidental write of 0 to bit 2 and/or bit 3 results in
> loss of debug and/or trace functionality! Changing of either bit
> 4 or bit 5 from 1 to 0 may cause an incorrect code execution!"
>
> But, then in the description of the reserved bits which are bits
> 0, 1, and 4 to 31, the manual states:
>
> "Reserved, user software should not write ones
> to reserved bits. The value read from a reserved
> bit is not defined."
>
> So, can anybody tell me how we are to preserve the bits 4 and 5,
> without reading them (which is undefined), and without writing
> a one or a zero? The info here is rather contradictory. Writing
> bits 4 and 5 from a 1 to a 0 can cause problems, but reserved bits
> are not to have a 1 written to them, and the reading of reserved
bits
> is undefined. Perhaps the Philips/NXP crew can shed some light on
this.
>
> Thanks,
>
> Mike

>
>
> > -----Original Message-----
> > From: l...
> > [mailto:l...]On Behalf
> > Of bobtransformer
> > Sent: Tuesday, September 12, 2006 3:58 PM
> > To: l...
> > Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched to
GPIO
> > does not work.
> >
> >
> >
> > Thank you Joel for the nice and concise Special Pins list.
> >
> > SO, if P1.20 controls the TRACE/GPIO pins, what is:
> >
> > PINSEL2 register, bit 3 GPIO/TRACE:
> > 0 Pins P1.25-16 are used as GPIO pins.
> > 1 Pins P1.25-16 are used as a Trace port.
> >
> > used for ??? I wish the manual woul have a note here that says
> > that it overrides or does not override the P1.20 RESET condidtion.
> >
> > My P1.20 pin happens to be not connected now, but the doc says
> > it has an internal pullup... I don't know if that means it
> > has an internal resistive pullup when RESET occurs, but I will
> > try grounding it anysay tonight when I get home.
> >
> > This may very well be my problem.
> > I'll report back if it fixed it or not.
> > Thanks for all of the help !
> > boB
> >
> >
> >
> >
> > --- In l..., Joel Winarske wrote:
> > >
> > >
> > > > I just found this NOTE in the LPC214X manual:
> > > > "
> > > > P1.20/TRACESYNC 48[6] I/O P1.20 General purpose digital
> > > > input/output pin O TRACESYNC Trace Synchronization. Standard
> > I/O
> > > > port with internal pull-up.
> > > > Note: LOW on this pin while RESET is LOW enables pins
P1.25:16 to
> > > > operate as Trace port after reset
> > > > "
> > >
> > > LPC214x "Special" Pins
> > > -----------------------
> > > P0.2 - open drain, requires external pull-up for output
> > functionality
> > > P0.3 - open drain, requires external pull-up for output
> > functionality
> > > P0.11 - open drain, requires external pull-up for output
> > functionality
> > > P0.14 - open drain / sampled on reset. If low serial boot loader
> > starts.
> > > Requires external pull-up for output functionality
> > > P0.31 - sampled on reset. If low JTAG port is disabled
> > > P1.20 - sampled on reset. If low enable P1.16:25 to operate as
> > Trace port
> > > P1.26 - sampled on reset. If low enables P1.26:31 to operate as
> > debug port
> > > P1.16:26 have internal pull-ups
> > >
> > >
> > > Joel Winarske
> > > www.indyelectronics.com
> > >
> >
>



I'm not sure I understand your "solution".
It will write 0's into bit 4 and 5 as these are ANDed off.

I suspect what you meant to do was something like: PINSEL2 = (PINSEL2 &
0xFFFFFFF3) | value ? This will retain whatever bits 4,5 were set to
and set bits 2/3 as per value.
________________________________

From: l... [mailto:l...]
On Behalf Of bobtransformer
Sent: Wednesday, 13 September 2006 10:55 AM
To: l...
Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched to
GPIO does not work.

Using RMW (PINSEL2 = (PINSEL2 & 0x0F) | value)
should take care of the high reserved bits. I'm not doing the
AND
though... Now that you mention this, I think I better do it too.

I am using the JTAG port working though so don't want to clear
bit 2. Maye I should try resetting it and see if my JTAG debug
goes away.

I will pull up that P1.20 bit too and see if it fixes P1.

boB

--- In l...
, "Michael Anton" wrote:
>

> On the design I have that uses Port 1, I have a pullup on
P1.20,
> though as I understand it, this should not be necessary. In
software,
> I write 0 to PINSEL2. It turns out that this is a small bug
as, I
had
> intended to leave the debug port active, but didn't, which I
just
> discovered in writing this. Maybe this is what makes my design

work.
>
> It is interesting to read the description of PINSEL2 in the
most
> recent copy of the User's Manual. It states:
>
> "Warning: use read-modify-write operation when accessing
PINSEL2
> register. Accidental write of 0 to bit 2 and/or bit 3 results
in
> loss of debug and/or trace functionality! Changing of either
bit
> 4 or bit 5 from 1 to 0 may cause an incorrect code execution!"
>
> But, then in the description of the reserved bits which are
bits
> 0, 1, and 4 to 31, the manual states:
>
> "Reserved, user software should not write ones
> to reserved bits. The value read from a reserved
> bit is not defined."
>
> So, can anybody tell me how we are to preserve the bits 4 and
5,
> without reading them (which is undefined), and without writing
> a one or a zero? The info here is rather contradictory.
Writing
> bits 4 and 5 from a 1 to a 0 can cause problems, but reserved
bits
> are not to have a 1 written to them, and the reading of
reserved
bits
> is undefined. Perhaps the Philips/NXP crew can shed some light
on
this.
>
> Thanks,
>
> Mike

>
>
> > -----Original Message-----
> > From: l...

> > [mailto:l...
]On Behalf
> > Of bobtransformer
> > Sent: Tuesday, September 12, 2006 3:58 PM
> > To: l...

> > Subject: [lpc2000] Re: Port 1 of LPC 2148 completely
switched to
GPIO
> > does not work.
> >
> >
> >
> > Thank you Joel for the nice and concise Special Pins list.
> >
> > SO, if P1.20 controls the TRACE/GPIO pins, what is:
> >
> > PINSEL2 register, bit 3 GPIO/TRACE:
> > 0 Pins P1.25-16 are used as GPIO pins.
> > 1 Pins P1.25-16 are used as a Trace port.
> >
> > used for ??? I wish the manual woul have a note here that
says
> > that it overrides or does not override the P1.20 RESET
condidtion.
> >
> > My P1.20 pin happens to be not connected now, but the doc
says
> > it has an internal pullup... I don't know if that means it
> > has an internal resistive pullup when RESET occurs, but I
will
> > try grounding it anysay tonight when I get home.
> >
> > This may very well be my problem.
> > I'll report back if it fixed it or not.
> > Thanks for all of the help !
> > boB
> >
> >
> >
> >
> > --- In l...
, Joel Winarske wrote:
> > >
> > >
> > > > I just found this NOTE in the LPC214X manual:
> > > > "
> > > > P1.20/TRACESYNC 48[6] I/O P1.20 - General purpose
digital
> > > > input/output pin O TRACESYNC - Trace Synchronization.
Standard
> > I/O
> > > > port with internal pull-up.
> > > > Note: LOW on this pin while RESET is LOW enables pins
P1.25:16 to
> > > > operate as Trace port after reset
> > > > "
> > >
> > > LPC214x "Special" Pins
> > > ----------------------
> > > P0.2 - open drain, requires external pull-up for output
> > functionality
> > > P0.3 - open drain, requires external pull-up for output
> > functionality
> > > P0.11 - open drain, requires external pull-up for output
> > functionality
> > > P0.14 - open drain / sampled on reset. If low serial boot
loader
> > starts.
> > > Requires external pull-up for output functionality
> > > P0.31 - sampled on reset. If low JTAG port is disabled
> > > P1.20 - sampled on reset. If low enable P1.16:25 to
operate as
> > Trace port
> > > P1.26 - sampled on reset. If low enables P1.26:31 to
operate as
> > debug port
> > > P1.16:26 have internal pull-ups
> > >
> > >
> > > Joel Winarske
> > > www.indyelectronics.com
> > >
> >
>
> -----Original Message-----
> From: l...
> [mailto:l...]On Behalf
> Of bobtransformer
> Sent: Tuesday, September 12, 2006 6:55 PM
> To: l...
> Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched to GPIO
> does not work.
>
> Using RMW (PINSEL2 = (PINSEL2 & 0x0F) | value)
> should take care of the high reserved bits. I'm not doing the AND
> though... Now that you mention this, I think I better do it too.
>
> I am using the JTAG port working though so don't want to clear
> bit 2. Maye I should try resetting it and see if my JTAG debug
> goes away.
>
> I will pull up that P1.20 bit too and see if it fixes P1.
>
> boB
>

The catch is that even bits 4 and 5 are reserved, so how do you handle
them? You are not supposed to write them to zeros if they are 1,
reserved bits are not to be written to 1, and the read value is
undefined.

Mike

>
> --- In l..., "Michael Anton" wrote:
> > > On the design I have that uses Port 1, I have a pullup on P1.20,
> > though as I understand it, this should not be necessary. In
> software,
> > I write 0 to PINSEL2. It turns out that this is a small bug as, I
> had
> > intended to leave the debug port active, but didn't, which I just
> > discovered in writing this. Maybe this is what makes my design
> work.
> >
> > It is interesting to read the description of PINSEL2 in the most
> > recent copy of the User's Manual. It states:
> >
> > "Warning: use read-modify-write operation when accessing PINSEL2
> > register. Accidental write of 0 to bit 2 and/or bit 3 results in
> > loss of debug and/or trace functionality! Changing of either bit
> > 4 or bit 5 from 1 to 0 may cause an incorrect code execution!"
> >
> > But, then in the description of the reserved bits which are bits
> > 0, 1, and 4 to 31, the manual states:
> >
> > "Reserved, user software should not write ones
> > to reserved bits. The value read from a reserved
> > bit is not defined."
> >
> > So, can anybody tell me how we are to preserve the bits 4 and 5,
> > without reading them (which is undefined), and without writing
> > a one or a zero? The info here is rather contradictory. Writing
> > bits 4 and 5 from a 1 to a 0 can cause problems, but reserved bits
> > are not to have a 1 written to them, and the reading of reserved
> bits
> > is undefined. Perhaps the Philips/NXP crew can shed some light on
> this.
> >
> > Thanks,
> >
> > Mike
>
WRITING 0's to reserved bits is fine. It's the READING of the
reserved bits that cannot be trusted. Anding to mask them off
should be just fine.
Quote from manual:
Reserved, user software should not write ones to
reserved bits. The value read from a reserved bit is
not defined.

boB
--- In l..., "Michael Anton" wrote:
>
> > -----Original Message-----
> > From: l...
> > [mailto:l...]On Behalf
> > Of bobtransformer
> > Sent: Tuesday, September 12, 2006 6:55 PM
> > To: l...
> > Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched to
GPIO
> > does not work.
> >
> >
> >
> > Using RMW (PINSEL2 = (PINSEL2 & 0x0F) | value)
> > should take care of the high reserved bits. I'm not doing the
AND
> > though... Now that you mention this, I think I better do it too.
> >
> > I am using the JTAG port working though so don't want to clear
> > bit 2. Maye I should try resetting it and see if my JTAG debug
> > goes away.
> >
> > I will pull up that P1.20 bit too and see if it fixes P1.
> >
> > boB
> > The catch is that even bits 4 and 5 are reserved, so how do you
handle
> them? You are not supposed to write them to zeros if they are 1,
> reserved bits are not to be written to 1, and the read value is
> undefined.
>
> Mike
>
>
> >
> > --- In l..., "Michael Anton" wrote:
> > >
> >
> > > On the design I have that uses Port 1, I have a pullup on P1.20,
> > > though as I understand it, this should not be necessary. In
> > software,
> > > I write 0 to PINSEL2. It turns out that this is a small bug
as, I
> > had
> > > intended to leave the debug port active, but didn't, which I
just
> > > discovered in writing this. Maybe this is what makes my design
> > work.
> > >
> > > It is interesting to read the description of PINSEL2 in the most
> > > recent copy of the User's Manual. It states:
> > >
> > > "Warning: use read-modify-write operation when accessing PINSEL2
> > > register. Accidental write of 0 to bit 2 and/or bit 3 results in
> > > loss of debug and/or trace functionality! Changing of either bit
> > > 4 or bit 5 from 1 to 0 may cause an incorrect code execution!"
> > >
> > > But, then in the description of the reserved bits which are bits
> > > 0, 1, and 4 to 31, the manual states:
> > >
> > > "Reserved, user software should not write ones
> > > to reserved bits. The value read from a reserved
> > > bit is not defined."
> > >
> > > So, can anybody tell me how we are to preserve the bits 4 and 5,
> > > without reading them (which is undefined), and without writing
> > > a one or a zero? The info here is rather contradictory.
Writing
> > > bits 4 and 5 from a 1 to a 0 can cause problems, but reserved
bits
> > > are not to have a 1 written to them, and the reading of
reserved
> > bits
> > > is undefined. Perhaps the Philips/NXP crew can shed some light
on
> > this.
> > >
> > > Thanks,
> > >
> > > Mike
> >
> >
>
Except that you are ignoring the note about bits 4 and 5,
which should not be written to zero, and you still can't
trust the read value, so you don't know if you should
write them to one.

Mike
> -----Original Message-----
> From: l...
> [mailto:l...]On Behalf
> Of bobtransformer
> Sent: Tuesday, September 12, 2006 7:47 PM
> To: l...
> Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched to GPIO
> does not work.
> WRITING 0's to reserved bits is fine. It's the READING of the
> reserved bits that cannot be trusted. Anding to mask them off
> should be just fine.
> Quote from manual:
> Reserved, user software should not write ones to
> reserved bits. The value read from a reserved bit is
> not defined.
>
> boB
> --- In l..., "Michael Anton" wrote:
> >
> >
> >
> > > -----Original Message-----
> > > From: l...
> > > [mailto:l...]On Behalf
> > > Of bobtransformer
> > > Sent: Tuesday, September 12, 2006 6:55 PM
> > > To: l...
> > > Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched to
> GPIO
> > > does not work.
> > >
> > >
> > >
> > > Using RMW (PINSEL2 = (PINSEL2 & 0x0F) | value)
> > > should take care of the high reserved bits. I'm not doing the
> AND
> > > though... Now that you mention this, I think I better do it too.
> > >
> > > I am using the JTAG port working though so don't want to clear
> > > bit 2. Maye I should try resetting it and see if my JTAG debug
> > > goes away.
> > >
> > > I will pull up that P1.20 bit too and see if it fixes P1.
> > >
> > > boB
> > >
> >
> > The catch is that even bits 4 and 5 are reserved, so how do you
> handle
> > them? You are not supposed to write them to zeros if they are 1,
> > reserved bits are not to be written to 1, and the read value is
> > undefined.
> >
> > Mike
> >
> >
> > >
> > > --- In l..., "Michael Anton" wrote:
> > > >
> > >
> > > > On the design I have that uses Port 1, I have a pullup on P1.20,
> > > > though as I understand it, this should not be necessary. In
> > > software,
> > > > I write 0 to PINSEL2. It turns out that this is a small bug
> as, I
> > > had
> > > > intended to leave the debug port active, but didn't, which I
> just
> > > > discovered in writing this. Maybe this is what makes my design
> > > work.
> > > >
> > > > It is interesting to read the description of PINSEL2 in the most
> > > > recent copy of the User's Manual. It states:
> > > >
> > > > "Warning: use read-modify-write operation when accessing PINSEL2
> > > > register. Accidental write of 0 to bit 2 and/or bit 3 results in
> > > > loss of debug and/or trace functionality! Changing of either bit
> > > > 4 or bit 5 from 1 to 0 may cause an incorrect code execution!"
> > > >
> > > > But, then in the description of the reserved bits which are bits
> > > > 0, 1, and 4 to 31, the manual states:
> > > >
> > > > "Reserved, user software should not write ones
> > > > to reserved bits. The value read from a reserved
> > > > bit is not defined."
> > > >
> > > > So, can anybody tell me how we are to preserve the bits 4 and 5,
> > > > without reading them (which is undefined), and without writing
> > > > a one or a zero? The info here is rather contradictory.
> Writing
> > > > bits 4 and 5 from a 1 to a 0 can cause problems, but reserved
> bits
> > > > are not to have a 1 written to them, and the reading of
> reserved
> > > bits
> > > > is undefined. Perhaps the Philips/NXP crew can shed some light
> on
> > > this.
> > > >
> > > > Thanks,
> > > >
> > > > Mike
> > >
> > >
> > >
> >
>
>
Yes, you're right. I read that note many times now and it went right
over me... So I would ignore their cut and pasted (most likely)
generic reserved bits note and use the warning note instead. I would
include bits 4 and 5 too:

(PINSEL2 = (PINSEL2 & 0x0000003F) | value)

boB

--- In l..., "Michael Anton" wrote:
>
> Except that you are ignoring the note about bits 4 and 5,
> which should not be written to zero, and you still can't
> trust the read value, so you don't know if you should
> write them to one.
>
> Mike
> > -----Original Message-----
> > From: l...
> > [mailto:l...]On Behalf
> > Of bobtransformer
> > Sent: Tuesday, September 12, 2006 7:47 PM
> > To: l...
> > Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched to
GPIO
> > does not work.
> >
> >
> >
> >
> > WRITING 0's to reserved bits is fine. It's the READING of the
> > reserved bits that cannot be trusted. Anding to mask them off
> > should be just fine.
> >
> >
> > Quote from manual:
> > Reserved, user software should not write ones to
> > reserved bits. The value read from a reserved bit is
> > not defined.
> >
> > boB
> >
> >
> > --- In l..., "Michael Anton" wrote:
> > >
> > >
> > >
> > > > -----Original Message-----
> > > > From: l...
> > > > [mailto:l...]On Behalf
> > > > Of bobtransformer
> > > > Sent: Tuesday, September 12, 2006 6:55 PM
> > > > To: l...
> > > > Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched
to
> > GPIO
> > > > does not work.
> > > >
> > > >
> > > >
> > > > Using RMW (PINSEL2 = (PINSEL2 & 0x0F) | value)
> > > > should take care of the high reserved bits. I'm not doing
the
> > AND
> > > > though... Now that you mention this, I think I better do it
too.
> > > >
> > > > I am using the JTAG port working though so don't want to clear
> > > > bit 2. Maye I should try resetting it and see if my JTAG
debug
> > > > goes away.
> > > >
> > > > I will pull up that P1.20 bit too and see if it fixes P1.
> > > >
> > > > boB
> > > >
> > >
> > > The catch is that even bits 4 and 5 are reserved, so how do you
> > handle
> > > them? You are not supposed to write them to zeros if they are
1,
> > > reserved bits are not to be written to 1, and the read value is
> > > undefined.
> > >
> > > Mike
> > >
> > >
> > > >
> > > > --- In l..., "Michael Anton"
wrote:
> > > > >
> > > >
> > > > > On the design I have that uses Port 1, I have a pullup on
P1.20,
> > > > > though as I understand it, this should not be necessary.
In
> > > > software,
> > > > > I write 0 to PINSEL2. It turns out that this is a small
bug
> > as, I
> > > > had
> > > > > intended to leave the debug port active, but didn't, which
I
> > just
> > > > > discovered in writing this. Maybe this is what makes my
design
> > > > work.
> > > > >
> > > > > It is interesting to read the description of PINSEL2 in the
most
> > > > > recent copy of the User's Manual. It states:
> > > > >
> > > > > "Warning: use read-modify-write operation when accessing
PINSEL2
> > > > > register. Accidental write of 0 to bit 2 and/or bit 3
results in
> > > > > loss of debug and/or trace functionality! Changing of
either bit
> > > > > 4 or bit 5 from 1 to 0 may cause an incorrect code
execution!"
> > > > >
> > > > > But, then in the description of the reserved bits which are
bits
> > > > > 0, 1, and 4 to 31, the manual states:
> > > > >
> > > > > "Reserved, user software should not write ones
> > > > > to reserved bits. The value read from a reserved
> > > > > bit is not defined."
> > > > >
> > > > > So, can anybody tell me how we are to preserve the bits 4
and 5,
> > > > > without reading them (which is undefined), and without
writing
> > > > > a one or a zero? The info here is rather contradictory.
> > Writing
> > > > > bits 4 and 5 from a 1 to a 0 can cause problems, but
reserved
> > bits
> > > > > are not to have a 1 written to them, and the reading of
> > reserved
> > > > bits
> > > > > is undefined. Perhaps the Philips/NXP crew can shed some
light
> > on
> > > > this.
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Mike
> > > >
> > > >
> > > >
> > >
> >
> >
> >
> >
> >
> >
> >
> >
Well... I've pulled up P1.20 (it was at GND) and
ANDed in bits 4-5 of PINSEL2 and STILL can't get
Port 1 GPIO to go high.

Damn !

boB
--- In l..., "bobtransformer" wrote:
> Yes, you're right. I read that note many times now and it went right
> over me... So I would ignore their cut and pasted (most likely)
> generic reserved bits note and use the warning note instead. I
would
> include bits 4 and 5 too:
>
> (PINSEL2 = (PINSEL2 & 0x0000003F) | value)
>
> boB
> --- In l..., "Michael Anton" wrote:
> >
> > Except that you are ignoring the note about bits 4 and 5,
> > which should not be written to zero, and you still can't
> > trust the read value, so you don't know if you should
> > write them to one.
> >
> > Mike
> >
> >
> > > -----Original Message-----
> > > From: l...
> > > [mailto:l...]On Behalf
> > > Of bobtransformer
> > > Sent: Tuesday, September 12, 2006 7:47 PM
> > > To: l...
> > > Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched
to
> GPIO
> > > does not work.
> > >
> > >
> > >
> > >
> > > WRITING 0's to reserved bits is fine. It's the READING of the
> > > reserved bits that cannot be trusted. Anding to mask them off
> > > should be just fine.
> > >
> > >
> > > Quote from manual:
> > > Reserved, user software should not write ones to
> > > reserved bits. The value read from a reserved bit is
> > > not defined.
> > >
> > > boB
> > >
> > >
> > > --- In l..., "Michael Anton" wrote:
> > > >
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: l...
> > > > > [mailto:l...]On Behalf
> > > > > Of bobtransformer
> > > > > Sent: Tuesday, September 12, 2006 6:55 PM
> > > > > To: l...
> > > > > Subject: [lpc2000] Re: Port 1 of LPC 2148 completely
switched
> to
> > > GPIO
> > > > > does not work.
> > > > >
> > > > >
> > > > >
> > > > > Using RMW (PINSEL2 = (PINSEL2 & 0x0F) | value)
> > > > > should take care of the high reserved bits. I'm not doing
> the
> > > AND
> > > > > though... Now that you mention this, I think I better do it
> too.
> > > > >
> > > > > I am using the JTAG port working though so don't want to
clear
> > > > > bit 2. Maye I should try resetting it and see if my JTAG
> debug
> > > > > goes away.
> > > > >
> > > > > I will pull up that P1.20 bit too and see if it fixes P1.
> > > > >
> > > > > boB
> > > > >
> > > >
> > > > The catch is that even bits 4 and 5 are reserved, so how do
you
> > > handle
> > > > them? You are not supposed to write them to zeros if they
are
> 1,
> > > > reserved bits are not to be written to 1, and the read value
is
> > > > undefined.
> > > >
> > > > Mike
> > > >
> > > >
> > > > >
> > > > > --- In l..., "Michael Anton"
> wrote:
> > > > > >
> > > > >
> > > > > > On the design I have that uses Port 1, I have a pullup on
> P1.20,
> > > > > > though as I understand it, this should not be necessary.
> In
> > > > > software,
> > > > > > I write 0 to PINSEL2. It turns out that this is a small
> bug
> > > as, I
> > > > > had
> > > > > > intended to leave the debug port active, but didn't,
which
> I
> > > just
> > > > > > discovered in writing this. Maybe this is what makes my
> design
> > > > > work.
> > > > > >
> > > > > > It is interesting to read the description of PINSEL2 in
the
> most
> > > > > > recent copy of the User's Manual. It states:
> > > > > >
> > > > > > "Warning: use read-modify-write operation when accessing
> PINSEL2
> > > > > > register. Accidental write of 0 to bit 2 and/or bit 3
> results in
> > > > > > loss of debug and/or trace functionality! Changing of
> either bit
> > > > > > 4 or bit 5 from 1 to 0 may cause an incorrect code
> execution!"
> > > > > >
> > > > > > But, then in the description of the reserved bits which
are
> bits
> > > > > > 0, 1, and 4 to 31, the manual states:
> > > > > >
> > > > > > "Reserved, user software should not write ones
> > > > > > to reserved bits. The value read from a reserved
> > > > > > bit is not defined."
> > > > > >
> > > > > > So, can anybody tell me how we are to preserve the bits 4
> and 5,
> > > > > > without reading them (which is undefined), and without
> writing
> > > > > > a one or a zero? The info here is rather contradictory.
> > > Writing
> > > > > > bits 4 and 5 from a 1 to a 0 can cause problems, but
> reserved
> > > bits
> > > > > > are not to have a 1 written to them, and the reading of
> > > reserved
> > > > > bits
> > > > > > is undefined. Perhaps the Philips/NXP crew can shed some
> light
> > > on
> > > > > this.
> > > > > >
> > > > > > Thanks,
> > > > > >
> > > > > > Mike
> > > > >
> > > > >
> > > > >
> > > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
Well, I ~may~ have hurt P1.20. I pulled it up to 3.3V, but forgot
to include a resistor. It looks like P1.20 was being an output
instead of input, however FIO1DIR2 has it as an input in my
initialization. It doesn't go high with a 10K Ohm pullup but
input power supply current does go up ever so slightly if
I connect to 3.3V. It might be current limited enough that
it's OK. Don't know.

SO why do they even include FIO1DIR0 and FIO1DIR1 registers
in these parts without those port 1 GPIO pins anyway ??

boB

--- In l..., "bobtransformer" wrote:
> Well... I've pulled up P1.20 (it was at GND) and
> ANDed in bits 4-5 of PINSEL2 and STILL can't get
> Port 1 GPIO to go high.
>
> Damn !
>
> boB
> --- In l..., "bobtransformer" wrote:
> >
> >
> > Yes, you're right. I read that note many times now and it went
right
> > over me... So I would ignore their cut and pasted (most likely)
> > generic reserved bits note and use the warning note instead. I
> would
> > include bits 4 and 5 too:
> >
> > (PINSEL2 = (PINSEL2 & 0x0000003F) | value)
> >
> > boB
> >
> >
> >
> >
> > --- In l..., "Michael Anton" wrote:
> > >
> > > Except that you are ignoring the note about bits 4 and 5,
> > > which should not be written to zero, and you still can't
> > > trust the read value, so you don't know if you should
> > > write them to one.
> > >
> > > Mike
> > >
> > >
> > > > -----Original Message-----
> > > > From: l...
> > > > [mailto:l...]On Behalf
> > > > Of bobtransformer
> > > > Sent: Tuesday, September 12, 2006 7:47 PM
> > > > To: l...
> > > > Subject: [lpc2000] Re: Port 1 of LPC 2148 completely switched
> to
> > GPIO
> > > > does not work.
> > > >
> > > >
> > > >
> > > >
> > > > WRITING 0's to reserved bits is fine. It's the READING of
the
> > > > reserved bits that cannot be trusted. Anding to mask them off
> > > > should be just fine.
> > > >
> > > >
> > > > Quote from manual:
> > > > Reserved, user software should not write ones to
> > > > reserved bits. The value read from a reserved bit is
> > > > not defined.
> > > >
> > > > boB
> > > >
> > > >
> > > > --- In l..., "Michael Anton"
wrote:
> > > > >
> > > > >
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: l...
> > > > > > [mailto:l...]On Behalf
> > > > > > Of bobtransformer
> > > > > > Sent: Tuesday, September 12, 2006 6:55 PM
> > > > > > To: l...
> > > > > > Subject: [lpc2000] Re: Port 1 of LPC 2148 completely
> switched
> > to
> > > > GPIO
> > > > > > does not work.
> > > > > >
> > > > > >
> > > > > >
> > > > > > Using RMW (PINSEL2 = (PINSEL2 & 0x0F) | value)
> > > > > > should take care of the high reserved bits. I'm not
doing
> > the
> > > > AND
> > > > > > though... Now that you mention this, I think I better do
it
> > too.
> > > > > >
> > > > > > I am using the JTAG port working though so don't want to
> clear
> > > > > > bit 2. Maye I should try resetting it and see if my
JTAG
> > debug
> > > > > > goes away.
> > > > > >
> > > > > > I will pull up that P1.20 bit too and see if it fixes P1.
> > > > > >
> > > > > > boB
> > > > > >
> > > > >
> > > > > The catch is that even bits 4 and 5 are reserved, so how do
> you
> > > > handle
> > > > > them? You are not supposed to write them to zeros if they
> are
> > 1,
> > > > > reserved bits are not to be written to 1, and the read
value
> is
> > > > > undefined.
> > > > >
> > > > > Mike
> > > > >
> > > > >
> > > > > >
> > > > > > --- In l..., "Michael Anton"
> > wrote:
> > > > > > >
> > > > > >
> > > > > > > On the design I have that uses Port 1, I have a pullup
on
> > P1.20,
> > > > > > > though as I understand it, this should not be
necessary.
> > In
> > > > > > software,
> > > > > > > I write 0 to PINSEL2. It turns out that this is a
small
> > bug
> > > > as, I
> > > > > > had
> > > > > > > intended to leave the debug port active, but didn't,
> which
> > I
> > > > just
> > > > > > > discovered in writing this. Maybe this is what makes
my
> > design
> > > > > > work.
> > > > > > >
> > > > > > > It is interesting to read the description of PINSEL2 in
> the
> > most
> > > > > > > recent copy of the User's Manual. It states:
> > > > > > >
> > > > > > > "Warning: use read-modify-write operation when
accessing
> > PINSEL2
> > > > > > > register. Accidental write of 0 to bit 2 and/or bit 3
> > results in
> > > > > > > loss of debug and/or trace functionality! Changing of
> > either bit
> > > > > > > 4 or bit 5 from 1 to 0 may cause an incorrect code
> > execution!"
> > > > > > >
> > > > > > > But, then in the description of the reserved bits which
> are
> > bits
> > > > > > > 0, 1, and 4 to 31, the manual states:
> > > > > > >
> > > > > > > "Reserved, user software should not write ones
> > > > > > > to reserved bits. The value read from a reserved
> > > > > > > bit is not defined."
> > > > > > >
> > > > > > > So, can anybody tell me how we are to preserve the bits
4
> > and 5,
> > > > > > > without reading them (which is undefined), and without
> > writing
> > > > > > > a one or a zero? The info here is rather
contradictory.
> > > > Writing
> > > > > > > bits 4 and 5 from a 1 to a 0 can cause problems, but
> > reserved
> > > > bits
> > > > > > > are not to have a 1 written to them, and the reading of
> > > > reserved
> > > > > > bits
> > > > > > > is undefined. Perhaps the Philips/NXP crew can shed
some
> > light
> > > > on
> > > > > > this.
> > > > > > >
> > > > > > > Thanks,
> > > > > > >
> > > > > > > Mike
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >