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

Konfiguracja zewnętrznego oscylatora

maniex 09 Paź 2010 16:04 1458 4
REKLAMA
  • #1 8600237
    maniex
    Poziom 10  
    Witam wszystkich.
    Jestem początkującym amatorem uC i w projekcie, którym aktualnie się zajmuję chciałbym za pomocą ATmegi8 odebrać sygnał zakodowany w kodzie Machester. Częstotliwość tego sygnału,to 2kHz.
    Ponieważ czytałem, że układy RC wbudowane w AVR'ach nie dają zbyt dokładnego sygnału taktującego, zastanawiam się nad użyciem zewnętrznego kwarcu.
    W związku z tym mam kilka pytań:

    1. Czy do tak małej częstotliwości w ogóle jest uzasadnione używanie zewnętrznego źródła taktowania (w Atmedze8 wewnętrzny RC może mieć częstotliwość 8MHz)?

    Niezależnie od odpowiedzi na powyższe pytanie:
    2.Zakupiłem kwarc o f=12MHz, a czytałem, że stosuje się nawet o większej częstotliwości, podczas gdy w datasheecie z tab.4 na str.25 wynika, że maksymalna częstotliwość zewnętrznego kwarcu,to 8MHz. Czy to oznacza, że dla ATmegi8 nie można używać większej?
    3. Na str.26 w tab.5 przedstawiona jest konfiguracja fusebitów SUT1...0, która zależy od szybkości narastania zasilania. Jak należy rozumieć wolne narastanie,a jak szybkie?
    4. Czy po ustawieniu fusebitow CKSEL3...0 i SUT1...0 w programie też należy dodatkowo konfigurować zegar lub zmienić zawartość jakiś rejestrów? (program piszę w C)
    5. Czy użycie zewnętrznego oscylatora wpływa na konfigurację Timerów(nie licząc ustawienia prescalera)?

    Z góry dziękuję za odpowiedzi;)
  • REKLAMA
  • Pomocny post
    #2 8600435
    mirekk36
    Poziom 42  
    1. Oscylator wewn. 8MHz można użyć rónie dobrze do analizy dużo większych częstotliwości. A to że czytałeś że RC wbidowane nie mają zbyt dokładnego sygnału taktującego, to niestety trafiłeś na stek bzdur powielany na wielu forach. I nie chodzi o to czy jest on dokładny czy nie, tylko o to żeby nauczyć się kiedy warto zastosować wewn oscylator a kiedy zewnętrzny kwarc. Zapewniam cię że do takiej analizy kodu Manchester spokojnie wystarczy wewn. Oscylator 8MHz - ja tak zawsze robię a sporo tego typu programów używam

    2. to coś źle doczytałeś w tym dataszicie albo nie podałeś jaką masz wersję procka. Bo jeśli to ATmega8L to teoretycznie rzeczywiście maksymalny kwarc zewn to 8MHz. Ale jeśli to ATmega8 (bez literki L na końcu to możesz taktować do 16MHz) Poza tym w praktyce spokojnie jedną i drugą wersję można przetaktować nawet o 4MHz i nic się nie stanie.

    3.4. - zassij sobie program MkAvrCalculator i poprzeglądaj w nim jak można ustawiać Fusebity a potem skonfrontuj to z informajami w nocie PDF

    5. Zewnętrzego rezonatora chyba miałeś na myśli. Jakby mogło nie wpływać? Po to masz preskaler żeby sobie dzielić takie czy inne częstotliwości taktowania
  • REKLAMA
  • #3 8600566
    maniex
    Poziom 10  
    Tak, rzeczywiscie mam ATmege8L.

    3.4. korzystałem z programu SinaProg, w którym jest wbudowany kalkulator. Mówi on, że dla 'high freq.' trzeba ustawić fusebity CKSEL3...1 na 111, a CKSEL0 i SUT1...0 w zależności od czasu dodatkowego opóźnienia po resecie(jeśli dobrze to rozumiem):
    -SUT1...0=10 da 4,1ms ->zalecane przy szybkim naroście zasilania,
    -SUT1...0=11 da 65ms -> zalecane przy wolniejszym naroście zasilanie,
    ale nie wiem w jakim czasie moje zasilanie narasta. Czy mogę w takim razie na wszelki wypadek ustawić jak dla szybko narastającego bez szkody w działaniu układu?

    5. Tak, wiem że prescalerem mogę ustawiać dzielenie częstotliwości, ale chodziło mi o to czy w programie oprócz bitów CSx2...0 trzeba ustawić jakieś bity, w którymś z rejestrów timera mówiące mu, że jest taktowany z zewnętrznego rezonatora? Czy timer dostaje po prostu sygnał z prescalera i nie interesuje go skąd on się tam wziął?

    Dzięki za odpowiedź.
  • REKLAMA
  • #4 8600603
    mirekk36
    Poziom 42  
    Dlatego pisałem ci o MkAvrCalculator który w pełni za free działa z twoim prockiem, że masz tam aż 3 różne widoki na fusebity i przestawiając np w widoku uproszczonym na zewn kwarc możesz sobie w pozostałych dwóch widokach obserwować jak to wpływa na wybór opcji i CKSEL i SUT ... no ale jak chcesz ;)
  • #5 8600698
    maniex
    Poziom 10  
    SinaProg też jest za free i też w oknie można podejrzeć w jaki sposób konfiguruje fusebity.
    Znalazłem informację, że jeśli nie jest się pewnym szybkości narastania zasilanie,lepiej ustawić to opóźnienie na większą wartość, ponieważ jest to czas po którym na pewno sygnał taktujący ma być stabilny.
REKLAMA