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
   94   95   96   97   98   99   100   101   102   103   104