Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
boards: lpcxpresso55s69 initalization
Board LPCXpresso55S69 added to supported zephyr boards, initial simple configuration to boot board and use UART. Signed-off-by: Andrei Gansari <andrei.gansari@nxp.com>
- Loading branch information
1 parent
b342258
commit d403cac
Showing
11 changed files
with
530 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,11 @@ | |||
# | |||
# Copyright (c) 2019, NXP | |||
# | |||
# SPDX-License-Identifier: Apache-2.0 | |||
# | |||
|
|||
if(CONFIG_PINMUX_MCUX_LPC) | |||
zephyr_library() | |||
zephyr_library_include_directories(${ZEPHYR_BASE}/drivers) | |||
zephyr_library_sources(pinmux.c) | |||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,16 @@ | |||
# Kconfig - LPCXpresso55S69 board | |||
# | |||
# Copyright (c) 2019, NXP | |||
# | |||
# SPDX-License-Identifier: Apache-2.0 | |||
# | |||
|
|||
config BOARD_LPCXPRESSO55S69_CPU0 | |||
bool "NXP LPCXPRESSO-55S69 [CPU0]" | |||
depends on SOC_SERIES_LPC55XXX | |||
select SOC_PART_NUMBER_LPC55S69JBD100 | |||
|
|||
config BOARD_LPCXPRESSO55S69_CPU1 | |||
bool "NXP LPCXPRESSO-55S69 [CPU1]" | |||
depends on SOC_SERIES_LPC55XXX | |||
select SOC_PART_NUMBER_LPC55S69JBD100 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,41 @@ | |||
# Kconfig - LPCXpresso55S69 board | |||
# | |||
# Copyright (c) 2019, NXP | |||
# | |||
# SPDX-License-Identifier: Apache-2.0 | |||
# | |||
|
|||
if BOARD_LPCXPRESSO55S69_CPU0 || BOARD_LPCXPRESSO55S69_CPU1 | |||
|
|||
config BOARD | |||
default "lpcxpresso55S69_cpu0" if BOARD_LPCXPRESSO55S69_CPU0 | |||
default "lpcxpresso55S69_cpu1" if BOARD_LPCXPRESSO55S69_CPU1 | |||
|
|||
if USART_MCUX_LPC | |||
|
|||
config USART_MCUX_LPC_0 | |||
default y if UART_CONSOLE | |||
|
|||
endif # USART_MCUX_LPC | |||
|
|||
if PINMUX_MCUX_LPC | |||
|
|||
config PINMUX_MCUX_LPC_PORT0 | |||
default y | |||
|
|||
config PINMUX_MCUX_LPC_PORT1 | |||
default y | |||
|
|||
endif # PINMUX_MCUX_LPC | |||
|
|||
if GPIO_MCUX_LPC | |||
|
|||
config GPIO_MCUX_LPC_PORT0 | |||
default y | |||
|
|||
config GPIO_MCUX_LPC_PORT1 | |||
default y | |||
|
|||
endif # GPIO_MCUX_LPC | |||
|
|||
endif # BOARD_LPCXPRESSO55S69_CPU0 || BOARD_LPCXPRESSO55S69_CPU1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,25 @@ | |||
# | |||
# Copyright (c) 2019, NXP | |||
# | |||
# SPDX-License-Identifier: Apache-2.0 | |||
# | |||
|
|||
|
|||
## DAP Link implementation in pyocd is underway, | |||
## until then jlink can be used or copy image to storage | |||
|
|||
set_ifndef(OPENSDA_FW jlink) | |||
|
|||
if(OPENSDA_FW STREQUAL jlink) | |||
set_ifndef(BOARD_DEBUG_RUNNER jlink) | |||
set_ifndef(BOARD_FLASH_RUNNER jlink) | |||
endif() | |||
|
|||
if(CONFIG_BOARD_LPCXPRESSO55S69_CPU0) | |||
board_runner_args(jlink "--device=LPC55S69_core0") | |||
endif() | |||
if(CONFIG_BOARD_LPCXPRESSO55S69_CPU1) | |||
board_runner_args(jlink "--device=LPC55S69_core1") | |||
endif() | |||
|
|||
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,206 @@ | |||
.. _lpcxpresso55s69: | |||
|
|||
NXP LPCXPRESSO55S69 | |||
################### | |||
|
|||
Overview | |||
******** | |||
|
|||
The LPCXpresso55S69 development board provides the ideal platform for evaluation | |||
of and development with the LPC55S6x MCU based on the Arm® Cortex®-M33 | |||
architecture. The board includes a high performance onboard debug probe, audio | |||
subsystem, and accelerometer, with several options for adding off-the-shelf | |||
add-on boards for networking, sensors, displays, and other interfaces. | |||
|
|||
.. image:: ./lpcxpresso55s69.png | |||
:width: 720px | |||
:align: center | |||
:alt: LPCXPRESSO55S69 | |||
|
|||
Hardware | |||
******** | |||
|
|||
- LPC55S69 dual core Arm Cortex-M33 microcontroller running at up to 100 MHz | |||
- Onboard, high-speed USB, Link2 debug probe with CMSIS-DAP and SEGGER J-Link | |||
protocol options | |||
- UART and SPI port bridging from LPC55S69 target to USB via the onboard debug | |||
probe | |||
- Hardware support for external debug probe | |||
- 3 x user LEDs, plus Reset, ISP (3) and user buttons | |||
- Micro SD card slot (4-bit SDIO) | |||
- NXP MMA8652FCR1 accelerometer | |||
- Stereo audio codec with line in/out | |||
- High and full speed USB ports with micro A/B connector for host or device | |||
functionality | |||
- MikroEletronika Click expansion option | |||
- LPCXpresso-V3 expansion option compatible with Arduino UNO | |||
- PMod compatible expansion / host connector | |||
|
|||
For more information about the LPC55S69 SoC and LPCXPRESSO55S69 board, see: | |||
|
|||
- `LPC55S69 SoC Website`_ | |||
- `LPC55S69 Datasheet`_ | |||
- `LPC55S69 Reference Manual`_ | |||
- `LPCXPRESSO55S69 Website`_ | |||
- `LPCXPRESSO55S69 User Guide`_ | |||
- `LPCXPRESSO55S69 Schematics`_ | |||
|
|||
Supported Features | |||
================== | |||
|
|||
The lpcxpresso55s69 board configuration supports the following hardware | |||
features: | |||
|
|||
+-----------+------------+-------------------------------------+ | |||
| Interface | Controller | Driver/Component | | |||
+===========+============+=====================================+ | |||
| NVIC | on-chip | nested vector interrupt controller | | |||
+-----------+------------+-------------------------------------+ | |||
| SYSTICK | on-chip | systick | | |||
+-----------+------------+-------------------------------------+ | |||
| IOCON | on-chip | pinmux | | |||
+-----------+------------+-------------------------------------+ | |||
| GPIO | on-chip | gpio | | |||
+-----------+------------+-------------------------------------+ | |||
| USART | on-chip | serial port-polling | | |||
+-----------+------------+-------------------------------------+ | |||
|
|||
The default configuration file | |||
``boards/arm/lpcxpresso55s69/lpcxpresso55s69_cpu0_defconfig`` | |||
only enables the first core. | |||
|
|||
Other hardware features are not currently supported by the port. | |||
|
|||
Connections and IOs | |||
=================== | |||
|
|||
The LPC55S69 SoC has IOCON registers, which can be used to configure the | |||
functionality of a pin. | |||
|
|||
+---------+-----------------+----------------------------+ | |||
| Name | Function | Usage | | |||
+=========+=================+============================+ | |||
| PIO0_29 | USART | USART RX | | |||
+---------+-----------------+----------------------------+ | |||
| PIO0_30 | USART | USART TX | | |||
+---------+-----------------+----------------------------+ | |||
| PIO1_4 | GPIO | RED LED | | |||
+---------+-----------------+----------------------------+ | |||
| PIO1_6 | GPIO | BLUE_LED | | |||
+---------+-----------------+----------------------------+ | |||
| PIO1_7 | GPIO | GREEN LED | | |||
+---------+-----------------+----------------------------+ | |||
|
|||
System Clock | |||
============ | |||
|
|||
The LPC55S69 SoC is configured to use the internal FRO at 96MHz as a source for | |||
the system clock. Other sources for the system clock are provided in the SOC, | |||
depending on your system requirements. | |||
|
|||
Serial Port | |||
=========== | |||
|
|||
The LPC55S69 SoC has 8 FLEXCOMM interfaces for serial communication. One is | |||
configured as USART for the console and the remaining are not used. | |||
|
|||
Programming and Debugging | |||
************************* | |||
|
|||
Build and flash applications as usual (see :ref:`build_an_application` and | |||
:ref:`application_run` for more details). | |||
|
|||
Configuring a Debug Probe | |||
========================= | |||
|
|||
A debug probe is used for both flashing and debugging the board. This board is | |||
configured by default to use the LPC-Link2 CMSIS-DAP Onboard Debug Probe, | |||
however the :ref:`pyocd-debug-host-tools` does not yet support this probe so you | |||
must reconfigure the board for one of the following debug probes instead. | |||
|
|||
:ref:`lpclink2-jlink-onboard-debug-probe` | |||
----------------------------------------- | |||
|
|||
Install the :ref:`jlink-debug-host-tools` and make sure they are in your search | |||
path. | |||
|
|||
Follow the instructions in :ref:`lpclink2-jlink-onboard-debug-probe` to program | |||
the J-Link firmware. Please make sure you have the latest firmware for this | |||
board. | |||
|
|||
:ref:`opensda-daplink-onboard-debug-probe` | |||
------------------------------------------ | |||
|
|||
PyOCD support for this board is ongoing and not yet available. | |||
To use DAPLink's flash memory programming on this board, follow the instructions | |||
for `updating LPCXpresso firmware`_. | |||
|
|||
Configuring a Console | |||
===================== | |||
|
|||
Connect a USB cable from your PC to P6, and use the serial terminal of your choice | |||
(minicom, putty, etc.) with the following settings: | |||
|
|||
- Speed: 115200 | |||
- Data: 8 bits | |||
- Parity: None | |||
- Stop bits: 1 | |||
|
|||
Flashing | |||
======== | |||
|
|||
Here is an example for the :ref:`hello_world` application. This example uses the | |||
:ref:`jlink-debug-host-tools` as default. | |||
|
|||
.. zephyr-app-commands:: | |||
:zephyr-app: samples/hello_world | |||
:board: lpcxpresso55s69_cpu0 | |||
:goals: flash | |||
|
|||
Open a serial terminal, reset the board (press the RESET button), and you should | |||
see the following message in the terminal: | |||
|
|||
.. code-block:: console | |||
***** Booting Zephyr OS v1.14.0 ***** | |||
Hello World! lpcxpresso55s69_cpu0 | |||
Debugging | |||
========= | |||
|
|||
Here is an example for the :ref:`hello_world` application. This example uses the | |||
:ref:`jlink-debug-host-tools` as default. | |||
|
|||
.. zephyr-app-commands:: | |||
:zephyr-app: samples/hello_world | |||
:board: lpcxpresso55s69_cpu0 | |||
:goals: debug | |||
|
|||
Open a serial terminal, step through the application in your debugger, and you | |||
should see the following message in the terminal: | |||
|
|||
.. code-block:: console | |||
***** Booting Zephyr OS zephyr-v1.14.0 ***** | |||
Hello World! lpcxpresso55s69_cpu0 | |||
.. _LPC55S69 SoC Website: | |||
https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/lpc-cortex-m-mcus/lpc5500-cortex-m33/high-efficiency-arm-cortex-m33-based-microcontroller-family:LPC55S6x | |||
|
|||
.. _LPC55S69 Datasheet: | |||
https://www.nxp.com/docs/en/data-sheet/LPC55S6x.pdf | |||
|
|||
.. _LPC55S69 Reference Manual: | |||
https://www.nxp.com/docs/en/user-guide/UM11126.pdf | |||
|
|||
.. _LPCXPRESSO55S69 Website: | |||
https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/lpc-cortex-m-mcus/lpc5500-cortex-m33/lpcxpresso55s69-development-board:LPC55S69-EVK | |||
|
|||
.. _LPCXPRESSO55S69 User Guide: | |||
https://www.nxp.com/webapp/Download?colCode=UM11158 | |||
|
|||
.. _LPCXPRESSO55S69 Schematics: | |||
https://www.nxp.com/webapp/Download?colCode=LPC55S69-SCH | |||
|
|||
.. _updating LPCXpresso firmware: | |||
https://os.mbed.com/teams/NXP/wiki/Updating-LPCXpresso-firmware |
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,33 @@ | |||
/* | |||
* Copyright (c) 2019, NXP | |||
* | |||
* SPDX-License-Identifier: Apache-2.0 | |||
*/ | |||
|
|||
/ { | |||
aliases{ | |||
usart-0 = &usart0; | |||
led0 = &red_led; | |||
led1 = &green_led; | |||
led2 = &blue_led; | |||
}; | |||
|
|||
leds { | |||
compatible = "gpio-leds"; | |||
green_led: led_1 { | |||
gpios = <&gpio1 7 0>; | |||
label = "User LD2"; | |||
status = "disabled"; | |||
}; | |||
blue_led: led_2 { | |||
gpios = <&gpio1 4 0>; | |||
label = "User LD3"; | |||
status = "disabled"; | |||
}; | |||
red_led: led_3 { | |||
gpios = <&gpio1 6 0>; | |||
label = "User LD4"; | |||
status = "disabled"; | |||
}; | |||
}; | |||
}; |
Oops, something went wrong.