Skip to content
Permalink
Browse files

boards: arm: Add Nordic nRF52811 board

This commit adds support for board: nrf52811_PCA10056.

The nRF52840 DK: PCA10056 is the recommend development kit, it emulates
the nRF52811, and can be used as a starting point for development
before moving over to a custom board.

Please note that this development kit does not support Bluetooth
Direction Finding. What is more it cannot be used with most of Arduino
shields because of PCA10056 PIN layout.

Signed-off-by: Jakub Rzeszutko <jakub.rzeszutko@nordicsemi.no>
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
  • Loading branch information...
Jakub Rzeszutko authored and carlescufi committed Apr 2, 2019
1 parent 0efddb6 commit d9c18ff05e3e692a1a75f6127a481408e4e0d583
@@ -0,0 +1,9 @@
# Copyright (c) 2019 Nordic Semiconductor ASA

# SPDX-License-Identifier: Apache-2.0

# The nrf52811_pca10056 board mirrors the nRF52840 DK hardware. This
# needs to be considered by certain system initialization functionality
# residing in system_nrf52811.c and SoC dependent routines in nrfx_coredep.h.
zephyr_compile_definitions(DEVELOP_IN_NRF52840)
zephyr_compile_definitions(NRFX_COREDEP_DELAY_US_LOOP_CYCLES=3)
@@ -0,0 +1,14 @@
# Kconfig - nRF52811 PCA10056 board configuration
#
# Copyright (c) 2019 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: Apache-2.0

if BOARD_NRF52811_PCA10056

config BOARD_ENABLE_DCDC
bool "Enable DCDC mode"
select SOC_DCDC_NRF52X
default y

endif # BOARD_NRF52811_PCA10056
@@ -0,0 +1,9 @@
# Kconfig - nRF52811 PCA10056 board configuration
#
# Copyright (c) 2019 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: Apache-2.0

config BOARD_NRF52811_PCA10056
bool "nRF52811 PCA10056"
depends on SOC_NRF52811_QFAA
@@ -0,0 +1,43 @@
# Kconfig - nRF52811 PCA10056 board configuration
#
# Copyright (c) 2019 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: Apache-2.0

if BOARD_NRF52811_PCA10056

config BOARD
default "nrf52811_pca10056"

config BT_CTLR
default BT

if ADC

config ADC_0
default y

endif # ADC

if I2C

config I2C_0
default y

endif # I2C

if SPI

config SPI_0
default y

endif # SPI

if PWM

config PWM_0
default y

endif # PWM

endif # BOARD_NRF52811_PCA10056
@@ -0,0 +1,8 @@
# Copyright (c) 2019 Nordic Semiconductor ASA

# SPDX-License-Identifier: Apache-2.0

board_runner_args(nrfjprog "--nrf-family=NRF52")
board_runner_args(jlink "--device=nrf52" "--speed=4000")
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
@@ -0,0 +1,24 @@
.. _nrf52811_pca10056:

nRF52811-PCA10056
#################

Overview
********

The nrf52811_pca10056 board is a modified version of the
:ref:`nrf52840_pca10056` that enforces the limitations imposed by the nRF52811
IC, which is a variant of the original nRF52840. Since Nordic does not offer a
development kit for the nRF52811 you can use this board to develop for this IC
while using the nRF52840 Development Kit (PCA10056).

See :ref:`nrf52840_pca10056` for more information about the development board
and `nRF52811 website`_ for the official reference on the IC itself.

References
**********

.. target-notes::

.. _nRF52811 website: https://www.nordicsemi.com/Products/Low-power-short-range-wireless/nRF52811

@@ -0,0 +1,158 @@
/*
* Copyright (c) 2019 Nordic Semiconductor
*
* SPDX-License-Identifier: Apache-2.0
*/

/dts-v1/;
#include <nordic/nrf52811_qfaa.dtsi>

/ {
model = "Nordic PCA10056 Dev Kit";
compatible = "nordic,pca10056-dk", "nordic,nrf52811-qfaa",
"nordic,nrf52811";

chosen {
zephyr,console = &uart0;
zephyr,shell-uart = &uart0;
zephyr,uart-mcumgr = &uart0;
zephyr,bt-mon-uart = &uart0;
zephyr,sram = &sram0;
zephyr,flash = &flash0;
zephyr,code-partition = &slot0_partition;
};

leds {
compatible = "gpio-leds";
led0: led_0 {
gpios = <&gpio0 13 GPIO_INT_ACTIVE_LOW>;
label = "Green LED 0";
};
led1: led_1 {
gpios = <&gpio0 14 GPIO_INT_ACTIVE_LOW>;
label = "Green LED 1";
};
led2: led_2 {
gpios = <&gpio0 15 GPIO_INT_ACTIVE_LOW>;
label = "Green LED 2";
};
led3: led_3 {
gpios = <&gpio0 16 GPIO_INT_ACTIVE_LOW>;
label = "Green LED 3";
};
};

buttons {
compatible = "gpio-keys";
button0: button_0 {
gpios = <&gpio0 11 GPIO_PUD_PULL_UP>;
label = "Push button switch 0";
};
button1: button_1 {
gpios = <&gpio0 12 GPIO_PUD_PULL_UP>;
label = "Push button switch 1";
};
button2: button_2 {
gpios = <&gpio0 24 GPIO_PUD_PULL_UP>;
label = "Push button switch 2";
};
button3: button_3 {
gpios = <&gpio0 25 GPIO_PUD_PULL_UP>;
label = "Push button switch 3";
};
};

/* These aliases are provided for compatibility with samples */
aliases {
led0 = &led0;
led1 = &led1;
led2 = &led2;
led3 = &led3;
sw0 = &button0;
sw1 = &button1;
sw2 = &button2;
sw3 = &button3;
};
};

&adc {
status ="ok";
};

&gpiote {
status ="ok";
};

&gpio0 {
status ="ok";
};

&uart0 {
compatible = "nordic,nrf-uart";
current-speed = <115200>;
status = "ok";
tx-pin = <6>;
rx-pin = <8>;
rts-pin = <5>;
cts-pin = <7>;
};

&i2c0 {
/* Arduino compatible PINs */
status = "ok";
sda-pin = <26>;
scl-pin = <27>;
};

&pwm0 {
status = "ok";
ch0-pin = <13>;
ch0-inverted;
};

&spi0 {
status = "ok";
sck-pin = <0>;
mosi-pin = <1>;
miso-pin = <9>;
};

&spi1 {
/* cannot be used with i2c0 */
sck-pin = <19>;
mosi-pin = <20>;
miso-pin = <22>;
};

&flash0 {
/*
* For more information, see:
* http://docs.zephyrproject.org/latest/guides/dts/index.html#flash-partitions
*/
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;

boot_partition: partition@0 {
label = "mcuboot";
reg = <0x00000000 0xc000>;
};
slot0_partition: partition@c000 {
label = "image-0";
reg = <0x0000C000 0xd000>;
};
slot1_partition: partition@19000 {
label = "image-1";
reg = <0x00019000 0xd000>;
};
scratch_partition: partition@26000 {
label = "image-scratch";
reg = <0x00026000 0x3000>;
};
storage_partition: partition@29000 {
label = "storage";
reg = <0x00029000 0x00007000>;
};
};
};
@@ -0,0 +1,12 @@
identifier: nrf52811_pca10056
name: nRF52811-PCA10056
type: mcu
arch: arm
toolchain:
- zephyr
- gnuarmemb
- xtools
ram: 24
flash: 192
supported:
- counter
@@ -0,0 +1,30 @@
# Copyright (c) 2016 Nordic Semiconductor ASA

# SPDX-License-Identifier: Apache-2.0

CONFIG_ARM=y
CONFIG_SOC_FAMILY_NRF=y
CONFIG_SOC_SERIES_NRF52X=y
CONFIG_SOC_NRF52811_QFAA=y
CONFIG_BOARD_NRF52811_PCA10056=y

# Enable MPU
CONFIG_ARM_MPU=y

# Enable UART
CONFIG_SERIAL=y
CONFIG_UART_0_NRF_UART=y

# enable console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y

# enable GPIO
CONFIG_GPIO=y

# additional board options
CONFIG_GPIO_AS_PINRESET=y

# Bluetooth not enabled by default on nRF52811 due to RAM limitations when
# running the default set of kernel tests.
# Enable this on your prj.conf to include Bluetooth support
@@ -26,6 +26,8 @@
#include "radio_nrf51.h"
#elif defined(CONFIG_SOC_NRF52810)
#include "radio_nrf52810.h"
#elif defined(CONFIG_SOC_NRF52811)
#include "radio_nrf52811.h"
#elif defined(CONFIG_SOC_NRF52832)
#include "radio_nrf52832.h"
#elif defined(CONFIG_SOC_NRF52840)

0 comments on commit d9c18ff

Please sign in to comment.
You can’t perform that action at this time.