From 40c7b6bb3b272514afa5f7cfc3efe18f7133bbf4 Mon Sep 17 00:00:00 2001 From: Ollrogge Date: Mon, 10 Mar 2025 14:20:54 +0100 Subject: [PATCH] boards/nrf52840{dk,dongle}: add MCU table, move to doc.md --- boards/nrf52840dk/doc.md | 55 +++++++++++++++++++++++ boards/nrf52840dk/doc.txt | 30 ------------- boards/nrf52840dongle/doc.md | 82 +++++++++++++++++++++++++++++++++++ boards/nrf52840dongle/doc.txt | 67 ---------------------------- 4 files changed, 137 insertions(+), 97 deletions(-) create mode 100644 boards/nrf52840dk/doc.md delete mode 100644 boards/nrf52840dk/doc.txt create mode 100644 boards/nrf52840dongle/doc.md delete mode 100644 boards/nrf52840dongle/doc.txt diff --git a/boards/nrf52840dk/doc.md b/boards/nrf52840dk/doc.md new file mode 100644 index 000000000000..db397801cab8 --- /dev/null +++ b/boards/nrf52840dk/doc.md @@ -0,0 +1,55 @@ +@defgroup boards_nrf52840dk nRF52840 DK +@ingroup boards +@brief Support for the nRF52840 DK + +### General information + +The [nRF52840 DK](https://www.nordicsemi.com/Products/Development-hardware/nRF52840-DK) +is a devboard based on the nRF52840 SoC which supports multiple wireless protocols +including Bluetooth Low Energy, Thread and Zigbee. + +## Hardware + +| MCU | nRF52840 | +|:--------------------- |:------------------------------------------------------------------------------------------------------------------| +| Family | ARM Cortex-M4 | +| Vendor | Nordic Semiconductor | +| RAM | 256 KiB | +| Flash | 1 MiB | +| Frequency | 64 MHz | +| FPU | yes | +| Timers | 5 (32-bit) | +| RTC | 3 | +| ADCs | 1x 12-bit (8 channels) | +| UARTs | 2 | +| SPIs | 4 masters/3 slaves | +| I2Cs | 2 | +| I2S | 1 | +| PWM | 4*4 Channels | +| Radio | 2.4GHz BLE compatible, -20 dBm to +8 dBm output, -95 dBm RX sensitivity | +| Vcc | 1.7V - 5.5V | +| MCU Manual | [Manual](https://docs-be.nordicsemi.com/bundle/ps_nrf52840/attach/nRF52840_PS_v1.11.pdf) | +| Board Documentation | [Documentation](https://docs.nordicsemi.com/bundle/ug_nrf52840_dk/page/UG/dk/intro.html) | + +### RESET pin configuration + +On many (all?) nrf52840dk boards, the reset pin is not configured out-of-the box. +This means, that simply nothing happens if the RESET pin is pressed. To change +this, RIOT provides a little tool in `dist/tools/nrf52_resetpin_cfg`. + +Simply compile, flash, and run that tool on your board, and the reset pin should +work for the time being. + +## Flash the board + +See the `Flashing` section in @ref boards_common_nrf52. + +## Accessing STDIO via UART + +The STDIO is directly accessible via the USB port. On a Linux host, it's +generally mapped to `/dev/ttyACM0`. + +Use the `term` target to connect to the board serial port
+``` + make BOARD=nrf52840dk -C examples/basic/hello-world term +``` diff --git a/boards/nrf52840dk/doc.txt b/boards/nrf52840dk/doc.txt deleted file mode 100644 index 526c43d25c53..000000000000 --- a/boards/nrf52840dk/doc.txt +++ /dev/null @@ -1,30 +0,0 @@ -/** -@defgroup boards_nrf52840dk nRF52840 DK -@ingroup boards -@brief Support for the nRF52840 DK - - -### RESET pin configuration - -On many (all?) nrf52840dk boards, the reset pin is not configured out-of-the box. -This means, that simply nothing happens if the RESET pin is pressed. To change -this, RIOT provides a little tool in `dist/tools/nrf52_resetpin_cfg`. - -Simply compile, flash, and run that tool on your board, and the reset pin should -work for the time being. - -## Flash the board - -See the `Flashing` section in @ref boards_common_nrf52. - -## Accessing STDIO via UART - -The STDIO is directly accessible via the USB port. On a Linux host, it's -generally mapped to `/dev/ttyACM0`. - -Use the `term` target to connect to the board serial port
-``` - make BOARD=nrf52840dk -C examples/basic/hello-world term -``` - - */ diff --git a/boards/nrf52840dongle/doc.md b/boards/nrf52840dongle/doc.md new file mode 100644 index 000000000000..20d6e6747705 --- /dev/null +++ b/boards/nrf52840dongle/doc.md @@ -0,0 +1,82 @@ +@defgroup boards_nrf52840dongle nRF52840-Dongle +@ingroup boards +@brief Support for the nRF52840-Dongle + +### General information + +The nRF52840-Dongle is a bare USB-stick shaped device that houses barely +anything than the nRF52840 itself, which offers BLE and 802.15.4 and USB +connectivity. + +Unlike similar sticks (like the @ref boards_nrf52840-mdk), it features no +dedicated programmer hardware but relies on direct USB communication with a +built-in bootloader. + +The board features two LEDs (LD1: green, LD2: RGB), a user (SW1) and a +reset button as well as 15 configurable external pins. + +### Hardware + +| MCU | nRF52840 | +|:--------------------- |:------------------------------------------------------------------------------------------------------------------| +| Family | ARM Cortex-M4 | +| Vendor | Nordic Semiconductor | +| RAM | 256 KiB | +| Flash | 1 MiB | +| Frequency | 64 MHz | +| FPU | yes | +| Timers | 5 (32-bit) | +| RTC | 3 | +| ADCs | 1x 12-bit (8 channels) | +| UARTs | 2 | +| SPIs | 4 masters/3 slaves | +| I2Cs | 2 | +| I2S | 1 | +| PWM | 4*4 Channels | +| Radio | 2.4GHz BLE compatible, -20 dBm to +8 dBm output, -95 dBm RX sensitivity | +| Vcc | 1.7V - 5.5V | +| MCU Manual | [Manual](https://docs-be.nordicsemi.com/bundle/ps_nrf52840/attach/nRF52840_PS_v1.11.pdf) | +| Dongle Documentation | [Documentation](https://docs.nordicsemi.com/bundle/ug_nrf52840_dongle/page/UG/nrf52840_Dongle/intro.html) | + +### Quick start + +- Plug into a USB port. +- `$ make BOARD=nrf52840dongle -C examples/basic/saul flash term` + - See [Flash the board](#nrf52840dongle_flash) if anything goes wrong. +- `> saul write 2 10 40 10` + - The LED glows in a soft turquise. + +### Flash the board {#nrf52840dongle_flash} + +The board is flashed using its on-board boot loader; the proprietary +[nrfutil](https://www.nordicsemi.com/Products/Development-tools/nRF-Util) program needs to +be installed, and `nrfutil install nrf5sdk-tools` needs to be executed. Note +that nrfutil, even when not running the "install" command, will install itself +into `~/.nrfutil`. The older Python based version of nrfutil is no longer +maintained by Nordic, and has become dysfunctional on Python 3.11. + +The nrfutil can turn the binary into a suitable zip file and send it to the +bootloader. The process is automated in the usual `make flash` target. + +If RIOT is already running on the board, it will automatically reset the CPU and enter +the bootloader. +If some other firmware is running or RIOT crashed, you need to enter the bootloader +manually by pressing the board's reset button. + +Readiness of the bootloader is indicated by LD2 pulsing in red. + +### Accessing STDIO + +The usual way to obtain a console on this board is using an emulated USB serial port (CDC-ACM). +This is available automatically using the `stdio_cdc_acm` module, +unless any other stdio module is enabled. + +On Linux systems with ModemManager < 1.10 installed, +`make term` will, in some setups, fail for a few seconds after the device has come up. +This is [fixed in its 1.12.4 version](https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/164), +but should not be more than a short annoyance in earlier versions. + +To ease debugging, +pins 0.13 and 0.15 are configured as RX and TX, respectively. +They provide stdio if no CDC-ACM is disabled, +and can be used as a custom UART otherwise. diff --git a/boards/nrf52840dongle/doc.txt b/boards/nrf52840dongle/doc.txt deleted file mode 100644 index 88d936e59026..000000000000 --- a/boards/nrf52840dongle/doc.txt +++ /dev/null @@ -1,67 +0,0 @@ -/** -@defgroup boards_nrf52840dongle nRF52840-Dongle -@ingroup boards -@brief Support for the nRF52840-Dongle - -### Quick start - -- Plug into a USB port. -- `$ make BOARD=nrf52840dongle -C examples/basic/saul flash term` - - See [Flash the board](#nrf52840dongle_flash) if anything goes wrong. -- `> saul write 2 10 40 10` - - The LED glows in a soft turquise. - -### General information - -The nRF52840-Dongle is a bare USB-stick shaped device that houses barely -anything than the nRF52840 itself, which offers BLE and 802.15.4 and USB -connectivity. - -Unlike similar sticks (like the @ref boards_nrf52840-mdk), it features no -dedicated programmer hardware but relies on direct USB communication with a -built-in bootloader. - -The board features two LEDs (LD1: green, LD2: RGB), a user (SW1) and a -reset button as well as 15 configurable external pins. - -### Links - -- [nRF52840 web page](https://www.nordicsemi.com/?sc_itemid=%7BCDCCA013-FE4C-4655-B20C-1557AB6568C9%7D) -- [documentation and hardware description](https://infocenter.nordicsemi.com/topic/ug_nrf52840_dongle/UG/nrf52840_Dongle/intro.html?cp=3_0_5) - -### Flash the board {#nrf52840dongle_flash} - -The board is flashed using its on-board boot loader; the proprietary -[nrfutil](https://www.nordicsemi.com/Products/Development-tools/nRF-Util) program needs to -be installed, and `nrfutil install nrf5sdk-tools` needs to be executed. Note -that nrfutil, even when not running the "install" command, will install itself -into `~/.nrfutil`. The older Python based version of nrfutil is no longer -maintained by Nordic, and has become dysfunctional on Python 3.11. - -The nrfutil can turn the binary into a suitable zip file and send it to the -bootloader. The process is automated in the usual `make flash` target. - -If RIOT is already running on the board, it will automatically reset the CPU and enter -the bootloader. -If some other firmware is running or RIOT crashed, you need to enter the bootloader -manually by pressing the board's reset button. - -Readiness of the bootloader is indicated by LD2 pulsing in red. - -### Accessing STDIO - -The usual way to obtain a console on this board is using an emulated USB serial port (CDC-ACM). -This is available automatically using the `stdio_cdc_acm` module, -unless any other stdio module is enabled. - -On Linux systems with ModemManager < 1.10 installed, -`make term` will, in some setups, fail for a few seconds after the device has come up. -This is [fixed in its 1.12.4 version](https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/164), -but should not be more than a short annoyance in earlier versions. - -To ease debugging, -pins 0.13 and 0.15 are configured as RX and TX, respectively. -They provide stdio if no CDC-ACM is disabled, -and can be used as a custom UART otherwise. - - */