Na FreeHostingu Endora běží desítky tisíc webů. Přidejte se ještě dnes!

Vytvořit web zdarma

Na FreeHostingu Endora běží desítky tisíc webů. Přidejte se ještě dnes!

Vytvořit web zdarma

Raspberry Pi Pico

      22.1.2022 Loni vydala organizace Raspberry Pi Foundation novou malou levnou destiku Raspberry Pi Pico, kter se velmi podob rznm Arduino / BluePill destikm s STM32, srovnn zde. Je osazena novm MCU RP2040 (navrenm pmo organizac) s 2 jdry ARM Cortex-M0+ na 133 MHz, 264 kB SRAM, 2x UART, 2x SPI, 2x I2C, 16x PWM, 4x 12b ADC 0,5 MS/s, DMA. Zajmav jsou programovateln jednotky PIO blok (nezvisle bc stavov maina - max. 32 instrukc v ASM). Destika dle obsahuje extern 2MB QuadSPI FlashROM (na ipu je pouze mal ROM s USB bootloaderem), krystalov osciltor, USB konektor (podporuje USB 1.1 device i host) a 40 pin ve tvaru pouzdra obvodu DIL. Napjec napt je 1,8 5,5 V. GPIO nejsou 5 V tolerantn, max. 3,3 V a daj proud kolem 12 mA, max. jen 50 mA na vechny GPIO. U ns se d Pico koupit za 109 K (v Praze ho m i GM Electronic za 149 K), i jet men destika s vce GPIO, ppadn i samotn MCU RP2040 za pouhch 29 K (a v dnen dob nedostatku ip jsou kupodivu skladem).
      Dozvdl jsem se o nm z vlkna na OldCompu, kde si s nm zaal hrt Panda (samozejm e n v Pythnu, ale pkn low-level) a naprogramoval pknou OpenSource C-kovou grafickou knihovnu PicoVGA, resp. zjednoduen verze Pico16VGA a PicoQVGA, s kterou lze s pomoc pr odpor zobrazovat grafiku na bnm VGA monitoru nebo LCD s paralelnm RGB interfacem. Zde je podobn projekt pro generovn obrazu na kompozitn vstup s jednoduchm odporovm R-2R DACem a experimentln projekt digitlnho vstupu PicoDVI se siln petaktovanm MCU. Spolehliv pr b cca do 250 MHz (jako prvn zane chybovat SPI FlashROM, ale zjistilo se, jak zvit dliku SPI hodin pro fleku a pak se d dostat v pohod pes 300 MHz), utilita pro nastaven PLL je zde. Panda tak pipravil minimalistick RaspPicoSDK vetn popisu pro zatenky, kter se obejde bez dalho bloatware a vysta si jen s ARM-GCC (pouit binrky neb na Windows XP, ale daj se nahradit tmito ze SourceForge). Vnoval se t assembleru a men doby zpracovn instrukc.

      28.1.2022 mi z RPiShopu dorazily 2 Pico destiky a 1 samostatn ip RP2040. Dle jsem se dozvdl o dal vt OpenHW destice VGA, SD Card & Audio Demo board for Raspberry Pi Pico aka Pimoroni Pico VGA Demo Base. Ta obsahuje VGA konektor s odporovm DACem RGB555, audiokodek PCM5101 s vstupem na stereo jack, slot na microSD kartu, microUSB host konektor, 3 tlatka a ladic pin header. PCB Layout a schma v KiCADu je zde a zdrojky demo program jsou na GitHubu. Za jednu neosazenou destiku dkuju vanthomasovi z OldComp fra. Chtl bych na n zkusit rozjet Pandovu knihovnu PicoVGA, kter pouv mn barevn vstup RGB332 mapovan na jin GPIO a tak slouen signl SYNC msto HSYNC a VSYNC. Snad to pjde pizpsobit pravou souboru vga_config.h. Nechal jsem si tak vyrobit u JLCPCB 5 destiek PicoDVI.

      5.2.2022 Od Pandy jsem se dozvdl, e vstupy pro RGB DAC na ve zmnn destice bohuel pemapovat nepjdou, protoe program pro PIO blok prochz popoad za sebou jednotliv GPIO, co zde nen splnno, nebo GPIO5 je pouit pro hodiny microSD karty. Tak nepot, e pouit footprinty pro tyto SMD odpory jsou zcela zbyten velikosti 0402, kdy by se tam v pohod vely 0603. Vyeil jsem to jednodue pelepenm dan oblasti na desce proukem kaptonov psky a pipjenm 0603 odprk podle Pandova zapojen pmo k vvodm Pico modulu. Na druh konce odprk jsem pipjel drtky a propojil je v odpovdajcmi R, G, B piny VGA konektoru. Panda et GPIO a pouv smenou synchronizaci zavedenou na pin HSYNC (13) msto pvodnch HSYNC a VSYNC.

Raspberry Pi Pico na VGA demoboardu

      Po prvnm pipojen Pica do PC pes USB se mi detekovalo sloen USB zazen se zazenm tdy mass storage a neznm zazen "RP2 Boot" s USB PID: 0003h, k nmu nen pro Windows dn ovlada, ale nen pro naprogramovn poteba. Raspberry Pi Foundation pouv USB VID: 2E8Ah a zde je seznam vech jejich PID. Nkter programy dle pouvaj virtuln sriov port (CDC), pro kter sta nainstalovat tento INF soubor. Jak jsem zjistil, zazen "RP2 Boot" vyuv utilita picotool (zdrojky zde) ke komunikaci s bootloaderem pes knihovnu libusb. Zazen je teba run zaregistrovat k WinUSB/libusb driveru pomoc utility Zadig, viz obrzek ne. Jedin binrka picotool.exe 1.1.0, kterou jsem nael, bohuel neb pod Windows XP a pod Windows 10 mi pi pokusu o spojen s Picem opakovan spadla. Nakonec se mi podailo zkompilovat vlastn build verze 1.1.0 [422 kB], kter funguje i pod Windows XP. Umouje nahrvat a verifikovat programy pro Pico do/z SPI FlashROM, restartovat z boot mdu do aplikanho mdu (obrcen mi to nefungovalo) a vypsat njak informace, viz ne.

Installing RP2 Boot driver - libusb in Zadig


C:\RaspPicoSDK\_exe>picotool.exe info -a

Program Information
 name:          pico
 web site:      https://github.com/raspberrypi/pico-examples
 features:      USB stdin / stdout
 binary start:  0x10000000
 binary end:    0x10055bc0

Fixed Pin Information
 none

Build Information
 sdk version:       1.0.1
 pico_board:        pico
 build date:        Jun  6 2021
 build attributes:  Release

Device Information
 flash size:   2048K
 ROM version:  2

      Zkusil jsem do Pica nahrt program Vlak (Train), kter je portem stejnojmenn star DOSov hry od Golem Software. Naprogramovn (pokud u bylo do Pica dve nco nahrno, je teba zmknout tlatko BOOTSEL a RUN/RESET#, pak se jednodue zkopruje zkompilovan .UF2 soubor na virtuln disk Pica) a start programu probhl bez problm a na monitoru se objevil star znm Vlak, kter jsem mohl ovldat klvesama pes Putty (115200 baud) skrz virtuln srik (lze pekonfigurovat i na UART na GPIO). Obraz bel rychle a stabiln bez jakchkoliv ruivch jev. UPDATE: Na Pico byla portovna i legendrn stleka Doom. Zdrojky jsou k dispozici na GitHubu a ukzkov video je zde. Sharewarov epizoda Doomu se dky kompresi vela do standardn 2MB SPI FlashROM a obraz se generuje odporovm DACem na VGA v 16-bitovch barvch RGB565. Za zmnku stoj tak projekt emultoru Pico-ZXspectrum, kter vyuv ve zmnnou knihovnu PicoDVI.

      30.3.2022 Tak mi konen s vrkou plok z JLCPCB dorazily 4-vrstv destiky na PicoDVI zmnn ve, mrn upraven pro jin footprint HDMI konektoru. Mm navc 5 ks, take ppadnm zjemcm mu z tohoto pebytku nabdnout. Zatm jsem osadil MCU RP2040 v QFN pouzdru a 12MHz krystal, ale chyb mi pasiva velikosti 0402, kter budu muset nkde koupit (toto smet bn nevedu).

Raspberry Pi PicoDVI PCB-top Raspberry Pi PicoDVI PCB-bottom
PicoDVI PCB top PicoDVI PCB bottom

      20.4.2022 Ped 2 tdny jsem sehnal soustky a doosadil destiku, ale nevyzkouel ji, protoe jsem nikde nenael zkompilovanou binrku s njakm demem pro sprvnou konfiguraci pin (nael jsem akort zkompilovan binrky, kter byly uren pro Wrenv adaptr DVI Sock s jinm zapojenm TMDS pr). Nyn jsem konen pekonal nechu a odhodlal se rozbhnout toolchain s CMake. Kompilace se samozejm (na Windows) neobela bez problm. Pouil jsem posledn verzi CMake 3.23.1, Python 3.10.4 (vyadovan njakmi build skripty) a ARM-GCC 9.3.1 toolchain. Dle je poteba mt nkde staenou a rozbalenou originln verzi PicoSDK 1.3.0 (ne tu upravenou Pandovu verzi). Pustil jsem CMD a nastavil cesty k ARM-GCC, MinGW, CMake, Pythonu a nastavil promnnou PICO_SDK_PATH do adrese s rozbalenm PicoSDK. V top-level adresi zdrojk PicoDVI jsem v souboru CMakeLists.txt zmnil dek s konfigurac pin z set(DVI_DEFAULT_SERIAL_CONFIG "pico_sock_cfg" CACHE STRING na set(DVI_DEFAULT_SERIAL_CONFIG "picodvi_dvi_cfg" CACHE STRING (pp. lze pedat jako parametr CMake -DDVI_DEFAULT_SERIAL_CONFIG=picodvi_dvi_cfg). Vytvoil jsem podadres build, vstoupil do nj a spustil cmake -G "MinGW Makefiles" -DPICO_COPY_TO_RAM=1 .., ml by vzniknout soubor Makefile a mlo by stait u jen zavolat make. Ale protoe mi njak selhala kompilace utilit pioasm a elf2uf2 z PicoSDK, tak jsem nakoproval staenou binrku pioasm.exe do build\pioasm\ a elf2uf2.exe do build\elf2uf2\. Pak jsem musel zavolat make -i, aby se ignorovaly errory bhem kompilace, protoe CMake se pokouel pomoc ARM-GCC zkompilovat njak testovac soubor pro Windows s neznmm linker parametrem --major-image-version, ale to nem vliv na kompilaci ARMovho kdu a nakonec se mi peloily vechny dema. Pro test zde pikldm zkompilovan image dema christmas_snowflakes.uf2 [114 kB], kter je vidt na fotce ne. Vyzkouel jsem vechny dema a zobrazen bylo v podku, a na 1 demo vista-palette, kter mi negenerovalo dn obraz.

Raspberry Pi PicoDVI assembled PCB-top Raspberry Pi PicoDVI assembled PCB-bottom Raspberry Pi PicoDVI-Christmas snowflakes demo Raspberry Pi PicoDVI-Pico-ZXspectrum
PicoDVI top PicoDVI bottom Christmas snowflakes Pico-ZXspectrum

      Povedlo se mi t zkompilovat emultor Pico-ZXspectrum, kter vyuv knihovnu PicoDVI. Pro jeho kompilaci je teba navc sthnout balky (nejlpe pes GIT dle popisu v odstavci Build) no-OS-FatFS-SD-SPI-RPi-Pico, pico-dvi-menu, pico-emu-utils a upravenou knihovnu TinyUSB, kterou nahradme star verzi v PicoSDK (nezapomenout na git checkout hid_micro_parser). Konfigurace pin pro HDMI vstup se pouije dle konfiguran promnn DVI_DEFAULT_SERIAL_CONFIG z nadazenho CMakeLists.txt z PicoDVI knihovny, pak u jen sta peloit make -i zxspectrum. Emultor podporuje funkci USB host a lze ho ovldat USB HID zazenmi (klvesnice a joysticky), kter lze pipojit i pes USB hub. Zatm ale nemm pipjen konektor pro microSD kartu.

      30.6.2022 Raspberry Pi Foundation pedstavilo novou verzi Raspberry Pi Pico W za 6$, kter ke stvajcmu MCU RP2040 pidv Wi-Fi modul zaloen na ipu Infineon CYW43439. Ten podporuje t Bluetooth 5.2, ale tato funkcionalita zatm nen na Pico W k dispozici (v budoucnu mon bude). Softwarov podpora zaloen na sovm stacku lwIP je zahrnut v Pico SDK. Rozmrov a pinov je nov Pico kompatabiln s pedchoz verz.

      12.1.2023 Raspberry Pi Pico lze tak pout jako levn logick analyztor s 21 digitlnmi kanly s vzorkovnm do 120 MHz a 3 analogovmi kanly s vzorkovnm do 500 KHz. Viz t diplomov prce z VUT: Vt Vanek - Logick analyztor s Raspberry Pi Pico. Zsadn omezen je zk hrdlo v podob pomalho USB, nicmn krat zznamy se vejdou do intern RAM (lze samplovat rychle na limitu penosu GPIO-DMA) a u signl s mlo zmnami v ase me pomoci RLE komprese. Uivatel Pico-coder na svm GitHubu dal k dispozici OpenSource firmware pro Pico vetn zkompilovanho UF2 souboru, napsal driver do knihovny libsigrok (zatm se nedostal do oficiln vtve), kterou vyuv populrn aplikace PulseView - zde je teba pout speciln build se zakompilovanm driverem (me vyadovat knihovnu mscvr100.dll, pokud ji u nemte v systmu). Firmware Pica komunikuje s libsigrok pes virtuln sriov port (CDC). Po pipojen se objev jako USB zazen s VID, PID: 2E8A:000A:00 - Board CDC (Interface 0) a je pro nj teba nainstalovat INF soubor zmnn ve. slo sriovho portu zjistme ve Sprvci zazen a v PulseView v menu "Connect to Device" vybereme driver "raspberrypi-pico" a pslun Serial Port (bitovou rychlost nen teba u CDC zadvat). Pozor na to, e GPIO na Pico jsou nechrnn a snadno by se mohly odprsknout vtm naptm ne 3,3 V, take doporuuji pidat alespo njak sriov odpory pr set ohm.

PulseView configuration

      9.2.2023 Raspberry Pi Pico bylo pouito jako zklad OpenHW/FW emultoru PicoGUS historick zvukov karty Gravis Ultrasound (podporuje t AdLib/OPL2 a MPU-401 MIDI v proveden 8-bitov ISA karty). Zatm nen zdaleka 100% kompatabiln, ale s novjm FW se to postupn zlepuje, viz compatibility list. Nov verze firmware 1.2.0 pidv podporu emulace Sound Blaster 2.0.

      11.2.2024 Dal vyuit Raspberry Pi Pico jako experimentln analyztor LPC sbrnice pin projekt Pico TPMSniffer. Vyuv k tomu rychl PIO (modul lpc_sniffer.pio), vstup je na sriov port.


Raspberry Pi Pico 2

      8.8.2024 pedstavila organizace Raspberry Pi Foundation novou verzi destiky Raspberry Pi Pico 2 s novm MCU RP2350. Jeho nejvt zajmavost je, e obsahuje 2 pry jader rznch architektur a instruknch sad: ARM Cortex-M33 a RISC-V Hazard3. Nejde vak o 4-jdro, lze si to pedstavit tak, e vnitn jsou k dispozici 2 CPU "sockety" a kad me mt nezvisle pipojeno bu jdro ARM nebo RISC-V podle nastaven konfiguranch registr, piem druh neaktivn jdro je dreno v resetu a s vypnutmi hodinami. Hodnoty tchto konfiguranch registr se tou pouze pi resetu MCU (ten lze vyvolat i programov pes watchdog). ROMkov bootloader je schopen podle familyID v UF2 image sm poznat, pro kterou architekturu je nahran kd ve FlashROM a podle toho aktivuje pslun jdra. T je mon zpisem do OTP pamti trvale vypnout RISC-V jdra, zejm z bezpenostnho dvodu, e bootloader pro RISC-V neimplementuje Secure Boot. RP2350 pinesl nejlevnj zpsob, jak si platformu RISC-V osahat.
      Mezi dal novinky a vylepen pat zven frekvence jader na 150 MHz, zvten intern SRAM na 520 kB, extern FlashROM by mla bt 4MB QSPI, rozen na 12 jednotek PIO, pibyl rychl serializr HSTX s HW TMDS enkodrem (podpora DVI / HDMI), SHA-256 akcelertor, ARM TrustZone, bylo vylepeno DMA a dal. USB periferie zstv u verze 1.1. Zde jsou postehy uivatele Dmitry.GR, kter ml monost bhem vvoje nov MCU rok testovat. Uivatel Wren6991 u portoval na RP2350 svj projekt PicoDVI (libdvi) s vyuitm novho TMDS enkodru a t ve verzi pro RISC-V. U ns je u nov Pico 2 k dostn na RPishopu za 135 K, co je pod dosti lidov cena.

      17.3.2025 Po pr letech jsem opt vyrazil do Nmecka na veletrh Embedded World s bvalmi kolegy z pedchoz prce a dovezl si jedno Raspberry Pi Pico 2. Porozhldl jsem se tedy po alternativnm SDK a Miroslav Nmeek AKA Panda opt nelenil. Vydal novou verzi PicoLibSDK (ke staen na GitHubu) unifikovanou pro vechny 3 Pico CPU architektury: RP2040, RP2350-ARMv8 a RP2350-RISC-V. Tzn. v kadm projektovm adresi jsou odpovdajc baky pro kompilaci na danou platformu. Chtl jsem vyzkouet novou alternativu RISC-V, pro kterou je poteba si sthnout RISC-V GCC toolchain (pouil jsem verzi 14.2.0 pro Windows, k dispozici je u pouze 64-bitov verze). Nsledn jsem musel upravit prefix v souboru Makefile.inc z riscv32-unknown-elf- na riscv-none-elf- (Panda pouv star RISC-V32 GCC toolchain 13.2.0). Zkusil jsem zkompilovat zkladn example na blikn LED a fungoval bez problm. Podle Pandy je nov RP2350 asi 2x rychlej ne pedchdce RP2040 a programy na RP2350 RISC-V jdrech b asi o 15% pomaleji ne na ARMv8 jdrech (nepomohly moc ani run optimalizace v assembleru), patrn dky specializovanm koprocesorm, kter mou vyut jen ARMv8 jdra.
      Panda u na Pico 2 prohn HDMI vstup s vyuitm periferie HSTX, rychlou matematickou knihovnu pro RISC-V Hazard3 jdro, MP3 pehrva... Zajmav je t kapesn hern konzole PicoPad, kter se dokala i vlastnho chytlavho AI songu.



Zpt

Aktualizovno 18.3.2025 v 5:36