LPC2378, UART1 setup problems

Started by gregdeuerling January 3, 2007
Hope someone can help me see what I'm doing wrong.

I'm trying to use UART1 with the TX/RX pins on P2.0 and P2.1.
Nothing I do seems to work with these pins. If I configure the
TX/RX pins on P0.15 and P0.16 UART1 works fine.

Here is my pinselect and UART setup code:
//PINSEL0 |= 0x40000000; // Enable TxD1 P0.15
//PINSEL1 |= 0x00000001; // Enable RxD1 P0.16
PINSEL4 = 0x0000000a; // Enable TxD1 & RxD1, P2.0 & P2.1
U1FDR = 0; // Fractional divider not used
U1LCR = 0x83; // 8 bits, no Parity, 1 Stop bit
U1DLL = 59; // 19.2K Baud Rate @ 18MHZ PCLK
U1DLM = 0; // High divisor latch = 0
U1LCR = 0x03; // DLAB = 0
U1TER = 0x80; // Enable TX1

Why does UART1 work on pins P0.15 and P0.16 and not P2.0 and P2.1?
Does this have something to do with these pins being onthe debug
port (which I'm not using)?

I've tried this code on my LPC2378 design and my Keil LPC2300 eval
board and both boards act the same. This smells os a pinconnect
problem, but I'm sure I have the correct setup???

Any help would be much appreciated!!!

An Engineer's Guide to the LPC2100 Series

Greg,
On the Keil MCB2300 board, UART1 p0.15 and 0.16 are wired to
the MAX563 tranceiver, not P2.0 and P2.1. P2.0 and 2.1 are used
for LEDs. That's why P2.0 and P2.1 won't work for UART1.
I have no way to verify your own design. However, I asked the
internal design team to look into the RTL logic and run the test
suite, P2.0 and 2.1 for UART1 is working correctly.
Have you checked the PINSEL10 register which is used to enable/
diasble the ETM pins? If you want to use P2.0/1 for UART1, you need
to disable the ETM in PINSEL10.

Regards,

NXP apps
--- In l..., "gregdeuerling" wrote:
>
> Hope someone can help me see what I'm doing wrong.
>
> I'm trying to use UART1 with the TX/RX pins on P2.0 and P2.1.
> Nothing I do seems to work with these pins. If I configure the
> TX/RX pins on P0.15 and P0.16 UART1 works fine.
>
> Here is my pinselect and UART setup code:
> //PINSEL0 |= 0x40000000; // Enable TxD1 P0.15
> //PINSEL1 |= 0x00000001; // Enable RxD1 P0.16
> PINSEL4 = 0x0000000a; // Enable TxD1 & RxD1, P2.0 & P2.1
> U1FDR = 0; // Fractional divider not used
> U1LCR = 0x83; // 8 bits, no Parity, 1 Stop bit
> U1DLL = 59; // 19.2K Baud Rate @ 18MHZ PCLK
> U1DLM = 0; // High divisor latch = 0
> U1LCR = 0x03; // DLAB = 0
> U1TER = 0x80; // Enable TX1
>
> Why does UART1 work on pins P0.15 and P0.16 and not P2.0 and P2.1?
> Does this have something to do with these pins being onthe debug
> port (which I'm not using)?
>
> I've tried this code on my LPC2378 design and my Keil LPC2300 eval
> board and both boards act the same. This smells os a pinconnect
> problem, but I'm sure I have the correct setup???
>
> Any help would be much appreciated!!!
>
--- In l..., "nxp_apps" wrote:
>
> Greg,
> On the Keil MCB2300 board, UART1 p0.15 and 0.16 are wired to
> the MAX563 tranceiver, not P2.0 and P2.1. P2.0 and 2.1 are used
> for LEDs. That's why P2.0 and P2.1 won't work for UART1.
> I have no way to verify your own design. However, I asked the
> internal design team to look into the RTL logic and run the test
> suite, P2.0 and 2.1 for UART1 is working correctly.
> Have you checked the PINSEL10 register which is used to enable/
> diasble the ETM pins? If you want to use P2.0/1 for UART1, you need
> to disable the ETM in PINSEL10.
>
> Regards,
>
> NXP apps

Hi, thanks for the reply.

I used a scope to see if the P2.0 pin was changing state on the Keil
board; I knew the P2.0 & P2.1 pins did not go to a RS232 transceiver.

My problem was the ETM was enabled. I used PINSEL10 to disable it
and all worked fine after that. I thought the way I had RTCK pulled
disabled the ETM but pulling RTCLK low during reset enables the ETM.

Thanks for helping me figure this out!!!