LPC1114 Temperature Sensor
The idea is to use the Cortex-M0 based LPC1114 as a low power micro in a remote temperature sensor. Use a solar light as the case and power source and it should run forever.
Use the Olimex LPC-H11U14 as a breakout board.
Initial code is at http://juju.net.nz/src/lpc1114.git/
Hardware
LPC1114FBD48/302:
LPC1100L
38 x 38 mm
32 k flash, 8 k RAM, UART, 2x SSP, I2C, ADC
TMP102 0.5 deg C?
microbuilder reference design:
- NCP1402 converter. 0.8 V startup, 200 mA, various outputs.
- 24AA32AFT. Microchip I2C 4 k x 8 EEPROM
PIO0_7
(23) is a 20 mA high current driver. The I2C lines are high
current sinks. A white LED has a ~3.5 V drop. Red is ~1.6 V and
yellow/green ~2.0 V at 10 mA. 10 mA for a (5 V - 1.8 V) drop = 320 Ohms.
Regulator is a LDO (1.2 V) 800 mA LM1117. Steering diodes give another 0.6 V so it shouldn’t work :)
IOCON
set the routing for different signals like the SPI clock.
Two SPI ports:
- SPI0: SCK0/PIO0_6 (22), MISO0/PIO0_8 (27), MOSI0/PIO0_9 (28), SSEL0/PIO0_2 (10)
- SPI1: SCK1/PIO2_1 (13), MISO1/PIO2_2 (26), MOSI1/PIO2_3 (38), SSEL1/PIO2_0 (2)
Power
The dev board has a LM1117IMPX-ADJ and 240R + 390R divider. V = IR so I = 5.2 mA!
1.8 to 3.6 V supply. Must boost.
1 mA at 6 MHz. 5 mA at 50 MHz.
Code
- https://github.com/microbuilder/LPC1114CodeBase
- mbed is a LPC11U24 but I can’t find the library code
- http://www.microbuilder.eu/
Speed
0.98 CoreMark/MHz with Code Red GCC 4.3.3.
Bootloader
The built in bootloader seems fine. ASCII/uuencode based with auto baud. Starts the user program if ‘valid’ based on the vectors checksum.
Pins:
#RESET/PIO0_0
/ pin 3PIO0_1
/ pin 4 low on reset to enter the loaderRXD/PIO1_6
/ pin 46TXD/PIO1_7
/ pin 47
Protocol:
?
->- <-
Synchronized<CR><LF>
Synchronized<CR><LF>
->- <-
OK<CR><LF>
Use my FTD2232 based JTAG?
Interface
Use one of the Nokia DKU-5 clones from Trademe.
+5V TXD DTR RXD GND
RTS ??? ??? ??? ???
DTR and RTS can map to reset and BSL. Matches the Sparkfun one.
Looking from the bottom of the IDC, I have:
| | | |
1 2 3 4 5
6 7 8 9 10
- 1 = RTS
- 2 = TXD
- 3 = RXD
- 4 = –
- 6 = +5V
- 7 = DTR
- 8 = GND
- 5, 9, 10 = NC
Memory map
Bootloader:
- 0 - 0x7FFF: Flash in 4 k sectors
- 0x10000000 + 8 k: RAM
- RAM + 0x17C to 0x025B: ISP work area
- Upper 32 bytes of RAM: Flash work area
- Top of RAM - 32 bytes: top of stack
Hookups
I have a MOD-NRF24LR. NRF24L01. SPI based.
And a MOD-LCD3310. 84x48. SPI based. Needs an extra data/command line.