logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATmega32][ATmega128] Kwarc - od początku - funkcja zegarka

aimn 11 Lut 2010 17:23 4097 7
  • #1 7678900
    aimn
    Poziom 11  
    Witam, jestem początkujący, chciałem zaimplementować w swoim układzie (dodatkowo) funkcję pokazującą czas, czyli generalnie zegarek. Układ będzie oparty na procesorze ATmega*. Poczytałem trochę na forum o kwarcach i chciałem uporządkować wiadomości.

    Jeżeli chcę by nie było dysproporcji między aktualnym czasem a wskazaniem układu, to rozumiem, że potrzebuję zewnętrzny kwarc. Jest ich dosyć sporo o różnej częstotliwości (na przykład 16[MHz]), ale jeden 32.768[kHz] nazywany jest kwarcem zegarkowym, rozumiem, że muszę użyć tego? Czemu akurat taka częstotliwość? Czemu służą w takim razie te kwarce o tych innych częstotliwościach?

    Podłączanie, dodatkowe kondensatory o pojemności 22[pF] są w układzie mikrokontrolera, ale z tego co doczytałem nie zaszkodzi a nawet przez niektórych jest sugerowane przylutowanie takowych do kwarcu. Tak więc kwarc z kondensatorami podłączamy do nóżek TOSC1 oraz TOSC2, te wejścia służą do oscylatorów (kwarcu) zajmujących się czasem? Są też wejścia XTAL1 oraz XTAL2, czy tutaj podłącza się kwarce, które sterują częstotliwością mikrokontrolera? Czy w takim razie to takich zadań używa się kwarców o tych innych częstotliwościach? Gdybym chciał by na przykład moja ATmega128 pracowała z częstotliwością 16[MHz] to oprócz dostarczenia odpowiednio wysokiego napięcia potrzebny jest kwarc właśnie 16[MHz] w wejściach XTAL1 i XTAL2?

    Bity kontrolne, teraz kolej na ustawienie fuse-bitów, dla wspomnianego kwarcu ≈33[kHz], należy 4 bity oznaczone jako CKSEL ustawić na 1001.

    Tu rodzi się moje pytanie, co dalej? Czy kwarc już działa? Jak on wpływa na układ? Rozumiem, że oscyluje on zgodnie z daną częstotliwością, na podstawie czego można dokładnie odmierzać czas? Nie wpływa to na inne właściwości mikrokontrolera ponieważ jest w wejściach TOSC1, TOSC2, inaczej by było gdyby był w XTAL1 i XTAL2?

    Jak to ogarnąć programowo? Wyczytałem, że zegar sterowny z wewnątrz procesora jest uznawany za synchroniczny, a źródło zewnętrzne zegara jako asynchroniczne, więc wymagane jest ustawienie rejestru ASSR (AS0 ustawione na 1 w ATmega128, AS2 w ATmega32). Teraz trzeba uruchomić przerwania, uruchomić przerwanie Timer/Counter? i można korzystać z funkcji ISR(TIMER2_OVF_vect) ? Funkcja ta będzie się wywoływać co 256 drgań kwarcu, więc dzieląc częstotliwość przez 128 otrzymamy wywołanie co 1[s]? Czy istnieje jakiś inny sposób na zaimplementowanie tego programowo?

    Z góry dziękuję za pomoc
  • #2 7679122
    marco47
    Poziom 41  
    Widzę że kolega tylko korzysta z wiedzy na forum .
    Cytat:
    Poczytałem trochę na forum o kwarcach i chciałem uporządkować wiadomości

    A przecież są inne źródła zdobywania wiadomości na dany temat . Są to książki a w nich zawarta wiedza na pewno pozwoli koledze poznać a później zastosować w swoich projektach .
    Książki (wydania elektroniczne też ) są podstawą zdobywania wiedzy . Jeżeli kolega nie korzysta z tego to ciężko jest wytłumaczyć wiadomości z podstaw elektroniki tutaj na forum . Forum służy do pogłębiania wiedzy a nie do poznawania podstaw.
  • #3 7679222
    leon1313
    Poziom 15  
    Jeżeli nie planujesz jakiegoś skomplikowanego programu, to spokojnie w ATMEGA32 możesz dać kwarc 16MHZ i na podstawie przerwania z któregoś z TIMERów zrobić cyk-bajer pikny zegarek z melodyjką (alarmem).
  • #4 7679963
    aimn
    Poziom 11  
    marco47 napisał:
    Książki (wydania elektroniczne też ) są podstawą zdobywania wiedzy .


    A można wiedzieć jakie książki? Z góry dziękuję.
  • #5 7680243
    marco47
    Poziom 41  
    Na początek :
    Programowanie mikrokontrolerów AVR w języku Bascom - Marcin Wiązania
    Mikrokontrolery AVR w praktyce -Jarosław Doliński
    Zresztą pozycji w księgarniach jest wiele , w zależności od języka w jakim chcesz pisać programy dla mikroprocesorów .
  • #6 7680372
    mirekk36
    Poziom 42  
    aimn --> oczywiście, że książki to podstawa - podpisuję się pod tym w 100%.

    Ale zanim zabierzesz się za próby rozgryzania do czego są kwarce itp to - weź załóż jakiś prosty układzik na procku, zostaw w spokoju kwarce - procek jest taktowany wewn. oscylatorem fabrycznie o wartości 1MHz i to ci w zupełności wystarczy do pierwszych kroków jak nauka migania diodą(-ami) LED, obsługi switcha itp

    po prostu wszystko po kolei i gwarantuję ci, że kwarce do zrobienia prostego zegarka nie będą ci potrzebne.
  • #7 7682534
    aimn
    Poziom 11  
    mirekk36 napisał:
    to ci w zupełności wystarczy do pierwszych kroków jak nauka migania diodą(-ami) LED, obsługi switcha itp


    Ten etap mam już za sobą, brakuje mi właśnie czasami elementarnej wiedzy elektronicznej na temat niektórych spraw z mikrokontrolerami, co blokuje moje możliwości, dlatego faktycznie muszę czytać książki a nie forum.
  • #8 7684358
    janbernat
    Poziom 38  
    Powinieneś czytać i książki i przeglądać forum.
    I czasopisma- chociaż to od czasu pewnej afery głupio brzmi.
    Sprecyzuj dokładniej jakiej elementarnej wiedzy elektronicznej nie masz.
    Zaczyna się elementarna wiedza od prawa Ohma- a kończy się dla niektórych zdanym egzaminem z układów.
    A dla prawdziwych elektroników wtedy dopiero się zaczyna.
REKLAMA