1
1
mbed port to NXP LPC43xx
2
2
========================
3
- Updated: 06/24/13
3
+ Updated: 07/11/14
4
4
5
- The NXP LPC43xx microcontrollers are the first to include multiple Cortex-M
6
- cores in a single microcontroller package. This port allows mbed developers
7
- to take advantage of the LPC43xx in their application using APIs that they
8
- are familiar with. Some of the key features of the LPC43xx include:
5
+ The NXP LPC43xx microcontrollers includes multiple Cortex-M cores in a single
6
+ microcontroller package. This port allows mbed developers to take advantage
7
+ of the LPC43xx in their application using APIs that they are familiar with.
8
+ Some of the key features of the LPC43xx include:
9
9
10
10
* Dual core ARM Cortex-M4/M0 both capable of up to 204 MHz
11
11
* Up to 264 KB SRAM, 1 MB internal flash
@@ -27,16 +27,13 @@ Compatibility
27
27
* This port has been tested with the following boards:
28
28
Board MCU RAM/Flash
29
29
Micromint Bambino 200 LPC4330 264K SRAM/4 MB SPIFI flash
30
+ Micromint Bambino 200E LPC4330 264K SRAM/8 MB SPIFI flash
31
+ Micromint Bambino 210 LPC4330 264K SRAM/4 MB SPIFI flash
32
+ Micromint Bambino 210E LPC4330 264K SRAM/8 MB SPIFI flash
30
33
31
- * Ethernet, USB and microSD filesystem drivers will be available when the
32
- Bambino 200E is released.
33
-
34
- * This port uses offline toolchains. Development and testing has been done
35
- mainly with the Keil MDK 4.70. Some testing has been done with IAR 6.5.
36
- Eventually Keil, IAR and GCC CodeRed will be supported.
37
-
38
- * CMSIS-DAP debugging is not currently implemented. To debug use a JTAG.
39
- The NXP DFU tool can be used for flash programming.
34
+ * CMSIS-DAP debugging is implemented with the Micromint Bambino 210/210E.
35
+ To debug other LPC4330 targets, use a JTAG. The NXP DFU tool can be used
36
+ for flash programming.
40
37
41
38
* This port should support NXP LPC43XX and LPC18XX variants with a single
42
39
codebase. The core declaration specifies the binaries to be built:
@@ -52,9 +49,7 @@ Compatibility
52
49
building binaries for different targets requires an external project or
53
50
Makefile.
54
51
55
- * No testing has been done with LPC18xx hardware. At the very least supporting
56
- the LPC18xx would require different compiler flags, additional CMSIS core_cm3
57
- code as well as minor driver code changes.
52
+ * No testing has been done with LPC18xx hardware.
58
53
59
54
Notes
60
55
-----
68
63
MBED_SCU_REG(P6_11) = 0x4008632C MBED_GPIO_PORT(P6_11) = 3
69
64
MBED_GPIO_REG(P6_11) = 0x400F4000 MBED_GPIO_PIN(P6_11) = 7
70
65
66
+ * Pin names use multiple aliases to support Arduino naming conventions as well
67
+ as others. For example, to use pin p21 on the Bambino 210 from mbed applications
68
+ the following aliases are equivalent: p21, D0, UART0_TX, COM1_TX, P6_4.
69
+ See the board pinout graphic and the PinNames.h for available aliases.
70
+
71
71
* The LPC43xx implements GPIO pin and group interrupts. Any pin in the 8 32-bit
72
72
GPIO ports can interrupt (LPC4350 supports up to 164). On group interrupts a
73
73
pin can only interrupt on the rising or falling edge, not both as required
74
74
by the mbed InterruptIn class. Also, group interrupts can't be cleared
75
75
individually. This implementation uses pin interrupts (8 on M4/M3, 1 on M0).
76
76
A future implementation may provide group interrupt support.
77
+
78
+ * The LPC3xx PWM driver uses the State Configurable Timer (SCT). The default
79
+ build (PWM_MODE=0) uses the unified 32-bit times. Applications that use PWM
80
+ and require other SCT uses can use the dual 16-bit mode by changing PWM_MODE
81
+ when building the library.
0 commit comments