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

[ATmega] [usbASP] - Dziwne zablokowanie 328p RC=-1

02 Mar 2014 15:11 3156 4
  • Poziom 7  
    Kupilem 3 fabrycznie nowe procesory ATmega 328p. Odczytalem ich ustawienia przez usbASP. I tak odpowiednio :
    FUSbit : 62 D9 FF
    Lockbit : 3F

    Przy uzyciu programu MK_AVR_Calculator nie moglem ich zaprogramowac. Program je wykrywal, ale przy probie zapisu FUSbit pojawial sie blad RC=-1. Sprawdzilem, dodatkowo zworki programatora, aby sie upewnic, ze jest wlaczone zasilanie ukladu przez programator.

    Potem probowalem programem Arduino IDE wgrac bootloader, ale takze ten sam blad.

    Znalazlem na forum, ktos poradzil aby uruchomic nastepujace polecenie:

    avrdude -c usbasp -p m328p -B 250 -F -U lfuse:w:0xe2:m -U hfuse:w:0xd1:m -U efuse:w:0x06:m

    Po tej operacji jakby procesor sie odblokowal. Teraz juz moglem ustawic dowolne wartosci przy pomocy MKAVRCalculator. Nawet moglem ustawic fabryczne lub dowolne inne jakie chcialem. Potem przy pomocy Arduino IDE wgralem Bootloader.

    Przy uzyciu MKAVRCalculator sprawdzilem jakie Arduino IDE ustawia, byly nastepujace:
    Fusbit :E2 DA FD
    Lock bit: 3F lub 0F.

    Probowalem kilka razy przetestowac procedure, ale nie znam powodu dlaczego nowy procesor z fabryki jest nie programowalny, a odblokowuje sie po wykonaniu,avrdude -c usbasp -p m328p -B 250 -F -U lfuse:w:0xe2:m -U hfuse:w:0xd1:m -U efuse:w:0x06:m

    Potem ustawialem kilka krotnie rozne ustawienia i nagle procesor przestal sie wykrywac. Nie moglem go wykryc ani MKAVRCalculatorem, mialem RC=-1 ani zaprogramowac Arduino IDE. Procesor nie byl martwy, bo po wlozeniu do urzadzenia dzialal, wiem to dlatego ze wgralem do niego przez zablokowaniem program migajacy LEDem.

    Teraz mam 2 procesory ktore sa martwe, pokazuja blad RC=-1 i nie mozna ich programowac. Co robic?

    Przeczytalem w aplikacji procesora 328p ze nawet calkowicie zablokowany procesor pozwala na wyzerowanie go, z utrata oczywiscie danych. Czy mozecie mi podac taka procedure?

    Wykluczylem : awarie programatora, brak kwarcu, uszkodzony port USB. Gdyz wszystko dziala poprawnie z innym procesorem. Oraz sam zablokowany procesor dziala w ukladzie.

    Czy mozecie mi pomoc jak wyzerowac prcesor?

    Probowalem z parametrem -e (full erase)
    oraz z parametrem -B 80 lub 100 lub 250.
    Wylaczalem takze weryfikacje.
    Nawet przestawialem zworke w programatorze na prace w trybie wolnym.
    Juz nie mam pomyslu.

    Zalaczam dokumentacje moge programatora.

    Oraz wklejam komunikat bledu:

    avrdude.exe: set SCK frequency to 8000 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.

    Compiled special for http://forum.atnel.pl (v5.11.1)

    Nie przypominam sobie bym wylaczal bit RSTDISBL lub ISPEN. Zreszta przez MKAVRCalculator to nie mozliwe.
  • Poziom 14  
    No mam ten sam problem z jednym uC, myślę czy pomogło by tu coś gdyby go ożywić przez Fusebity doctor'a.
  • Poziom 7  
    A tobie pomoglo ?
  • Moderator Mikrokontrolery Projektowanie
    Może czas porzucić różne dziwne wynalazki i kupić normalny programator, np. AVRISPMkII, lub któryś z nowszych Atmela? Problemy znikną łącznie z koniecznością stosowania zewnętrznych programów. Cuda mogą się dziać na skutek np. zbyt długiej taśmy łączącej programator z mikrokontrolerem i przekłamań w transmisji. Zauważ, że masz zapewne programator bez jakichkolwiek buforów wyjściowych tylko gołe piny procka?
    A odratować procesor zawsze można, np. za pomocą AVR Dragon, który ma programowanie równoległe i HV, które ominie problem z zablokowaniem reset. Można też spróbować z zewnętrznym zegarem - być może przestawiłeś tylko fusy konfigurujące zegar.
    No i najlepiej - zamiast stosować ATMega328, zastosuj ATXMEGA32xxx - raz na zawsze znikną problemy z fusebitami :)
  • Poziom 14  
    Mi pomogło dodanie kwarcu 12 MHz i później tylko przestawiłem fusy na fabryczne.