Hlavní navigace

Raspberry Pi Pico s RP2040: proč vlastně vyvíjet vlastní jednočip?

26. 1. 2021
Doba čtení: 4 minuty

Sdílet

 Autor: Raspberry Pi Foundation
Raspberry Pi Foundation představila nový model Rispberry Pi nazvaný Pico. Opustila svoji doménu jednodeskových linuxových počítačů s výkonným procesorem a pustilo se do vod malých embedded procesorů, na kterých Linux nepustíte.

To by ještě nebylo tak zajímavé. To, zajímavé na tom je, že se rozhodli na toto tažení vytvořit vlastní mikrokontroler — tedy dnes po vzoru Apple M1 bychom měli asi použít termín „own silicon“ — nazvaný RP2040.

Když se podíváte na parametry tak to není špatné. Má i několik celkem zajímavých periferií (PIO), má to dvě jádra, celkem hodně RAM a vysokou frekvenci (na to že to je ARM Cortex-M0+).


Základní parametry RP2040

Obecně se ale nedá říct, že v porovnání s konkurencí jako je STM32, ESP32, SAM a mnoho, mnoho dalších je to něco, co by vám vyrazilo dech. V různých článcích a recenzích najdete často jako argument cenu. Ta je sice nižší, ale ne tak diametrálně.

Pokud by ST představilo novou řadu dvoujádrových ARM Cortex-M0+, tak to pro ně dává smysl a nikoho to moc nepřekvapí. Ale Raspberry Pi? Honila se mi hlavou jediná otázka a nemohl jsem se jí zbavit:

Proč se v Raspberry Pi do něčeho takového pustili?

Opravdu chtějí konkurovat velkým hráčům jako ST, Microchip nebo Espressif. V tom musí být něco, co mi uniká… Žádná z recenzí ani diskusí, co jsem četl, mi to nebyla schopna vysvětlit.

Odpověď bude v datasheetu

Večer jsem si otevřel datasheet, že tam bude určitě nějaká killer feature a dostaví se kýžený „aha“ moment. No a po třech hodinách čtení a procházení příkladů (v datasheetu jsou ukázky C-čka a odkazy rovnou na GitHub) stále nic… počkat, tři hodiny?!

V tu chvíli, jsem si uvědomil, jak čtivě je ten datasheet napsaný. Jak pěkně je to propojené s příklady, jejich kvalita, SDK a jeho dokumentace, quick start… prostě nádhera to studovat. A ještě jednu věc jsem si uvědomil. Periferie toho procesoru jsou takové přímočaré, snadno pochopitelné.

Mimochodem, všimli jste si, že Pico nemá žádné Wi-Fi nebo Bluetooth? Hodně lidí na to v diskusích nadává (v pořadí důležitosti je hned za malým počtem ADC pinů – proč zrovna tohle je pro tolik diskutujících strašný problém, prostě nechápu). Možná je to kvůli tomu, že RF by to neúnosně prodražilo. Nebo proto, že to je vyšší liga a prostě si na to u svého prvního křemíku netroufli. Ale možná je ten důvod úplně jiný. Wi-Fi i Bluetooth už jsou tak složité, že vysvětlit je stejně lehce jako ostatní části prostě nejde. Tak je raději vypustili. Co myslíte vy?

Krok stranou k Arduinu

Jedna z věcí, díky které je populární Arduino, je velké zjednodušení pro rychlý začátek. Všechna ta složitost a komplexita je před vámi schovaná šikovně napsanými knihovnami a zvoleným jazykem. Začátečník ani nemusí vědět, co je přerušení…

To funguje jen do chvíle, kdy vám dokumentace k Arduinu přestane stačit. To se dřív nebo později stane a vy musíte vzít do ruky datasheet. Najednou se ocitnete v detailní dokumentaci výrobce procesoru, která je na hony vzdálená od čehokoli, co jste viděli ve světě Arduina. Kazí to LX (Learning eXperience — doufám, že něco takového existuje, protože se mi to sem výborně hodí). Je to dané tím, že používají mikrokontroler třetí strany, který byl primárně určen pro profesionální nasazení, ne pro výuku. A těžko s tím jde něco udělat, ledaže…

Takže proč?

Je třeba si uvědomit, že hlavním cílem Raspberry Pi Foundation není produkovat hardware. To je vlastně jen takový (příjemný) vedlejší efekt.

We engage millions of young people in learning computing and digital making skills. — About RPi Foundation

Když se ptali CEO, proč do něčeho takového šli, tak odpověděl:


Jedna z otázek vrozhovoru s Ebenem Uptonem (CEO Raspbery Pi Ltd.) v časopisu HackSpace #39

Ten perfektní produkt ale není Raspberry Pi Pico nebo samotný RP2040. Je to celý ekosystém od začátku do konce. Od ilustrované knížky, která vás nadchne do blikání LED v Micro Pythonu, přes čtivý datasheet, zdokumentované C-čkové SDK, až po pocit skutečného HW guru při programování PIO v assembleru (tedy až do chvíle, než vám někdo řekne, že existuje FPGA, ale pokud vám to dá odvahu zjistit, co to je, cíl splněn 👍).

Díval jsem se na RP2040 očima nadšeného elektroinženýra z nového mikrokontroleru, který okamžitě začne porovnávat velkost paměti, rychlost, počet periferií atd., a unikal mi celkový obrázek.

Root tip obecný

Takže pokud si říkáte, jako já na začátku, proč použít RP2040 místo ESP32 (doplňte svůj oblíbený mikrokontroler), tak pro vás mám odpověď, na kterou jsem nakonec narazil na Redditu, a která to dokonale vystihuje:

If you’re looking at this and thinking an ESP32 or STM32 is a better choice then it probably is for you. For kids though, having a bundle of your own hardware and firmware makes writing your own teaching resources a lot easier. This is still in the Foundations remit as an educational tool, this isn’t an attempt to take on Microchip in the microcontroller market.

(Původně vyšlo na Medium.com)

Autor článku

Pracuje jako softwarový vývojář ve 2N Telekomunikace. Vystudoval softwarové a počítačové inženýrství na ČVUT FEL. Je spoluzakladatelem hackerspace MacGyver působícího v rámci studentského klubu Silicon Hill.