nrf: Add board definition for nRF52840-MDK-USB-Dongle.
This commit is contained in:
parent
d9e8edc8bc
commit
486cb6dd4a
@ -41,6 +41,7 @@ This is a port of MicroPython to the Nordic Semiconductor nRF series of chips.
|
|||||||
* [PCA10056](http://www.nordicsemi.com/eng/Products/nRF52840-Preview-DK)
|
* [PCA10056](http://www.nordicsemi.com/eng/Products/nRF52840-Preview-DK)
|
||||||
* [PCA10059](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-Dongle)
|
* [PCA10059](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-Dongle)
|
||||||
* [Particle Xenon](https://docs.particle.io/xenon/)
|
* [Particle Xenon](https://docs.particle.io/xenon/)
|
||||||
|
* [nRF52840 MDK USB Dongle](boards/nrf52840-mdk-usb-dongle/README.md)
|
||||||
* nRF9160
|
* nRF9160
|
||||||
* [PCA10090](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF9160-DK)
|
* [PCA10090](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF9160-DK)
|
||||||
* [Actinius Icarus](https://www.actinius.com/icarus)
|
* [Actinius Icarus](https://www.actinius.com/icarus)
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
|
|
||||||
/* Flash layout: softdevice | application | filesystem */
|
/* Flash layout: softdevice | application | filesystem */
|
||||||
/* RAM layout: softdevice RAM | application RAM */
|
/* RAM layout: softdevice RAM | application RAM */
|
||||||
_sd_size = DEFINED(_sd_size) ? _sd_size : 0;
|
|
||||||
|
_ram_start = DEFINED(_ram_start) ? _ram_start : 0x20000000;
|
||||||
|
_flash_start = DEFINED(_flash_start) ? _flash_start : 0;
|
||||||
|
_sd_size = DEFINED(_sd_size) ? _sd_size : _flash_start;
|
||||||
_sd_ram = DEFINED(_sd_ram) ? _sd_ram : 0;
|
_sd_ram = DEFINED(_sd_ram) ? _sd_ram : 0;
|
||||||
_fs_size = DEFINED(_fs_size) ? _fs_size : 64K; /* TODO: set to 0 if not using the filesystem */
|
_fs_size = DEFINED(_fs_size) ? _fs_size : 64K; /* TODO: set to 0 if not using the filesystem */
|
||||||
_app_size = _flash_size - _sd_size - _fs_size;
|
_app_size = _flash_size - _sd_size - _fs_size;
|
||||||
_app_start = _sd_size;
|
_app_start = _sd_size;
|
||||||
_fs_start = _sd_size + _app_size;
|
_fs_start = _sd_size + _app_size;
|
||||||
_fs_end = _fs_start + _fs_size;
|
_fs_end = _fs_start + _fs_size;
|
||||||
_app_ram_start = 0x20000000 + _sd_ram;
|
_app_ram_start = _ram_start + _sd_ram;
|
||||||
_app_ram_size = _ram_size - _sd_ram;
|
_app_ram_size = _ram_size - _sd_ram;
|
||||||
_heap_start = _ebss;
|
_heap_start = _ebss;
|
||||||
_heap_end = _ram_end - _stack_size;
|
_heap_end = _ram_end - _stack_size;
|
||||||
|
49
ports/nrf/boards/nrf52840-mdk-usb-dongle/README.md
Normal file
49
ports/nrf/boards/nrf52840-mdk-usb-dongle/README.md
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
nRF52840 MDK USB Dongle
|
||||||
|
=======================
|
||||||
|
|
||||||
|
The *[nRF52840 MDK USB
|
||||||
|
Dongle](https://wiki.makerdiary.com/nrf52840-mdk-usb-dongle)* is a small,
|
||||||
|
low-cost development board in a USB dongle form-factor powered by an nRF52840
|
||||||
|
with 1MB flash and 256KB RAM.
|
||||||
|
|
||||||
|
This device is pre-installed with [Open
|
||||||
|
Bootloader](https://wiki.makerdiary.com/nrf52840-mdk-usb-dongle/programming/),
|
||||||
|
allowing DFU upgrades over USB using Nordic [nRF
|
||||||
|
Connect](https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Connect-for-desktop)
|
||||||
|
or [nrfutil](https://github.com/NordicSemiconductor/pc-nrfutil/). To support
|
||||||
|
Open Bootloader, the flash and memory layout must be adjusted slightly (details
|
||||||
|
[here](https://devzone.nordicsemi.com/nordic/short-range-guides/b/getting-started/posts/nrf52840-dongle-programming-tutorial))
|
||||||
|
from the typical nRF build; this board definition ensure the appropriate build
|
||||||
|
configuration is used for MicroPython.
|
||||||
|
|
||||||
|
|
||||||
|
Pinout
|
||||||
|
------
|
||||||
|
|
||||||
|
The [pinout
|
||||||
|
diagram](https://wiki.makerdiary.com/nrf52840-mdk-usb-dongle/#pinout-diagram)
|
||||||
|
provides an overview of the available pins and their capabilities. All pins are
|
||||||
|
available in MicroPython, using the pin numbers labelled in the diagram
|
||||||
|
(excluding the leading port number, *P0*).
|
||||||
|
|
||||||
|
The three LEDs are available either through the usual `Pin` mechanism - pins
|
||||||
|
22-24 - or by `board.LED(n)` where n can be 1, 2 or 3.
|
||||||
|
|
||||||
|
|
||||||
|
Build instructions
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Follow the standard [nRF Port build instructions](../../README.md); but use
|
||||||
|
`nrf52840-mdk-usb-dongle` as the value for `BOARD`:
|
||||||
|
|
||||||
|
make BOARD=nrf52840-mdk-usb-dongle
|
||||||
|
|
||||||
|
The build artifacts will be created in `build-nrf52840-mdk-usb-dongle`. Once
|
||||||
|
built, the easiest way to deploy to the device is to open `firmware.hex` using
|
||||||
|
*nRF Connect* and select *Write*. Detailed instructions can be found on the
|
||||||
|
[developer
|
||||||
|
wiki](https://wiki.makerdiary.com/nrf52840-mdk-usb-dongle/programming/).
|
||||||
|
|
||||||
|
**Note** that the regular method of deployment for the MicroPython nRF port
|
||||||
|
(using `make deploy`) will *not* operate correctly and will overwrite the
|
||||||
|
bootloader.
|
71
ports/nrf/boards/nrf52840-mdk-usb-dongle/mpconfigboard.h
Normal file
71
ports/nrf/boards/nrf52840-mdk-usb-dongle/mpconfigboard.h
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Matt Trentini
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define MICROPY_HW_BOARD_NAME "MDK-USB-DONGLE"
|
||||||
|
#define MICROPY_HW_MCU_NAME "NRF52840"
|
||||||
|
#define MICROPY_PY_SYS_PLATFORM "nrf52840-MDK-USB-Dongle"
|
||||||
|
|
||||||
|
#define MICROPY_PY_MACHINE_UART (1)
|
||||||
|
#define MICROPY_PY_MACHINE_HW_PWM (1)
|
||||||
|
#define MICROPY_PY_MACHINE_HW_SPI (1)
|
||||||
|
#define MICROPY_PY_MACHINE_TIMER (1)
|
||||||
|
#define MICROPY_PY_MACHINE_RTCOUNTER (1)
|
||||||
|
#define MICROPY_PY_MACHINE_I2C (1)
|
||||||
|
#define MICROPY_PY_MACHINE_ADC (1)
|
||||||
|
#define MICROPY_PY_MACHINE_TEMP (1)
|
||||||
|
|
||||||
|
#define MICROPY_HW_ENABLE_RNG (1)
|
||||||
|
|
||||||
|
#define MICROPY_HW_USB_CDC (1)
|
||||||
|
|
||||||
|
#define MICROPY_HW_HAS_LED (1)
|
||||||
|
#define MICROPY_HW_LED_COUNT (3)
|
||||||
|
#define MICROPY_HW_LED_PULLUP (1)
|
||||||
|
|
||||||
|
#define MICROPY_HW_LED1 (22) // LED1 GREEN
|
||||||
|
#define MICROPY_HW_LED2 (23) // LED2 RED
|
||||||
|
#define MICROPY_HW_LED3 (24) // LED3 BLUE
|
||||||
|
|
||||||
|
// UART config
|
||||||
|
#define MICROPY_HW_UART1_RX (7)
|
||||||
|
#define MICROPY_HW_UART1_TX (8)
|
||||||
|
#define MICROPY_HW_UART1_CTS (9)
|
||||||
|
#define MICROPY_HW_UART1_RTS (10)
|
||||||
|
#define MICROPY_HW_UART1_HWFC (1)
|
||||||
|
|
||||||
|
// SPI0 config
|
||||||
|
#define MICROPY_HW_SPI0_NAME "SPI0"
|
||||||
|
|
||||||
|
#define MICROPY_HW_SPI0_SCK (19)
|
||||||
|
#define MICROPY_HW_SPI0_MOSI (20)
|
||||||
|
#define MICROPY_HW_SPI0_MISO (21)
|
||||||
|
|
||||||
|
#define MICROPY_HW_PWM0_NAME "PWM0"
|
||||||
|
#define MICROPY_HW_PWM1_NAME "PWM1"
|
||||||
|
#define MICROPY_HW_PWM2_NAME "PWM2"
|
||||||
|
#define MICROPY_HW_PWM3_NAME "PWM3"
|
||||||
|
|
||||||
|
#define HELP_TEXT_BOARD_LED "1,2,3"
|
@ -0,0 +1,7 @@
|
|||||||
|
MCU_SERIES = m4
|
||||||
|
MCU_VARIANT = nrf52
|
||||||
|
MCU_SUB_VARIANT = nrf52840
|
||||||
|
SOFTDEV_VERSION = 6.1.1
|
||||||
|
LD_FILES += boards/nrf52840-mdk-usb-dongle/nrf52840_open_bootloader.ld boards/nrf52840_1M_256k.ld
|
||||||
|
|
||||||
|
NRF_DEFINES += -DNRF52840_XXAA
|
@ -0,0 +1,2 @@
|
|||||||
|
_ram_start = 0x20000008;
|
||||||
|
_flash_start = 0x1000;
|
17
ports/nrf/boards/nrf52840-mdk-usb-dongle/pins.csv
Normal file
17
ports/nrf/boards/nrf52840-mdk-usb-dongle/pins.csv
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
P2,P2,ADC1_CH0
|
||||||
|
P3,P3,ADC1_CH1
|
||||||
|
P4,P4,ADC1_CH2
|
||||||
|
P5,P5,ADC1_CH3
|
||||||
|
P6,P6
|
||||||
|
P7,P7
|
||||||
|
P8,P8
|
||||||
|
P9,P9
|
||||||
|
P10,P10
|
||||||
|
USER,P18,P18
|
||||||
|
P19,P19
|
||||||
|
P20,P20
|
||||||
|
P21,P21
|
||||||
|
LED_G,P22,P22
|
||||||
|
LED_R,P23,P23
|
||||||
|
LED_B,P24,P24
|
||||||
|
P25,P25
|
|
Loading…
x
Reference in New Issue
Block a user