Produktbeskrivning
Raspberry Pi Pico - utan headers. Vill du ha förlödda headers, välj Rasperry Pi Pico H.
Raspberry Pi Pico är en litet utvecklingskort baserat på Raspberry Pi Foundations egenutvecklade ARM-krets RP2040. Den är liten, strömsnål och otroligt prisvärd, och ett bra val för nära styrning av hårdvara, avläsning av analoga givare (åt exempelvis en Raspberry Pi, som saknad AD-omvandlare), eller för utbildning i programmering för embedded i antingen MicroPython eller C.
RP2040 är en tvåkärning 32-bitars ARM-Cortex M0+ med en flexibel klockfrekvens på upp till 133MHz. Internt har RP2040 264KB RAM, på Raspberry Pi Pico är den expanderad med ett 2MB Flash-minne.
26 multifunktionella GPIO-pinnar ger stora möjligheter till seriell kommunikation, tre av dessa kan läsa analoga spänningar med 12 bitars upplösning.
Två programmerbara IO-block (PIO) med totalt åtta maskiner kan konfigureras för att hantera olika protokoll och enkla funktioner med låg latency och utan att belasta microkontrollern, exempelvis kan de emulera interface för SD-kort eller VGA-video.
En flexibel spänningsregulator möjliggör spänningsmatning från ~1.8V till 5.5V, Pi Pico kan med andra ord drivas med batterier och andra fluktuerande strömkällor. Spänningen omvandlas till arbetsspänningen 3.3V, som även finns tillgänglig för att spänningsmata extern utrustning (maximalt strömuttag beror på hur hårt RP2040 jobbar och klockfrekvens, men det rekommenderas att hålla det under 300mA).
Raspberry Pi Pico kan användas med två 1x20-pin stiftlister (ingår ej), lämpling för bruk med experimentkort eller hålmontering i moderkort. Kortet kan även ytmonteras med hjälp av de krenelerade kanterna (castellated edges på engelska). Fyra monteringshål (M2) ger ytterligare möjligheter, man kan exempelvis fästa den i valfritt underlag och löda kablar direkt till kontakterna.
Pi Pico programmeras enkelt med hjälp av BOOTSEL-knappen. Enheten dyker upp i datorn som ett flash-minne, och program kan helt enkelt släppas på dess ikon, varpå enheten automatiskt startar om och läser in det nya programmet. Koden för USB-boot lagras i ett separat ROM och kan inte oavsiktligen skrivas över. Möjlighet till debug med SWD finns.
Den inbyggda lysdioden kan användas för indikering och status.
o Dual-core cortex M0+ med upp till 133MHz klocka, inbyggd PLL möjliggr variabel klockfrekvens
o RP2040 microcontroller med 2MByte Flash med 264kByte multi-bank high performance SRAM
o 26 multi-function 3.3V General Purpose I/O (GPIO) - 23 digitala och 3 ADC
o 2 × UART, 2 × I2C, 2 × SPI, 16 st PWM-kanaler
o 12-bit 500ksps Analogue to Digital Converter (ADC)
o 2 × Programmable IO (PIO) blocks, 8 state machines total
o 1 × Timer with 4 alarms, 1 × Real Time Counter
o External Quad-SPI Flash with eXecute In Place (XIP)
o On-board USB1.1 (device eller host)
o 3.3V logiknivå
o Stora möjligheter till spänningsmatning och strömsparning
o Kan spänningsmatas med USB, externa strömkällor och batterier (~1.8-5.5V)
o Mycket utförlig dokumentation, exempel och SDK finns tillgänglig
o 3-pin ARM Serial Wire Debug (SWD) port
o Micro-USB B port for spänningsmatning och data, samt omprogrammering av Flash-minne
o 40 pin 21x51 'DIP' format 1mm tjock mönsterkort med 2.54mm-delning på kontakter, samt krenelerade kontakter (castellated edges) för ytmontering
Mer om PIO:
De två konfigurerbara PIO har åtta "state machines. PIO kan snabbt och utan att belasta processorn kan utföra enklare funktioner. I och med att det sker separat från processorn, kan de exempelvis läsa av pins och ha datan klar när processorn behöver den.
Eftersom RP2040 kan ha upp till 133Mhz klockfrekvens kan det bli problematiskt att kommunicera med äldre eller långsammare enheter. Många processorcykler kan gå åt innan RP2040 får något svar på seriell kommunikation. Men med PIO-maskinerna kan RP2040 istället ägna sig åt sina beräkningar, medan PIO-maskinerna sköter kommunikation med omvärlden. När så processorn vill läsa av datan, så har PIO-pinnarna den lagrad för snabb avläsning.
Särskilt om det är något obskyrt protokoll det handlar om, eller exempelvis en ovanlig display, så kan PIO-maskinerna "bit-banga" kommunikationen, alltså skapa rätt bitflöde utan att "förstå" protokollet det handlar om. Detta utan att kärnan i RP2040 behöver vänta, eller hantera precis timing.
Alla PIO-maskiner har tillgång till alla GPIO-pins, kan operera från 2KHz till 133Mhz klockfrekvens, och kan läsa och skriva till pins, skicka data till FIFO och räkna upp en klocka på bara en klockcykel.
PIO kan exempelvis generera klockor, styra servon utifrån en enkel instruktion, eller återkoppling, dimma lysdioder, bland mycket annat.
Ett litet assembler-liknande språk som heter pioasm, med bara nio instruktioner (!) är allt som krävs för att programmera PIO-maskinerna. Om du vill komma igång med assembler-programmering kan PIO vara en bra början, då det är begränsat och väldokumenterat.