Actions

KAmodRPI RTC (PL): Difference between revisions

From Kamamilabs.com - Wiki

 
(26 intermediate revisions by the same user not shown)
Line 1: Line 1:
__jzpdf__
__jzpdf__
===== Opis =====
====== Opis ======
Moduł precyzyjnego zegara czasu rzeczywistego – RTC, przeznaczony dla komputerków z serii Raspberry Pi. Bazuje na układzie DS3231, który został połączony z baterią podtrzymującą jego działanie przy zaniku zasilania głównego. Komunikacja z zegarem RTC odbywa się poprzez interfejs I2C.<br>
[https://kamami.pl/moduly-rtc/1191668-kamodrpi-rtc-modul-precyzyjnego-zegara-czasu-rzeczywistego-rtc.html?SubmitCurrency=1&id_currency=1 KAmodRPI RTC] to moduł precyzyjnego zegara czasu rzeczywistego – RTC, przeznaczony dla komputerków z serii Raspberry Pi. Bazuje na układzie DS3231, który został połączony z baterią podtrzymującą jego działanie przy zaniku zasilania głównego. Komunikacja z zegarem RTC odbywa się poprzez interfejs I2C.<br>
<br>
<br>
<center>
<center>
[[File:KAmodRPI_RTC_3d_1.jpg|none|400px|thumb|center]]
[[File:KAmodRPI5_RTC_1.jpg|none|800px|thumb|center]]
[[File:KAmodRPI5_RTC_2.jpg|none|800px|thumb|center]]
</center> <br>
</center> <br>
Układ DS3231 jest kompletnym zegarem RTC, który wyróżnia się wysoką precyzją w odmierzaniu czasu. Doskonałe parametry uzyskano dzięki zintegrowaniu rezonatora kwarcowego w strukturze układu i zastosowaniu kompensacji temperaturowej.
Układ DS3231 jest kompletnym zegarem RTC, który wyróżnia się wysoką precyzją w odmierzaniu czasu. Doskonałe parametry uzyskano dzięki zintegrowaniu rezonatora kwarcowego w strukturze układu i zastosowaniu kompensacji temperaturowej.
Line 13: Line 14:
* Zegar ze zintegrowanym rezonatorem kwarcowym i kompensacją temperaturową
* Zegar ze zintegrowanym rezonatorem kwarcowym i kompensacją temperaturową
* Deklarowany przez producenta układu DS3231 błąd odmierzania czasu nie przekracza 2 minut na rok, przy pracy w temperaturze z zakresu -40...+85 ºC
* Deklarowany przez producenta układu DS3231 błąd odmierzania czasu nie przekracza 2 minut na rok, przy pracy w temperaturze z zakresu -40...+85 ºC
* Odlicza sekundy, minuty, godziny, dni tygodnia, miesiące oraz rok
* Oblicza sekundy, minuty, godziny, dni tygodnia, miesiące oraz rok
* Komunikacja poprzez interfejs I2C (400 kHz)
* Komunikacja poprzez interfejs I2C (400 kHz)
* Zawiera gniazdo na baterię podtrzymującą typu CR1220
* Zawiera gniazdo na baterię podtrzymującą typu CR1220
Line 31: Line 32:
|-
|-
| style="text-align: left;"|
| style="text-align: left;"|
*  <b>KAmodRPI-RTC</b>
*  <b>KAmodRPI RTC</b>
* <b>1 x Zestaw montażowy</b>
* <b>Bateria podtrzymująca</b>
*<b>Dodatkowe złącze żeńsko-męskie</b>
| style="text-align: left;"|  
| style="text-align: left;"|  
* Zmontowany i uruchomiony moduł
* Zmontowany i uruchomiony moduł
* Zestaw zapewniający stabilne umocowanie (2 śrubki M2, 1 dystans)
* Bateria typu CR1220
* Umożliwia dołączenie modułu do komputerka Raspberry Pi wyposażonego w radiator
|}
|}
</center>
</center>
<center>
[[File:KAmodRPI5_RTC_3.jpg|none|800px|thumb|center]]
</center> <br>


===== Schemat elektryczny =====
===== Schemat elektryczny =====
Line 59: Line 66:
|}
|}
</center>
</center>
Sygnały na złączu komunikacyjnym zostały tak rozmieszczone, aby odpowiadały sygnałom na złączu GPIO stosowanym w płytkach Raspberry Pi. Moduł KamodRPI-RTC zajmuje tylko pierwsze 10 szpilek, 40-stykowego złącza GPIO. Funkcje sygnałów na złączu <b>J2</b> są następujące:
Sygnały na złączu komunikacyjnym zostały tak rozmieszczone, aby odpowiadały sygnałom na złączu GPIO stosowanym w płytkach Raspberry Pi. Moduł KamodRPI RTC zajmuje tylko pierwsze 10 szpilek, 40-stykowego złącza GPIO. Funkcje sygnałów na złączu <b>J2</b> są następujące:
* styk nr 1: <b>+5V</b> - wejście zasilania o napięciu 2,3...5,5 V;
* styk nr 1: <b>+5V</b> - wejście zasilania o napięciu 2,3...5,5 V;
* styk nr 3: <b>SDA</b> – linia danych interfejsu I2C;
* styk nr 3: <b>SDA</b> – linia danych interfejsu I2C;
Line 108: Line 115:
| style="text-align: center;"|<b>RST, G</b>
| style="text-align: center;"|<b>RST, G</b>
| style="text-align: left;"|
| style="text-align: left;"|
* Pad oznaczony <b>RST</b> to wyjście zerujące aktywowane niskim poziomem napięcia zasilania. Próg zadziałania jest ustawiony na ok. 2,57 V. Pad oznaczony<b>G</b> to masa.
* Pad oznaczony <b>RST</b> to wyjście zerujące aktywowane niskim poziomem napięcia zasilania. Próg zadziałania jest ustawiony na ok. 2,57 V. Pad oznaczony<b> G</b> to masa.
|}
|}
</center>
</center>
Line 119: Line 126:


===== Wymiary=====
===== Wymiary=====
Wymiary modułu <b>KAmodRPI-RTC</b> to ok. 21x20 mm, a wysokość bez złącza to ok. 8 mm. Moduł jest kompatybilny z płytkami Raspberry Pi 5 oraz wcześniejszymi wersjami Raspberry Pi. Na płytce zostały umieszczone dodatkowe otwory, które mogą być przydatne w przypadku niestandardowych aplikacji modułu RTC.
Wymiary modułu <b>KAmodRPI RTC</b> to ok. 21x20 mm, a wysokość bez złącza to ok. 8 mm. Moduł jest kompatybilny z płytkami Raspberry Pi 5 oraz wcześniejszymi wersjami Raspberry Pi. Na płytce zostały umieszczone dodatkowe otwory, które mogą być przydatne w przypadku niestandardowych aplikacji modułu RTC.
<center>
<center>
[[File:KAmodRPI_RTC_r_4.jpg|none|400px|thumb|center]]
[[File:KAmodRPI_RTC_r_4.jpg|none|400px|thumb|center]]
Line 125: Line 132:


=====Uruchomienie modułu z komputerkiem Raspberry Pi 5=====
=====Uruchomienie modułu z komputerkiem Raspberry Pi 5=====
Moduł KamodRPI-RTC montujemy na pierwszych 10 szpilkach złącza GPIO komputerka Raspberry Pi tak, jak pokazano na poniższym zdjęciu:
Moduł KamodRPI RTC montujemy na pierwszych 10 szpilkach złącza GPIO komputerka Raspberry Pi tak, jak pokazano na poniższych fotografiach:
<center>
<center>
[[File:KAmodRPI_RTC_f2.jpg|none|500px|thumb|center]]
{| class="wikitable"
| [[File:KAmodRPI5_RTC_5.jpg|center|500px|thumb|center]]
| [[File:KAmodRPI5_RTC_4.jpg|center|520px|thumb|center]]
|}
</center>
Jeżeli komputer Raspberry Pi jest wyposażony w radiator, to moduł KAmodRPI RTC należy zamontować z użyciem dodatkowego złącza żeńsko-męskiego. Żaden element modułu, a zwłaszcza koszyk baterii, nie może stykać się z radiatorem. Połączenie należy wykonać tak, jak na fotografii:
<center>
[[File:KAmodRPI5_RTC_6.jpg|none|600px|thumb|center]]
</center>
W takiej konfiguracji moduł KAmodRPI RTC jest umieszczony ponad radiatorem i cały zestaw może działać prawidłowo.
<center>
{| class="wikitable"
| [[File:KAmodRPI5_RTC_8.jpg|center|510px|thumb|center]]
| [[File:KAmodRPI5_RTC_7.jpg|center|500px|thumb|center]]
|}
</center>
</center>


======Konfigurowanie magistrali I2C======


======Konfigurowanie magistrali I2C*======
<nowiki>*</nowiki> opisane procedury dotyczą komputerka Raspberry Pi 5<br><br>
Pierwszym krokiem zawsze będzie odświeżenie repozytoriów i pakietów oprogramowania. Otwieramy konsolę np. poprzez kombinację klawiszy ''Ctrl+Alt+T'', a następnie wpisujemy polecenia:
Pierwszym krokiem zawsze będzie odświeżenie repozytoriów i pakietów oprogramowania. Otwieramy konsolę np. poprzez kombinację klawiszy ''Ctrl+Alt+T'', a następnie wpisujemy polecenia:
'''<pre style="color: blue">sudo apt-get update</pre>'''
'''<pre style="color: blue">sudo apt-get update</pre>'''
Line 162: Line 185:
Oznacza to, że na magistrali I2C znajduje się urządzenie z adresem 68 (hex) – to właśnie adres układu DS3231.
Oznacza to, że na magistrali I2C znajduje się urządzenie z adresem 68 (hex) – to właśnie adres układu DS3231.


======Przygotowanie systemu Raspberry Pi======
======Przygotowanie systemu Raspberry Pi*======
 
<nowiki>*</nowiki> opisane procedury dotyczą komputerka Raspberry Pi 5<br><br>
Przygotowanie systemu rozpoczynamy od edycji pliku /boot/firmware/config.txt (w starszych wersjach systemu operacyjnego Raspberry Pi jest to plik /boot/config.txt). W tym celu wpisujemy polecenie:
Przygotowanie systemu rozpoczynamy od edycji pliku /boot/firmware/config.txt (w starszych wersjach systemu operacyjnego Raspberry Pi jest to plik /boot/config.txt). W tym celu wpisujemy polecenie:
'''<pre style="color: blue">sudo nano /boot/firmware/config.txt</pre>''' <br>
'''<pre style="color: blue">sudo nano /boot/firmware/config.txt</pre>''' <br>
Line 183: Line 206:
Oznaczenie UU, które zastąpiło wcześniejszą wartość 68 oznacza, że system poprawnie skomunikował się z zegarem i zastrzegł jego adres.
Oznaczenie UU, które zastąpiło wcześniejszą wartość 68 oznacza, że system poprawnie skomunikował się z zegarem i zastrzegł jego adres.


======Ustawianie i odczyt z RTC======
======Ustawianie i odczyt z RTC*======
<nowiki>*</nowiki> opisane procedury dotyczą komputerka Raspberry Pi 5<br><br>


Aktualny systemowy czas możemy sprawdzić za pomocą polecenia:
Aktualny systemowy czas możemy sprawdzić za pomocą polecenia:
Line 196: Line 220:
<br>
<br>
Zegar RTC możemy ustawić dowolną wartością czasu, służy do tego polecenie:
Zegar RTC możemy ustawić dowolną wartością czasu, służy do tego polecenie:
'''<pre style="color: blue">hwclock --set –date="2024-06-19 12:22:22"</pre>''' <br>
'''<pre style="color: blue">hwclock --set ––date="2024-06-19 12:22:22"</pre>''' <br>
Oczywiście data i czas mogą być inne ale muszą być zapisane analogicznie jak w powyższym przekładzie. Teraz możemy ustawić w systemie czas pobrany z zegara RTC, służy do tego polecenie:
Oczywiście data i czas mogą być inne ale muszą być zapisane analogicznie jak w powyższym przykładzie. Teraz możemy ustawić w systemie czas pobrany z zegara RTC, służy do tego polecenie:
'''<pre style="color: blue">sudo hwclock -s</pre>''' <br>
'''<pre style="color: blue">sudo hwclock -s</pre>''' <br>
<center>
<center>
Line 207: Line 231:
===== Linki=====
===== Linki=====
*[https://download.kamami.pl/p233506-ds3231_ds.pdf Karta katalogowa układu DS3231]
*[https://download.kamami.pl/p233506-ds3231_ds.pdf Karta katalogowa układu DS3231]
*[https://wiki.kamamilabs.com/images/b/b2/KAmodRPI_RTC_3D.zip Model CAD (STEP)]

Latest revision as of 18:53, 1 November 2024

Opis

KAmodRPI RTC to moduł precyzyjnego zegara czasu rzeczywistego – RTC, przeznaczony dla komputerków z serii Raspberry Pi. Bazuje na układzie DS3231, który został połączony z baterią podtrzymującą jego działanie przy zaniku zasilania głównego. Komunikacja z zegarem RTC odbywa się poprzez interfejs I2C.


Układ DS3231 jest kompletnym zegarem RTC, który wyróżnia się wysoką precyzją w odmierzaniu czasu. Doskonałe parametry uzyskano dzięki zintegrowaniu rezonatora kwarcowego w strukturze układu i zastosowaniu kompensacji temperaturowej. Na płytce znajduje się gniazdo na baterię typu CR1220, która umożliwia działanie zegara nawet przy braku zasilania głównego. Wymagane do poprawnego działania napięcie zasilania zawiera się w szerokim przedziale 2,3….5,5 V.

Podstawowe parametry
  • Bazuje na układzie zegara RTC typu DS3231
  • Zegar ze zintegrowanym rezonatorem kwarcowym i kompensacją temperaturową
  • Deklarowany przez producenta układu DS3231 błąd odmierzania czasu nie przekracza 2 minut na rok, przy pracy w temperaturze z zakresu -40...+85 ºC
  • Oblicza sekundy, minuty, godziny, dni tygodnia, miesiące oraz rok
  • Komunikacja poprzez interfejs I2C (400 kHz)
  • Zawiera gniazdo na baterię podtrzymującą typu CR1220
  • Pobór prądu z baterii podtrzymującej nie przekracza 0,1 uA
  • Opcjonalne wyjście przerwania (INT) / sygnału prostokątnego (SQW)
  • Opcjonalne wyjście zerujące aktywowane niskim poziomem napięcia zasilania (RST)
  • Wymaga zasilania o napięciu z zakresu 2,3….5,5 V
  • Wymiary płytki 21x20 mm, wysokość ok. 8 mm (bez gniazda goldpin)
Wyposażenie standardowe
Kod Opis
  • KAmodRPI RTC
  • Bateria podtrzymująca
  • Dodatkowe złącze żeńsko-męskie
  • Zmontowany i uruchomiony moduł
  • Bateria typu CR1220
  • Umożliwia dołączenie modułu do komputerka Raspberry Pi wyposażonego w radiator


Schemat elektryczny
Złącze komunikacyjne zgodne z Raspberry Pi
Oznaczenie Funkcja
J2

Gniazdo goldpin
2x5, 2,54 mm

  • Wyprowadzone sygnały interfejsu I2C
  • Wyprowadzony dodatkowy sygnał przerwania INT
  • Wejście zasilania

Sygnały na złączu komunikacyjnym zostały tak rozmieszczone, aby odpowiadały sygnałom na złączu GPIO stosowanym w płytkach Raspberry Pi. Moduł KamodRPI RTC zajmuje tylko pierwsze 10 szpilek, 40-stykowego złącza GPIO. Funkcje sygnałów na złączu J2 są następujące:

  • styk nr 1: +5V - wejście zasilania o napięciu 2,3...5,5 V;
  • styk nr 3: SDA – linia danych interfejsu I2C;
  • styk nr 5: SCL – linia zegarowa interfejsu I2C;
  • styk nr 7: INT – opcjonalne wyjście przerwania INT lub sygnału prostokątnego SQW. Sygnał jest dostępny dopiero po wykonaniu zworki z kropli cyny na padach oznaczonych INT-GPIO i trafia do portu GPIO04 na płytce Raspberry Pi;
  • styk nr 9: GND – masa zasilania;
  • styk nr 2, 4, 6, 8, 10: wyprowadzenia nie są podłączone.



Bateria podtrzymująca
Oznaczenie Funkcja
BT1
  • Gniazdo na baterię typu CR1220
  • Umożliwia działanie zegara RTC po zaniku zasilania głównego

Gniazdo baterii znajduje się na dolnej stronie płytki modułu. Pobór prądu z baterii nie przekracza 0,1 uA, co umożliwia poprawną pracę zegara przez wiele lat.

Dodatkowe funkcje
Oznaczenie Funkcja
JP1
INT-GPIO
  • Zwarcie padów za pomocą kropli cyny powoduje dołączenie wyjścia INT/SQW układu DS3231 do styku przypisanego do portu GPIO04 płytek Raspberry Pi
INT, G
  • Pad oznaczony INT to wyjście INT/SQW układu DS3231, które może być aktywowane alarmem lub może być wyjściem przebiegu prostokątnego. Pad oznaczony G to masa.
RST, G
  • Pad oznaczony RST to wyjście zerujące aktywowane niskim poziomem napięcia zasilania. Próg zadziałania jest ustawiony na ok. 2,57 V. Pad oznaczony G to masa.

Dokładne informacje dotyczące funkcjonalności i konfigurowania dodatkowych wyprowadzeń można znaleźć w dokumentacji układu DS3231.

Wymiary

Wymiary modułu KAmodRPI RTC to ok. 21x20 mm, a wysokość bez złącza to ok. 8 mm. Moduł jest kompatybilny z płytkami Raspberry Pi 5 oraz wcześniejszymi wersjami Raspberry Pi. Na płytce zostały umieszczone dodatkowe otwory, które mogą być przydatne w przypadku niestandardowych aplikacji modułu RTC.

Uruchomienie modułu z komputerkiem Raspberry Pi 5

Moduł KamodRPI RTC montujemy na pierwszych 10 szpilkach złącza GPIO komputerka Raspberry Pi tak, jak pokazano na poniższych fotografiach:

Jeżeli komputer Raspberry Pi jest wyposażony w radiator, to moduł KAmodRPI RTC należy zamontować z użyciem dodatkowego złącza żeńsko-męskiego. Żaden element modułu, a zwłaszcza koszyk baterii, nie może stykać się z radiatorem. Połączenie należy wykonać tak, jak na fotografii:

W takiej konfiguracji moduł KAmodRPI RTC jest umieszczony ponad radiatorem i cały zestaw może działać prawidłowo.


Konfigurowanie magistrali I2C*

* opisane procedury dotyczą komputerka Raspberry Pi 5

Pierwszym krokiem zawsze będzie odświeżenie repozytoriów i pakietów oprogramowania. Otwieramy konsolę np. poprzez kombinację klawiszy Ctrl+Alt+T, a następnie wpisujemy polecenia:

sudo apt-get update
sudo apt-get upgrade


Teraz zainstalujemy pakiet oprogramowania ułatwiający pracę z interfejsem I2C. W tym celu wpisujemy polecenie:

sudo apt-get install i2c-tools


Kolejnym zadaniem, które musimy wykonać jest włączenie kontrolera magistrali I2C. Uruchamiamy konfigurator Raspberry Pi poleceniem:

sudo raspi-config


Wybieramy opcję 3 (Interface options), a następnie wybieramy opcję I5 (I2C). Po zatwierdzeniu wszystkich zmian zobaczymy komunikat, że interfejs I2C jest gotowy.

W tym momencie, za pomocą programu i2c-detect możemy sprawdzić jakie urządzenia zostały podłączone do magistrali I2C. Wpisujemy:

i2cdetect -y 1


Efekt działania będzie podobny do tego pokazanego poniżej:


Oznacza to, że na magistrali I2C znajduje się urządzenie z adresem 68 (hex) – to właśnie adres układu DS3231.

Przygotowanie systemu Raspberry Pi*

* opisane procedury dotyczą komputerka Raspberry Pi 5

Przygotowanie systemu rozpoczynamy od edycji pliku /boot/firmware/config.txt (w starszych wersjach systemu operacyjnego Raspberry Pi jest to plik /boot/config.txt). W tym celu wpisujemy polecenie:

sudo nano /boot/firmware/config.txt


Na końcu istniejącej treści dopisujemy linię:

dtoverlay=i2c-rtc,ds3231


Następnie zapisujemy zmiany poprzez Ctrl+O oraz zamykamy edytor poprzez Ctrl+X. Uruchamiamy system ponownie, np. wpisując:

reboot


Po ponownym uruchomieniu systemu sprawdzamy skuteczność wprowadzonych zmian, wpisując polecenie:

i2cdetect -y 1


Tym razem efekt powinien być następujący:

Oznaczenie UU, które zastąpiło wcześniejszą wartość 68 oznacza, że system poprawnie skomunikował się z zegarem i zastrzegł jego adres.

Ustawianie i odczyt z RTC*

* opisane procedury dotyczą komputerka Raspberry Pi 5

Aktualny systemowy czas możemy sprawdzić za pomocą polecenia:

date


Aby zapisać aktualny czas do modułu RTC należy wpisać polecenie:

sudo hwclock -w


natomiast, aby odczytać czas z modułu RTC wpisujemy:

sudo hwclock -r



Zegar RTC możemy ustawić dowolną wartością czasu, służy do tego polecenie:

hwclock --set ––date="2024-06-19 12:22:22"


Oczywiście data i czas mogą być inne ale muszą być zapisane analogicznie jak w powyższym przykładzie. Teraz możemy ustawić w systemie czas pobrany z zegara RTC, służy do tego polecenie:

sudo hwclock -s



Czas systemowy w Raspberry Pi 5 będzie automatycznie pobierany z zegara RTC, przy uruchomieniu komputerka. Czas zostanie automatycznie skorygowany, gdy Raspberry Pi uzyska dostęp do internetu. Wtedy również wartość czasu RTC zostanie uaktualniona.

Linki