Die Abbildung wird geladen …
RP2040 oder RP2350 auf einem Streifen von 21 x 51 mm: MicroPython, PIO und auf den W-Boards WLAN
Jede Lektion führt deinen eigenen Code auf dem Board aus. Besteh ihre Prüfungen, um sie abzuhaken.
Bau das Board in der richtigen Reihenfolge, schalte es dann ein und prüf es, wie auf der Werkbank.
0 von 10 SchrittenEin Pico ist einseitig bestückt: Jedes Bauteil sitzt auf der Oberseite und wird in der Fabrik per Reflow gelötet. Zerleg es bis auf die nackte Platine, um das Kupfer, die Castellated-Kante und die Footprints zu sehen.
Jeder Fehler passiert in der Simulation wirklich. Lös einen aus, beobachte die Abbildung und lies dann, warum.
Die eigenen Mikrocontroller-Boards von Raspberry Pi. Das Pico trägt einen RP2040 (zwei Arm-Cortex-M0+-Kerne mit bis zu 133 MHz, 264 KB SRAM) mit 2 MB QSPI-Flash; das Pico 2 trägt einen RP2350 (zwei Cortex-M33- oder zwei Hazard3-RISC-V-Kerne mit 150 MHz, 520 KB SRAM) mit 4 MB. Die W-Versionen ergänzen ein Funkteil Infineon CYW43439 für WLAN und Bluetooth unter einer Metallhaube, mit einer aufgedruckten Antenne am hinteren Ende. Alle vier teilen sich einen Umriss von 21 x 51 mm mit 40 Castellated Pins im 2,54-mm-Raster, eine Micro-USB-Buchse, die direkt am Chip hängt (es gibt keine USB-Seriell-Brücke), einen BOOTSEL-Taster und eine einzige grüne LED. Ein Buck-Boost-Regler macht aus allem zwischen 1,8 und 5,5 V an VSYS 3,3 V. Jeder GPIO arbeitet mit 3,3 V; nur die Digitalpins des RP2350 vertragen 5 V, und nur, solange das Board versorgt ist. Es gibt keinen Reset-Taster und keine Power-LED: Ein Board mit leerem Flash lässt nichts leuchten und erscheint als USB-Laufwerk.
| Leiste | Pin | Name | Funktionen | Pegel | Max. Strom | Hinweise |
|---|---|---|---|---|---|---|
| edge | 1 | GP0 | UART0 TX, I2C0 SDA, SPI0 RX, PWM0A, PIO | 3,3 V | 12 mA | Standardmäßig UART0 TX: UART(0) in MicroPython und stdio im C-SDK nutzen GP0 und GP1. |
| edge | 2 | GP1 | UART0 RX, I2C0 SCL, SPI0 CSn, PWM0B, PIO | 3,3 V | 12 mA | Standardmäßig UART0 RX. |
| edge | 3 | GND | – | – | – | |
| edge | 4 | GP2 | I2C1 SDA, SPI0 SCK, PWM1A, PIO | 3,3 V | 12 mA | |
| edge | 5 | GP3 | I2C1 SCL, SPI0 TX, PWM1B, PIO | 3,3 V | 12 mA | |
| edge | 6 | GP4 | UART1 TX, I2C0 SDA, SPI0 RX, PWM2A, PIO | 3,3 V | 12 mA | I2C0 SDA auf den Standardpins des SDK; die I2C-Lektion nutzt ihn. |
| edge | 7 | GP5 | UART1 RX, I2C0 SCL, SPI0 CSn, PWM2B, PIO | 3,3 V | 12 mA | I2C0 SCL auf den Standardpins des SDK. |
| edge | 8 | GND | – | – | – | |
| edge | 9 | GP6 | I2C1 SDA, SPI0 SCK, PWM3A, PIO | 3,3 V | 12 mA | |
| edge | 10 | GP7 | I2C1 SCL, SPI0 TX, PWM3B, PIO | 3,3 V | 12 mA | |
| edge | 11 | GP8 | UART1 TX, I2C0 SDA, SPI1 RX, PWM4A, PIO | 3,3 V | 12 mA | |
| edge | 12 | GP9 | UART1 RX, I2C0 SCL, SPI1 CSn, PWM4B, PIO | 3,3 V | 12 mA | |
| edge | 13 | GND | – | – | – | |
| edge | 14 | GP10 | I2C1 SDA, SPI1 SCK, PWM5A, PIO | 3,3 V | 12 mA | |
| edge | 15 | GP11 | I2C1 SCL, SPI1 TX, PWM5B, PIO | 3,3 V | 12 mA | |
| edge | 16 | GP12 | UART0 TX, I2C0 SDA, SPI1 RX, PWM6A, PIO | 3,3 V | 12 mA | |
| edge | 17 | GP13 | UART0 RX, I2C0 SCL, SPI1 CSn, PWM6B, PIO | 3,3 V | 12 mA | |
| edge | 18 | GND | – | – | – | |
| edge | 19 | GP14 | I2C1 SDA, SPI1 SCK, PWM7A, PIO | 3,3 V | 12 mA | Der Taster in den Lektionen: mit dem internen Pull-up an GND angeschlossen, gedrückt liest er 0. |
| edge | 20 | GP15 | I2C1 SCL, SPI1 TX, PWM7B, PIO | 3,3 V | 12 mA | Die externe LED in den Lektionen, über 330 Ω nach GND. Jeder GPIO kann PWM erzeugen; dieser ist PWM-Slice 7, Kanal B. |
| edge | 21 | GP16 | UART0 TX, I2C0 SDA, SPI0 RX, PWM0A, PIO | 3,3 V | 12 mA | |
| edge | 22 | GP17 | UART0 RX, I2C0 SCL, SPI0 CSn, PWM0B, PIO | 3,3 V | 12 mA | |
| edge | 23 | GND | – | – | – | |
| edge | 24 | GP18 | I2C1 SDA, SPI0 SCK, PWM1A, PIO | 3,3 V | 12 mA | |
| edge | 25 | GP19 | I2C1 SCL, SPI0 TX, PWM1B, PIO | 3,3 V | 12 mA | |
| edge | 26 | GP20 | UART1 TX, I2C0 SDA, SPI0 RX, PWM2A, PIO | 3,3 V | 12 mA | |
| edge | 27 | GP21 | UART1 RX, I2C0 SCL, SPI0 CSn, PWM2B, PIO | 3,3 V | 12 mA | |
| edge | 28 | GND | – | – | – | |
| edge | 29 | GP22 | I2C1 SDA, SPI0 SCK, PWM3A, PIO | 3,3 V | 12 mA | |
| edge | 30 | RUN | RUN (reset, active low) | 3,3 V | – | Chip-Enable mit einem internen Pull-up von etwa 50 kΩ. Verbinde ihn mit GND, um den Chip zurückzusetzen: Das Board hat keinen Reset-Taster, also schließ einen Taster von RUN nach GND an. |
| edge | 31 | GP26_A0 | ADC0, I2C1 SDA, SPI1 SCK, PWM5A, PIO | 3,3 V | 12 mA | ADC0. Analoge Eingangspins haben eine Diode nach 3,3 V und müssen auf jedem Board unter etwa 3,6 V bleiben, auch auf den RP2350-Boards. |
| edge | 32 | GP27_A1 | ADC1, I2C1 SCL, SPI1 TX, PWM5B, PIO | 3,3 V | 12 mA | ADC1. 12 Bit, in MicroPython mit read_u16() als 0-65535 gelesen. |
| edge | 33 | AGND | Analog ground | – | – | Analoge Masse für die ADC-Pins: Führ ein Potentiometer oder einen Sensor hierhin zurück, für sauberere Messwerte. |
| edge | 34 | GP28_A2 | ADC2, UART0 TX, I2C0 SDA, SPI1 RX, PWM6A, PIO | 3,3 V | 12 mA | ADC2. |
| edge | 35 | ADC_VREF | ADC reference | 3,3 V | – | ADC-Referenz: die 3,3-V-Schiene über einen Filter aus 200 Ω und 2,2 µF. Sie ist verrauscht; hier lässt sich eine externe 3,0-V-Referenz einsetzen. |
| edge | 36 | 3V3 | 3.3 V out | 3,3 V | 300 mA | 3,3 V Ausgang vom Buck-Boost für Sensoren und Module, unter 300 mA. Speise hier nie 5 V ein. |
| edge | 37 | 3V3_EN | SMPS enable | 4,7 V | – | Enable des 3,3-V-Reglers, über 100 kΩ auf VSYS hochgezogen. Verbinde ihn mit GND, und das ganze Board schaltet ab. |
| edge | 38 | GND | – | – | – | |
| edge | 39 | VSYS | 1.8-5.5 V in / out | 4,7 V | – | 1,8 bis 5,5 V Eingang (ein Akku) oder etwa 4,7 V Ausgang, wenn das Board an USB läuft. Nicht gegen Verpolung geschützt. |
| edge | 40 | VBUS | USB 5 V | 5 V | – | USB-5-V als Ausgang, wenn das Kabel steckt, sonst 0 V. Eine hier angeschlossene 5-V-Versorgung speist das Board über D1. |
| DEBUG | 1 | SWCLK | SWD clock | 3,3 V | – | Pads für Serial Wire Debug (SWCLK, GND, SWDIO): Ein Raspberry Pi Debug Probe oder ein zweites Pico mit debugprobe wird hier für Breakpoints angeschlossen. Es sind eigene Debug-Pins, keine GPIOs. |
| DEBUG | 2 | GND | – | – | – | |
| DEBUG | 3 | SWDIO | SWD data | 3,3 V | – |
Sensoren und Aktoren, die dieses Board ansteuert, mit den echten Verbindungen.
Eine 5-mm-LED von GP15 über einen 330-Ω-Widerstand nach GND: (3,3 - 2,0) / 330 ≈ 4 mA für eine rote LED, innerhalb der standardmäßigen 4 mA Treiberstärke des Pins.
| Bauteil-Pin | Board-Pin |
|---|---|
| A | GP15Kabelfarbe orange |
| K | GNDKabelfarbe schwarz |
Lass den Widerstand nie weg: Der Pin würde versuchen, weit mehr als 12 mA zu treiben.
Ein 6 x 6 mm großer Taster von GP14 nach GND mit Pin.PULL_UP: Er liest 0, solange er gedrückt ist. Setz ihn über die Mittelrille des Steckbretts.
| Bauteil-Pin | Board-Pin |
|---|---|
| 1 | GP14Kabelfarbe gelb |
| 3 | GNDKabelfarbe schwarz |
Verlass dich auf frühen Pico-2-Boards (RP2350 A2) nicht auf den internen Pull-down: Durch das Erratum E9 kann der Pin auf HIGH treiben.
Ein 10-kΩ-Potentiometer: ein Ende an 3V3 (Pin 36), das andere an AGND (Pin 33), der Schleifer an GP26 / ADC0.
| Bauteil-Pin | Board-Pin |
|---|---|
| 1 | 3V3Kabelfarbe rot |
| 2 | GP26Kabelfarbe gelb |
| 3 | AGNDKabelfarbe schwarz |
Leg nie 5 V an die Enden: Die ADC-Pins vertragen auf jedem Pico höchstens 3,3 V.
Ein Fotowiderstand von 3V3 nach GP27 mit einem 10-kΩ-Widerstand von GP27 nach GND: helleres Licht, höherer Messwert.
| Bauteil-Pin | Board-Pin |
|---|---|
| 1 | 3V3Kabelfarbe rot |
| 2 | GP27Kabelfarbe gelb |
Der TMP36 läuft ab 2,7 V, also passt 3V3: Vout an GP28 liest 0,75 V bei 25 °C, 10 mV pro Grad.
| Bauteil-Pin | Board-Pin |
|---|---|
| +Vs | 3V3Kabelfarbe rot |
| Vout | GP28Kabelfarbe gelb |
| GND | AGNDKabelfarbe schwarz |
Ein passiver Piezo an GP18 und GND, mit PWM angesteuert: pwm.freq(440) spielt ein A.
| Bauteil-Pin | Board-Pin |
|---|---|
| + | GP18Kabelfarbe orange |
| - | GNDKabelfarbe schwarz |
Signal des SG90 an GP16 mit PWM bei 50 Hz (ein Impuls von 0,5 bis 2,4 ms), Strom aus VBUS (5 V von USB) und gemeinsame GND.
| Bauteil-Pin | Board-Pin |
|---|---|
| signal | GP16Kabelfarbe orange |
| V+ | VBUSKabelfarbe rot |
| GND | GNDKabelfarbe braun |
Versorg einen Servo nie aus 3V3: Sein Blockierstrom zieht die 3,3-V-Schiene herunter, und das Pico setzt sich zurück. Nimm VBUS an USB oder eine eigene 5-V-Versorgung mit gemeinsamer Masse.
Ein GY-521-Breakout mit MPU-6050 an I2C0: SDA an GP4, SCL an GP5, VCC an 3V3. Seine Adresse ist 0x68 (0x69, wenn AD0 HIGH ist).
| Bauteil-Pin | Board-Pin |
|---|---|
| VCC | 3V3Kabelfarbe rot |
| GND | GNDKabelfarbe schwarz |
| SCL | GP5Kabelfarbe gelb |
| SDA | GP4Kabelfarbe blau |
Ein 0,96-Zoll-OLED SSD1306 an I2C0 (GP4 und GP5) auf Adresse 0x3C, versorgt aus 3V3. MicroPython braucht den ssd1306-Treiber aus micropython-lib (mip.install("ssd1306")).
| Bauteil-Pin | Board-Pin |
|---|---|
| GND | GNDKabelfarbe schwarz |
| VCC | 3V3Kabelfarbe rot |
| SCL | GP5Kabelfarbe gelb |
| SDA | GP4Kabelfarbe blau |
Lies den Bestückungsdruck der Stiftleiste: Manche Module sind GND VCC SCL SDA, andere VCC GND SCL SDA.
Der HC-SR04 braucht 5 V: VCC an VBUS, TRIG an GP16 (3,3 V reichen, um ihn auszulösen), ECHO an GP17 über einen Teiler (1 kΩ in Reihe, 2 kΩ nach GND), damit das 5-V-Echo als 3,3 V ankommt.
| Bauteil-Pin | Board-Pin |
|---|---|
| VCC | VBUSKabelfarbe rot |
| TRIG | GP16Kabelfarbe orange |
| ECHO | GP17Kabelfarbe gelb |
| GND | GNDKabelfarbe schwarz |
ECHO ist ein 5-V-Ausgang. Direkt an einem Pin des RP2040 treibt er Strom durch die Schutzdiode des Pins in die 3,3-V-Schiene und beschädigt den Chip. Die GPIOs des RP2350 vertragen ihn, solange sie versorgt sind, aber behalte den Teiler.