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

Jak ustawić fusebity w ATmega8 do pracy z zewnętrznym kwarcem?

BlueTiger 12 Lut 2005 13:54 1593 6
REKLAMA
  • #1 1221543
    BlueTiger
    Poziom 11  
    Posty: 45
    witam
    jak ustawic fusebity w mega8 zeby startowal z zewnetrznego kwarcu??? mam programator ISPPROG.
    bez ustawiania to chodzi czsem na 1MHz a czasem to na wyswietlaczy co 0,5s wyskoczy kolejna literka....

    prosze pomocy!!!!!!
    pozdrwiam
    BlueTiger
  • REKLAMA
  • #2 1223792
    al555
    Poziom 20  
    Posty: 485
    Pomógł: 32
    Ocena: 8
    dla zewnetrznego kwarcu powyzej 3MHz:

    CKOPT = 1
    CKSEL3 = 1
    CKSEL2 = 1
    CKSEL1 = 1
    CKSEL0 = 1

    1 => tzn. bit niezaprogramowany,

    raczej si nie pomyl bo układu nie uszkodzisz ale możesz go zapogramować do pracy z zewnętrznym układem RC lub zewnętrznym generatorem.
  • REKLAMA
  • #3 1224031
    BlueTiger
    Poziom 11  
    Posty: 45
    witam
    niom poustawiam tak bity i kliknolem ze ma zaprogramowac tyle ze najpierw w linii gdze byly bity cksel... zmienil sie bit cpot na 0 (bo on jest w kolejnej linii) i sie zaprogramowalo i teraz d u p a :( procek nei startuje ani z kwarcu 10MHz ani z zewnetrzengo generatora 11MHz :( i co mam teraz zrobic??? kobinowac z innymi czestotliwosciami czy z oscylatorem RC??? wyglada na to ze bity sa teraz tak ustawione:
    wszystkie cksel na 1
    ckpot 0

    pozrawiam
    BlueTiger
  • REKLAMA
  • #4 1224140
    al555
    Poziom 20  
    Posty: 485
    Pomógł: 32
    Ocena: 8
    w zasadzie CKOPT nie jest taki ważny - odpowiada za to czy generator ma generować sygnał o pełnej amplitudzie czy może być trochę mniejsza amplituda a przez to mniejsze zakłócenia ( ew. decyduje o dolaczeniu wewnetrznego kondensatora do XTAL1 )

    Ważne są sygnały CKSEL3..CKSEL0

    poniżej jest skopoiowana z noty katalogowej tablica z ustawieniami.

    ---------------------

    Table 2. Device Clocking Options Select(1)

    Device Clocking Option CKSEL3..0
    External Crystal/Ceramic Resonator 1111 - 1010
    External Low-frequency Crystal 1001
    External RC Oscillator 1000 - 0101
    Calibrated Internal RC Oscillator 0100 - 0001
    External Clock 0000

    ----------------------

    Chyba wszystkie AVR ( a na pewno AT MEGA) są dostarczane z zaprogramowanymi FUSAMi do pracy z wewnętrznym generatorem ustawionym nba 1MHz ( CKSEL3..0 = 0001 ).

    Gdyby wszystkie CKSEL były ustawione na 1 ( niezaprogramowane to układ by pracował z zewnętrznym rezonatorem a tak nie jest )

    Z tego co piszesz to zmiana ustawień CKOPT nie powina wpływać na to czy ATMega startuje czy nie. Bardziej myśle że pomyliłes się i zamiast 1 ustawiłeś 0 ( pewnie zaznaczyłes jekieś kwadraty zamiast zostawić puste ). Stąd jednak stawiam na zewnętrzny generator ( z tym że wejście XTAL1 jest nie podłączoe a generator podłączasz do XTAL2 i do GND !! )

    Jeśli za to rzeczywiście ustawiłeś układ do pracy z zewnętrznym układem RC, to pozostaje ci odlutować kwarc, jeden z kondensatorów ( ten od linii XTAL2 ) a do wejścia XTAL1 przylutować rezystor 10k ( powino wyjść ok 1,5MHz - chociaż częśtotliwość nie jest ważna)

    Po podłączeniu próbuj odczytywać FUSEbity, powinbno zadziałać !

    Powodzenia
  • #5 1224325
    BlueTiger
    Poziom 11  
    Posty: 45
    witam
    bity orginalnie byly tak zaznaczone jak piszesz. z tym ze raz pracowac na 1MHz a raz to literki na LCD wyskakiwaly pojedynczo:(

    probowalem z RC i dalej nic nie startuje/programator go nie widzi na 100% zaznaczylem tak jak napisalem -cksel zostawilem nie zaznaczone.

    a do czego sluza bity SUT bo w nocie katalogowej tez cos o nich pisze...
    prosze pomocy!!!!

    Pozdrawiam
    BlueTiger
  • REKLAMA
  • #6 1224414
    al555
    Poziom 20  
    Posty: 485
    Pomógł: 32
    Ocena: 8
    Ale mam jednbo pytanie - czy ty możesz odczytać FUSEbity programatorem i zapisać je a tyko procesor nie startuje z wykonywaniem programu, czy programamtor zgłasza ci błąd przy jakiejkolwiek próbie nawiązania komunikacji ??

    Bity SUT1 i SUT0 odpowiadają za opóźnienie od zanikniecia sygnału RESET do rozpoczęcia wykonywania programu.

    Odpowiedz na pierwsze pytanie i napisz jaki kwarc używasz i jak podpinałeś zewnętrzny generator ...

    Powodzenia ...
  • #7 1224859
    BlueTiger
    Poziom 11  
    Posty: 45
    no i wystartowal:)
    podlaczylem XTAL1 do oscylatora i przez kondesnator do masy:)
    ustawilem bity tak zeby dzialal z kwarcem i.. pomimo tego ze kwarc jest na 10MHz to chodzil na 2MHz a teraz znowu tak wolno ze literki wyslwietla pojedynczo:( dlaczego sie tak dzeje??? porgram normalnie chodzi i nagle zwalnia do takeigo tepa, restrat nie pomaga:(

    wracajac do twojego pytania:
    programator nie widzial procka, nie czytal bitow, jak by czytal bo bym mogl je zmienic. poza tym gdy by czytal bity a program by nie startowal nalezalo by szukac problemu w programie a nie ustawieniu bitow
    Pozdrawiem

Podsumowanie tematu

✨ Dyskusja dotyczy ustawienia fusebitów w mikrokontrolerze ATmega8 do pracy z zewnętrznym kwarcem. Zalecane ustawienia dla kwarcu powyżej 3 MHz to CKOPT=1 (bit niezaprogramowany) oraz CKSEL3..0=11111, co odpowiada pracy z zewnętrznym rezonatorem kwarcowym. Bity CKSEL3..0 decydują o źródle taktowania, natomiast CKOPT wpływa na amplitudę sygnału generatora i dołączenie wewnętrznego kondensatora do XTAL1. Problemy z uruchomieniem mikrokontrolera po zmianie fusebitów mogą wynikać z nieprawidłowego zaprogramowania bitów lub niewłaściwego podłączenia kwarcu. Bity SUT1 i SUT0 odpowiadają za opóźnienie startu po zaniku sygnału RESET. W przypadku problemów z komunikacją programatora z mikrokontrolerem należy sprawdzić poprawność ustawień fusebitów i połączeń kwarcu. Użytkownik zgłaszał niestabilną pracę, gdzie mikrokontroler działał z częstotliwością około 1 MHz zamiast 10 MHz, a wyświetlacz LCD wyświetlał znaki z opóźnieniem. Po podłączeniu kwarcu do XTAL1 przez kondensator do masy i odpowiednim ustawieniu fusebitów mikrokontroler uruchomił się, jednak częstotliwość pracy była niższa niż nominalna, co powodowało spowolnienie działania programu. Programator ISPPROG początkowo nie mógł odczytać fusebitów, co wskazywało na problem z konfiguracją lub połączeniem.
Wygenerowane przez model językowy.
REKLAMA