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.

atmega 128- blokuje się po zmianie fusebitów

chuppa 08 Mar 2012 12:02 2372 17
  • #1 08 Mar 2012 12:02
    chuppa
    Poziom 8  

    Witam. Pięć zablokowanych atmeg 128 to mój bilans na dzisiaj. Potrzebuję pomocy przy ustawieniu fusów w at128. Programator avtprog1 (czyli coś jak stk500), program avrstudio4. Po podłączeniu do programatora wszystko jest odczytywane z procka poprawnie. Wsad wchodzi bez problemu. Natomiast po zmianie na cksel 1111 11, czyli zewnętrzny kwarc atmega pada. Pierwszy Uc programowałem w układzie pozostałe cztery poza układem. Jako że zblokowałem ich pięć to mogłem poeksperymentować i zauważyłem że po zmianie jakiegokolwiek ustawienia w fusebitach (nawet zostawiając na domyślnym wewnętrznym oscylatorze 1mHz zmieniając jedynie z 64ms na 4ms) weryfikacja nie udaje się. Jeżeli ktoś jest w stanie mi pomóc to bardzo proszę, przetrzepałem już wujka google jak mogłem ale zapewne mój poziom wiedzy nie pozwolił mi znależć rozwiązania.

    poprawny odczyt:

    atmega 128- blokuje się po zmianie fusebitów

    atmega 128- blokuje się po zmianie fusebitów

    oraz odczyt po zmianie na zew. osc.

    atmega 128- blokuje się po zmianie fusebitów

    0 17
  • #2 08 Mar 2012 12:05
    mirekk36
    Poziom 42  

    Może tak pomyśleć o programie MkAvrCalculator i jego zakładce "Fusy uproszczone" ??? dzięki temu trudno zablokować procka .... a z twoim prockiem będzie działał w pełni za FREE

    0
  • #3 08 Mar 2012 12:19
    chuppa
    Poziom 8  

    oczywiście korzystałem z mkavr. najmniejsza zmiana powoduje blokadę.
    wiem że jesteś autorem tego programu. szacunek.

    0
  • #4 08 Mar 2012 14:33
    Sławek-K
    Poziom 15  

    Ja co prawda używam PonyProg (na domyślnych ustawieniach), ale tą częstotliwość programowania to ustawiasz czy jest ona domyślna? Może warto zmniejszyć.......?
    Nie wiem też czy potrzebujesz M103C (zgodność z ATmega103) ....?

    0
  • #5 08 Mar 2012 14:55
    435758
    Użytkownik usunął konto  
  • #6 08 Mar 2012 15:02
    mirekk36
    Poziom 42  

    chuppa napisał:
    oczywiście korzystałem z mkavr. najmniejsza zmiana powoduje blokadę.
    .


    Ale poczekaj, opisz może co robiłeś czy robisz po kolei i co to wg ciebie blokada?

    Rozumiem, że gdy podłączasz procka z fabryki to można odczytać skorzystać z klawisza "Wykryj podłączony AVR" w zakładce "Programator" i wtedy wykrywany jest prawidłowo ATmega128 ???

    Jeśli tak ? - to później jak rozumiem zmieniasz ustawienia fusebitów

    tak przy okazji czy kasujesz fusebit:

    ATmega103 compatibility mode

    ????

    No i przy okazji gdy już przeprogramujesz na zewn. kwarc to czy masz go poprawnie podpiętego ? bo jeśli nie - to nie ma co się dziwić, że procek się więcej nie odzywa :(

    0
  • #7 08 Mar 2012 16:29
    chuppa
    Poziom 8  

    a więc tak. Podłączam nówke procek. Programator go wykrywa. Odczytuje sygnaturę prawidłową dla atmegi 128. Ładuję wsad i wsad wchodzi i jest ok. Potem wchodzę na fusy zmieniam oscylator na zewnętrzny, oczywiście odhaczam jtagen i zgodność z m103, programuje i koniec. Już procek nie jest wykrywany. Tzn nie można odczytać nawet sygnatury.
    Kwarc w adapterze do programowania jest 8mHz oraz 2 kondensatory 30pF.
    W mkavr program prawidłowo wykrywa nowy procek. Potem już wyskakuje napis błąd.
    A propo poprawności podpiętego zewnętrznego kwarcu. Jak już wcześniej pisałem pierwszy procek programowałem w układzie z tym właśnie kwarcem, gdy się zablokował resztę procków programowałem już poza układem w adapterze do programatora który ma swój kwarc zewnętrzny 8mHz i jest dokładnie to samo.
    Z prockiem nic się nie dzieje złego jeżeli zostawię fusy domyślne. Wystarczy że zmienię cksel z domyślnych Int. RC Osc. 1 MHz; Start-up time: 6 CK + 64 ms na Int. RC Osc. 1 MHz; Start-up time: 6 CK + 4 ms i już jest błąd.

    0
  • #8 08 Mar 2012 18:20
    mirekk36
    Poziom 42  

    chuppa napisał:
    Wystarczy że zmienię cksel z domyślnych Int. RC Osc. 1 MHz; Start-up time: 6 CK + 64 ms na Int. RC Osc. 1 MHz; Start-up time: 6 CK + 4 ms i już jest błąd.


    To bardzo ale to bardzo dziwne - hmmm nic mi na razie nie przychodzi do głowy...

    0
  • #9 08 Mar 2012 18:33
    435758
    Użytkownik usunął konto  
  • #10 08 Mar 2012 18:46
    chuppa
    Poziom 8  

    Nie ma kondensatora. Reset idzie bezpośrednio do programatora

    0
  • #11 08 Mar 2012 19:08
    435758
    Użytkownik usunął konto  
  • #12 08 Mar 2012 19:34
    chuppa
    Poziom 8  

    Jaki elektrolit... procek jest wsadzony w adapter do programatora. Fuse bitów nie ustawiam bo się nie da. Procek funkcjonuje tylko na domyślnych ustawieniach, jakakolwiek próba zmiany czegokolwiek blokuje procek. Programator jest zasilany z kompa czyli usb, nie jest to samoróba tylko kupny programator, na innych atmegach działa normalnie, tzn innych niż 128, czyli 8 i 32.

    0
  • #13 08 Mar 2012 21:59
    GienekS
    Poziom 32  

    Zrób próbę na innym typie programatora, jeżeli maż taką możliwość.

    0
  • #14 08 Mar 2012 22:31
    Fredy
    Poziom 27  

    Mam nadzieję że wiesz o tym , że zaprogramowany bit w AVR to bit który ma wartość =0.
    Może robisz odwrotnie?

    0
  • #15 08 Mar 2012 23:27
    chuppa
    Poziom 8  

    Ależ oczywiście. A w ponyprog jest na odwrót. Działam na tym programie i programatorze od dawna.
    A co do zmiany programatora, to nie mam możliwości ale przecież to żaden problem poskładać. I chyba będę musiał tak zrobić żeby wykluczyć programator. Lub potwierdzić jego błędne działanie.

    0
  • #16 09 Mar 2012 08:44
    GienekS
    Poziom 32  

    A może coś jest z Avr-Studio jeżeli przez niego programujesz ? Którą wersje masz ? Może jest potrzebny Upgrade programatora ? Skore inne procesory programuje poprawnie a jedynie ATMega 128 ?

    0
  • #17 09 Mar 2012 17:06
    chuppa
    Poziom 8  

    korzystam też z bascoma i mkavr, a upgrade programatora mam ostatni.

    Dodano po 4 [godziny]:

    Korzystając z tej podpowiedzi BoskiegoDialera "Dokumentacja mówi, że aby atmega32 dawała się programować poprawnie, częstotliwość zegara w isp musi być mniejsza od f_cpu/4 lub nawet f_cpu/6. Jeśli pierwotnie się procesor programował idąc na wewnętrznym 1MHz, a teraz jest taktowany zewnętrznym 32kHz, to procesor nie będzie odpowiadał aż nie zmniejszysz częstotliwości programatora poniżej 6kHz. " z tego postu Link
    udało mi się odblokować procek. Teraz tylko trzeba go zaprogramować nie blokując.

    Dobra, wygląda na to że się udało

    atmega 128- blokuje się po zmianie fusebitów


    Bardzo serdecznie dziękuję wszystkim za pomoc.

    Rozwiązanie problemu było bardzo proste. Programator podaje na vcc procka 2,15 v co wystarcza prawdopodobnie do odczytania sygnatury a nawet wgrania hexa ale już nie do zmiany fusów (tak myślę). Odblokowałem procek zmniejszając ISP do 22,48kHz, potem podałem z zewnątrz 5v i poszło. Czyli wniosek jest taki że gdybym od początku miał 5v na programatorze to nic by się nie blokowało przy zmianie fusów.
    Pozdrawiam i jeszcze raz dzięki za wykazane zainteresowanie.

    0
  • #18 26 Mar 2012 22:26
    j__g
    Poziom 1  

    Witam,

    Wczoraj też zablokowałem Atmegę 128 - co gorsza wlutowaną w moduł MMnet01.

    Przestawiłem CKSEL0 na 0 (podobnie jak CKSEL3..1) i wysłałem do procka.
    Oczywiście zaniemówił, a ja po lekturze tego forum uświadomiłem sobie co zrobiłem (jestem z pokolenia 8051, więc Fuse Bity to dla mnie nowość).

    Próbowałem podłączyć zewnętrzny generator bez wylutowywania rezonatora i kondensatora - nic to nie dało.
    Już postanowiłem wylutować te elementy, ale kolega podłączył złącze JTAG i ... udało się przestawić FB.
    Byłem w szoku, bo myślałem, że jak nie ma rezonatora, cze wewnętrznego oscylatora, to procek jest martwy, bo nie ma go co napędzać. A tu proszę. Może komuś przyda się taka informacja.

    Proszę poprawić post - regulamin pkt.3.1.13. Poleceni moderacyjne dotyczy wszystkich piszących w temacie. [dzimi]

    0