logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] USBasp - błąd program enable: target doesn't answer przy atmege328p

kaktus12121 28 Sie 2019 00:21 2076 21
REKLAMA
  • #1 18138688
    kaktus12121
    Poziom 8  
    Witam. Mam problem który jest już rozsławiony w internecie, a jednak dalej są problemy. Sprawa wygląda tak. Chcę wgrać bootloader na atmege328p, wykorzystuję do tego programator USBasp. Próbowałem podłączać według najprostszych schematów oraz tych z kwarcem 16MHz i kondensatorami. W programie Arduino IDE wybieram Arduino uno, lub nano oraz programator i wciskam wypal... Na programatorze mrugnie czerwona lampka po czym wyskakuje komunikat:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Podłączałem już po kilka razy, zmieniałem przewody, taśmę. Założyłem zworkę SLOW SCK. Wkurzyłem się, zamówiłem nową atmegę i dalej to samo. Udało mi się programować attiny13a, która nie potrzebowała bootloadera.
    System: win 7
    Wersja arduino ide: 1.8.9
    Zainstalowałem sterownik libusb-win32 (v1.2.6.0) za pomocą programu Zadig.
    Pobrałem AVRDUDESS 2.8 które po wciśnięciu "detect" lub "Read" wywala podobny błąd:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Zastanawiam się czy dobry jest sterownik, nie wiem czy libusb-win32 obsługuje atmege328p, nie znalazłem nic na ten temat. Co mogę jeszcze zrobić?
  • REKLAMA
  • #2 18138721
    kaczakat
    Poziom 34  
    W Arduino po założeniu zworki slowSCK musisz również wybrać programator USBASP (slow), a jak już atmega działa na pełnej prędkości podłączonego rezonatora to znowu na ten bez (slow).
    Tu na forum jest program AVRLAB++ do ściągnięcia, z nim działał mi programator USBASP wymagający przestawiania zworek nawet bez przestawiania już od 1MHz.
    Pomogłem? Kup mi kawę.
  • #3 18139201
    kaktus12121
    Poziom 8  
    USBasp - błąd program enable: target doesn't answer przy atmege328p USBasp - błąd program enable: target doesn't answer przy atmege328p USBasp - błąd program enable: target doesn't answer przy atmege328p
    Nie ma czegoś takiego w arduino jak USBasp (slow). Pobrałem AVR Lab++ i po wciśnięciu Odczytaj AVR pojawia się taki sam komunikat: rc=-1
    Powiedz jaką miałeś wersję sterownika USBasp
  • REKLAMA
  • #4 18139361
    kaczakat
    Poziom 34  
    Ja mam podołączane do Arduino różne core do Attiny i nietypowych w Arduino AVR, widocznie gdzieś z nimi doszły te ustawienia, w sumie nie mieszczą się na ekranie FHD:
    USBasp - błąd program enable: target doesn't answer przy atmege328p
    Aktualnie USBASP jest w zakładce "libusbK USB Devices > USBasp", testowałem trzy i jeden działał tylko z Arduino, drugi tylko z AVRLAB, trzeci z oboma, więc to pewnie ten zostawiłem. Ale pewności nie mam, ciągle coś zmieniam.
    Jeśli choć raz udało Ci się jednak wgrać bootloader to bez kwarcu już będziesz miał taki komunikat, na stykówce po prostu włóż go w odpowiednie piny bez kondensatorów, kondensatory czasem przeszkadzają w połączeniu z pojemnością styków, ewentualnie użyj jakieś 12p. Na stykówce nie dołączam kondensatorów i "u mnie działa".
    Pomogłem? Kup mi kawę.
  • #5 18141004
    StaryVirus_e_Wiarus
    Poziom 21  
    Cześć
    Na początek wyrzuć ten rezystor w Reset, do niczego Ci niepotrzebny, szczególnie przy programowaniu.
  • REKLAMA
  • #6 18141197
    kaktus12121
    Poziom 8  
    No i co dalej?
  • #7 18141279
    bart-projects
    Poziom 29  
    kaktus12121 napisał:
    Zainstalowałem sterownik libusb-win32 (v1.2.6.0) za pomocą programu Zadig.

    Zerknij proszę łaskawie na te trzy obrazki i wyciągnij wnioski Link
    Potem spróbuj czy udało by się Tobie znaleźć odpowiedź na Twoje pytania używając Elektrodowej wyszukiwarki :D

    Miłego dnia
  • #8 18141512
    StaryVirus_e_Wiarus
    Poziom 21  
    Jak już wyrzucisz ten rezystor to sprawdź połączenia, najlepiej miernikiem, i spróbuj zaprogramować. rc =-1 oznacza m.in. że jest kłopot z połączeniem programatora i mikrokontrolera. Sterowniki masz dobrze zainstalowane bo odzywa się avrdude.
  • REKLAMA
  • #9 18141543
    bart-projects
    Poziom 29  
    StaryVirus_e_Wiarus napisał:
    Sterowniki masz dobrze zainstalowane bo odzywa się avrdude.

    Twoja porada jest szkodliwa...
    USBasp - błąd program enable: target doesn't answer przy atmege328p USBasp - błąd program enable: target doesn't answer przy atmege328p
    Ten sam programator, nie odłączany nawet od USB...

    Z tym Zadigiem ludzie się mylą bo dla USBasp trzeba wybrać "libusbK (v3.0.7.0)", ale dla AVR ISP mkII należy wziać "WinUSB (v6.1.7600.16385)", albo nowe z paczki "driver-atmel-bundle".
    No i jeszcze mały hint - sterowniki od p.Kardasia z MkAVRcalculatora tez nie podchodzą pod Arduino (przynajmniej te z wersji 81).
  • #10 18141579
    StaryVirus_e_Wiarus
    Poziom 21  
    Wybaczcie, nie używam Arduino.
  • Pomocny post
    #12 18141685
    kaczakat
    Poziom 34  
    Mając jakikolwiek sterownik da się jednak odczytać prawidłowo podłączony uC - używając po kolei Arduino, MK kalkulatora czy AVR LAB++. Z którymś, w końcu powinien pojawić się choćby komunikat, że wykryło inny uC niż spodziewany, MK w wersji demo wykrzyczy, że nie obsługuje tego uC. Co do wersji sterownika w W7 x64 mam te same obserwacje, można też podmienić AVRDUDE w Arduino na ten z AVR LAB++, jednak w jego konfiguracji nie było obsługi Atmega328PB.
    Pomogłem? Kup mi kawę.
  • #13 18151413
    kaktus12121
    Poziom 8  
    Próbowałem zamieniać te sterowniki, sprawdziłem również na win 10 Zadigiem jak i innymi z neta. W ogóle nie ma kontaktu. Może spróbuję ogarnąć arduino uno i podmienić atmege. Mam arduino mega
  • #15 18152593
    kaktus12121
    Poziom 8  
    Oooo Masz rację. Spróbuję
  • #16 18155031
    Konto nie istnieje
    Poziom 1  
  • #17 18175770
    kaktus12121
    Poziom 8  
    kaczakat napisał:
    Skoro masz Arduino MEGA to możesz sprawdzić poprawność pracy swojego programatora.

    Podłączyłem arduino mega do usbasp. Zadziałało, ale tylko w komputerze. Odczytywało procesor, dało się wgrywać programy, chciałem też sprawdzić czy bootloader się wgra i się wgrał. Problem w tym że to wszystko działało się tylko w programie, bo po przesłaniu jakiegokolwiek programu arduino nie działało, lampki na płycie potwierdzają wgrywanie, ale nawet prosty blink nie powoduje zmiany stanu jakiegokolwiek pinu.
    Wgrywałem bootloader z AVRLAB++ oraz Arduino ide.
    Odłączyłem programator, prodłączyłem kabel usb. Teraz jak wgrywa program to mrugną delikatnie te diody od komunikacji i nawet nie idzie nic wgrać, nawet bootloadera

    Dodano po 24 [minuty]:

    Edit:
    Programatorem wgrałem bootloader z Arduino ide. Odłączyłem i podłączyłem kabel usb. Teraz programy się dobrze wgrywają.
    Tylko dalej nie mogę wgrać samego programu na arduino mega przez programator. Wyskakuje skończone wgrywanie, ale jednak nie wgrywa

    Dodano po 10 [minuty]:

    Jak wgrywam bootloader do arduino mega przez usbasp to działa. Ale jak już próbuję wgrać program przez uasbasp to tak jakby bootloader przestawał działać i muszę od nowa wgrywać boot..
  • Pomocny post
    #18 18176161
    kaczakat
    Poziom 34  
    Bootloader jest kasowany przy każdym użyciu programatora do wgraniu programu, wygląda więc na to, że coś tam wgrywasz. Po każdym takim użyciu programatora musisz na nowo programatorem wgrać bootloader by znowu działało wgrywanie przez UART.
    Możesz wyeksportować skompilowany szkic i wgrać go zewnętrznym programem - np. AVR LAB++.
    Włącz sobie też pełne komunikaty podczas wgrywania (w opcjach Arduino IDE), przeciągnij dolne okno na większą część ekranu i wklej co tam wypluwa podczas wgrywania.
    Wgraj sobie przykładowy szkic drukujący coś na serial co 1s, oczywiście prędkość w kodzie i na terminalu muszą się zgadzać. To samo zrób używając bootloader i programatora.
    Pomogłem? Kup mi kawę.
  • #19 18198963
    markolsrz
    Poziom 12  
    Brakuje zasilania części analogowej układu!
    ATmega328p wymaga podłączenia zasilania do pinów Vcc(7) i AVcc(20). Na zdjęciach pin AVcc nie jest zasilany.
    Zwykle pin AVcc zaleca się zasilać przez filtr (cewka L=10μH i kondensator C=100nF), ale przy samym wgrywaniu bootloadera, albo gdy nie chcesz korzystać z ADC (przetwornik analogowo-cyfrowy) możesz go po prostu spiąć razem z Vcc.
    Sprawdź szczegóły w specyfikacji (datasheet).
  • #21 18261968
    kaktus12121
    Poziom 8  
    Działa!!! Juchu... Nie wierzę. Przez ten problem straciłem dobre kilka miesięcy. Podłączyłem atmege najprościej jak można, bez podłączania AVCC.
    Ze zworką slow SCK. Znalazłem na forum po raz kolejny radę aby podłączyć rezonator 16MHz. Spróbowałem, tylko że nie chciało mi się szukać kondensatorów.
    Poprzednio podłączałem w ten sposób (wiem że tam jest napisane atmega 8):
    USBasp - błąd program enable: target doesn't answer przy atmege328p
    Teraz podłączyłem tylko rezonator do pinu 9 i 10, bez kondensatorów i bez masy. Zadziałało przez program AVR Lab, Arduino IDE oraz SinaProg.
    Teraz pytanie czy można programem Avr lab zmienić oscylator na wewnętrzny?
  • #22 18275633
    kaktus12121
    Poziom 8  
    Działa!!! Juchu... Nie wierzę. Przez ten problem straciłem dobre kilka miesięcy. Podłączyłem atmege najprościej jak można, bez podłączania AVCC.
    Ze zworką slow SCK. Znalazłem na forum po raz kolejny radę aby podłączyć rezonator 16MHz. Spróbowałem, tylko że nie chciało mi się szukać kondensatorów.
    Poprzednio podłączałem w ten sposób (wiem że tam jest napisane atmega 8):
    USBasp - błąd program enable: target doesn't answer przy atmege328p
    Teraz podłączyłem tylko rezonator do pinu 9 i 10, bez kondensatorów i bez masy. Zadziałało przez program AVR Lab, Arduino IDE oraz SinaProg.
REKLAMA