Kapelusze dla Raspberry Pi B+

Kapelusze dla Raspberry Pi B+
e-suplement
Jedną z ostatnich inicjatyw Fundacji Raspberry jest HAT (ang. Hardware Attached on Top, zob. [1]). Idea polega na normalizacji płytek rozszerzeń dla Raspberry Pi model B+ nakładanych na gniazdo GPIO (40-pinowe). Jednym z celów jest stworzenie wspólnego rozmiaru i kształtu płytek, które mają pasować do rozmieszczenia elementów modelu B+ (złącza CSI taśmy kamery czy DSI wyświetlacza) oraz nowych otworów montażowych. HAT-owe płytki mają również zawierać pełne (męskie) złącze GPIO. Niestety standard nie wymaga, żeby było ono przejściowe, co umożliwiłoby 'kanapkowe' łączenie kolejnych płytek (ang. stacked). Dystans płytki od RPi powininen wynosić 10-12 mm (na rysunku otwarciowym przedstawiona jest specyfikacja mechaniczna HAT (zob. [2])).

Ale nie o samą warstwę mechaniczną tu chodzi. Fundacja wskazuje np. jak należy zaprojektować zasilanie RPi przez fizyczny pin numer 2 (ang. back-power), zamiast standardowo przez USB. Najciekawszym elementem specyfikacji HAT jest IDEEPROM. Rozszerzony 40-pinowy GPIO RPi B+, w porównaniu do 26-pinowego w wersji B, zawiera między innymi 9 dodatkowych uniwersalnych portów wejścia/wyjścia i dwa specjalne porty ID_SD i ID_SC (odpowiednio fizyczne piny 27 i 28). Porty te są zarezerwowane na potrzeby identyfikacji i konfiguracji płytek zgodnych z HAT. Dostarczają dedykowany interfejs I2C (SD: dane; SC: zegar), do którego należy podłączyć pamięć EEPROM typu 24cx (np. 24c512). Pamięć IDEEPROM powinna być adresowana 16-bitowo (bez stronicowania), zasilana 3,3 V i wyposażona w specjalny pin zabezpieczający cały obszar przed przypadkowym zapisem (ang. write-protect).

HAT definiuje, co powinno być zapisane w tej pamięci, aby RPi mogło odpowiednio zidentyfikować i skonfigurować podłączoną płytkę rozszerzeń. W szczególności:

  • rodzaj płytki, jej producenta,
  • jaki sprzęt zawiera,
  • jak należy skonfigurować GPIO np. które piny ustawić jako wejścia czy wyjścia,
  • jakie załadować sterowniki.
Podobna procedura autokonfiguracji ma znacznie ułatwiać używanie płytki, przerzucając część odpowiedzialności na system operacyjny. Jej elementem jest tzw. drzewo urządzeń (ang. device tree, DT). Idea tego mechanizmu polega na tym, żeby uniezależnić kernel Linuksa od sprzętu, na którym ma pracować. Specyfikacja sprzętu jest izolowana do oddzielnego pliku, który bootloader podaje kernelowi jako parametr startowy. Wymaga to dodania odpowiedniej obsługi DT do bootoadera, kernela i innego partycjonowania karty SD (zob. [3]). W znaczący sposób zmienia sposób inicjacji Linuksa. Jest to mechanizm stosunkowo nowy i jeszcze nie używany przez podstawową dystrybucję Raspbian. Wydaje się jednak na tyle atrakcyjny, że tylko czekać kiedy pojawi się do dyspozycji dostawców płytek kompatybilnych z HAT.

Źródła: [1] http://www.raspberrypi.org/introducing-raspberry-pi-hats/ [2] https://github.com/raspberrypi/hats [3] http://stackoverflow.com/questions/22202648/device-tree-driven-kernel-for-raspberry-pi

Więcej informacji na temat Raspberry Pi znajdziesz w magazynie Młody Technik.

Przeczytaj także
Magazyn