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