Skocz do zawartości

USBASP, ATMEGA16A, błąd: initialization failed, rc=-1


Pomocna odpowiedź

Napisano

Cześć!

Podłączamy mikrokontroler ATMEGA16A do USBASP według różnych schematów, jednak efekt cały czas jest ten sam. Błąd:

avrdude: error: programm enable: target doesn't answer. 1

avrdude: initialization failed, rc=-1

Na USBASB zwarte są Slow SCK i Vcc. Przy zwieraniu Self Programming wyskakuje błąd Broken pipe.

Czy to znaczy, że programator jest uszkodzony?

Pozdrawiamy

Sinithr, jakie to są różne schematy? Nie ma tutaj raczej zbyt wiele możliwości do manewrowania. Pokaż schemat zgodnie, z którym próbujesz, powiedz też jak zasilasz układ.

To pierwszy zastosowany przez nas schemat:

Wszystkie nóżki podłączyliśmy analogicznie jak na obrazku, uwzględniając, że w ATMEGA16A trzeba je wpiąć pod innymi numerami. Stosowaliśmy się do wytycznych w dokumentacji na str. 3.:

http://www.atmel.com/Images/Atmel-8154-8-bit-AVR-ATmega16A_Datasheet.pdf

Efekt ten sam:

avrdude: error: programm enable: target doesn't answer. 1

avrdude: initialization failed, rc=-1

Jaka może być tego przyczyna?

// EDIT

Na forum znalazłem podobny temat, jednak tam najwidoczniej ktoś się poddał, bo przestał odpowiadać na pytania:

https://www.forbot.pl/forum/topics33/programowanie-uc-atmega16a-pu-vt11055.htm?highlight=atmega16

Wydaje mi się, że zastosowałem się do wszystkich informacji, które tam znalazłem:

- wszystkie porty VCC i GND na procesorze są podpięte(również te po prawej)

- sprawdziłem gniazda na programatorze i wydają się dobrze podłączone

- programator ma zwarte Vcc i Slow SCK

Po ostatniej poradzie osoba z tamtego tematu się wyłączyła. Ja jeszcze nie zamierzam się poddawać. 🙂

Jeśli jest jeszcze coś, o czym mogłem zapomnieć to bardzo proszę o poradę, co.

W przeciwnym wypadku mogę zrobić serię zdjęć z poszczególnych etapów podpinania kabli.

Poszukałem za Twoją radą informacji na ten temat.

Sprawdziłem w dokumentacji i JTAG w ATMEGA16A jest pod portami C, gdzie nic aktualnie nie podpinam(ale dzięki Tobie w przyszłości będę wiedział, gdzie szukać problemu). 😉

Mimo tego spróbowałem przestawić te bity. Do mikrokontrolera podłączonego według ostatniego schematu użyłem takiej oto komendy:

sudo avrdude -p m16 -c usbasp -U hfuse:w:0xD9:m -U lfuse:w:0xE1:m

Odpowiedź cały czas ta sama.

Fuse ustawiłem według porad na jakiś forach, gdzie komuś to pomogło przy procesorze takim jak mój.

[ Dodano: 03-08-2015, 18:55 ]

Opiszę wszystkie swoje działania, po kolei. Może ktoś wyłapie, w czym jest problem.

Na początku podłączyłem procesor ATMEGA16A do płytki stykowej i teraz zamierzam zająć się podpięciem do niej programatora USBASP. Wygląda to tak:

b8d5c12587068c77gen.jpg

Sugerując się rozcięciem widocznym na plastiku wnioskuję, że widoczne w tym rzędzie wyjścia do kolejno: MOSI, nieużywane wyjście, RESET, SCK, MISO. Stosując się do poniższego schematu z dokumentacji:

atmega16.jpg

Podłączam widoczne na zdjęciu wyżej kable kolejno do nóżek 6, 9, 8, 7:

1671a4c54af5978dgen.jpg

Drugi rząd wyjść programatora:

e94de0e51b01c546gen.jpg

Kabel pomarańczowy do plusa, reszta na minus:

78453f66b871099cgen.jpg

Teraz podłączam wyjścia GND do minusa:

1571d048952d5723gen.jpg

Według mojego schematu reset ma być podpięty do plusa przez rezystor 10k oraz do minusa przez kondensator 100nF. W tym celu do rzędu 9, gdzie podłączyłem reset wpinam kabel, a drugą końcówkę wypuszczam w pustym rzędzie, gdzie podpinam całość:

6be114be2b2d4666gen.jpg

a65b5c316300b512gen.jpg

Przycisku do resetu nie podpinam, bo nie posiadam, ale wydaje mi się, że brak tej części schematu nie powinno wpłynąć na działanie. Jeśli jest inaczej to bardzo proszę o info, postaram się coś zmienić.

Teraz zajmę się wyjściami VCC oraz AVCC. Oba przeciągam do wolnego rzędu:

a16010071b863b00gen.jpg

A następnie podpinam według schematu:

82d4bf613addb338gen.jpg

Pozostał tylko AREF, który przeciągam do wolnego rzędu a tam łączę z minusem przez kondensator:

372fa38f57b99453gen.jpg

Programator podpinam do usb i w konsoli wpisuję komendę:

sudo avrdude -p m16 -c usbasp -U hfuse:w:0xD9:m -U lfuse:w:0xE1:m

W odpowiedzi otrzymuję komunikat:

avrdude: error: programm enable: target doesn't answer. 1

avrdude: initialization failed, rc=-1

Double check connections and try again, or use -F to override

this check.

avrdude done. Thank you.

__________

Komentarz dodany przez: Treker

Dziś doszedł mi nowy procesor. Wszystko od razu zadziałało.

Stary procesor widać był wadliwy. Dziękuję za wszelkie porady, które tu otrzymałem.

Temat można już zamknąć.

Stary procesor widać był wadliwy.

Sporo początkujących tak sobie tłumaczy błędy, ale bądźmy szczerzy, szansa na zakup uszkodzonego procesora jest bardzo, bardzo mała. Więc prawie na pewno sam uszkodziłeś własny układ. Bądź ostrożny, aby nie stało się to drugi raz!

Nie twierdzę, że to nie była moja wina. Stawiam z kolegą na przepalenie czegoś w środku bądź źle ustawione fuse bity.

Ale dzięki za radę. Nie byłoby przyjemnie kolejny raz coś zamawiać. 😉

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...