├── nrf52-taida ├── Makefile.features ├── Makefile ├── Makefile.include ├── Makefile.dep ├── include │ ├── periph_conf.h │ └── board.h └── doc.txt ├── .gitignore └── README.md /nrf52-taida/Makefile.features: -------------------------------------------------------------------------------- 1 | include $(RIOTBOARD)/common/nrf52xxxdk/Makefile.features 2 | -------------------------------------------------------------------------------- /nrf52-taida/Makefile: -------------------------------------------------------------------------------- 1 | MODULE = board 2 | DIRS = $(RIOTBOARD)/common/nrf52xxxdk 3 | 4 | include $(RIOTBASE)/Makefile.base 5 | -------------------------------------------------------------------------------- /nrf52-taida/Makefile.include: -------------------------------------------------------------------------------- 1 | export CPU_MODEL = nrf52832xxaa 2 | 3 | include $(RIOTBOARD)/common/nrf52xxxdk/Makefile.include 4 | -------------------------------------------------------------------------------- /nrf52-taida/Makefile.dep: -------------------------------------------------------------------------------- 1 | include $(RIOTBOARD)/common/nrf52xxxdk/Makefile.dep 2 | 3 | ifeq (,$(filter nrfmin,$(USEMODULE))) 4 | ifneq (,$(filter gnrc_netdev_default,$(USEMODULE))) 5 | USEPKG += nordic_softdevice_ble 6 | endif 7 | endif 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Compiled Object files 5 | *.slo 6 | *.lo 7 | *.o 8 | *.obj 9 | 10 | # Precompiled Headers 11 | *.gch 12 | *.pch 13 | 14 | # Compiled Dynamic libraries 15 | *.so 16 | *.dylib 17 | *.dll 18 | 19 | # Fortran module files 20 | *.mod 21 | *.smod 22 | 23 | # Compiled Static libraries 24 | *.lai 25 | *.la 26 | *.a 27 | *.lib 28 | 29 | # Executables 30 | *.exe 31 | *.out 32 | *.app 33 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # RIOT Taida Century NRF52832 2 | 3 | This is the RIOT-OS board definition for the Taida Century NRF52832 board that can be bought on sites like eBay, Aliexpress and so on. 4 | 5 | # How to use 6 | 7 | Copy the nrf52-taida folder and subfolders to the boards subdirectory of the RIOT-OS instalation. 8 | Change on the makefile the board definition to: 9 | 10 | BOARD ?= nrf52-taida 11 | 12 | For example, just go to examples/nimble-gatt, and on the makefile just change the board to *nrf52-taida*. 13 | Compile, flash and it should work right away. 14 | -------------------------------------------------------------------------------- /nrf52-taida/include/periph_conf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016-2018 Freie Universität Berlin 3 | * 2018 Inria 4 | * 5 | * This file is subject to the terms and conditions of the GNU Lesser 6 | * General Public License v2.1. See the file LICENSE in the top level 7 | * directory for more details. 8 | */ 9 | 10 | /** 11 | * @ingroup boards_nrf52dk 12 | * @{ 13 | * 14 | * @file 15 | * @brief Peripheral configuration for the nRF52 Taida Century board 16 | * 17 | * @author Hauke Petersen 18 | * @author Alexandre Abadie 19 | * 20 | */ 21 | 22 | #ifndef PERIPH_CONF_H 23 | #define PERIPH_CONF_H 24 | 25 | #include "periph_conf_common.h" 26 | 27 | #ifdef __cplusplus 28 | extern "C" { 29 | #endif 30 | 31 | /** 32 | * @name UART configuration 33 | * @{ 34 | */ 35 | #define UART_NUMOF (1U) 36 | #define UART_PIN_RX GPIO_PIN(0,18) 37 | #define UART_PIN_TX GPIO_PIN(0,19) 38 | /** @} */ 39 | 40 | #ifdef __cplusplus 41 | } 42 | #endif 43 | 44 | #endif /* PERIPH_CONF_H */ 45 | /** @} */ 46 | -------------------------------------------------------------------------------- /nrf52-taida/include/board.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016-2017 Freie Universität Berlin 3 | * 4 | * This file is subject to the terms and conditions of the GNU Lesser 5 | * General Public License v2.1. See the file LICENSE in the top level 6 | * directory for more details. 7 | */ 8 | 9 | /** 10 | * @ingroup boards_nrf52dk 11 | * @{ 12 | * 13 | * @file 14 | * @brief Board specific configuration for the nRF52 DK 15 | * 16 | * @author Hauke Petersen 17 | * @author Sebastian Meiling 18 | */ 19 | 20 | #ifndef BOARD_H 21 | #define BOARD_H 22 | 23 | #include "board_common.h" 24 | 25 | #ifdef __cplusplus 26 | extern "C" { 27 | #endif 28 | 29 | /** 30 | * @name LED pin configuration 31 | * @{ 32 | */ 33 | #define LED0_PIN GPIO_PIN(0, 30) 34 | #define LED1_PIN GPIO_PIN(0, 31) 35 | 36 | #define LED_PORT (NRF_P0) 37 | #define LED0_MASK (1 << 30) 38 | #define LED1_MASK (1 << 31) 39 | #define LED_MASK (LED0_MASK | LED1_MASK ) 40 | 41 | #define LED0_ON (LED_PORT->OUTCLR = LED0_MASK) 42 | #define LED0_OFF (LED_PORT->OUTSET = LED0_MASK) 43 | #define LED0_TOGGLE (LED_PORT->OUT ^= LED0_MASK) 44 | 45 | #define LED1_ON (LED_PORT->OUTCLR = LED1_MASK) 46 | #define LED1_OFF (LED_PORT->OUTSET = LED1_MASK) 47 | #define LED1_TOGGLE (LED_PORT->OUT ^= LED1_MASK) 48 | 49 | /** @} */ 50 | 51 | /** 52 | * @name Button pin configuration 53 | * @{ 54 | */ 55 | #define BTN0_PIN GPIO_PIN(0, 9) 56 | #define BTN0_MODE GPIO_IN_PU 57 | /** @} */ 58 | 59 | #ifdef __cplusplus 60 | } 61 | #endif 62 | 63 | #endif /* BOARD_H */ 64 | /** @} */ 65 | -------------------------------------------------------------------------------- /nrf52-taida/doc.txt: -------------------------------------------------------------------------------- 1 | /** 2 | @defgroup boards_nrf52dk nRF52 DK 3 | @ingroup boards 4 | @brief Support for the nRF52 DK 5 | 6 | ## Overview: 7 | There are some nameless simple development Boards with an nRF52832 available. 8 | These boards providing access to most SoC ports. There are two buttons (RST, 9 | KEY), two LED’s (Pin 30, 31), a voltage regulator and a current messurment shunt 10 | on board. A serial connection and flashing must be provided by external 11 | Hardware. 12 | 13 | The nRF52832 is a SoC with a 32-bit ARM® Cortex™-M4F CPU with 512kB Flash and 14 | 64kB RAM. The embedded 2.4GHz transceiver supports Bluetooth low energy, ANT and 15 | proprietary 2.4 GHz protocol stack. It is on air compatible with the nRF51 16 | Series, nRF24L and nRF24AP Series products from Nordic Semiconductor. 17 | 18 | ## Hardware: 19 | ![nRF52 minimal development 20 | board](https://github.com/d00616/temp/raw/master/nrf52-minidev.jpg) 21 | 22 | | MCU | NRF52832 | 23 | |:------------- |:--------------------- | 24 | | Family | ARM Cortex-M4F | 25 | | Vendor | Nordic Semiconductor | 26 | | RAM | 64Kb | 27 | | Flash | 512Kb | 28 | | Frequency | 64MHz | 29 | | FPU | yes | 30 | | Timers | 5 (32-bit) | 31 | | RTC | 3 | 32 | | ADCs | 1x 12-bit (8 channels) | 33 | | UARTs | 1 | 34 | | SPIs | 3 | 35 | | I2Cs | 2 | 36 | | I2S | 1 | 37 | | PWM | 3*4 Channels | 38 | | Radio | 2.4GHz BLE compatiple, -20 dBm to +4 dBm output, -96 dBm RX sensitivity | 39 | | Vcc | 1.7V - 3.6V | 40 | | Datasheet | [Datasheet](https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF52832) | 41 | | Reference Manual | [Reference Manual](http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.nrf52%2Fdita%2Fnrf52%2Fnrf52_series.html&cp=1) | 42 | 43 | ##Pin layout 44 | 45 | |MCU pin|Board pin|Function| 46 | |:-----------|:-----------|:----------| 47 | |P0.0| n.c. | | 48 | |P0.1| n.c. | | 49 | |P0.2| D07 | | 50 | |P0.3| D08 | | 51 | |P0.4| D09 | KEY | 52 | |P0.5| D10 | | 53 | |P0.6| D13 | | 54 | |P0.7| D14 | | 55 | |P0.8| D15 | | 56 | |P0.9| n.c. | | 57 | |P0.10| n.c. | NFC antenna 2 (unusable) | 58 | |P0.11| D18 | RXD (software defined) | 59 | |P0.12| D19 | TXD (software defined) | 60 | |P0.13| D20 | | 61 | |P0.14| D21 | | 62 | |P0.15| D22 | | 63 | |P0.16| D23 | | 64 | |P0.17| D24 | | 65 | |P0.18| D25 | | 66 | |P0.19| D26 | | 67 | |P0.20| D27 | | 68 | |P0.21| RST | RESET | 69 | |P0.22| D28 | near Radio! -> Low drive, low frequency I/O only. | 70 | |P0.23| D29 | near Radio! -> Low drive, low frequency I/O only. | 71 | |P0.24| D30 | near Radio! -> Low drive, low frequency I/O only. | 72 | |P0.25| D00 | near Radio! -> Low drive, low frequency I/O only. | 73 | |P0.26| D01 | near Radio! -> Low drive, low frequency I/O only. | 74 | |P0.27| D02 | near Radio! -> Low drive, low frequency I/O only. | 75 | |P0.28| D03 | near Radio! -> Low drive, low frequency I/O only. | 76 | |P0.29| D04 | near Radio! -> Low drive, low frequency I/O only. | 77 | |P0.30| D05 | LED0, near Radio! -> Low drive, low frequency I/O only. | 78 | |P0.31| D06 | LED1, near Radio! -> Low drive, low frequency I/O only. | 79 | | | V33 | 3.3V for MCU | 80 | | | D16 | ? | 81 | | | D17 | ? | 82 | | | VBUS | 5V input | 83 | | | GND | | 84 | | | RXD | n.c. | 85 | | | TXD | n.c. | 86 | | | TD0 | n.c. | 87 | | | TD1 | n.c. | 88 | | SWDIO | TMS | | 89 | | SWCLK | TCK | | 90 | 91 | **Caution**: NFC is not usable with this board. 92 | 93 | ### RESET pin configuration 94 | 95 | On many (all?) nrf52dk boards, the reset pin is not configured out-of-the box. 96 | This means, that simply nothing happens if the RESET pin is pressed. To change 97 | this, RIOT provides a little tool in `dist/tools/nrf52_resetpin_cfg`. 98 | 99 | Simply compile, flash, and run that tool on your board, and the reset pin should 100 | work for the time being. 101 | 102 | ## Current measurement: 103 | 104 | There are two pins for current measurement on board. Don't connect these pins 105 | to GND!. The left pin is at 3.3V level and the right pin is connected to V33. 106 | Divide the measured voltage between this pins by 22 to get the current. 107 | */ 108 | --------------------------------------------------------------------------------