From ac112f88d0496d33a9195ace02ed3928fcb015d3 Mon Sep 17 00:00:00 2001 From: roland van straten Date: Tue, 10 Sep 2019 23:01:27 +0200 Subject: [PATCH] nrf/boards: Add board definition for uBlox Nina B1 series BLE modules. --- ports/nrf/README.md | 2 + ports/nrf/boards/evk_nina_b1/mpconfigboard.h | 72 +++++++++++++++++++ ports/nrf/boards/evk_nina_b1/mpconfigboard.mk | 7 ++ ports/nrf/boards/evk_nina_b1/pins.csv | 41 +++++++++++ 4 files changed, 122 insertions(+) create mode 100644 ports/nrf/boards/evk_nina_b1/mpconfigboard.h create mode 100644 ports/nrf/boards/evk_nina_b1/mpconfigboard.mk create mode 100644 ports/nrf/boards/evk_nina_b1/pins.csv diff --git a/ports/nrf/README.md b/ports/nrf/README.md index df5904eb61..49642f00e9 100644 --- a/ports/nrf/README.md +++ b/ports/nrf/README.md @@ -36,6 +36,7 @@ This is a port of MicroPython to the Nordic Semiconductor nRF series of chips. * [Arduino Primo](http://www.arduino.org/products/boards/arduino-primo) * [IBK-BLYST-NANO breakout board](https://www.crowdsupply.com/i-syst/blyst-nano) * [BLUEIO-TAG-EVIM BLYST Nano Sensor board](https://www.crowdsupply.com/i-syst/blyst-nano) + * [uBlox EVK-NINA-B1](https://www.u-blox.com/en/product/evk-nina-b1) * nRF52840 * [PCA10056](http://www.nordicsemi.com/eng/Products/nRF52840-Preview-DK) * [Particle Xenon](https://docs.particle.io/xenon/) @@ -126,6 +127,7 @@ arduino_primo | s132 | Peripheral and Central | [PyOCD ibk_blyst_nano | s132 | Peripheral and Central | [IDAP](#idap-midap-link-targets) idk_blyst_nano | s132 | Peripheral and Central | [IDAP](#idap-midap-link-targets) blueio_tag_evim | s132 | Peripheral and Central | [IDAP](#idap-midap-link-targets) +evk_nina_b1 | s132 | Peripheral and Central | [Segger](#segger-targets) pca10056 | s140 | Peripheral and Central | [Segger](#segger-targets) particle_xenon | s140 | Peripheral and Central | [Black Magic Probe](#black-magic-probe-targets) diff --git a/ports/nrf/boards/evk_nina_b1/mpconfigboard.h b/ports/nrf/boards/evk_nina_b1/mpconfigboard.h new file mode 100644 index 0000000000..ced6b8cb1f --- /dev/null +++ b/ports/nrf/boards/evk_nina_b1/mpconfigboard.h @@ -0,0 +1,72 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2019 Roland van Straten + * + * 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. + */ + +// Datasheet for board: +// https://www.u-blox.com/sites/default/files/EVK-NINA-B1_UserGuide_%28UBX-15028120%29.pdf +#define MICROPY_HW_BOARD_NAME "EVK_NINA_B1" +#define MICROPY_HW_MCU_NAME "NRF52832" +#define MICROPY_PY_SYS_PLATFORM "nrf52" + +#define MICROPY_PY_MACHINE_UART (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_PY_RANDOM_HW_RNG (1) + +#define MICROPY_HW_HAS_LED (1) +#define MICROPY_HW_LED_TRICOLOR (1) +#define MICROPY_HW_LED_PULLUP (1) + +#define MICROPY_HW_LED_RED (8) // LED1 DS8 Red +#define MICROPY_HW_LED_GREEN (16) // LED2 DS8 Green +#define MICROPY_HW_LED_BLUE (18) // LED3 DS8 Blue +// LEDs conflict with UART +//#define MICROPY_HW_LED4 (7) // DS1 Green +//#define MICROPY_HW_LED5 (31) // DS2 Orange +//#define MICROPY_HW_LED6 (5) // DS7 Green +//#define MICROPY_HW_LED7 (6) // DS8 Orange + +// UART config +#define MICROPY_HW_UART1_RX (5) +#define MICROPY_HW_UART1_TX (6) +#define MICROPY_HW_UART1_CTS (7) +#define MICROPY_HW_UART1_RTS (31) +#define MICROPY_HW_UART1_HWFC (1) + +// SPI0 config +#define MICROPY_HW_SPI0_NAME "SPI0" +#define MICROPY_HW_SPI0_SCK (14) +#define MICROPY_HW_SPI0_MOSI (13) +#define MICROPY_HW_SPI0_MISO (12) + +#define MICROPY_HW_PWM0_NAME "PWM0" +#define MICROPY_HW_PWM1_NAME "PWM1" +#define MICROPY_HW_PWM2_NAME "PWM2" + +#define HELP_TEXT_BOARD_LED "1,2,3" diff --git a/ports/nrf/boards/evk_nina_b1/mpconfigboard.mk b/ports/nrf/boards/evk_nina_b1/mpconfigboard.mk new file mode 100644 index 0000000000..db64a60dd3 --- /dev/null +++ b/ports/nrf/boards/evk_nina_b1/mpconfigboard.mk @@ -0,0 +1,7 @@ +MCU_SERIES = m4 +MCU_VARIANT = nrf52 +MCU_SUB_VARIANT = nrf52832 +SOFTDEV_VERSION = 6.1.1 +LD_FILES += boards/nrf52832_512k_64k.ld + +NRF_DEFINES += -DNRF52832_XXAA diff --git a/ports/nrf/boards/evk_nina_b1/pins.csv b/ports/nrf/boards/evk_nina_b1/pins.csv new file mode 100644 index 0000000000..876c7ddc1a --- /dev/null +++ b/ports/nrf/boards/evk_nina_b1/pins.csv @@ -0,0 +1,41 @@ +A0,P3,ADC0_IN1 +A1,P2,ADC0_IN0 +A2,P4,ADC0_IN2 +A3,P30,ADC0_IN6 +A4,P29,ADC0_IN5 +A5,P28,ADC0_IN4 +LED1,P8 +LED2,P16 +LED3,P18 +SW2,P30 +UART1_RX,P5 +UART1_TX,P6 +UART1_CTS,P7 +UART1_RTS,P8 +SDA,P2 +SCL,P3 +NFC1,P9 +NFC2,P10 +D0,P5 +D1,P6 +D2,P7 +D3,P31 +D4,P18 +D6,P9 +D7,P10 +D9,P8 +D10,P11 +D11,P13 +D12,P12 +D13,P14 +P15,P15 +P17,P17 +P19,P19 +P20,P20 +P21,P21 +P22,P22 +P23,P23 +P24,P24 +P25,P25 +P26,P26 +P27,P27