[Projekt] KAmodRPI RTC – ekspander z zegarem RTC dla komputerów Raspberry Pi – przykład konfiguracji do użycia

kamodrpirtc_01

Jedną z wad komputerów jednopłytkowych Raspberry PI jest brak zegara czasu rzeczywistego RTC najlepiej wraz z podtrzymaniem bateryjnym. Nieustannie wzrastająca wydajność i liczba funkcjonalności, takie jak wbudowane moduły Bluetooth czy WiFi, przy nie zmiennych wymiarach zewnętrznych sprawiają, że nadal brakuje miejsca dla układów RTC z podtrzymaniem bateryjnym. Oczywiście nie wszystkie aplikacje tego elementu wymagają. Komputery Raspberry PI są często wykorzystywane jako urządzenia sieciowe i już to załatwia problem synchronizacji zegara komputera, nawet po zaniku zasilania. Są jednak aplikacje, które wymagają utrzymania na komputerze, pomimo braku zasilania, ustawień daty i godziny bez możliwości synchronizacji przez sieć internetową. Do tego typu aplikacji idealnym rozwiązaniem będzie moduł KAmodRPI RTC.

img_0634
Fot. 1. Moduł KAmodRPI RTC

Moduł wyposażony jest w układ RTC M41T00S firmy STMicroelectronics oraz gniazdo wraz z baterią CR2032. Układ zegara RTC komunikuje się z komputerem Raspberry PI poprzez interfejs I2C na kanale 0. Bateria umożliwia podtrzymanie zasilania układu RTC w momencie zaniku zasilania ze strony komputera. Układ zegara podczas pracy pobiera prąd o wartości < 400 uA oraz może pracować w zakresie napięć od 2,7 do 5,5 VDC.

img_0636
Fot. 2. Moduł KAmodRPI RTC – układ zegara RTC od STMicroelectronics (m41t00)

Moduł KAmodRPI RTC jest zgodny z komputerami Raspberry Pi3 oraz ze starszymi wersjami (Raspberry PI2, Raspberry PI+, Raspberry PI). Dzięki przedłużonym złączom I/O komputera RPi istnieje możliwość podłączenia kolejnego modułu ponad tym.

Przykład polega na skonfigurowaniu układu do pracy z komputerem Raspberry PI. Przykład został oparty na komputerze RPI Model B z systemem Raspbian Jessie (wersja z: 27.05.2016).

Pierwszą czynnością po uruchomieniu czystego systemu jest instalacja narzędzia do obsługi interfejsu I2C:

Po instalacji pakietu podłączamy shield do pinów GPIO komputera i sprawdzamy czy układ zegara RTC jest poprawnie wykrywany przez RPI. W tym celu stosujemy polecenie:

Powinniśmy uzyskać wpis dla adresu 0x68.

Następnie edytujemy plik /etc/module w celu dodania obsługi dla kolejnych modułów: i2c oraz modułu rtc-ds1307 dopisujemy do pliku:

 Moduł „rtc-ds1307” jest w stanie obsługiwać również inne układy, w tym nasz oraz takie jak:

  • ds1307
  • ds1337
  • ds1338
  • ds1339
  • ds1388
  • ds1340
  • ds3231
  • m41t00
  • mcp7940x
  • mcp7941x
  • pt7c4338
  • rx8025

Kolejną czynnością jest dodanie naszego układu RTC do pliku konfiguracyjnego systemu komputera Raspberry PI. Skrypt ten jest wywoływany przy każdym uruchomieniu systemu i w naszym przypadku będzie on odpowiadał za uruchomienie układu RTC do pracy z systemem.

W tym celu dopisujemy do pliku /etc/rc.local linijkę przed „exit 0”:

Dla Raspberry Pi (rev.1):

Dla Raspberry Pi (rev.2):

W tym momencie nasz układ RTC został skonfigurowany i jest gotowy do pracy w naszym komputerze.

Po ponownym uruchomieniu komputera w systemie plików powinno zostać zarejestrowane nowe urządzenie oznaczone jako „rtc0”

Aby przeprowadzić ostateczny test ustawiamy datę i godzinę w systemie. Następnie wyłączamy komputer i odłączamy od niego zasilanie na kilka minut. Ponownie uruchamiamy komputer i jeżeli wszystko skonfigurowaliśmy poprawnie powinniśmy mieć aktualną datę i godzinę w naszym systemie. Oczywiście wszystkie testowe czynności wykonujemy z odłączonym przewodem ethernet, aby uniemożliwić synchronizację daty i godziny poprzez sieć Internet.

O autorze