Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[ATmega8] Podłączenie trymera, kalibracja kwarcu dla RTC

11 Lut 2011 17:44 2454 5
  • Poziom 10  
    Witam, korzystam z trybu RTC, mam podłączony do pinów TOSC1, TOSC2 kwarc zegarkowy. Po podłączeniu kwarcu bez kondensatorków po 24 godzinach czas śpieszył się 10 sekund. Po załączeniu wewnętrznych kondensatorków (fuse CKOPT) o wartości 36pF (wg. instrukcji atmegi8) chodzi dokładniej, ale spóźnia mi 2 sekundy na dobę. Chciałbym, prócz tych podciągniętych wewnętrznych kondensatorów, podłączyć trymer (6-40pF) w celu dokładniejszej regulacji, nie wiem tylko jak to zrobić. Na schematach widziałem różne metody: jedna z nóżek trymera do kwarcu, a druga do Vcc; równolegle do kwarcu; trymer od nóżki kwarcu do masy. Który sposób podłączenia jest właściwy i pozwoli mi zniwelować te 2 sekundy opóźnienia na dobę (pamiętając o podciągniętych wewnętrznych kondensatorach)?
  • Poziom 32  
    A nie llepiej zrobic korekcje programową?
    Mam tak zrobione mimo ze spieszy mi 45s na dobe i dokładnosc roczna do przyjęcia.
  • Poziom 10  
    Teoretycznie mógłbym i tak zrobić.. jednak, z tego co wyczytałem, lepiej zrobić korekcje używając kondensatorów z racji tego, że mają ujemny współczynnik temperaturowy i pozwalają zachować jako taką dokładność przy zmianach temperatury pracy kwarcu. No i po drugie zaopatrzyłem się już w trymerek i chciałbym go zaprzęgnąć do pracy :)
  • Poziom 27  
    Te kondensatory od CKOPta o których mówisz wydaje mi się że są podpinane do wejścia Xtal a nie Osc. Poza tym są to kondensatory wewnątrz struktury, a więc mają b.słabe parametry .
  • Poziom 10  
    To o czym piszesz potwierdza niby datasheet ATmegi (w ATmedze8 XTALn i TOSCn są pod tymi samymi pinami):

    Cytat:
    CKOPT Does not Enable Internal Capacitors on XTALn/TOSCn Pins when 32 KHz
    Oscillator is Used to Clock the Asynchronous Timer/Counter2
    When the internal RC Oscillator is used as the main clock source, it is possible to run the
    Timer/Counter2 asynchronously by connecting a 32 KHz Oscillator between XTAL1/TOSC1
    and XTAL2/TOSC2. But when the internal RC Oscillator is selected as the main clock
    source, the CKOPT Fuse does not control the internal capacitors on XTAL1/TOSC1 and
    XTAL2/TOSC2. As long as there are no capacitors connected to XTAL1/TOSC1 and
    XTAL2/TOSC2, safe operation of the Oscillator is not guaranteed.
    Problem Fix / Workaround
    Use external capacitors in the range of 20 - 36 pF on XTAL1/TOSC1 and XTAL2/TOSC2.
    This will be fixed in ATmega8 Rev. G where the CKOPT Fuse will control internal capacitors
    also when internal RC Oscillator is selected as main clock source. For ATmega8 Rev. G,
    CKOPT = 0 (programmed) will enable the internal capacitors on XTAL1 and XTAL2. Customers
    who want compatibility between Rev. G and older revisions, must ensure that
    CKOPT is unprogrammed (CKOPT = 1).


    Dziwne więc, że po zaprogramowaniu CKOPTa różnica w odmierzonym czasie względem CKOPTa niezaprogramowanego to 12 sekund na 24 godziny, co wskazuje na to, że jednak chyba jakieś pojemności się wtedy podpinają.
  • Poziom 10  
    Ostatecznie odłączyłem wewnętrzne kondensatory (CKOPT niezaprogramowany), a podłączyłem w standardowy sposób (do masy) kondensatory zewnętrzne, jeden 25pF, drugi (trymer) ustawiony na trochę mniej i chodzi idealnie, nie zaobserwowałem żadnego rozjechania czasowego po 24h pracy.