Blog
2015.12.29 11:13

Tudd meg mi az a Raspberry PI-HAT (Hardware Attached on Top):

A Raspberry Pi legbrilliánsabb képessége, hogy lehetőséget biztosít arra, hogy különböző hardware-eket illeszthetünk a GPIO (General Purpose Input/Output) csatlakozótüskéire. Az egységes hardver illesztés érdekében hozta létre a Raspberry PI fejlesztőcsapata a PI-HAT (Hardware Attached on Top) szabványt. Rengeteg olyan bővítőpanel van, amit a Raspberryhez csatlakoztatva jelentősen szélesíthetjük a felhasználási lehetőségeit. Csak érzékeltetésképpen néhány témakör, amire valaki már bizonyosan készített bővítőmodult a Raspberry Pi-hez: motor vezérlők, LED-ek, nyomógombok, érzékelők, kijelzők, mikrokontrollerek, LCD-k, AD és DA konverterek stb....

A korábbi Raspberry Pi A és B modulokon a GPIO csatlakozónak 26 lába volt. Azok a fejlesztők, akik az A vagy a B modellekhez készítettek bővítő panelt, általában drivert is meg kellett írni hozzá. A megfelelő Linux fájlt be kellett tölteni az indításkor (vagy manuálisan parancssorból beírni), hogy a panel működőképes legyen.  A Raspberry Pi ugyanis nem tudja, hogy van-e csatlakoztatva hozzá bővítőmodul. A különböző driverek alapján fogja csak tudni, hogy a GPIO interfészre milyen eszközök vannak csatlakoztatva és azok milyen lábakat fognak használni. Az esetek többségében ez így jól is működik, azonban az új felhasználóknak már egy kis kihívást jelenthet, ha probléma merül fel a telepítés során. A Linux driverek vakon feltételezik azt, hogy a GPIO lábak nincsenek másra is használva, ami alkalmanként ütközéseket okozhat.

A Raspberrry Pi B+ kialakításánal már gondoltak a speciális bővítő panelek egyre növekvő megjelenésére és ezzel el is jutottunk a HAT (Hardware Attached on Top) bemutatkozásához.  A HAT egy olyan bővítőmodul szabvány a B+/A+/PI-2 modellekhez, amely alkalmazza a speciális beállításokat, így könnyítve meg a felhasználók életét. A HAT legfontosabb tulajdonsága, hogy az EEPROM-ban tárolt adatok alapján a Raspberry Pi be tudja azonosítani a csatlakozatott modult. Ez alapján már automatikusan bekonfigurálja a GPIO lábakat és a megfelelő drivert a modulhoz a végfelhasználó legnagyobb örömére.

Mielőtt továbblépnénk, meg kell jegyezzük, hogy nagyon sok bővítőmodul készült már a korábbi A és B modellekhez is (ezek csak 26 lábú GPIO csatlakozással rendelkeznek). A Raspberry Pi B+ GPIO első 26 lábának kiosztása megfelel a korábbi modellek lábkiosztásának, ezért a legtöbb panel továbbra is használható a B+/A+ és PI-2 modelleken is. Igyekszünk a meglevő panelek kompatibilitását megtartani. A HAT-t tulajdonképpen nevezhetjük inkább egy szabványnak, amit a B+ modelltől a fejlesztők követhetnek (ha akarnak), a cél az, hogy a végfelhasználóknak megkönnyítsük a dolgát és minél több sikerélményt biztosítsunk Nekik.

Mi is az a HAT?

 

A képen egy Raspberry B+ HAT látható, amely egy kamera és kijelző csatlakoztatását mutatja be

Néhány szó a HAT felépítéséről. A panel négyzet alakú (65x65 mm) a négy sarkában (amelyek szépen le vannak kerekítve) furatokkal, amelyek pontosan megegyeznek a B+ furataival, 40 lábú GPIO csatlakozósor, támogatja a speciális automatikus konfigurációt, így a GPIO automatikus beállítását és a diver betöltését. Az automatikus konfiguráció a GPIO 2 dedikált lábán történik (ID_SD és ID_SC), ezek le vannak foglalva az I2C EEPROM-jának. Az EEPROM tárolja a panel gyártójának specifikációit, a GPIO beállításait és a ‘device tree’ struktúrát - alapvetően a csatlakoztatott eszköz leírást, amely lehetővé teszi a Linuxnak, hogy a megfelelő drivert automatikusan betöltse hozzá. Összefoglalva a HAT lényegét, a rajta található EEPROM tartalmazza azokat az adatokat, amik alapján a Raspberry Pi betölti a szükséges drivert és beállítja a GPIO lábait a csatlakoztatott hardware-nek megfelelően. Ha egy ilyen modult szeretnénk csatlakoztatni Raspberry Pi B+/A+/PI-2 modellünkhöz, csak rá kell dugni a GPIO csatlakozósorra a modult és már működésre kész az eszközünk.

Nem az a cél a HAT-tel, hogy minden fejlesztő vagy felhasználó ezt a szabványt használja. Ez egy ajánlás.

De csak azt nevezheted HAT-nek, ami viszont megfelel a szabványnak.

Miért foglalkozunk mi mindezzel? Alapvetően, biztosítani akarjuk a folyamatosan megjelenő bővítő modulok kompatibilitását és a sokkal nagyobb végfelhasználói élményt, különösen a műszakilag kevésbé felkészült felhasználóknak.

A HAT specifikációja elérhető a GitHub oldalán, különösen azoknak ajánljuk ennek áttanulmányozását, akik szeretnének bővítő modulokat fejleszteni, tervezni. Ahogy az előzőekben már elmondtuk, nem szükséges feltétlenül a HAT specifikációit követni, de amennyiben lehetséges, mindenképpen erre bátorítjuk fejlesztőket, kísérletezőket. Ezzel sokkal nagyobb elégedettséget lehet elérni végfelhasználóink körében.

És a végére még egy újítás. A HAT prototípusán egy felületszerelt csatlakozó van, ami tökéletesen működik. Ahogy a képen is látszik, a csatlakozó a modul tetejére lett forrasztva. A panel meghosszabított tüskesorra van rányomva, ami láthatólag túlnyúlik a bővítőpanel csatlakozóján. Ezzel lehetőség nyílik a lábakon hibakeresésre, mérésre.

 

HAT hosszabb lábú csatlakozókkal csatlakoztatva a Pi-hez.

;