Kategorie: Obwody mikrokontrolera
Liczba wyświetleń: 3195
Komentarze do artykułu: 0
Układy zegara czasu rzeczywistego RTC - Cel, rodzaje i przykłady użycia
Aby wykonać dowolne zadania związane z automatyzacją, często trzeba liczyć określone przedziały czasowe. Czasami odbywa się to poprzez zliczenie określonej liczby okresów zegara lub cykli maszyny.
Jednak, mimo że podążają z określoną częstotliwością i najczęściej zależą od rezonatora kwarcowego, podczas wykonywania operacji w czasie rzeczywistym, a zwłaszcza jeśli są powiązane z porą dnia, zmieniają się w czasie. Aby rozwiązać ten problem, użyj zegara czasu rzeczywistego lub układów RTC.
Co to jest
RTC (zegar czasu rzeczywistego, rosyjski zegar czasu rzeczywistego) jest rodzajem mikroukładu przeznaczonego do zliczania czasu w „rzeczywistych” jednostkach (sekundach, minutach, godzinach itp.).
Są zależne od źródła zasilania, które może być zewnętrzne, w postaci wymiennej baterii lub baterii litowej, lub wbudowane w obudowę mikroukładu (patrz zdjęcie poniżej). Sygnały zegara do raportowania czasu można uzyskać z zewnętrznego rezonator kwarcowyi rzadziej - z sieci zasilającej.
Dokładność odczytu zależy od jakości i dokładności strojenia wewnętrznego oscylatora lub zewnętrznego oscylatora kryształowego. Jednocześnie dokładność kwarcu i RTC, odpowiednio, jest wskazana nie w hercach i nie w procentach, ale w „ppm”, na przykład ± 12 ppm, ± 50 ppm. Oznacza to liczbę części na milion, czyli liczbę części na milion o średniej wartości.

Zegary czasu rzeczywistego można wdrażać na podstawie mikrokontrolerów, jednak użycie specjalnych układów scalonych może zmniejszyć zużycie energii, ponieważ większość mikrokontrolerów nawet w trybie uśpienia (lub trybie niskiego poboru mocy) zużywa więcej energii niż specjalne układy scalone. RTC można również zintegrować z samym mikrokontrolerem (jak w STM32).
To dzięki zegarowi czasu rzeczywistego na komputerze, że godzina i data po odłączeniu od sieci nie odejdą, w tym przypadku działają one z baterii CR2032 zainstalowanej w złączu na płycie głównej, zasilają również układ BIOS, dzięki czemu ustawienia w nim nie gubią się.

Klasyfikacja
Klasyfikacja układów RTC może się różnić w zależności od producenta. Najczęstsze zegary czasu rzeczywistego takich producentów jak: Maxim Integrated i STMicroelectronics. Na rynku dostępne są mikroprocesory innych firm:
-
Intersil Corporation (DC Renesas Electronics);
-
Cymbet (linia EnerChip ™ RTC, charakterystyczna cecha - wbudowana bateria półprzewodnikowa);
-
NXP (RTC z kalendarzem, obsługa protokołów I2C lub SPI)
-
Zilog;
-
Epson
-
NA półprzewodniku.

Maxim Integrated wykorzystuje typ interfejsu sterowania jako główne kryterium klasyfikacji układów RTC, a mianowicie:
1. Układy RTC z szeregowym interfejsem sterowania: I2C, 3-żyłowy, SPI.
2. Z równoległym interfejsem sterowania:
-
z multipleksowaną magistralą adresową / danych;
-
ze wspólnym adresem i magistralami danych;
-
z 1-przewodowym interfejsem jednoprzewodowym.

Możesz także sklasyfikować według formatu prezentacji danych:
-
Kalendarz W formie szablonu RRRM-DD dla daty i GG-MM-SS dla czasu, godziny i innych formatów;
-
Binarny W postaci ciągłego binarnego licznika jednostek czasu (sekund lub ich ułamków).
W zależności od celu mikroukładu w obwodzie urządzenia i jego rodzaju zostanie wybrany, jeśli układ scalony z reprezentacją kalendarza będzie działał jako normalny zegar, a w przypadku binarnego - dla aplikacji takich jak raporty okresów, na przykład okres ważności licencji, okres gwarancji lub urządzenia do nagrywania czegoś (na przykład liczniki elektryczne), na przykład w katalogu Maxim Integrated nazywane są „Elapsed Time Counter” - licznik upływu czasu, przykładem takiego układu scalonego jest DS1683.
W innych przypadkach mikroukłady zegara czasu rzeczywistego można sklasyfikować według funkcjonalności lub innych cech:
-
Obecność wbudowanego generatora lub konieczne jest użycie zewnętrznego generatora (kwarcu).
-
Obecność wbudowanego źródła zasilania lub możliwość korzystania z zewnętrznej baterii.
-
Według rodzaju i wielkości pamięci wewnętrznej i protokołów komunikacyjnych ze światem „zewnętrznym” (opisanych powyżej).
-
Obecność interfejsu fantomowego (fantomowego) umożliwiającego dostęp do wewnętrznych rejestrów mikroukładu (do ustawiania, ustawiania trybów lub odczytywania wartości).
-
Inne funkcje: watchdog, alarm, drugie wyjście, kontrola mocy, możliwość ładowania zewnętrznej baterii itp.
I wreszcie, wielu producentów klasyfikuje swoje urządzenia według poziomu zużycia energii, średnio pobór prądu wynosi od 200 do 1500 nA, ale może również wyjść poza ten zakres w zależności od konkretnego układu scalonego i producenta.
Amatorska praktyka radiowa
Zegary czasu rzeczywistego są często używane w połączeniu z tak popularnymi platformami programistycznymi i prototypowymi, jak rodzina Arduino, oraz przy projektowaniu urządzeń na innych mikrokontrolerach, a także Mikrokomputery z rodziny Raspberry Pi i tym podobne.

Dzisiaj przemysł produkuje moduły z RTC, w postaci osobnej płytki drukowanej lub ekranu. Zaletą tego typu modułów jest to, że nie ma potrzeby rozkładania płytki i odlutowywania mikroukładu, wiązki przewodów, uchwytu baterii i tak dalej.
Są wygodne w użyciu zarówno do gotowych urządzeń, jak i do makiet - możesz użyć zworek z wtyczkami i złączami typu Dupont, jeśli zainstalujesz grzebień na module, aby je połączyć, lub lutujesz przewody bezpośrednio do nicków na płycie (patrz - Wskazówki dotyczące szybkiego montażu płytek drukowanych na płytkach drukowanych).

Wśród arduino i współczesnych producentów domowych najczęściej stosowane są mikroukłady zegara czasu rzeczywistego Maxim Integrated i moduły na nich oparte, a mianowicie:
-
DS1302;
-
DS1307;
-
DS3231.
Ich różnice pokazano w poniższej tabeli.

Jak widać, wszystkie z nich komunikują się z mikrokontrolerem za pośrednictwem magistrali I2C, a DS1302 za pośrednictwem SPI, chociaż arkusz danych mówi „prosty 3-żyłowy interfejs szeregowy odpowiedni dla większości mikrokontrolerów”. I może łączyć się nie tylko do 10-13 pinów Arduinona których przypisane są piny to SPI, ale dla pozostałych zainstalowanych w szkicu obwody będą niższe. Zestawy danych dla tych układów scalonych ze wszystkimi danymi technicznymi są dołączone do artykułu.
Arkusze danych dla układów scalonych w czasie rzeczywistym:
Arduino UNO obsługuje oba te protokoły, które można zobaczyć na poniższym schemacie (zaznaczone na fioletowo i szaro odpowiednio dla SPI i I2C).

Jak Raspberry pi.

Oznacza to, że możesz używać dowolnego z tych modułów z każdej platformy. Możesz zobaczyć zewnętrzne różnice modułów na poniższej ilustracji, ale układ płyty może się różnić, spójrz na oznaczenie IC.
Aby Arduino mogło współpracować z RTC, potrzebujesz biblioteki, ale ponieważ nie ma jej w standardowym pakiecie Arduino IDE, musisz ją pobrać. W sieci znajdują się biblioteki dla każdego z rozważanych układów scalonych, i istnieją biblioteki uniwersalne, które możesz wybrać i która z nich będzie dla ciebie wygodniejsza.
Dołączona biblioteka uniwersalna - iarduino_rtc.zip. Zauważ, że typ układu scalonego jest w nim ustawiany ręcznie, a dla DS1302 wnioski, z którymi jest on połączony:
include // Połącz bibliotekę
czas iarduino_RTC (RTC_DS3231); // Utwórz obiekt czasowy dla DS3231 IC
czas iarduino_RTC (RTC_DS1307); // DLA DS1307
czas iarduino_RTC (RTC_DS1302, RST, CLK, DAT); // dla DS1302.
// Zamiast RST, CLK i DAT, numery pinów arduino,
// do którego podłączone są odpowiednie piny modułu zegara
Schemat dla DS1302 jeszcze raz przypomina, że wnioski mogą być inne:

Ale linia danych DS1307 i DS3231 łączy się tylko ze stykami A5 i A4 w Arduino UNO (inne wersje i wersje płyty, patrz pinout).


Wniosek
Zegary czasu rzeczywistego umożliwiają tworzenie projektów, w których wszelkie procesy muszą rozpoczynać się zgodnie z harmonogramem. W prawie każdym stosunkowo złożonym projekcie do praktycznego zastosowania istnieje taka potrzeba; nie ma znaczenia, czy jest to automatyczny system nawadniający dla roślin, czy system kontroli procesu w produkcji.
Ze względu na niski koszt części oraz prostotę podłączenia i programowania, każdy może teraz wdrożyć takie systemy, nawet bez dogłębnej znajomości elektroniki i mikrokontrolerów. Ale to nie znaczy, że skoro istnieje arduino z jego naturalną prostotą, nie ma potrzeby badania oprogramowania i sprzętu. Przeciwnie, znajomość żelaza i struktury kodu pozwoli ci tworzyć szybsze i bardziej złożone programy, które jednocześnie zajmują mniej miejsca.
Zobacz także na electro-pl.tomathouse.com
: