1.. _lpcxpresso55s16: 2 3NXP LPCXpresso55S16 4################### 5 6Overview 7******** 8 9The LPCXpresso55S16 board provides the ideal platform for evaluation 10of the LPC55S1x/LPC551x MCU family, based on the Arm® Cortex®-M33 11architecture. Arduino® UNO compatible shield connectors are included, 12with additional expansion ports around the Arduino footprint, along 13with a PMod/host interface port and MikroElektronika Click module 14site. 15 16.. image:: lpcxpresso55S16.jpg 17 :align: center 18 :alt: LPCXpresso55S16 19 20Hardware 21******** 22 23- LPC55S16 Arm® Cortex®-M33 microcontroller running at up to 150 MHz 24- 256 KB flash and 96 KB SRAM on-chip 25- LPC-Link2 debug high speed USB probe with VCOM port 26- I2C and SPI USB bridging to the LPC device via LPC-Link2 probe 27- MikroElektronika Click expansion option 28- LPCXpresso expansion connectors compatible with Arduino UNO 29- PMod compatible expansion / host connector 30- Reset, ISP, wake, and user buttons for easy testing of software functionality 31- Tri-color LED 32- Full-speed USB device / host port 33- High-speed USB device / host port 34- UART header for external serial to USB cable 35- CAN Transceiver 36- Stereo audio codec with in/out line 37- NXP FXOS8700CQ accelerometer 38 39For more information about the LPC55S16 SoC and LPCXPresso55S16 board, see: 40 41- `LPC55S16 SoC Website`_ 42- `LPC55S16 Datasheet`_ 43- `LPC55S16 User Manual`_ 44- `LPCXpresso55S16 Website`_ 45- `LPCXpresso55S16 User Manual`_ 46- `LPCXpresso55S16 Development Board Design Files`_ 47 48Supported Features 49================== 50 51The lpcxpresso55s16 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 lpcxpresso55s16 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| SENSOR | off-chip | fxos8700 trigger | 77+-----------+------------+-------------------------------------+ 78| CLOCK | on-chip | clock_control | 79+-----------+------------+-------------------------------------+ 80| CAN | on-chip | canbus | 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 90Currently available targets for this board are: 91 92- *lpcxpresso55s16* 93 94Connections and IOs 95=================== 96 97The LPC55S16 SoC has IOCON registers, which can be used to configure 98the functionality of a pin. 99 100+---------+-----------------+----------------------------+ 101| Name | Function | Usage | 102+=========+=================+============================+ 103| PIO0_5 | GPIO | ISP SW4 | 104+---------+-----------------+----------------------------+ 105| PIO0_26 | SPI | SPI MOSI | 106+---------+-----------------+----------------------------+ 107| PIO0_29 | USART | USART RX | 108+---------+-----------------+----------------------------+ 109| PIO0_30 | USART | USART TX | 110+---------+-----------------+----------------------------+ 111| PIO1_1 | SPI | SPI SSEL1 | 112+---------+-----------------+----------------------------+ 113| PIO1_2 | SPI | SPI SCK | 114+---------+-----------------+----------------------------+ 115| PIO1_3 | SPI | SPI MISO | 116+---------+-----------------+----------------------------+ 117| PIO1_4 | GPIO | RED LED | 118+---------+-----------------+----------------------------+ 119| PIO1_6 | GPIO | BLUE_LED | 120+---------+-----------------+----------------------------+ 121| PIO1_7 | GPIO | GREEN LED | 122+---------+-----------------+----------------------------+ 123| PIO1_9 | GPIO | USR SW3 | 124+---------+-----------------+----------------------------+ 125| PIO1_18 | GPIO | Wakeup SW1 | 126+---------+-----------------+----------------------------+ 127| PIO1_20 | I2C | I2C SCL | 128+---------+-----------------+----------------------------+ 129| PIO1_21 | I2C | I2C SDA | 130+---------+-----------------+----------------------------+ 131| PIO1_26 | GPIO | FXOS8700 INT1 | 132+---------+-----------------+----------------------------+ 133| PIO1_22 | CAN | CAN RXD | 134+---------+-----------------+----------------------------+ 135| PIO1_27 | CAN | CAN TXD | 136+---------+-----------------+----------------------------+ 137 138System Clock 139============ 140 141The LPC55S16 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. The application 144may reconfigure clocks after initialization, provided that the core clock is 145always set to 96MHz when flash programming operations are performed. 146 147Serial Port 148=========== 149 150The LPC55S16 SoC has 8 FLEXCOMM interfaces for serial 151communication. One is configured as USART for the console, one is 152configured for I2C, and the remaining are not used. 153 154Programming and Debugging 155************************* 156 157Build and flash applications as usual (see :ref:`build_an_application` 158and :ref:`application_run` for more details). 159 160Configuring a Debug Probe 161========================= 162 163A debug probe is used for both flashing and debugging the board. This 164board is configured by default to use the LPC-Link2 CMSIS-DAP Onboard 165Debug Probe, however the :ref:`pyocd-debug-host-tools` does not yet 166support the LPC55S16 so you must reconfigure the board for one of the 167J-Link debug probe instead. 168 169First install the :ref:`jlink-debug-host-tools` and make sure they are 170in your search path. 171 172Then follow the instructions in 173:ref:`lpclink2-jlink-onboard-debug-probe` to program the J-Link 174firmware. Please make sure you have the latest firmware for this 175board. 176 177Configuring a Console 178===================== 179 180Connect a USB cable from your PC to J1 (LINK2), and use the serial 181terminal of your choice (minicom, putty, etc.) with the following 182settings: 183 184- Speed: 115200 185- Data: 8 bits 186- Parity: None 187- Stop bits: 1 188 189Flashing 190======== 191 192Here is an example for the :ref:`hello_world` application. 193 194.. zephyr-app-commands:: 195 :zephyr-app: samples/hello_world 196 :board: lpcxpresso55s16 197 :goals: flash 198 199Open a serial terminal, reset the board (press the RESET button), and you should 200see the following message in the terminal: 201 202.. code-block:: console 203 204 ***** Booting Zephyr OS v2.2.0 ***** 205 Hello World! lpcxpresso55s16 206 207Debugging 208========= 209 210Here is an example for the :ref:`hello_world` application. 211 212.. zephyr-app-commands:: 213 :zephyr-app: samples/hello_world 214 :board: lpcxpresso55s16 215 :goals: debug 216 217Open a serial terminal, step through the application in your debugger, and you 218should see the following message in the terminal: 219 220.. code-block:: console 221 222 ***** Booting Zephyr OS zephyr-v2.2.0 ***** 223 Hello World! lpcxpresso55s16 224 225.. _LPC55S16 SoC Website: 226 https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/lpc5500-cortex-m33/lpc551x-s1x-baseline-arm-cortex-m33-based-microcontroller-family:LPC551X-S1X 227 228.. _LPC55S16 Datasheet: 229 https://www.nxp.com/docs/en/nxp/data-sheets/LPC55S1x_LPC551x_DS.pdf 230 231.. _LPC55S16 User Manual: 232 https://www.nxp.com/webapp/Download?colCode=UM11295 233 234.. _LPCxpresso55S16 Website: 235 https://www.nxp.com/design/development-boards/lpcxpresso-boards/lpcxpresso55s16-development-board:LPC55S16-EVK 236 237.. _LPCXpresso55S16 User Manual: 238 https://www.nxp.com/webapp/Download?colCode=UMLPCXPRESSO55S16 239 240.. _LPCXpresso55S16 Development Board Design Files: 241 https://www.nxp.com/webapp/Download?colCode=LPCXPRESSSO55S16-DESIGN-FILES 242