Skip to content

Commit 58302ce

Browse files
authored
Merge pull request #21644 from krzysztof-cabaj/boards_rename_doc_txt_part4
boards: rename doc.txt -> doc.md for remaining boards
2 parents 5e2665d + d45f828 commit 58302ce

File tree

51 files changed

+520
-631
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+520
-631
lines changed

boards/nucleo-f072rb/doc.txt renamed to boards/nucleo-f072rb/doc.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
/**
2-
@defgroup boards_nucleo-f072rb STM32 Nucleo-F072RB
3-
@ingroup boards_common_nucleo64
4-
@brief Support for the STM32 Nucleo-F072RB
1+
@defgroup boards_nucleo-f072rb STM32 Nucleo-F072RB
2+
@ingroup boards_common_nucleo64
3+
@brief Support for the STM32 Nucleo-F072RB
54

65
## Overview
76

@@ -90,4 +89,3 @@ could be found on [this STM webpage](https://www.st.com/en/development-tools/sts
9089
For using the ST Nucleo-F072RB board we strongly recommend the usage of the
9190
[GNU Tools for ARM Embedded Processors](https://launchpad.net/gcc-arm-embedded)
9291
toolchain.
93-
*/

boards/qn9080dk/doc.txt renamed to boards/qn9080dk/doc.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/**
21
@defgroup boards_qn9080dk QN9080DK base board
32
@ingroup boards
43
@brief Support for the QN9080DK base board.
@@ -15,9 +14,7 @@ This board module supports the "base board" only, including the definitions
1514
of the gpio, buttons and LEDs specific to this board.
1615

1716
This board packs a few peripherals and many GPIOs:
18-
19-
* MMA8652FC, a 12-bit accelerometer
20-
*
17+
- MMA8652FC, a 12-bit accelerometer
2118

2219
The board also features a dedicated programmer hardware implemented using NXP's
2320
LPC4322, with its dedicated USB port for connecting to a computer on one end
@@ -129,5 +126,3 @@ make BOARD=qn9080dk QN9080DK_JLINK=1 flash
129126
By setting the jumper at `JP2` to `EXT` the internal LPC4322 debugger/programmer
130127
is disconnect and an external programmer can be connected at header `P1` using
131128
a standard 10 pin 1.27 mm debug connector.
132-
133-
*/

boards/reel/doc.txt renamed to boards/reel/doc.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/**
21
@defgroup boards_reel Phytec reel board
32
@ingroup boards
43
@brief Support for the PHYTEC 'reel board'
@@ -10,5 +9,3 @@ It was developed by PHYTEC in cooperation with the Zephyr project.
109

1110
@see https://www.phytec.eu/product-eu/internet-of-things/reelboard/
1211
@see https://docs.zephyrproject.org/latest/boards/arm/reel_board/doc/reel_board.html
13-
14-
*/

boards/remote-pa/doc.txt renamed to boards/remote-pa/doc.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/**
21
@defgroup boards_remote-pa RE-Mote Prototype A
32
@ingroup boards
43
@brief Support for the RE-Mote board prototype A
@@ -86,4 +85,3 @@ connector has the following pin-out:
8685

8786
![](http://i.imgur.com/2DZ17PV.png)
8887
![](http://i.imgur.com/q7Hb7Y8.png)
89-
*/

boards/remote-reva/doc.txt renamed to boards/remote-reva/doc.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/**
21
@defgroup boards_remote-reva RE-Mote Revision A
32
@ingroup boards
43
@brief Support for the RE-Mote board Revision A
@@ -86,4 +85,3 @@ connector has the following pin-out:
8685

8786
![](http://i.imgur.com/2DZ17PV.png)
8887
![](http://i.imgur.com/q7Hb7Y8.png)
89-
*/

boards/remote-revb/doc.txt renamed to boards/remote-revb/doc.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/**
21
@defgroup boards_remote-revb RE-Mote Revision B
32
@ingroup boards
43
@brief Support for the RE-Mote board Revision B
@@ -85,4 +84,3 @@ connector has the following pin-out:
8584

8685
![](http://i.imgur.com/2DZ17PV.png)
8786
![](http://i.imgur.com/q7Hb7Y8.png)
88-
*/

boards/rpi-pico-w/doc.md

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
@defgroup boards_rpi_pico_w Raspberry Pi Pico W
2+
@ingroup boards
3+
@brief Support for the RP2040 based Raspberry Pi Pico W board
4+
5+
## Overview
6+
7+
The Raspberry Pi Pico W and Pico WH (with headers) is a board with RP2040 MCU,
8+
a custom dual core ARM Cortex-M0+ MCU with relatively high CPU clock, plenty of
9+
RAM, some unique peripheral (the Programmable IO) and the Infineon CYW43439 wireless
10+
chip.
11+
12+
## Hardware
13+
14+
@image html https://www.raspberrypi.com/documentation/computers/images/pico-w.png "Raspberry Pi Pico W" width=50%
15+
16+
Raspberry Pi Pico W is provided in two versions - without and with headers,
17+
the second one is called Pico WH. Detailed photos can be found at [Raspberry Pi Pico family](https://www.raspberrypi.com/documentation/microcontrollers/images/four_picos.jpg).
18+
19+
### MCU
20+
21+
The Programmable IO (PIO) peripheral and the SSI/QSPI peripheral that supports execution from
22+
flash (XIP) are the most distinguishing features of the MCU. The latter is especially important,
23+
since the RP2040 contains no internal flash.
24+
25+
| MCU | RP2040 |
26+
|:-----------|:------------------------------------------------------------ |
27+
| Family | (2x) ARM Cortex-M0+ |
28+
| Vendor | Raspberry Pi |
29+
| RAM | 264 KiB |
30+
| Flash | 2 MiB (up to 16 MiB) |
31+
| Frequency | up to 133 MHz |
32+
| FPU | no |
33+
| PIOs | 8 |
34+
| Timers | 1 x 64-bit |
35+
| ADCs | 1x 12-bit (4 channels + temperature sensor) |
36+
| UARTs | 2 |
37+
| SPIs | 2 |
38+
| I2Cs | 2 |
39+
| RTCs | 1 |
40+
| USBs | 1 (USB 2.0) |
41+
| Watchdog | 1 |
42+
| SSI/QSPI | 1 (connected to flash, with XIP support) |
43+
| WiFi | via wireless chip (Infineon CYW43439) (*) |
44+
| Bluetooth | via wireless chip (Infineon CYW43439) (*) |
45+
| Vcc | 1.62V - 3.63V |
46+
| Datasheet | [Datasheet](https://datasheets.raspberrypi.com/picow/pico-w-datasheet.pdf) |
47+
| Wireless chip | [Infineon CYW43439 Datasheet](https://www.infineon.com/dgdl/Infineon-CYW43439-DataSheet-v03_00-EN.pdf?fileId=8ac78c8c8386267f0183c320336c029f) |
48+
49+
(*) Currently not implemented in the RIOT OS.
50+
51+
### User Interface
52+
53+
1 button (also used for boot selection) and 1 LED:
54+
55+
| Device | PIN |
56+
|:------ |:---------------- |
57+
| LED0 | WL_GPIO0 (*) |
58+
| SW0 | QSPI_SS_N (**) |
59+
60+
(*) In the Pico W LED0 is directly connected to the Infineon CYW43439 module,
61+
and cannot be directly controlled by MCU.
62+
63+
(**) Since the switch is connected to the chip-select pin of the QSPI interface the flash chip RIOT
64+
is running from via XIP, the switch is difficult to read out from software. This is currently not
65+
supported.
66+
67+
### Pinout
68+
69+
![Pinout Diagram of the RPi Pico W](https://www.raspberrypi.com/documentation/microcontrollers/images/picow-pinout.svg)
70+
71+
## Flashing the Board
72+
73+
### Flashing the Board Using the Bootloader
74+
75+
Connect the device to your Micro-USB cable while the button (labeled `BOOTSEL`
76+
on the silkscreen of the PCB) is pressed to enter the bootloader. The pico
77+
will present itself as a storage medium to the system, to which a UF2 file
78+
can be copied perform the flashing of the device. This can be automated by
79+
running:
80+
81+
```
82+
make BOARD=rpi-pico-w flash
83+
```
84+
85+
This is default flashing option using picotool PROGRAMMER.
86+
87+
### Flashing the Board Using OpenOCD
88+
89+
Currently (June 2021), only two methods for debugging via OpenOCD are supported:
90+
91+
1. Using a bit-banging low-level adapter, e.g. via the GPIOs of a Raspberry Pi 4B
92+
2. Using a virtual CMSIS-DAP adapter provided by the second CPU core via
93+
https://github.com/majbthrd/pico-debug
94+
95+
Option 2 requires no additional hardware however, you need to
96+
first "flash" the gimme-cache variant of [pico-debug](https://github.com/majbthrd/pico-debug)
97+
into RAM using the UF2 bootloader. For this, plug in the USB cable while holding down the BOOTSEL
98+
button of the Pico and copy the `pico-debug-gimmecache.uf2` from the
99+
[latest pico-debug release](https://github.com/majbthrd/pico-debug/releases) into the virtual FAT
100+
formatted drive the bootloader provides. Once this drive is unmounted again, this will result in
101+
the Raspberry Pi Pico showing up as CMSIS-DAP debugger. Afterwards run:
102+
103+
```
104+
make BOARD=rpi-pico-w PROGRAMMER=openocd flash
105+
```
106+
107+
@warning The `rpi-pico-w` virtual debugger is not persistent and needs to be "flashed" into RAM
108+
again after each cold boot.
109+
110+
@note The RP2040 MCU is supported from OpenOCD version 0.12.0 onwards.
111+
112+
### Flashing the Board Using J-Link
113+
114+
Connect the Board to an Segger J-Link debugger, e.g. the EDU mini debugger is relatively affordable,
115+
but limited to educational purposes. Afterwards run:
116+
117+
```
118+
make BOARD=rpi-pico-w PROGRAMMER=jlink flash
119+
```
120+
121+
## Accessing RIOT shell
122+
123+
This board's default access to RIOT shell is via UART (UART0 TX - pin 1, UART0 RX - pin 2).
124+
125+
The default baud rate is 115 200.
126+
127+
The simplest way to connect to the shell is the execution of the command:
128+
129+
```
130+
make BOARD=rpi-pico-w term
131+
```
132+
133+
@warning Raspberry Pi Pico board is not 5V tolerant. Use voltage divider or logic level shifter when connecting to 5V UART.
134+
135+
## On-Chip Debugging
136+
137+
There are currently (June 2021) few hardware options for debugging the Raspberry Pi Pico:
138+
139+
1. Via J-Link using one of Seggers debuggers
140+
2. Via OpenOCD using a low-level bit-banging debugger (e.g. a Raspberry Pi 4B with the GPIOs
141+
connected to the Raspberry Pi Pico via jump wires)
142+
3. Via a recently updated [Black Magic Probe](https://github.com/blacksphere/blackmagic)
143+
144+
In addition, a software-only option is possible using
145+
[pico-debug](https://github.com/majbthrd/pico-debug). The default linker script reserved 16 KiB of
146+
RAM for this debugger, hence just "flash" the "gimme-cache" flavor into RAM using the UF2
147+
bootloader. Once this is done, debugging is as simple as running:
148+
149+
```
150+
make BOARD=rpi-pico-w debug
151+
```
152+
153+
***Beware:*** The `rpi-pico-w` virtual debugger is not persistent and needs to be "flashed"
154+
into RAM again after each cold boot. The initialization code of RIOT now seems to play well with the
155+
debugger, so it remains persistent on soft reboots. If you face issues with losing connection to
156+
the debugger on reboot, try `monitor reset init` in GDB to soft-reboot instead.
157+
158+
## Known Issues / Problems
159+
160+
### Early State Implementation
161+
162+
Currently no support for the following peripherals is implemented:
163+
164+
- USB
165+
- RTC
166+
- Watchdog
167+
- SMP support (multi CPU support is not implemented in RIOT)
168+
- Infineon CYW 43439 wireless chip
169+
170+
The I2C peripheral is implemented through the PIO.

0 commit comments

Comments
 (0)