Úkol zněl jasně: „Tady máš krabici a dělej co umíš.“ Obsahem bylo několik kusů WRAP 2C, které byly vyráběny společností PC Engines. O problému bylo také jasno „Bo!!! to nefunguje!“
WRAPy se používaly, díky malé velikosti, nízké spotřebě, integrovaným síťovým rozhraním a rozšiřujícím slotům miniPCI, zejména jako body infrastruktury WiFi poskytovatelů. Oproti jiným podobným zde byla výhoda architektury CPU x86_32 s možností spouštět operační systém z CompactFlash. Tím operačním systémem mohl být GNU/Linux, xBSD, DOS nebo MikroTik RouterOS. O něco lépe vybavené desky Alix (např. Alix 3d3), obsahující grafické (VGA) a zvukové výstupy, podporovaly také Windows XP.
Jádrem desek WRAP a Alix jsou procesory Geode SC a Geode LX, které vyráběla společnost National Semiconductor. Tuto výrobu později převzala AMD. CPU se řadí do platforem SoC (System on Chip), kde se veškerý výpočetní výkon, včetně ostatních vlastností čipové sady, integrují do jediného pouzdra. V případě Geode LX je CPU doplněno o druhý čip (AMD CS5536) rozšiřující severní můstek procesoru. Další zařízení, nebo jednoduchá čidla a zobrazovací prvky, lze připojovat přes rozhraní USB 1.1 OHCI (nutno povolit v BIOSu), PCI, LPC, ACCESS.bus (I2C, SMBus), RS-232, případně GPIO. Pokud bychom zde hledali obvod reálného času (RTC), máme štěstí, protože procesory Geode jej obsahují. Jen kvůli jeho vyšší spotřebě není na deskách WRAP místo pro zálohovací baterii (kromě WRAP 2E, kde místo je, ale příslušný držák baterie není osazen). Pokud chceme RTC plnohodnotně využít, můžeme zapojit zálohovací baterii na konektor J7, kde je pro nás k dispozici také rozhraní I2C.
Více o procesorech Geode SC a LX (+ CS5536), a jejich vlastnostech, se lze dozvědět v datových listech.
Zařízení od společnosti PC Systems mají nespornou výhodu v jejich otevřenosti. Nejenom že je dostupné množství zdrojových kódů a využívání Open Source, ale máme k dispozici i vyčerpávající popis a schémata.
WRAP se chová stejně jako běžné PC. Při startu je nejprve načten BIOS, který se následně stará o celý proces spuštění operačního systému. Ten lze provozovat jak ze zmíněné CompactFlash (supluje tedy pevný disk), nebo ze sítě za pomoci funkcionality PXE. Výběr vhodného OS je poměrně důležitý, protože s velikostí RAM 64 – 128 MB, rychlostí CPU 266 MHz a architekturou i586 nám zařízení mnoho výkonu na rozdávání nedává. Zejména díky postupnému rušení podpory architektury i586, ze strany distribucí GNU/Linux, se nám portfolio značně zmenšuje. Architektura i686 totiž obsahuje několik x86 instrukcí, které se v i586 nevyskytují a způsobují selhání běhu aplikací (viz můj problém se Syncthing na Alix 3d3) nebo jádra. Stejně jako ostatní SoC zařízení, i WRAP je podporovanou platformou operačního systému OpenWRT.
Nechme ale další popis stranou a vrhněme se na krabici WRAPů.
Co budeme určitě potřebovat je funkční sériový port RS-232. U moderních počítačů bohužel není k dispozici, a proto musíme sáhnou po převodníku USB/RS-232. Toto standardní rozhraní RS-232 ale není napěťově kompatibilní s TTL (Raspberry Pi, apod)! Proto, pokud máme převodník USB/RS-232 TTL např. pro naše Arduino, zde ho připojit nemůžeme. 3,3 V/5 V vs. -12 V může být přímo zničující.
Parametry pro komunikaci jsou: 38400 8N1, kabel typu „null modem“.
Identifikace problému
V krabici bylo zařízením trochu těsno, a proto došlo k fyzickému poškození několika z nich. To se projevuje „utržením“ elektrolytických kondenzátorů a zohýbáním pinů konektorů se zjevným zkratováním.
Optická kontrola
- V první řadě opticky zkontrolujeme veškeré konektory (deformace, zkrat, odtržení) a případné škody napravíme,
- opticky zkontrolujeme stav všech součástek – hledáme mechanické poškození (nafouknutí, promáčknutí, popraskání) a spálení,
- opticky zkontrolujeme desku plošných spojů (odtržení a přerušení spoje, zkrat).
V případě nafouknutí nebo promáčknutí elektrolytických kondenzátorů musíme příslušnou součástku odstranit nebo nejlépe vyměnit. Hrozí poškození dielektrika a po připojení napájení následný „výbuch“ kondenzátoru.
Pokud zařízení nefunguje, může být příčinou vadná součástka na vstupu napájecího napětí. Kromě mechanické závady konektoru lze hledat problém např. na transilech, pojistkách a podobných ochranách (vadný transil ~ většinou zkrat).
Popraskané integrované obvody mohou značit poškození statickým výbojem, napájením vyšším než maximálním napětím, přehřátím součástky, kladivem nebo jiným tupým předmětem.
Měření bez napájecího napětí
Pokud máme za sebou optickou kontrolu a nápravou nalezených závad, přistoupíme ke složitějšímu úkonu, kterým je měření bez napájecího napětí.
S digitálním multimetrem přepnutým do polohy pro měření elektrického odporu budeme proměřovat zdrojovou část směrem od napájecího konektoru dále. Chce to ale nějaké zkušenosti s měřením různých součástek abychom věděli, jak se chová dioda, transil, cívka kondenzátor, tedy, zda má v určitém směru elektrický proud vést či nikoli. Jakýkoli zkrat může znamenat problém nejenom měřené součástky, ale i okolních, a současně, musíme brát v úvahu, že veškeré komponenty se vzájemně ovlivňují.
Kde ukazuje nízký odpor problém? Zejména při měření keramických kondenzátorů (většinou plní úlohu filtračních), diod (stejný odpor/zkrat v obou směrech), elektrolytických kondenzátorů (nízký odpor/zkrat v obou směrech; elektrolytický kondenzátor se má chovat tak, že po připojení ohmmetru se začne nabíjet a tím pádem se mění jeho odpor, po prohození měřících šňůr se vybíjí, což může být indikováno zobrazením záporné hodnoty odporu; nicméně je nejlepší kondenzátor vypájet a proměřit jeho kapacitu vhodným měřícím přístrojem přímo; nafouklý nebo promáčknutý kondenzátor = vadný kondenzátor).
Naopak měřené cívky a feritové perly by měly vykazovat nízký stejnosměrný odpor až zkrat.
U WRAPů a podobných zařízení musíme brát v úvahu také to, že kromě napájení přes DC jack (J2) lze použít také pasivní PoE.
Připojení napájecího napětí
Pokud jsme se dostali až sem, můžeme připojit napájecí napětí (používám adaptér 9 V, 600 mA). Velkou výhodou je zapojení ampérmetru nebo napájecího adaptéru s indikační LED. Napájecí napětí můžeme zvolit od 7 do 20 V. Samozřejmě musíme zařízení napájet přes vhodný konektor se správnou polaritou (kladný potenciál + na středním kolíku). Pokud zařízení odebírá proud v řádech ampér, případně pohasíná indikační LED na zdroji, napájecí napětí ze zařízení odpojíme a vrátíme se k předchozímu kroku (kontrola s měřícím přístrojem).
U zařízení Alix a WRAP se po přivedení napájecího napětí na cca 3 sekundy rozsvítí všechny 3 LED diody (D1, D2 a D3). Po tuto dobu je z flash paměti (U17 – na spodní straně desky) zaváděn BIOS. Po jeho spuštění LED D2 a D3 zhasnou a zůstane svítit pouze D1. V případě, že je zařízení připojeno přes RJ45 (J12) do funkční sítě LAN, rozsvítí se na ETH konektoru J12 pravá LED. Levá LED bliká v případě síťové aktivity.
Co ale v případě, že se nerozsvítí žádná LED? V tuto chvíli musíme, nejlépe se schématem v ruce proměřit napětí ve zdrojové části. Napájecí napětí CPU a ostatních komponent je 3,3 V, 1,2 V a 2,0 V. Tato napětí jsou stabilizována obvodem U9 (LM2642). Proměříme napětí na elektrolytických kondenzátorech a podle datového listu k LM2642 i tento obvod a jeho okolí.
V případě, že se rozsvítí LED D1, D2 a D3, ale D2 a D3 nezhasnou, může být vadná paměť flash (U17) obsahující BIOS.
Kromě sledování LED je potřeba připojit RS-232 a pozorovat, zda se zařízení nepokouší komunikovat – počítání paměti, boot. Pokud ano, je pravděpodobně vše v pořádku, případně může být závada na sběrnici PCI, případně IDE (CompactFlash).
Problém většiny
Anebo, ať něco svítí, nesvítí, a to byl nejčastější problém, je vadný síťový řadič U4 (DP83816). Poznáme ho jednoduše. 144pinový obvod s pouzdrem LQFP. Po jeho odpájení začala většina desek WRAP.2C pracovat (jeden kus má pravděpodobně vadné CPU, ale taková závada se ověřuje jen velice těžko). Bohužel jsem tím ale přišel o síťové připojení. Vzhledem k možnosti instalovat dvě miniPCI WiFi karty to ale v některých situacích nemusí vadit. Schopnost napájet WRAP pomocí PoE stále zůstala.
První WRAP, na kterém jsem tuto závadu a možnou „opravu“ objevil, měl prasklé pouzdro. Po odpájení se na jeho spodní straně ukázala malá vypouklina. Vzhledem k tomu, že za provozu mají tyto obvody poměrně vysokou teplotu, dochází pravděpodobně k přehřátí a následnému poškození. IO DP83816 se už bohužel nevyrábí, a proto zůstávají desky ve stavu neopraveno, ale zachráněno před návštěvou sběrného dvoru.
Nepovedlo se
Ne vždy vše dopadne tak jak má. Pokud jsme neuspěli, nevhazujeme WRAP do koše, ale využijeme sběrných kontejnerů na elektronický odpad. Třeba se nám někdy vrátí nějaká část v nově zakoupeném chytrém telefonu :-)
Nahrání firmware přes RS-232
Nejnovější verze firmware (BIOS) 1.11 opravuje několik problémů, které jsou spojeny zejména s čipovými sadami Atheros.
Update můžeme provádět několika cestami:
- Pomocí CompactFlash (OS DOS),
- spuštěným OS (DOS) přes PXE,
- přes RS-232 (xmodem).
Vzhledem k tomu, že jsme připojeni přes RS-232, není momentálně jednodušší způsob.
Předpokladem je stažení nejnovějšího firmware a použití terminálového programu podporující souborové přenosy pomocí protokolu Xmodem 1K. Tento způsob byl používán pro přenos souborů v době neexistence internetu, nicméně nám může posloužit i nyní.
Aplikací může být např. ExtraPutty. Jedná se o upravenou verzi oblíbeného PuTTY, a podporuje právě přenosy přes protokol Xmodem. U PuTTY bychom takovou vlastnost hledali marně.
V procesu počítání paměti stiskneme klávesu „s“. Kromě jednoduchého nastavení je zobrazena i volba pro update firmware (Xmodem upload). Stiskneme klávesu „x“ a z menu Files Transfer vybereme možnost XMODEM 1K. V zobrazeném dialogu vybereme stažený a rozbalený soubor WRAP2.UPD. Po potvrzení můžeme sledovat stažení do zařízení a uložení do flash paměti.
Následující restart zavede novou verzi.
Co se zařízením bez ETH?
K WRAPu lze připojovat další periferie přes rozhraní PCI, I2C, LPC, RS-232 a ve verzi WRAP.2E i USB. Není tedy problém vytvořit zařízení pro sběr a vyhodnocování údajů z čidel, řízení technologických procesů nebo WLAN opakovač.
Pokud je náš záměr použít WRAP jako IoT gateway, poohlédneme se raději po něčem jiném. Ze seznamu nedostatků je možné vyčíst absenci sběrnice SPI, „podporu“ pouze USB 1.1 (nejsou přítomny konektory, a proto je nutné vše zapájet ručně), relativně pomalý procesor i586, malé množství paměti RAM a spotřebu kolem 4 – 5 W. Vhodnějším řešením může být zařízení typu Raspberry Pi.
Pingback: Úprava PC Engines WRAP.2 – upgrade SDRAM | brichacek.net