LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
SoM / SBC

[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:

sudo apt-get install i2c-tools

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:

sudo i2cdetect -y 1

Powinniśmy uzyskać wpis dla adresu 0x68.

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

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

i2c-dev
i2c-bcm2708
rtc-ds1307

 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):

echo m41t00 0x68 > /sys/class/i2c-adapter/i2c-0/new_device

Dla Raspberry Pi (rev.2):

echo m41t00 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

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”

pi@raspberrypi ~ $ ls -l /dev | grep rtc
crw------- 1 root root    254,   0 Oct 2 21:55 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.

Autor: Jakub Kuryło