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

ATmega8 - Brak komunikacji po zmianie fusebitów, USBasp, mkAVR Calculator, błąd AVRDUDE

michalekb92 18 Lut 2014 09:49 1899 7
REKLAMA
  • #1 13316079
    michalekb92
    Poziom 10  
    Witam.

    Z góry przepraszam, że podłączam się do tematu ale mam mały problem. Mam programator USBasp oraz mikrokontroler ATmega 8. Zmieniłem w nim za pomocą mkAVR Calculator fusebity na: lfuse: FF i hfuse: DF. Po tej operacji nie mogę się już połączyc z mikrokontrolerem. Nadmienię, że na programatorze mam założoną zworkę SLOW oraz w programie prędkość jest ustawiona na AUTO.

    Oto błąd jaki wywala AVRDUDE:

    avrdude.exe: set SCK frequency to 93750 Hz
    avrdude.exe: error: programm enable: target doesn't answer. 1
    avrdude.exe: initialization failed, rc=-1
    avrdude.exe: AVR device initialized and ready to accept instructions
    avrdude.exe: Device signature = 0x000000
    avrdude.exe: Yikes! Invalid device signature.
    avrdude.exe: Expected signature for ATMEGA8 is 1E 93 07

    avrdude.exe done. Thank you.


    Wiem, że błąd rc=1 może oznaczać złe podłączenie ale to raczej niemożliwe bo po wgraniu fusebitow układu nawet nie dotykałem.

    Pozdrawiam i czekam na jakieś sugestie.
  • REKLAMA
  • Pomocny post
    #2 13316317
    dondu
    Moderator na urlopie...
    Witaj.

    Sprawdzając w kalkulatorze fusebitów: http://www.engbedded.com/fusecalc
    widzę, że przełączyłeś mikrokontroler na tryb pracy z zewnętrznym kwarcem o częstotliwości większej niż 8MHz. Czy masz go podpięty wraz z niezbędnymi kondensatorami?

    Powinieneś był także zaprogramować bit CKOPT:

    Cytat:
    When CKOPT is unprogrammed, the Oscillator has a smaller output swing. This reduces
    power consumption considerably. This mode has a limited frequency range and it cannot be
    used to drive other clock buffers.


    ... ale to nie wpłynie na uruchomienie jeśli dasz kwarc ≦ 8MHz. Może natomiast wpłynąć gdy dasz kwarc znacznie większy, czyli np. 16MHz.
  • REKLAMA
  • Pomocny post
    #3 13316326
    mipix
    Poziom 38  
    Napisz jeszcze jak ustawione były fuse bity wcześniej. W tej chwili masz ustawiony zewnętrzny rezonator. Jeśli go nie masz, to nie ma też komunikacji, ponieważ procesor nie ma taktowania.
  • #4 13316448
    michalekb92
    Poziom 10  
    Fuse bity wcześniej były ustawione standardowo na: lfuse: E1 i hfuse: D9. Chciałem wgrać do ATmegi 8 bootloader i gdzieś wyczytałem, że należeży wgrać takie fuse bity jakie wgrałem ale nie wiedziałem co to zmieni. Ale dzięki wam dowiedziałem się, że wystarczy podłączyć kwarc np. 12 MHz i powinno działać, czyż nie tak?
  • REKLAMA
  • REKLAMA
  • #6 13316816
    michalekb92
    Poziom 10  
    Jakie kondensatory najlepiej zastosować?

    --------------------------------------
    Mam podobny problem z mikrokontrolerem ATmega 328P, który pochodzi z Arudino UNO. Chciałem również wgrać do niego bootloader, ponieważ straciłem komunikację pomiędzy Arduino a komputerem, ale przy próbie połączenia się z nim AVRDUDE wywała mi taki sam błąd jak przy ATmega 8. Myślicie, że można spróbować do niego podłączyć zewnętrzny kwarc?
  • #8 13319542
    michalekb92
    Poziom 10  
    Dziękuję bardzo za pomoc. Wszystko ładnie działa. A jeszcze odnosnie ATmegi 328P z Arduino, o której pisałem wcześniej, macie jakiś pomysł? Podłączyłem rezonator 12MHz oraz 16MHz i nadal ten sam błąd.
REKLAMA