Recenze: Raspberry Pi Compute Module

Raspberry Pi je zřejmě nejpopulárnejší jednodeskový počítač vůbec. Raspberry Pi Compute Module představuje kompaktní verzi Raspberry Pi určenou pro embedded nasazení. Celý minipočítač je osazen na DPS která je rozměrově i kontakty kompatibilní s DPS SODIMM (notebookového) RAM modulu. Compute Modul sám o sobě neobsahuje žádné další konektory a lze ho tak snadno a konstrukčně čistě zabudovat na DPS v zařízeních třetích stran.

Hardware

Základem Raspberry Pi Compute Module je SoC (system on chip) společnosti Broadcom s označením BCM2835. Ten v sobě ukrývá jedno jádro ARM1176JZFS (ARM11) standardně taktované na 700MHz. Jádro ARM1176JZFS je postaveno na architektuře ARMv6 a zahrnuje hardwarovou FPU a také rozšíření VFP (o ARM rozšířeních podrobněji na ARMv6 vs ARMv7). SoC dále obsahuje GPU VideoCore IV taktovanou na 250MHz (24 GFLOPs), podporující OpenGL ES 2.0 či hardwarovou akceleraci komprese/dekomprese H.264 1080p30. Veškeré vstupy či výstupy jsou realizovány výhradně pomocí kontaktů na hraně SODIMM modulu. Jelikož jich modul má k dispozici 200, bylo možné ze SoC vyvést i některé sběrnice či rozhraní, která na jiných modelech RPi nejsou vůbec dostupná. Video výstup zajišťuje konvenčně HDMI verze 1.3a (podpora přenosu zvuku přes HDMI) a také analogový kompozitní výstup (NTSC/PAL). Pro display je ovšem k dispozici hned dvojice digitálních DSI kanálů. Také rozhraní MIPI-CSI pro připojení kamery je k dispozici 2x. Celkově je na pin lištu vyvedeno 45 GPIO kanálů. Je zde zastoupeno 2xI2C, 2xUART (jeden defaultně použitý pro Linux terminál), SPI i I2S.

Raspberry Pi Compute Module neobsahuje žádný řadič ethernetu (PHY), ani USB hub. Jediné USB poskytované přímo SoC BCM2835 je vytaženo na pin lištu modulu. V případě potřeby ethernetového rozhraní je tedy třeba ethernetový řadič osadit až na vlastní desku. Pro komunikaci RPi a řadiče lze využít např. USB nebo SPI. Pro obě sběrnice existuje poměrně velké množtví dostupných ethernet PHY čipů.

Raspberry Pi Compute Module neobsahuje ani stabilizátory zajišťující potřebná napájecí napětí. Modul je tedy třeba napájet z hostitelské desky. Je vyžadováno napětí 3.3V, 1.8V a 2.5V. Napětí 2.5V nicméně využívá pouze DAC v SoC BCM2835 a pokud není použit kompozitní video výstup modulu, je možné na tento napájecí pin (VDAC) připojit 3.3V. Poté si tedy modul vystačí pouze s dvojicí napájecích napětí – 3.3V, 1.8V.

SoC Broadcom BCM2835
CPU jednojádrový ARM1176 na 700MHz
Architektura ARMv6
RAM 512MB DDR3
GPU VideoCore IV
Úložiště 4GB eMMC
I/Os pin lišta obsahující HDMI, 2x MIPI-CSI pro kameru, 2x MIPI-DSI pro display, 1x USB2.0 host, 45 GPIO pinů, kompozitní video výstup, napájení + reference pro GPIO
Napájení 1.8V, 2.5V a 3.3V
Rozměry 67.6x30mm

SODIMM socket

Raspberry Pi Compute Modul má rozvržení kompatibilní s DDR2 SODIMM modulem (200pin, 1.8V). Při výběru kompatibilního socketu je třeba dbát hlavně na napětí pro které je socket určen. 200pin SODIMM konektory se obvykle dělí na 1,8V a 2,4V verzi, přičemž každá verze má jinak umístěný zámek (plastový výlisek, který zapasuje do zahloubení v RAM modulu). Napětí ovšem často nejsou u SODIMM konektorů uvedená vůbec. Malým tahákem může být, že 1,8V konektory od TE CONNECTIVITY mají obvykle označení ve formátu XXXXXXX-4 zatímco 2,4V verze XXXXXXX-1. Nicméně občas se podaří narazit i na socket do kterého RPi Compute modul nepasuje, přestože všechny výše zmíněné parametry splňuje. Jak hladce modul pasuje do kompatibilního socketu záleží také na tom jestli použijete Compute modul vyrobený v UK nebo vyrobený v Číně.

Ověřené kompatibilní SODIMM konektory například:

  • TE 1565917-4
  • ATTEND 121A-52A00

Compute module I/O board

Raspberry Pi Compute modul lze zakoupit také ve formě vývojářského kitu, kde kromě samotného modulu dostanete také hostitelskou desku pro modul. Deska zajišťuje Compute modulu všechna potřebná napájecí napětí prostřednictvím spínaného stabilizátoru (stejný jako na Raspberry Pi B+). Desky také obsahuje piny pro přístup ke 45 vyvedeným GPIO linkám, dva CSI konektroy pro kameru, dva DSI konektory pro display, HDMI plné velikosti a trojici USB konektorů. Na pin header je také vyveden RUN pin, kterým lze harwarově ovládat start Compute modulu. Také je zde pin pro analogový výstup kompozitního videa. Trojice USB konektorů se sestává z jednoho USB A a dvou microUSB. Jedno microUSB slouží pro napájení desky (klasicky 5V), druhé microUSB slouží jako USB-OTG (slave) a velké USB A slouží jako USB host (jako na běžném Raspberry). USB-OTG a USB host ovšem nefungují současně (SoC na Compute modulu má stále jen jednu USB linku) a v případě potřeby se mezi nimi přepíná pomocí jumperu J4.

Raspberry Pi Compute Module I/O Board
Raspberry Pi Compute Module I/O Board

Pomocí Compute module I/O board lze také nahrát obsah na eMMC pamět Raspberry Pi Compute modulu. V takovém případě se pomocí jumperu J4 přepne funkce USB na USB slave (USB-OTG). Následně lze desku spojit prostřednictvím microUSB konektoru s PC a pomocí utility Rpiboot lze nahrát image operačního systému do flash paměti Compute modulu.

Software

Raspberry Pi Compute Module vyžaduje operační systém schopný běžet na architektuře ARMv6 s rozšířením Thumb a VFPv2. Raspberry Pi Foundation pro tuto specifickou konfiguraci vydala nový port operačního systému Debian, pojmenovaný Raspbian. Raspbian vychází konkrétně z Debianu armhf (který byl původně určen pro ARMv7 – Thumb-2 a VFP3D16). Upravený systém mimo jiné zahrnuje proprietární ovladače pro GPU VideoCore, mnoho device tree overlayů pro ovládání různých periferií desky či utility pro snadnou konfiguraci RPi. Součástí systému je také desktopové grafické prostředí LXDE. Raspbian používá svůj vlastní repozitář instalačních balíčků, aby byla zajištěna kompatibilita s vlastním buildem systému.

Pro vývoj softwaru lze vybírat z klasické škály jazyků dostupných na Linuxu. Za výchozí jazyk pro RPi je někdy považován Python (jeho podpora a IDE je předinstalované), nicméně není problém vyvíjet nativně v C/C++. Např. populární IDE Code::Blocks (je v oficiálním repozitáři) funguje na RPi poměrně svižně. Samozřejmě lze využít přímo gcc resp. g++ a pracovat pouze prostřednictvím terminálu. Kompilování na tak pomalém stroji je ovšem v celku utrpením (zřejmě proto také na RPi vedou interpretované jazyky) a tak stojí za zvážení použít cross compiler běžící na nějakém výkonnějším stroji. K desce jsou díky široké podpoře komunity dostupné knihovny pro práci s GPIO porty (např. Pigpio, WiringPi či RPi.GPIO). K dispozici je mnoho “driverů” (overlayů či kernel modulů) pro různé externí obvody. Velmi snadné je také využití sběrnic (I2C, I2S, SPI, UART).

Existuje mnoho dalších dostupných alternativních operačních systémů, resp. jejich portů jako např. Ubuntu mate, OSMC, OpenELEC, OpenWrt. Různé systémy často slouží nějakému specifickému účelu a směřují RPi do embedded nasazení.

Benchmarks

pracuju na tom… :)

Závěr

Raspberry Pi Compute Module se netají svým zaměření na OEM využití v aplikacích třetích stran. Zařízení tak představuje drobný odklon tvůrců RPi od charitativní výroby levných mini PC pro studenty. Odchylka je znát i na ceně výrobku která dosahuje 30$ a je tedy stejná jako u plně vybavených RPi desek. Pozitivní stránkou ovšem je dostupnost produktu se kterou Compute Modul narozdíl od jiných Raspberry desek neměl nikdy problém. PRi Compute Module stále patří mezi nejlevnější computer-on-module zařízení na trhu s nejlepší komunitní hardwarovou i softwarovou podporou. Hledáte-li elegantní low-cost embedded řešení vyplatí se rozhodně Raspberry Pi Compute Module zvážit.

Be the first to comment

Leave a Reply