Moduł z zegarem RTC i pamięcią FRAM po I2C

Moduł z zegarem RTC i pamięcią FRAM po I2C

Pamięć FRAM jest ciekawą alternatywą dla nieulotnych pamięci EEPROM. Charakteryzuje się niewielkim poborem mocy, identycznym czasem trwania operacji zapisu i odczytu oraz dużą liczbą cykli zapisu. Obok pamięci, na tej samej płytce został umieszczony układ zegara RTC z kalendarzem i podtrzymaniem zasilania z niewielkiej baterii. Całość jest doskonałym uzupełnieniem dla Raspberry Pi, Arduino, STM32 i nie tylko.

Podstawowe parametry:
  • zastosowano pamięć FRAM typu FM24LC16B o pojemności 2 kB,
  • zawiera zegar RTC z kalendarzem typu DS1338 z dołączoną baterią podtrzymującą jego zasilanie,
  • komunikacja odbywa się poprzez magistralę I2C doprowadzoną do złącza zgodnego ze standardem Grove.

W module zastosowano pamięć FRAM typu FM24LC16B firmy Cypress/Infineon, której blokowy schemat wewnętrzny został pokazany na rysunku 1. Charakteryzuje się ona małym poborem prądu – 100 μA oraz wysoką liczbą cykli zapisu – 1014. Będzie przydatna w aplikacjach zapisujących większą ilość danych (konfigurację) np. podczas zaniku zasilania, gdy czas zapisu jest krytyczny dla aplikacji lub gdy chcemy zapisywać dane często, a zależy nam na długiej trwałości układu pamięci nieulotnej.

Rysunek 1. Schemat wewnętrzny pamięci FRAM (za notą Cypress/Infineon)

Budowa i działanie

Schemat minimodułu został pokazany na rysunku 2. Układ U1 to zegar RTC typu DS1338 z dołączoną baterią podtrzymującą jego zasilanie – BAT, typu CR1220. Oprócz funkcji zegara czasu rzeczywistego realizuje też kalendarz i dodatkowo daje do dyspozycji 56 bajtów pamięci RAM. Współpracuje z miniaturowym rezonatorem kwarcowym 32,768 kHz i zawiera zintegrowany układ klucza zasilania bateryjnego.

Rysunek 2. Schemat modułu I2C_RTC_FRAM

Układ U2 zawiera 2 kB pamięci FRAM. Komunikacja odbywa się poprzez magistralę I2C doprowadzoną do złącza zgodnego ze standardem Grove, co ułatwia połączenie z różnymi systemami uruchomieniowymi. Rezystory R1, R2 zapewniają właściwą polaryzację magistrali.

Montaż i uruchomienie

Moduł zmontowano na dwustronnej płytce drukowanej, której schemat został pokazany na rysunku 3. Sposób montażu jest klasyczny i nie wymaga opisu. Dla szybkiego sprawdzenia działania moduł można podłączyć do magistrali I2C komputerka Raspberry Pi.

Rysunek 3. Rozmieszczenie elementów

Posługując się biblioteką i2ctools, sprawdzamy obecność układów na magistrali (rysunek 4), za pomocą polecenia:

i2cdetect -y 1
Rysunek 4. Detekcja układów modułu

Pod adresem 0x68 znajduje się układ RTC DS1338, znaczenie poszczególnych rejestrów pokazuje fragment dokumentacji układu – rysunek 5.

Rysunek 5. Funkcje rejestrów układu DS1338

Wpisując polecenie:

i2cset/i2cget

uzyskamy efekt kasowania liczników sekund, natomiast:

i2cset -y 1 0x68 0x00 0x00

spowoduje uruchomienie oscylatora, z kolei polecenie:

i2cget -y 1 0x68 0x00

pozwala na odczyt liczników sekund. Powtórzenie odczytu powinno skutkować aktualizacją stanu licznika sekund.

Skuteczniejszą metodą korzystania z RTC w przypadku Raspberry Pi jest użycie zgodnego z DS1307 drivera systemowego. Wymaga to wprowadzenia konfiguracji w pliku /boot/config.txt:

dtoverlay=i2c-rtc,ds1307

Po restarcie i ustawieniu aktualnej daty poleceniem:

date -d "2021-07-02 09:58:15"

można ją zapisać do RTC poleceniem:

sudo hwclock -w

i odczytać poprzez:

sudo hwclock -r

Sprawdzenie pamięci FRAM jest także możliwe przy użyciu poleceń i2cset/get. W celu zapisu bloku z adresu 0x50, w komórce 0x00, wartości 0xA0, wykonujemy polecenie:

i2cset -y 1 0x50 0x00 0xA0

Weryfikacja zapisu następuje poleceniem:

i2cget -y 1 0x50 0x00

W efekcie powinna zostać odczytana wartość 0xA0.

Polecenie odczytu bloku to:

i2cdump -y 1 0x50

W podobny sposób odczytujemy i zapisujemy pozostałe banki pamięci. Jeżeli wszystko działa poprawnie, można moduł zastosować we własnej aplikacji.

Adam Tatuś, EP

Wykaz elementów:
Rezystory:
  • R1, R2: 4,7 kΩ SMD0603
Kondensatory:
  • C1, C2: 0,1 μF SMD603
  • C3: 10 μF SMD0603
Półprzewodniki:
  • U1: DS1338U33 (MSOP8)
  • U2: FM24CL16B (SO8)
Inne:
  • XT: rezonator kwarcowy 32,768 kHz
  • BAT: podstawka KEYS1056 + bateria CR1220
 
Artykuł ukazał się w
Elektronika Praktyczna
listopad 2021
DO POBRANIA
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik marzec 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje marzec 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna marzec 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich kwiecień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów