Looking at the LPC810 UART

Posted at 2015-05-07.

LPC810 chip on breadboard with USB UART module
LPC810 chip on breadboard with USB UART module

I was looking through some articles I've missed on the jeelabs blog. Seems embello. has got some interesting updates as well, so I pulled that.

I thought I'd log some notes.

It seems that the ISP uses pin 8 (PIO0_0) for RX, pin 2 (PIO0_4) for TX, probably pin 1 for RESET, and pin 5 to enter the bootloader. Pins 6 and 7 are power and ground.

I didn't yet look up confirmation if pins 1&5 could be easily connected to the ISP, but using 8&2 for UART in any applications seems like an attractive default. The LPC810 doesn't have too many output options because of its pin count so shared ISP and UART pins would seem useful.

Serial output post contains interesting links and information.

The little sample says

LPC_SWM->PINASSIGN0 = 0xFFFFFF04UL;

Other demos refer to sys.h and it has, in Serial.init(),

LPC_SWM->PINASSIGN[0] = 0xFFFF0004;

Looking at the huge LPC810 UM pdf, PINASSIGN0 contains the pin assignments for uart0. Lowest byte sets TX (to 04 in both examples). Next lowest sets RX (to 00 in sys.h). The two next bytes would set RTS/CTS. I didn't notice it mentioned, but I presume setting a value over 0x11 will set the pin nowhere. Default values are all set to 0xFF.

Part 9.3 predicts SWD should be turned off by these choices without problem.

The boot loader assigns the SWD functions to pins PIO0_2 and PIO0_3. If
the user code disables the SWD functions through the switch matrix to
use the pins for other functions, the SWD port is disabled.

I noticed that much of the sources have non-evil licenses and could be useful. The whole embello repository contains a lot of useful stuff for LPC8xx, and Jeelabs is a wonderful resource.

Links