Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions boards/arm/nrf52840_mdk_dongle/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# nRF52840-MDK board configuration

# Copyright (c) 2021 Adam BZH ([email protected])
# SPDX-License-Identifier: Apache-2.0

config BOARD_ENABLE_DCDC
bool "Enable DCDC mode"
select SOC_DCDC_NRF52X
default y
depends on BOARD_NRF52840_MDK_DONGLE
8 changes: 8 additions & 0 deletions boards/arm/nrf52840_mdk_dongle/Kconfig.board
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# nRF52840-MDK-dongle board configuration

# Copyright (c) 2021 Adam BZH ([email protected])
# SPDX-License-Identifier: Apache-2.0

config BOARD_NRF52840_MDK_DONGLE
bool "NRF52840-MDK-dongle"
depends on SOC_NRF52840_QIAA
24 changes: 24 additions & 0 deletions boards/arm/nrf52840_mdk_dongle/Kconfig.defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# nRF52840-MDK board configuration

# Copyright (c) 2021 Adam BZH ([email protected])
# SPDX-License-Identifier: Apache-2.0

if BOARD_NRF52840_MDK_DONGLE

config BOARD
default "nrf52840_mdk_dongle"

if USB

config USB_NRFX
default y

config USB_DEVICE_STACK
default y

endif # USB

config BT_CTLR
default BT

endif # BOARD_NRF52840_MDK_DONGLE
8 changes: 8 additions & 0 deletions boards/arm/nrf52840_mdk_dongle/board.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# SPDX-License-Identifier: Apache-2.0

board_runner_args(jlink "--device=nrf52" "--speed=4000")
board_runner_args(pyocd "--target=nrf52840" "--frequency=4000000")
board_runner_args(blackmagicprobe "--gdb-serial=/dev/ttyBmpGdb")
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake)
include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake)
24 changes: 24 additions & 0 deletions boards/arm/nrf52840_mdk_dongle/doc/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
.. _nrf52840_mdk_dongle:

nRF52840-mdk-dongle
###################

Overview
********

The nRF52840-MDK USB Dongle is a versatile, easy-to-use IoT hardware platform for
Bluetooth 5, Bluetooth Mesh, Thread, IEEE 802.15.4, ANT and 2.4GHz proprietary
applications using the nRF52840 SoC.

The kit features programmable user button, RGB LED, up to 12 GPIOs, antenna
selection for custom applications.

See `nRF52840-mdk-dongle website`_ for more information about the development
board and `nRF52840 website`_ for the official reference on the IC itself.

References
**********
.. target-notes::

.. _nRF52840 website: https://www.nordicsemi.com/Products/Low-power-short-range-wireless/nRF52840
.. _nRF52840-mdk-dongle website: https://wiki.makerdiary.com/nrf52840-mdk-usb-dongle/
179 changes: 179 additions & 0 deletions boards/arm/nrf52840_mdk_dongle/nrf52840_mdk_dongle.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
/*
* Copyright (c) 2021 Adam BZH ([email protected])
*
* SPDX-License-Identifier: Apache-2.0
*/

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

/ {
model = "nRF52840-MDK-dongle Dev Kit";
compatible = "nordic,nRF52840-MDK-dongle";

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

leds {
compatible = "gpio-leds";
led0_green: led_0 {
gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
label = "Green LED 0";
};
led1_red: led_1 {
gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
label = "Red LED 1";
};
led2_blue: led_2 {
gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
label = "Blue LED 2";
};
};

pwmleds {
compatible = "pwm-leds";
pwm_led0_green: pwm_led_0 {
pwms = <&pwm0 22>;
label = "Green PWM LED 0";
};
pwm_led1_red: pwm_led_1 {
pwms = <&pwm0 23>;
label = "Red PWM LED 1";
};
pwm_led2_blue: pwm_led_2 {
pwms = <&pwm0 24>;
label = "Blue PWM LED 2";
};
};

buttons {
compatible = "gpio-keys";
button0: button_0 {
gpios = <&gpio0 18 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
label = "Push button switch 0";
};
};

/* These aliases are provided for compatibility with samples */
aliases {
sw0 = &button0;
led0 = &led0_green;
led1 = &led1_red;
led2 = &led2_blue;
led0-green = &led0_green;
led1-red = &led1_red;
led1-blue = &led2_blue;
pwm-led0 = &pwm_led0_green;
pwm-led1 = &pwm_led1_red;
pwm-led2 = &pwm_led2_blue;
green-pwm-led = &pwm_led0_green;
red-pwm-led = &pwm_led1_red;
blue-pwm-led = &pwm_led2_blue;
};
};

&adc {
status = "okay";
};

&gpiote {
status = "okay";
};

&gpio0 {
status = "okay";
};

&gpio1 {
status = "okay";
};

&uart0 {
compatible = "nordic,nrf-uart";
current-speed = <115200>;
status = "okay";
tx-pin = <20>;
rx-pin = <19>;
rts-pin = <2>;
cts-pin = <3>;
};

&i2c0 {
compatible = "nordic,nrf-twi";
status = "okay";
sda-pin = <6>;
scl-pin = <7>;
};

&i2c1 {
compatible = "nordic,nrf-twi";
status = "okay";
sda-pin = <8>;
scl-pin = <21>;
};

&pwm0 {
status = "okay";
ch0-pin = <22>;
ch0-inverted;
ch1-pin = <23>;
ch1-inverted;
ch2-pin = <24>;
ch2-inverted;
};

&flash0 {
/*
* For more information, see:
* https://docs.zephyrproject.org/latest/reference/devicetree/bindings/fixed-partitions.html
*/
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;

boot_partition: partition@0 {
label = "mcuboot";
reg = <0x000000000 0x0000C000>;
};
slot0_partition: partition@c000 {
label = "image-0";
reg = <0x0000C000 0x00067000>;
};
slot1_partition: partition@73000 {
label = "image-1";
reg = <0x00073000 0x00067000>;
};
scratch_partition: partition@da000 {
label = "image-scratch";
reg = <0x000da000 0x0001e000>;
};

/*
* The flash starting at 0x000f8000 and ending at
* 0x000fffff is reserved for use by the application.
*/

/*
* Storage partition will be used by FCB/LittleFS/NVS
* if enabled.
*/
storage_partition: partition@f8000 {
label = "storage";
reg = <0x000f8000 0x00008000>;
};
};
};

&usbd {
compatible = "nordic,nrf-usbd";
status = "okay";
};
13 changes: 13 additions & 0 deletions boards/arm/nrf52840_mdk_dongle/nrf52840_mdk_dongle.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
identifier: nrf52840_mdk_dongle
name: nRF52840-MDK-dongle
type: mcu
arch: arm
toolchain:
- zephyr
- gnuarmemb
- xtools
supported:
- usb_device
- ble
- ieee802154
- pwm
21 changes: 21 additions & 0 deletions boards/arm/nrf52840_mdk_dongle/nrf52840_mdk_dongle_defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# SPDX-License-Identifier: Apache-2.0

CONFIG_SOC_SERIES_NRF52X=y
CONFIG_SOC_NRF52840_QIAA=y
CONFIG_BOARD_NRF52840_MDK_DONGLE=y

# Enable MPU
CONFIG_ARM_MPU=y

# enable GPIO
CONFIG_GPIO=y

# enable uart driver
CONFIG_SERIAL=y

# enable console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y

# additional board options
CONFIG_GPIO_AS_PINRESET=n