Page 99 - Microcontrolere - Indrumator de laborator
P. 99
Fig. 13.2. Pinii de conectare (pinout) ai modulului RTC DS1307[14]
Modulul RTC DS1307 include toate componentele integrate necesare pentru
funcționarea corectă a unui cip DS3107. În plus, acesta are un suport pentru o baterie
de litiu de 3V de 20 mm. În acest modul poate fi utilizată orice baterie CR2032. Să
trecem în revistă fiecare dintre componentele modulului, una câte una. DS1307 ține
evidența secundelor, minutelor, orelor, zilelor și lunilor. Acest cip își resetează
secundele, minutele, orele și data la sfârșitul fiecărei luni. Ora poate fi afișată în format
de 12 ore cu AM și PM sau în format de 24 de ore.
Cipul DS1307 are nevoie de un oscilator cu cristal extern de 32KHz pentru a
funcționa (cronometrare). Ca urmare, modulul RTC are un oscilator cu cristal extern
de 32KHz. Cu toate acestea, există o problemă cu acest oscilator cu cristal de 32KHz:
schimbările de temperatură ambientală modifică frecvența de oscilație a oscilatorului
cu cristal. Diferența în frecvența de oscilație a cristalului extern de 32KHz este
nesemnificativă. Cu toate acestea, pe termen lung, este o greșeală. Ea provoacă o
derivă lunară a ceasului de 2-3 minute [14].
Modulul RTC DS1307 are la bord și o memorie EEPROM 24C32. Acest
EEPROM are o capacitate de 32 de octeți și permite doar operațiuni regionale de
citire-scriere. Utilizarea unui modul RTC pentru proiecte bazate pe alarme poate
valorifica această memorie pentru a economisi timp. De exemplu, dorim să ne trezim
în fiecare zi la ora 8:00 a.m. Putem înregistra această valoare a timpului în EEPROM,
iar o alarmă va suna de fiecare dată când timpul este egal cu valoarea salvată.
Aceste cipuri EEPROM utilizează interfața I2C pentru a se conecta cu
microcontrolere precum Arduino. Prin urmare, utilizează același bus I2C ca și
DS1307. Pentru a comunica cu memoria EEPROM și cu cipul DS1307 pe același
autobuz I2C, li se setează adrese slave diferite.
Pentru setarea ceasului de timp real, comenzile trebuie date pe magistrala I2C
de la o placă programabilă precum Arduino. Astfel putem seta atât ceasul, cât și data.
Așadar, putem comunica separat dar pe aceeași magistrală I2C, atât cu circuitul
96