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 Fuse Bits na kwarc zegarkowy

Kubbaz 09 Paź 2006 22:36 2529 12
REKLAMA
  • #1 3101867
    Kubbaz
    Poziom 26  
    Posty: 1237
    Pomógł: 9
    Ocena: 30
    Witam

    Testowałem sobie funkcje Timera0 mojego ATMEGA8 i kiedy to chciałem zmienić Fuse Bits tak, aby podłączyć kwarc zegarkowy+2x33pF (bo wcześniej podłączony był 8MHz+2x22pF), to zarówno WinAVR jak i PonyProg przestał widzieć uC ;| - WinAVR pisze że błąd rc=1 i żeby sprawdzić połączenia, ale te raczej są 150% ok, a pony prog pisze że device missing or coś tam coś tam. Co ciekawe program wgrany do uC przed zmianą Fuse Bits po włączeniu zasilania uC dalej pracuje dobrze - tzn. wykonuje się - dioda zapala sie i gaśnie i to gdy wsadzony jest kwarc zegarkowy, gdy go wyjme program (uC) sie zwiesza, gdy go ponownie włoże to działa z powrotem, natomiast gdy włoże kwarc 8MHz to uC nie reaguje .... czyli jakby zmiana Fuse Bits została wprowadzona.....tylko dlaczego programy nie widzą uC ??;| ??
    Zaznaczę w tym miejscu, że wziąłem pod uwagę, że w PonyrProg2000 zafajkowane pola znaczą logiczne "0"a nie "1" jak to więszkość użytkowników przez niedoczytanie robi ;) i ustawiłem Fuse Bits na 1001, a dla PonyProg odwrotnie - 0110, zmienilem też SUT Bits na wolny power, ale słyszłem że to nie ma takiego znaczenia ... aż dużego.

    Więc co to może być??; chciałbym swój programator stk200 uruchomić z powrotem jak najszybciej, bo zależy mi na ukończeniu projektu.
  • REKLAMA
  • #2 3102034
    antrykot
    Poziom 20  
    Posty: 470
    Pomógł: 27
    Ocena: 27
    Zobacz czy czasem nie zablokowałeś reseta, bo ISP go wykorzystuej. Sprawdź czy po podaniu L na RESET coś sie stanie (przy włączonym kwarcu zegarkowym, tak aby program sie wykonywał). Jeśli nie, to musisz iść do kogoś kto ma programator równoległy.
  • #3 3102353
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    A co z Bus timing calibration , skalibrowałeś ponownie :?:
    Spróbuj w pliku PONYPROG2000.INI , parametr SPIBusSpeed=NORMAL ustawić na VERY SLOW , a jeśli to nie pomoże , wypróbuj ISPProga z Hz =32768.

    Piotrek
  • #4 3102630
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    Manual do ATmega8 strona 234 na dole. Stoi tam wszystko jak byk.
  • REKLAMA
  • #5 3102796
    Kubbaz
    Poziom 26  
    Posty: 1237
    Pomógł: 9
    Ocena: 30
    antrykot napisał:
    Sprawdź czy po podaniu L na RESET coś sie stanie (przy włączonym kwarcu zegarkowym, tak aby program sie wykonywał
    ).
    Po włączeniu układu z migającą diodą LED podczas gdy podam LOW (z GND) do pinu RESET (pin 1), to program się zatrzymuje - czy raczej resetuje ..?
    Czyżby to wskazywało na to iż RESET nie jest zablokowany ??
    zumek napisał:

    A co z Bus timing calibration , skalibrowałeś ponownie ??

    Nidgy o tym nie słyszałem i nie widziałem takiej opcji w dotychczasowych programach.
    zumek napisał:
    Spróbuj w pliku PONYPROG2000.INI , parametr SPIBusSpeed=NORMAL ustawić na VERY SLOW

    Zmiana tego parametru nie pomaga - a nawet jak zauważyłem, ten parametr automatycznie zmienia sie w trakcie próby odczytu Fuse Bits na NORMAL.

    Abstrahując od programów typu PonyProg czy ISPProg - kompilator WinAVR a w zasadzie AVRDUDE w dalszym ciągu pokazuje:
    
    > "D:\AVR_projekty\USART\zaprogramuj.bat" 
    
    D:\AVR_projekty\USART>REM Plik  procedury programowania ATMega8 
    
    D:\AVR_projekty\USART>avrdude -p m8 -c pony-stk200 -e -U flash:w:usart.hex 
    
    avrdude: AVR device not responding
    avrdude: initialization failed, rc=-1
             Double check connections and try again, or use -F to override
             this check.
    
    
    avrdude done.  Thank you.
    
    
    > Process Exit Code: 1
    > Time Taken: 00:00

    Tak więc nie wiem czy to, że jeśli nawet program typu PonyProg będzie widział uC, rozwiąże problem widzenia uC przez AVRDUDE ??

    Dodano po 54 [sekundy]:

    Tdv napisał:
    Manual do ATmega8 strona 234 na dole. Stoi tam wszystko jak byk.

    Sorii...ale nie zaskoczyłem o co tam chodzi ....
  • REKLAMA
  • #6 3102822
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    Tam chodzi o to, że częstotliwość zegara z SPI programującego musi być w odpowiedzniej proporcji do częstotliwości zegara mikrokontrolera.
    Jak masz kwarc 32kHz to SPI musi podawać impulsy zegarowena lini SCK z odpowiednio dobraną częstotliwością.
  • REKLAMA
  • #9 3105390
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    Kubbaz napisał:
    czy ktoś coś poradzi ??

    Jeśli to musi być avrdude , to ... czarno to widzę , a jak dowolnym programem , to ISPProg ma opcję 32768 Hz. Jeśli ISPProg nie widzi proca , to uziemiłeś go na dobre i pozostaje programator równoległy :(

    Piotrek
  • Pomocny post
    #11 3105437
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    Ja używam programatora STK200-podobny i tej wersji ISPProg-a: Kliknij
    A Ty jakiego programatora używasz :?:

    Piotrek
  • #13 3105974
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    Kubbaz napisał:
    ...Właśnie zainstalowałem twojego ISPProga...

    Gwoli ścisłości.
    Ja jestem użytkownikiem ISPProga , a autorem jest kolega Adam Dybkowski

    Piotrek

Podsumowanie tematu

✨ Problem dotyczy braku komunikacji z mikrokontrolerem ATMEGA8 po zmianie Fuse Bits na konfigurację z kwarcem zegarkowym 32,768 kHz zamiast wcześniejszego 8 MHz. Po zmianie Fuse Bits programatory WinAVR (avrdude) i PonyProg zgłaszają błąd inicjalizacji i brak wykrycia urządzenia, mimo że fizyczne połączenia są poprawne, a program wcześniej wgrany do mikrokontrolera nadal działa przy podłączonym kwarcu zegarkowym. Sugerowano sprawdzenie, czy nie został zablokowany pin RESET, który jest wykorzystywany przez ISP, oraz czy reset działa prawidłowo po podaniu stanu niskiego. Problemem jest również odpowiednie dostosowanie częstotliwości zegara SPI programatora do niskiej częstotliwości kwarcu 32,768 Hz, co wymaga ustawienia bardzo wolnej prędkości transmisji w programie do programowania (np. w PonyProg parametr SPIBusSpeed na VERY SLOW lub użycie ISPProga z częstotliwością 32768 Hz). W przypadku braku komunikacji z ISPProgem pozostaje użycie programatora równoległego. Ostatecznie zastosowanie ISPProga z odpowiednią konfiguracją pozwoliło na nawiązanie komunikacji i odblokowanie mikrokontrolera.
REKLAMA