1.. zephyr:board:: lpcxpresso55s28
2
3Overview
4********
5
6The LPCXpresso55S28 development board provides the ideal platform for evaluation
7of and development with the LPC552x/S2x MCU based on the Arm® Cortex®-M33
8architecture. The board includes a high-performance onboard debug probe, audio
9subsystem and accelerometer, with several options for adding off-the-shelf
10add-on boards for networking, sensors, displays, and other interfaces.
11
12Hardware
13********
14
15- LPC55S28 Arm® Cortex®-M33 microcontroller running at up to 150 MHz
16- 512 KB flash and 256 KB SRAM on-chip
17- Onboard, high-speed USB, Link2 debug probe with CMSIS-DAP and SEGGER J-Link
18  protocol options
19- UART and SPI port bridging from LPC55S28 target to USB via the onboard debug
20  probe
21- Hardware support for external debug probe
22- 3 x user LEDs, plus Reset, ISP (3) and user buttons
23- Micro SD card slot (4-bit SDIO)
24- NXP MMA8652FCR1 accelerometer
25- Stereo audio codec with line in/out
26- High and full speed USB ports with micro A/B connector for host or device
27  functionality
28- MikroEletronika Click expansion option
29- LPCXpresso-V3 expansion option compatible with Arduino UNO
30- PMod compatible expansion / host connector
31
32For more information about the LPC55S28 SoC and LPCXPresso55S28 board, see:
33
34- `LPC55S28 SoC Website`_
35- `LPC55S28 Datasheet`_
36- `LPC55S28 User Manual`_
37- `LPCXpresso55S28 Website`_
38- `LPCXpresso55S28 User Manual`_
39- `LPCXpresso55S28 Development Board Design Files`_
40
41Supported Features
42==================
43
44The lpcxpresso55s28 board configuration supports the hardware features listed
45below.  For additional features not yet supported, please also refer to the
46:zephyr:board:`lpcxpresso55s69` , which is the superset board in NXP's LPC55xx series.
47NXP prioritizes enabling the superset board with NXP's Full Platform Support for
48Zephyr.  Therefore, the lpcxpresso55s69 board may have additional features
49already supported, which can also be re-used on this lpcxpresso55s28 board:
50
51+-----------+------------+-------------------------------------+
52| Interface | Controller | Driver/Component                    |
53+===========+============+=====================================+
54| NVIC      | on-chip    | nested vector interrupt controller  |
55+-----------+------------+-------------------------------------+
56| SYSTICK   | on-chip    | systick                             |
57+-----------+------------+-------------------------------------+
58| IOCON     | on-chip    | pinmux                              |
59+-----------+------------+-------------------------------------+
60| GPIO      | on-chip    | gpio                                |
61+-----------+------------+-------------------------------------+
62| I2C       | on-chip    | i2c                                 |
63+-----------+------------+-------------------------------------+
64| SPI       | on-chip    | spi                                 |
65+-----------+------------+-------------------------------------+
66| USART     | on-chip    | serial port-polling;                |
67|           |            | serial port-interrupt               |
68+-----------+------------+-------------------------------------+
69| WWDT      | on-chip    | windowed watchdog timer             |
70+-----------+------------+-------------------------------------+
71| ADC       | on-chip    | adc                                 |
72+-----------+------------+-------------------------------------+
73| CLOCK     | on-chip    | clock_control                       |
74+-----------+------------+-------------------------------------+
75| RNG       | on-chip    | entropy;                            |
76|           |            | random                              |
77+-----------+------------+-------------------------------------+
78| IAP       | on-chip    | flash programming                   |
79+-----------+------------+-------------------------------------+
80
81Other hardware features are not currently enabled.
82
83The default configuration file
84:zephyr_file:`boards/nxp/lpcxpresso55s28/lpcxpresso55s28_defconfig`
85
86Connections and IOs
87===================
88
89The LPC55S28 SoC has IOCON registers, which can be used to configure
90the functionality of a pin.
91
92+---------+-----------------+----------------------------+
93| Name    | Function        | Usage                      |
94+=========+=================+============================+
95| PIO0_26 | SPI             | SPI MOSI                   |
96+---------+-----------------+----------------------------+
97| PIO0_29 | USART           | USART RX                   |
98+---------+-----------------+----------------------------+
99| PIO0_30 | USART           | USART TX                   |
100+---------+-----------------+----------------------------+
101| PIO1_1  | SPI             | SPI SSEL                   |
102+---------+-----------------+----------------------------+
103| PIO1_2  | SPI             | SPI SCK                    |
104+---------+-----------------+----------------------------+
105| PIO1_3  | SPI             | SPI MISO                   |
106+---------+-----------------+----------------------------+
107| PIO1_4  | GPIO            | RED LED                    |
108+---------+-----------------+----------------------------+
109| PIO1_6  | GPIO            | BLUE_LED                   |
110+---------+-----------------+----------------------------+
111| PIO1_7  | GPIO            | GREEN LED                  |
112+---------+-----------------+----------------------------+
113| PIO1_20 | I2C             | I2C SCL                    |
114+---------+-----------------+----------------------------+
115| PIO1_21 | I2C             | I2C SDA                    |
116+---------+-----------------+----------------------------+
117
118System Clock
119============
120
121The LPC55S28 SoC is configured to use PLL1 clocked from the external 24MHz
122crystal, running at 144MHz as a source for the system clock. When the flash
123controller is enabled, the core clock will be reduced to 96MHz. The application
124may reconfigure clocks after initialization, provided that the core clock is
125always set to 96MHz when flash programming operations are performed.
126
127Serial Port
128===========
129
130The LPC55S28 SoC has 8 FLEXCOMM interfaces for serial communication. One is
131configured as USART for the console and the remaining are not used.
132
133Programming and Debugging
134*************************
135
136Build and flash applications as usual (see :ref:`build_an_application`
137and :ref:`application_run` for more details).
138
139Configuring a Debug Probe
140=========================
141
142A debug probe is used for both flashing and debugging the board. This
143board is configured by default to use the LPC-Link2 CMSIS-DAP Onboard
144Debug Probe.
145
146Configuring a Console
147=====================
148
149Connect a USB cable from your PC to P6, and use the serial terminal of your
150choice (minicom, putty, etc.) with the following settings:
151
152- Speed: 115200
153- Data: 8 bits
154- Parity: None
155- Stop bits: 1
156
157Flashing
158========
159
160Here is an example for the :zephyr:code-sample:`hello_world` application.
161
162.. zephyr-app-commands::
163   :zephyr-app: samples/hello_world
164   :board: lpcxpresso55s28
165   :goals: flash
166
167Open a serial terminal, reset the board (press the RESET button), and you should
168see the following message in the terminal:
169
170.. code-block:: console
171
172   ***** Booting Zephyr OS v2.4.0 *****
173   Hello World! lpcxpresso55s28
174
175Debugging
176=========
177
178Here is an example for the :zephyr:code-sample:`hello_world` application.
179
180.. zephyr-app-commands::
181   :zephyr-app: samples/hello_world
182   :board: lpcxpresso55s28
183   :goals: debug
184
185Open a serial terminal, step through the application in your debugger, and you
186should see the following message in the terminal:
187
188.. code-block:: console
189
190   ***** Booting Zephyr OS zephyr-v2.4.0 *****
191   Hello World! lpcxpresso55s28
192
193.. _LPC55S28 SoC Website:
194   https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/lpc5500-cortex-m33/lpc552x-s2x-mainstream-arm-cortex-m33-based-microcontroller-family:LPC552x-S2x
195
196.. _LPC55S28 Datasheet:
197   https://www.nxp.com/docs/en/nxp/data-sheets/LPC55S2x_LPC552x_DS.pdf
198
199.. _LPC55S28 User Manual:
200   https://www.nxp.com/webapp/Download?colCode=UM11126
201
202.. _LPCxpresso55S28 Website:
203   https://www.nxp.com/design/software/development-software/lpcxpresso55s28-development-board:LPC55S28-EVK
204
205.. _LPCXpresso55S28 User Manual:
206   https://www.nxp.com/webapp/Download?colCode=UM11158
207
208.. _LPCXpresso55S28 Development Board Design Files:
209   https://www.nxp.com/webapp/Download?colCode=LPCXpresso55S69-DS
210