Recenze: Raspberry Pi 2

Začátkem února 2015 přišla Britská Raspberry Pi Foundation naprosto nečekaně s novou generací minipočítaře Raspberry Pi. Vylepšení se tentokrát ovšem netýkají pouze periferií, inovace se totiž dočkalo srdce Raspberry Pi – SoC Broadcom BCM2835. V té době již značně zastarávající BMC2835 založený na jednojádrovém ARMv6 CPU byl nahrazen za BCM2836. Raspberry Pi 2 je tak poháněn 4 jádry Cortex A7 na 900MHz a proti předchozí generaci je tak násobně výkonnější.

Balení

Raspberry Pi 2 model B package
Raspberry Pi 2 model B – balení a jeho obsah

Raspberry Pi 2 dostanete v úhledné kartonové krabičce (její potisk se může lišit podle konkrétního výrobce). Balení obsahuje pouze stručný manuál s bezpečnostními informacemi a samotné Raspberry Pi 2 v antistatickém obalu.

Hardware

Základem Raspberry Pi 2 je SoC (system on chip) společnosti Broadcom s označením BCM2836. Ten v sobě ukrývá čtveřici jader Cortex A7 standardně taktovaných na 900MHz (lze přetaktovat až na 1,1GHz). Jádro Cortex A7 je postaveno na architektuře ARMv7 (zatímco předchozí generace využívaly ARMv6, podrobněji ARMv6 vs ARMv7) a kromě obligátního rozšíření Thumb2 či VFPv2 zahrnuje procesor také SIMD engine NEON. GPU zůstalo stejné jako v předchozích modelech, o akceleraci grafiky se tak stará VideoCore IV taktovaný na 250MHz (24 GFLOPs), podporující OpenGL ES 2.0 či hardwarovou akceleraci komprese/dekomprese H.264 1080p30. Vstupy a výstupy, stejně jako celý layout desky zůstaly maximálně kompatibilní s předchozím Raspberry Pi B+. Video výstup zajišťuje HDMI verze 1.3a (podpora přenosu zvuku přes HDMI) a také analogový kompozitní výstup (NTSC/PAL). Dalším analogovým výstupem je stereo audio výstup. Kompozitní video výstup i audio výstup (stejně jako u Raspberry Pi B+) sdílí stejný konektor – 4polový jack. Ze SoC BCM2836 jsou dále pomocí diferenciálních spojů vyvedeny sběrnice pro kamerové rozhraní MIPI CSI a displayové rozhraní DSI. GPIO header disponuje 40 piny a je opět umístěním i zapojením kompatibilní s Raspberry Pi B+. Stále je zde I2C, SPI, I2S a UART (defaultně použitý pro Linux terminál) a vyhrazená I2C sběrnice pro komunikaci s kompatibilními rozšiřujícími moduly (tzv. HATy). Prostřednictvím této I2C je možné také přímo z HATu stáhnou a aplikovat ovladač (resp. Device tree overlay). GPIO piny stále využívají 3.3V TTL logické úrovně a nejsou 5V tolerantní. RAM čip je typu LPDDR2 a je osazen na spodní straně desky (již tedy není sendvičově posazený na SoC).

O napájení desky se stále stará integrovaný dvojitý spínaný stabilizátor (poskytující 1.8V a 3.3V). Nově je zde ovšem také použit spínaný měnič NCP6343. Jde o miniaturní čip (waffer-level pouzdro), který se stal nechvalně známý svou citlivostí na okolní světlo a svou schopností restartovat či zamrznout RPi např. při focení Raspberry Pi xenonovým bleskem (detailně o problému na EEVblogu https://www.youtube.com/watch?v=SrDfRCi1UV0)

NCP6343
napájecí obvod Raspberry Pi 2, zvýrazněn světlocitlivý NCP6343

USB hub a řadič 100Mbit ethernetu je stejně jako v Raspberry Pi B+ řešen obvodem LAN9514. Obvod je spojen se SoC BCM2836 opět pomocí USB. Zůstává zde tak úzké hrdlo (jednou USB linkou prochází komunikace čtveřice stejně rychlých USB + ethernetu).

SoC Broadcom BCM2836
CPU čtyřjádrový Cortex A7 na 900MHz
Architektura ARMv7
RAM 1GB LPDDR2
GPU VideoCore IV
Úložiště microSD karta
I/Os RJ45 pro 10/100 ethernet, HDMI (full size), MIPI-CSI pro kameru, DSI konektor pro display, 1x napájecí microUSB, 4x USB2.0 host, 40pin GPIO header, 3.5 4-pólový jack pro audio výstup a analog. video výstup
Napájení 5V/2A
Rozměry 56×85mm

Spotřeba

Měření spotřeby bez připojených USB periferií. Použitý OS je Raspbian Wheezy nastartovaný do konzole.

vypnutá deska 0.325W (65mA)
systém v klidu (LAN odpojený) 1W (213mA)
systém v klidu (LAN připojený) 1.3W (260mA)
CPU všechna jádrana 100% (LAN připojený) 1.95W (390mA)

Software

Raspberry Pi 2 vyžaduje operační systém schopný běžet na architektuře ARMv7. Díky zpětné kompatibilitě ARMv6 a ARMv7 lze ovšem stále použít původní Raspbian kompilovaný pro ARMv6. Raspbian 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. Vše nicméně v současnosti kompilované a adaptovaná původnímu procesoru (založenému na ARMv6 s rozšířením Thumb a VFPv2). Raspbian používá svůj vlastní repozitář instalačních balíčků, aby byla zajištěna kompatibilita s vlastním buildem systému. Na Raspberry Pi 2 lze ovšem využít i repozitář klasického Debianu armhf, odkud lze čerpat novější balíčky či aplikace kompilované nativně pro ARMv7.

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é, syntaxe je jednoduchá), 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. Raspberry Pi 2 již poskytuje dostatek výkonu a paměti pro kompilaci větších projektů. 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í. Nově je pro Raspberry Pi 2 ovšem dostupný také Windows 10 IoT Core.

Windows 10 IoT Core

Pro příznivce Microsoftu a jazyka C# je nepochybně dobrou zprávou, že Windows 10 IoT Core bude dostupný ve verzi pro Raspberry Pi 2. Pro čtenáře, kteří o Windows 10 IoT slyší poprvé ve stručnosti připomenu, že jde o edici Windows 10 určenou o malá zařízení ze světa IoT (internet of things). Systém neosahuje žádné grafické uživatelské rozhraní (kromě obrazovky se základní konfigurací) a samozřejmě nepodporuje x86 aplikace ze světa desktopových Windows. Windows 10 IoT umožnuje teoreticky spouštět univerzální Windows aplikace (UWP). Ovšem bez problémů budou fungovat v zásadě pouze ty, které s nasazením na RPi už při vývoji počítaly. Je také potřeba počítat s tím, že grafický kabát univerzálních Windows aplikací je často pevně svázán s DirectX, který na GPU RPi nemá přímou podporu. Mnoho aplikací tak bude pracovat bez hardwarové akcelerace grafiky a mnoho úloh využívajících specifické funkce GPU nebude pracovat vůbec (hardwarové kódování/dekódování videa, MIPI-CSI kamera). Je také potřeba počítat s tím, že systém se stále vyvíjí a mnoho harwarových komponent RPi tak zatím nemusí mít dostupné drivery.

Co pod Windows IoT Core v současné době nefunguje:

  • audio výstup
  • kompozitní video výstup
  • I2S sběrnice
  • hardwarové PWM
  • hardwarová akcelerace grafiky
  • Raspberry Camera (MIPI-CSI)
  • sériová linka UART

“Out of box” také nefunguje většina rozšiřujících shieldů a HATů, USB Wifi klíčenek, 3G donglů, bluetooth donglů atd. Občas pomůže s něčím pomůže nějaký komunitní hack, ale kolem proprietárního Win IoT je logicky komunita řidší než okolo Raspbianu.

Oficiální list kompatibilních zařízení:
https://ms-iot.github.io/content/en-US/win10/SupportedInterfaces.htm

K vývoji pro Windows IoT potřebuje PC s nainstalovaným Windows 10 a Visual Studiem 2015. Nastavení Windows IoT lze provádět pomocí webového rozhraní či pokročileji prostřednictvím PowerShellu. Vývoj a debugování se provádí vzdáleně prostřednictví ethernetového spojení. Vše je možné obsluhovat velmi pohodlně z desptopového prostředí. K vývoji lze použít C++ ale za preferovaný je samozřejmě považový přívětivější C#. Snadno lze vytvořit např. webový server, či TCP server ovládající GPIO piny. Ke všemu jsou dostupné přehledné příklady. Windows IoT Core je tedy poměrně vhodný pro účely výuky.
MS přednedávnem uvolnil Windows IoT Core i ke komerčnímu použití (prostřednictvím tzv. komercializačního procesu, viz https://blogs.microsoft.com…). Drobný háček je že Windows IoT Core budou mít povinné automatické aktualizace, které při instalaci mohou vaše zařízení spontálně restartovat či na okamžit pozastavit. Software takového zařízení se již tedy nechová deterministicky a je pro ostré embedded nasazení obtížně použitelný. Pokud chcete problém vyřešit je třeba sáhnout po Windows IoT Core Pro, ten už ovšem pravděpodobně zdarma nebude. Microsoft tak navazuje na svou politiku (známou již z desktop Win10), kdy si za plnou kontrolu nad svým zařízením musíte připlaťit.

Benchmarks

pracuju na tom… :)

Závěr

Raspberry Pi 2 představuje nejvýkonnější dostupné Raspberry Pi. Je maximálně kompatibilní s předchozím Raspberry Pi B+ (včetně tvaru DPS a umístění montážních otvorů). Zachována je i softwarová kompatibilita, přechod z předchozích generací tak nemůže být snazší. Za cenu 35$ jde o ideální volbu i z pohledu poměru výkon/cena.

Be the first to comment

Leave a Reply