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

Atmega88PA - Błędne fuse bity

aplov 20 Kwi 2016 19:48 777 7
  • #1 20 Kwi 2016 19:48
    aplov
    Poziom 6  

    Witam,
    chcę ustawić fuse bity w atmega88PA tak aby, był on taktowany z zewnętrznego kwarcu 16MHz.

    Korzystając z dokumentacji, ustawiłem bity następująco:

    LOW : 0xE4
    HIGH: 0x89
    EXTENDED: 0xF9
    LOCK: 0xFF

    ale najwidoczniej coś jest nie tak, bo teraz nie mogę wykryć go w żaden znany mi sposób.

    Da sie w jakiś sposób przywrócić fabryczne wartości tych bitów, czy uC nadaje sie tyko na ozdobę ?

    0 7
  • #2 20 Kwi 2016 20:01
    anders11
    Poziom 28  

    A masz ten kwarc podłączony do procesora?
    Kiedy zaprogramujesz fusy na kwarc zewnętrzny to musi być on podłączony
    Wystarczy jakikolwiek podłączyć ,bez tego nie da się odczytać sygnatury procka

    0
  • #3 20 Kwi 2016 20:03
    aplov
    Poziom 6  

    anders11 napisał:
    A masz ten kwarc podłączony do procesora?
    Kiedy zaprogramujesz fusy na kwarc zewnętrzny to musi być on podłączony
    Wystarczy jakikolwiek podłączyć ,bez tego nie da się odczytać sygnatury procka


    Oczywiście, że jest podłączony. Posiada również 2 kondensatory ceramiczne 22pF

    0
  • Pomocny post
    #4 20 Kwi 2016 20:07
    anders11
    Poziom 28  

    Poszukaj na forum fusebit-doctora
    Jeżeli procek jest nieuszkodzony tylko zablokowałeś go błędnym
    zaprogramowaniem fuse-byte to ta maszynka zaradzi temu

    0
  • Pomocny post
    #5 21 Kwi 2016 08:17
    Sparrowhawk
    Poziom 21  

    A jaki kwarc masz podłączony? Bo mnie się wydaje, że wybrałeś: Low Frequency
    Crystal Oscillator
    , czyli ustawienie pod kwarc zegarkowy 32,768 kHz.

    0
  • #6 21 Kwi 2016 14:32
    aplov
    Poziom 6  

    Tak, wybrałem Low Frequency, da sie jakoś ruszyć uC bez tak wolnego kwarcu ?

    0
  • #7 21 Kwi 2016 18:48
    yokoon
    Poziom 28  

    aplov napisał:
    Tak, wybrałem Low Frequency, da sie jakoś ruszyć uC bez tak wolnego kwarcu ?


    Skoro wybrałeś taki kwarc to należy go podłączyć.

    0
  • Pomocny post
    #8 22 Kwi 2016 07:28
    emarcus
    Poziom 35  

    aplov napisał:
    Tak, wybrałem Low Frequency, da sie jakoś ruszyć uC bez tak wolnego kwarcu ?

    Co masz na myśli 'ruszyc' ?
    Prawdopodobnie chcesz skorygowac błędnie ustawione fusebity (powrócic do default settings).
    W zasadzie datasheet mówi o optymalizacji oscylatora processora do 32kHz jako 'Low Freq.' , ale do komunikacji podczas programowania mozesz tu zastosowac crystal o wartości kilkaset kHz.
    Samo podłączenie tak wolnego oscylatora nie jest gwarancją na jego przeprogramowanie. Musiałbyś takze spowolnic szybkośc transmisji po ISP do 1/4 tej częstotliwości. Sposób tej procedury bedzie zależał od stosowanego programatora oraz softu. Inaczej będzie w AVR studio, a inaczej w AVRdude.
    Nie ty pierwszy masz ten problem.
    Spróbuj: (nie jest to mój sposób, więc nie ma na niego gwarancji; nie bierz mnie też za słowo!!) pracował dla innych...

    Dostarcz sygnał zegarowy do XTAL1 przez rezystor (100 omów). Sygnał może by 200 lub 300 kHz generowany przez inny processor (jezeli posiadasz), jeżeli nie dysponujesz taką możliwościa, to możesz zbudowac 'astable multivibrator' na timerze 555 generujący tego rodzaju sygnał na pinie 3, stosując na przykład:
    R1= 10k, R2 = 2.2k oraz C = 0.001uF (1nF), lub mniejszy.
    http://www.csgnetwork.com/ne555timer2calc.html

    Programowanie fusebitów:
    avrdude -c usbasp -p m88 -U lfuse:w:0x62:m -U hfuse:w:0xDF:m -B 10

    Ten końcowy switch ''-B 10' możesz zwiększyc dla wolniejszej transmisji.
    Niektóre programatory mają zworkę do tego celu.

    e marcus

    0