1.. zephyr:board:: lpcxpresso55s36
2
3Overview
4********
5
6The LPCXpresso55S36 board provides the ideal platform for evaluation
7of the LPC55S3x/LPC553x MCU family, based on the Arm® Cortex®-M33
8architecture. Arduino® UNO compatible shield connectors are included,
9with additional expansion ports around the Arduino footprint, along
10with a PMod/host interface port and MikroElektronika Click module
11site.
12
13Hardware
14********
15
16- LPC55S36 Arm® Cortex®-M33 microcontroller running at up to 150 MHz
17- 256 KB flash and 96 KB SRAM on-chip
18- LPC-Link2 debug high speed USB probe with VCOM port
19- I2C and SPI USB bridging to the LPC device via LPC-Link2 probe
20- MikroElektronika Click expansion option
21- LPCXpresso expansion connectors compatible with Arduino UNO
22- PMod compatible expansion / host connector
23- Reset, ISP, wake, and user buttons for easy testing of software functionality
24- Tri-color LED
25- Full-speed USB device / host port
26- High-speed USB device / host port
27- UART header for external serial to USB cable
28- CAN Transceiver
29- Stereo audio codec with in/out line
30
31For more information about the LPC55S36 SoC and LPCXPresso55S36 board, see:
32
33- `LPC55S36 SoC Website`_
34- `LPC55S36 Datasheet`_
35- `LPC55S36 User Manual`_
36- `LPCXpresso55S36 Website`_
37- `LPCXpresso55S36 User Manual`_
38- `LPCXpresso55S36 Development Board Design Files`_
39
40Supported Features
41==================
42
43NXP considers the LPCXpresso55S36 as a superset board for the LPC55(S)3x
44family of MCUs.  This board is a focus for NXP's Full Platform Support for
45Zephyr, to better enable the entire LPC55(S)3x family.  NXP prioritizes enabling
46this board with new support for Zephyr features.  The lpcxpresso55s36 board
47configuration supports the hardware features below.  Another similar superset
48board is the :zephyr:board:`lpcxpresso55s69`, and that board may have additional features
49already supported, which can also be re-used on this lpcxpresso55s36 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| USART     | on-chip    | serial port-polling;                |
63|           |            | serial port-interrupt               |
64+-----------+------------+-------------------------------------+
65| CLOCK     | on-chip    | clock_control                       |
66+-----------+------------+-------------------------------------+
67| CAN       | on-chip    | canbus                              |
68+-----------+------------+-------------------------------------+
69| IAP       | on-chip    | flash                               |
70+-----------+------------+-------------------------------------+
71| PWM       | on-chip    | pwm                                 |
72+-----------+------------+-------------------------------------+
73| USB FS    | on-chip    | USB Full Speed device               |
74+-----------+------------+-------------------------------------+
75| DAC       | on-chip    | dac                                 |
76+-----------+------------+-------------------------------------+
77
78Other hardware features are not currently enabled.
79
80Currently available targets for this board are:
81
82- *lpcxpresso55s36*
83
84Connections and IOs
85===================
86
87The LPC55S36 SoC has IOCON registers, which can be used to configure
88the functionality of a pin.
89
90+---------+-----------------+----------------------------+
91| Name    | Function        | Usage                      |
92+=========+=================+============================+
93| PIO0_17 | GPIO            | USR SW3                    |
94+---------+-----------------+----------------------------+
95| PIO0_22 | GPIO            | GREEN LED                  |
96+---------+-----------------+----------------------------+
97| PIO0_28 | GPIO            | RED LED                    |
98+---------+-----------------+----------------------------+
99| PIO0_29 | USART           | USART RX                   |
100+---------+-----------------+----------------------------+
101| PIO0_30 | USART           | USART TX                   |
102+---------+-----------------+----------------------------+
103| PIO1_11 | GPIO            | BLUE_LED                   |
104+---------+-----------------+----------------------------+
105| PIO1_18 | GPIO            | Wakeup SW1                 |
106+---------+-----------------+----------------------------+
107| PIO1_20 | FLEXPPWM0_PWM0_A| pwm                        |
108+---------+-----------------+----------------------------+
109| PIO1_17 | FLEXPPWM0_PWM0_B| pwm                        |
110+---------+-----------------+----------------------------+
111| PIO1_6  | FLEXPPWM0_PWM1_A| pwm                        |
112+---------+-----------------+----------------------------+
113| PIO1_22 | FLEXPPWM0_PWM1_B| pwm                        |
114+---------+-----------------+----------------------------+
115| PIO1_8  | FLEXPPWM0_PWM2_A| pwm                        |
116+---------+-----------------+----------------------------+
117| PIO1_4  | FLEXPPWM0_PWM2_B| pwm                        |
118+---------+-----------------+----------------------------+
119| PIO1_21 | FLEXPPWM1_PWM0_A| pwm                        |
120+---------+-----------------+----------------------------+
121| PIO0_3  | FLEXPPWM1_PWM0_B| pwm                        |
122+---------+-----------------+----------------------------+
123| PIO1_23 | FLEXPPWM1_PWM1_A| pwm                        |
124+---------+-----------------+----------------------------+
125| PIO0_21 | FLEXPPWM1_PWM1_B| pwm                        |
126+---------+-----------------+----------------------------+
127| PIO1_25 | FLEXPPWM1_PWM2_A| pwm                        |
128+---------+-----------------+----------------------------+
129| PIO0_31 | FLEXPPWM1_PWM2_B| pwm                        |
130+---------+-----------------+----------------------------+
131| PIO1_2  | CAN0_TXD        | CAN TX                     |
132+---------+-----------------+----------------------------+
133| PIO1_3  | CAN0_RXD        | CAN RX                     |
134+---------+-----------------+----------------------------+
135| PIO0_22 | USB0_VBUS       | USBFS VBUS                 |
136+---------+-----------------+----------------------------+
137
138System Clock
139============
140
141The LPC55S36 SoC is configured to use PLL1 clocked from the external 24MHz
142crystal, running at 144MHz as a source for the system clock. When the flash
143controller is enabled, the core clock will be reduced to 96MHz. Other sources for the system clock are
144provided in the SOC, depending on your system requirements.
145
146Serial Port
147===========
148
149The LPC55S36 SoC has 8 FLEXCOMM interfaces for serial
150communication. One is configured as USART for the console and the
151remaining are not used.
152
153Programming and Debugging
154*************************
155
156Build and flash applications as usual (see :ref:`build_an_application`
157and :ref:`application_run` for more details).
158
159Configuring a Debug Probe
160=========================
161
162A debug probe is used for both flashing and debugging the board. This board is
163configured by default to use the integrated :ref:`mcu-link-onboard-debug-probe`
164in the CMSIS-DAP mode. To use this probe with Zephyr, you need to install the
165:ref:`linkserver-debug-host-tools` and make sure they are in your search path.
166Then, use the ``linkserver`` runner option to flash and debug the board. Refer
167to the detailed overview about :ref:`application_debugging` for additional
168information.
169
170The integrated MCU-Link hardware can also be used as a J-Link probe with a
171firmware update, as described in :ref:`mcu-link-jlink-onboard-debug-probe`.
172The :ref:`jlink-debug-host-tools` should be available in this case.
173
174Configuring a Console
175=====================
176
177Connect a USB cable from your PC to J1 (LINK2), and use the serial
178terminal of your choice (minicom, putty, etc.) with the following
179settings:
180
181- Speed: 115200
182- Data: 8 bits
183- Parity: None
184- Stop bits: 1
185
186Flashing
187========
188
189Here is an example for the :zephyr:code-sample:`hello_world` application.
190
191.. zephyr-app-commands::
192   :zephyr-app: samples/hello_world
193   :board: lpcxpresso55s36
194   :goals: flash
195
196Open a serial terminal, reset the board (press the RESET button), and you should
197see the following message in the terminal:
198
199.. code-block:: console
200
201   ***** Booting Zephyr OS v2.2.0 *****
202   Hello World! lpcxpresso55s36
203
204Debugging
205=========
206
207Here is an example for the :zephyr:code-sample:`hello_world` application.
208
209.. zephyr-app-commands::
210   :zephyr-app: samples/hello_world
211   :board: lpcxpresso55s36
212   :goals: debug
213
214Open a serial terminal, step through the application in your debugger, and you
215should see the following message in the terminal:
216
217.. code-block:: console
218
219   ***** Booting Zephyr OS zephyr-v2.2.0 *****
220   Hello World! lpcxpresso55s36
221
222.. _LPC55S36 SoC Website:
223   https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/lpc5500-cortex-m33/lpc553x-s3x-advanced-analog-armcortex-m33-based-mcu-family:LPC553x
224
225.. _LPC55S36 Datasheet:
226    https://www.nxp.com/docs/en/data-sheet/LPC553x.pdf
227
228.. _LPC55S36 User Manual:
229   https://www.nxp.com/docs/en/reference-manual/LPC553xRM.pdf
230
231.. _LPCxpresso55S36 Website:
232   https://www.nxp.com/design/development-boards/lpcxpresso-boards/development-board-for-the-lpc553x-family-of-mcus:LPCXpresso55S36
233
234.. _LPCXpresso55S36 User Manual:
235   https://www.nxp.com/docs/en/user-manual/LPCXpresso55S36UM.pdf
236
237.. _LPCXpresso55S36 Development Board Design Files:
238   https://www.nxp.com/webapp/Download?colCode=LPCXPRESSO5536_EVK-DESIGN-FILES
239