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

Error AVRdude. USBasp nie wykrywa procka.

10 Paź 2012 11:46 1512 3
  • Poziom 11  
    Witam,
    Mam problem, po zmontowaniu układu nie mogę go zaprogramować.
    W celu sprawdzenia komunikacji próbowałem po prostu Burn-O-Mat'em odczytać fusebity i wywala mi następujący błąd:

    Cytat:
    avrdude.exe: error: programm enable: target doesn't answer. 1
    avrdude.exe: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.


    avrdude.exe done. Thank you.


    Sprawdzałem połączenia i wszystko wydaje się być ok. Napięcie dla układu który chce zaprogramować pobieram z programatora (i rzeczywiście ono jest w układzie - sprawdziłem). Zworkę s_clk ustawiłem na wolniejszy tryb (moja ATmega16 ma zewnętrzny kwarc, ale fabrycznie chyba jest ustawiona na 1MHz, tak? zresztą próbowałem na obu ustawieniach..). Nie wiem już gdzie szukać przyczyny błędu i co mam sprawdzić :| , proszę o pomoc.

    uC, który chcę zaprogramować to: ATmega16
    Programator: USBasp
    Wersja AVRdude: 5.8
    Wersja sterownika libusb-win32: 1.2.4.0

    Pozdrawiam

    PS. Programowałem już tym programatorem inne uC i wszystko działało, jest on też poprawnie wykrywany przez system.
  • TermoPasty.pl
  • Pomocny post

    Poziom 28  
    Po pierwsze - sprawdź poprawność połączeń. Ja zawsze, gdy wykonam pierwszą prototypową płytkę pod uC biorę w ręce miernik i sprawdzam przejścia pomiędzy pinami uC a pinami na płytce mojego usbasp (całość połączona tasiemką 10żył) żeby mieć 100% pewności, że od tek strony wszystko jest OK. Może się okazać, że:
    - pad uC jest źle dolutowany (przy smd),
    - jest błąd w połączeniach gniazda ISP z uC,
    - jest uszkodzona tasiemka łącząca programator.

    Następnie (jeżeli jest to fabrycznie nowa atmega) nie bawię się w zworkę (w moim usbasp z niej zrezygnowałem) tylko w opcjach konfiguracji usbasp (w avr burnomat np.) dopisuję przełącznik -B z wartością co najmniej 150 czyli np. -B157. W ten sposób programowo zwalnia się usbasp (chyba na tej możliwości Mirek oparł swoje auto slow sck w Jego programie mkavrcalculator).

    No istnieje jeszcze możliwość, że:
    - przestawiłeś przypadkiem oscylator na zewnętrzny RC lub
    - zablokowałeś możliwość programowania szeregowego (RSTDISABLE)

    Wersja avrdude i libusb raczej mało ma tutaj znaczenia. Z moich wielokrotnych zabaw z różnymi ich odmianami wniosek mam jeden: usbasp jest w programach nie rozpoznawany (could not find usbasp at vid / pid...) jeżeli avrdude "gada" ze złą wersją libusb. W przeciwnym wypadku programator musi działać.
  • TermoPasty.pl
  • Poziom 11  
    Ehh, frustracja niestety nie jest dobrym pomocnikiem. Miałeś rację, nie przewodziło jedno wejście. Mam płytkę dwustronną i właśnie ta ścieżka nieprzewodząca była na górze i kropelka cyny nie dostała się wystarczająco głęboko pod podstawkę na uC, na oko nie mogłem tego zobaczyć, ale nie dolutowało się.
    Dzięki za rzeczowy post. Oczywiście masz "pomógł" :)

  • Poziom 28  
    Haha skądś to znam Kolego:) Przy lutowaniu scalaków smd nauczyłem się, żeby sprawdzić każdą nóżkę z osobna miernikiem. Bo gołym okiem, baaa nawet przez lupę, czasami tego nie widać a pad jest po prostu nie dolutowany do ścieżki. Poza tym przelotki... To jest koszmar. Co innego gdy robisz płytkę samemu i np. przelotki robisz z nóżek od rezystorów. Ale zdarzyło mi się mieć zamówione płytki w których część przelotek była niesprawna.
    Jeszcze jedno: z tym przełącznikiem -B miałem na myśli ustawienie go tylko po to, żeby zmienić fusy (ja przewąznie mam dopięty kwarc 16MHz). Po tej operacji deaktywuję ten przełączniki żeby móc dalej już układ programować z pełną prędkością.

    Z własnych historii dodam tylko, że przez kilka dni sen z powiek spędzał mi usbasp który raz programował, raz nie. To znaczy dopiero później doszedłem, że to wina programatora a nie budowanych układów... Przyczyna? Jeden z pinów złącza kanda w progamatorze miał urwaną ścieżkę. Raz stykała, raz nie... :) Taka z przeproszeniem pierdoła, ale niejeden szewc mógłby mi wtedy pozazdrościć stosowanej lingwistyki... heh