ET-ARM STAMP LPC2119
From HvWiki
Contents |
[edit]
Main features
- ARM7TDMI-S core with fast multiplier supporting 32 bit ARM and 16 bit THUMB instruction sets.
- Built in bootloader using a standard RS-232 interface
- 19.6608 MHz crystal gives 58.98 MHz maximum CPU clock available from programmable on-chip phase-locked loop oscillator. Real Time Clock and Watchdog timer.
- 16 kB on-chip Static RAM, 128 kB on-chip Flash Program Memory
- 32 bit timers and 32 bit prescalers with capture and compare. PWM unit with 6 outputs.
- 46 general purpose I/O lines (5 V tolerant), 9 external interrupt pins.
- Two CAN network interfaces with advanced acceptance filters and 2 kB dedicated static RAM.
- Four channel multiplexed 10-bit A/D converter with conversion time as low as 2.5 µs.
[edit]
Hints and tips
- The 32x32 multiplier with the full 64 result is not available through C but can be accessed through inline assembly langauge.
- There is no division in hardware so avoid divisions in time critical code.
- There is no floating-point hardware so use fixed-point where speed is important.
[edit]
Special pins
Some of the pins are used for debug and trace. They will emit large amounts of data a thigh speed unless the feature is turned off by doing:
PINSEL2 = PINSEL2 &~12; //clear bit 2 and 3 which turns off debug and trace
- P0.0 - Transmit → MAX3232
- P0.1 - Receieve ← MAX3232
- P0.2 and P0.3 are open drain
- P0.5 is connected to Match 0.0 and not Match 0.1
- P0.14 - Load button
- P1.20 - Enable Trace port (floating or high at reset to avoid enable)
- P1.26 - Enable Debug port (floating or high at reset to avoid enable)
[edit]
Power usage
Power down does not include A/D, shut it down separately. The LED, voltage regulator and the RS-232 circuit seems to use about 25.5 mA. Measurements are with all busses at 60 MHz. Input voltage 3.3 V ± 10 %.
- Normal 72.5 mA
- All devices off 57.5 mA
- Idle 31.5 mA
- Power off 25.5 mA
[edit]
A simple frequency generator
//Frequency on P0.5 = PCLK/((T0MR0+1)*2) //ERRATA - P0.5 is connected to Match 0.0 output instead of Match 0.1 output PINSEL0 |= 2<<10; //P0.5 - Match 0.0 (TIMER0) T0EMR = 3<<4; //Toggle corresponding External Match output pin T0MR0 = 2; //Number of cycles-1 between toggles T0MCR = 1<<1; //Reset Timer0 on MR0 match T0PC = 0; //Prescaler = 0 T0TCR = 2; //Reset Timer0 T0TCR = 1; //Start Timer0
[edit]

