PicoLibSDK
Alternativní rozšířená knihovna C/C++ SDK pro Raspberry Pico a RP2040
verze 1.05, září 2023
(c) Miroslav Němeček
https://github.com/Panda381/PicoLibSDK
Obsah:
PicoLibSDK je alternativní
rozšířená knihovna C/C++ SDK pro modul Raspberry Pico s
procesorem RP2040, se snadným překladem pod Windows. Lze ji
použít i pro jiné moduly, které tento procesor používají.
Oproti původní knihovně SDK se knihovna PicoLibSDK snaží rozšířit
funkčnost původní knihovny a zejména usnadnit její používání.
Vlastnosti knihovny PicoLibSDK
Boot loader: Boot loader umožňující výběr a spouštění programů UF2 z SD karty.
SDK řízení hardware: ADC, boot ROM, řízení systémových hodin, řízení CPU, hardwarová dělička, DMA, double a float aritmetika, FIFO mailboxy, programování flash, GPIO, I2C, hardware interpolator, IRQ, multicore, PIO, PLL, PWM, QSPI, reset a power řízení, ROSC, RTC, SPI, spinlocky, SysTick, časovač s alarmem, watchdog, XOSC.
Tool knihovna: alarm, 32-bitový Unix kalendář, dlouhý 64-bitový astronomický kalendář, kreslení na canvas, RGBA barevný vektor, CRC kontrola s podporou DMA, dekódování čísel, escape paketový protokol, event kruhový buffer, FAT file system, doubly linked list, alokátor paměti, 2D transformační matice, mini-ring buffer, formátovaný tisk, PWM zvukový výstup, generátor náhody, rectangle, kruhový buffer, DMA kruhový buffer, SD karta, streamy, textové řetězce, textové seznamy, textový tisk, tree list, VGA kreslení, video přehrávač.
Knihovna USB: multiplayer mini-port, CDC device a host - sériová komunikace, HID device a host - včetně externí klávesnice a myši.
Velká celá čísla: výpočty s velkými celými čísly, výpočet Bernoulliho čísel.
Reálná čísla: výpočty s čísly s pohyblivou řádovou čárkou s volitelnou přesností až 3690 číslic a 30-bitovým exponentem. Vědecké funkce s volitelnou metodou výpočtu - Ln, Exp, Sqrt, Sin, Cos, Tan, arcus, hyperbolické funkce a mnoho dalších. Lineární faktoriály s přesným a rychlým výpočtem.
Ovladače displeje: Připravená podpora TFT a VGA displeje.
Zařízení: Podpora desek Picoino/PicoinoMini/Picotron/DemoVGA s VGA displejem, PicoPad s TFT displejem a základní Raspberry Pico bez dalšího hardware.
Boot loader pro spouštění programů z SD karty:
Zdrojový kód knihovny je, až
na několik výjimek, zcela volně k použití pro jakýkoli účel,
včetně komerčního využití. Celý zdrojový kód knihovny
nebo jeho části je možné používat a upravovat bez omezení.
Jedinou výjimkou jsou knihovny pro single- a
double-floating-point matematiku, které jsou převážně
autorským dílem Raspberry Pi a Marka Owena, a proto podléhají
licenčním podmínkám původních autorů.
Download knihovny PicoLibSDK (zdrojové kódy, obrazy SD karty, ukázkové programy)
Download manuálu ke knihovně PicoLibSDK (formáty DOC, ODT, PDF)
PicoLibSDK na Github: https://github.com/Panda381/PicoLibSDK
Video se slide-show přehrávačem pro porovnání videomódů PicoLibSDK
Obsah SD karty pro desku DemoVGA
Obsah SD karty pro PicoinoMini
Ukázkové
programy pro Raspberry Pico
Cílová zařízení
Hlavním cílovým zařízením, pro které je knihovna v současnosti připravena, je konzole PicoPad, s 16-bitovým TFT displejem 320x240 pixelů, 8 tlačítky a mikroSD kartou.
PicoPad 1.0 schéma zapojení (nebo jako PDF):
PicoPad 0.8
Je připraven překlad také pro PicoPad verze 0.8, což byl první prototyp PicoPad. Překlad slouží spíše jako ukázka možnosti alternativní konfigurace překladu.
PicoPad 0.8 schéma zapojení (nebo jako PDF):
Další připravenou alternativou překladu je Picoino, což je předchůdce PicoPad, s vestavěnou klávesnicí 56 tlačítek a výstupem na VGA monitor v 8-bitovém barevném módu RGB332. V knihovně je připraveno rozlišení obrazu 320x240. Spolu s knihovnou PicoVGA je možné i vyšší rozlišení a kombinované módy. Download podkladů pro Picoino.
Ukázkové programy pro Picoino jsou připravené adaptací programů pro PicoPad - grafika změněna z 16-bitů na 8-bitů a k ovládání se používá 8 tlačítek klávesnice přemapovaných na kódy PicoPad (kurzory, Space -> A, Z -> B, Ctrl ->X, BackSpace -> Y).
Picoino 1.0 schéma zapojení:
Picoino 1.0 osazení součástek:
Picoino výstup na VGA monitor:
Jako menší bratr PicoPad vznikla odlehčená verze Picoino, která má 8-bitový výstup RGB332 na VGA displej (mód QVGA 320x240), SD kartu, externí konektor jako PicoPad a 8 tlačítek jako PicoPad. Je určena především pro tutoriály k programování Raspberry Pico, protože umožňuje snadné sestavení z běžných domácích zásob - pro výstup na VGA monitor mohou stačit 3 rezistory a VGA konektor. Download podkladů pro PicoinoMini.
PicoinoMini schéma zapojení:
PicoinoMini osazení součástek:
PicoinoMini výstup na VGA monitor:
DemoVGA je demo modul s výstupem na VGA monitor v rozlišení 320x240 pixelů, 16-bitů barvy ve formátu RGB565. Obsahuje SD kartu, přídavný napájecí USB konektor, výstup na sluchátka a 3 tlačítka. K některým programům (typicky hry) se používá externí USB klávesnice. Download podkladů pro DemoVGA.
DemoVGA schéma zapojení:
DemoVGA osazení součástek:
Picotron je jednoduchý minipočítač zaměřený na technické aplikace. Disponuje výstupem na VGA displej v rozlišení až 800x600 pixelů, 4-bitový barevný výstup v režimu YRGB1111 (16-barevný režim jako v PC-CGA a EGA). Dále má SD kartu, sluchátkový audio konektor a klávesnici ze 40 mikrospínačů. Download podkladů pro Picotron.
Picotron schéma zapojení:
Picotron osazení součástek:
Raspberry Pico
Knihovna je připravena též pro základní modul Raspberry Pico, bez přídavného hardware. To slouží především ke zkoušení základních tutoriálů pro Raspberry Pico.
Součástí knihovny je připravené ukázkové programy a hry. Jsou připraveny obrazy SD karty pro jednotlivá cílová zařízení. Před použitím SD karty je potřeba do procesoru nahrát boot loader - to je možné buď nahrátím programu LOADER.UF2 z root složky obrazu SD karty, nebo nahrátím kteréhokoliv jiného programu, protože každý program obsahuje současně i boot loader. Programy lze ukončit tlačítkem Y a přejít do boot loaderu.
Config - nastavení konfigurace PicoPad. Nastaví hlasitost, podsvícení displeje, referenční napětí ADC, napětí pro měření baterie, kalibrace měření teploty, kalibrace frekvence krystalu.
Frekvenční generátor - generuje obdélníkový signál nebo PWM signál (sinus, pila, trojúhelník - sample rate 100 kHz), frekvenční rozsah od 0,01 Hz do 100 MHz. Přesnost 5 číslic (30 ppm) nebo po kalibraci krystalu 6 číslic (až 3 ppm, podle přesnosti kalibrace). Výstup buď na GPIO14 nebo na GPIO15 (s reproduktorem).
Měřič frekvence - měří frekvenci ze 2 vstupů (GPIO1 a GPIO14) v rozsahu 0,0256 Hz až 100 MHz, s přesností 5 číslic (30 ppm) nebo po kalibraci krystalu 6 číslic (až 3 ppm, podle přesnosti kalibrace). Měří s plnou přesností i nízké kmitočty, tj. nejedná se jen o jednoduchý čítač pulzů. Během měření kombinuje 3 různé metody, s využitím obou PIO.
Videa lze přehrávat programem VIDEO.UF2 na zařízeních PicoPad a DemoVGA. Byla vygenerována pomocí programu PicoPadVideo. Videa je nutné nahrát na SD kartu do složky /VIDEO.
Download základní sady (310 MB), sada obsahuje:
BIRDS .....
(00:44, 17 MB) Dva hašteřiví ptáčkové v kleci
CANORA .... (00:29, 11 MB) Česká středověká
hudební skupina Canora
CORALS .... (05:42, 134 MB) Ryby v Egyptě mezi
korály
MANDEL .... (09:05, 214 MB) Mandelbrot Fractal
Deep Zoom 10^220
Download další ukázková videa:
BUNNY
..... (04:56, 116 MB) Bugs Bunny - králičí sezóna a kachní
sezóna (Anglický dabing)
CIMRMAN ... (66:09, 1556 MB) Cimrman - Dlouhý, Široký a
Krátkozraký
KYARY
..... (04:18, 101 MB) Kyary Pamyu Pamyu - Ring a Bell
MINION
.... (12:12, 287 MB) Minion Madness
MOLE
...... (13:01, 307 MB) Jak krtek ke kalhotkám přišel
SHREK
..... (00:59, 23 MB) Závěrečná písnička ze Shrek 1
SNOWHITE ..... (80:07, 1885 MB) Sněhurka a sedm trpaslíků
(Český dabing)
TROOPERS .. (53:20 1255 MB) Troopeři
8. 3. 2023 prototyp PicoPad s alfa před-verzí PicoLibSDK verze 0.8.
28. 4. 2023 plná verze PicoPad s alfa verzí PicoLibSDK verze 0.90
28. 6. 2023 alfa verze PicoLibSDK v0.91, opraveno měření baterie
30. 7. 2023 verze 1.00: první oficiální uvedení
6. 8. 2023 verze 1.01: printf() tisk paměťového bloku, výstup stdio na UART a FILE, přidáno zařízení Pico a PicoinoMini, opravy a příklady USB
14. 8. 2023 verze 1.02: přidán video přehrávač, přidána deska DemoVGA, přidány kompilační skripty pro Linux
19. 8. 2023 verze 1.03: oprava rychlosti SPI SD karty, ošetření krátkých časů alarmu časovače
26.8.2023 verze 1.04: náhrada knihoven qvga/vga/qdraw/drawtft univerzálnější knihovnou minivga/draw s 4/8/15/16-bitovým výstupem a rozlišením 320x240 až 800x600. Přidán slide show přehrávač. Přidáno zařízení Picotron se 4-bitovým výstupem. Přidán BOOTSEL do boot3 loader (v menu baterie).
9.9.2023 verze 1.05: CSYNC pro VGA driver, přidána knihovna PicoVGA8, přidána knihovna VREG, nastavení hlasitosti, podsvícení a kalibrace krystalu.
Miroslav Němeček