Skocz do zawartości

Problem z wgraniem programu na uC


Pomocna odpowiedź

Napisano

Witam, natrafiłem dzisiaj na problem z zaprogramowaniem mikrokontrolera. Napisałem w C prosty program do zapalania i gaszenia diody LED. Skompilowałem go, i zrobiłem plik .hex. Próbując wgrać program na µC dostaję taki błąd:

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.

Programator: USBasp

µC: ATmega8

Układ zasilam tylko z programatora.

Komputer widzi programator(pracuję na Ubuntu), dioda oznaczająca programowanie układu na chwilę się zapala, potem wywala błąd.

Pozdrawiam

1. Jesteś pewien, że układ jest zasilany? ( Chodzi o programowany mikrokontroler - zazwyczaj jest zworka, która ustawia czy zasilać układ docelowy czy nie z programatora - sprawdź miernikiem )

2. Ustawiłeś programator w stan wolnego programowania? Jak procesor ma wolny zegar (domyślnie) to musisz programować go w trybie małej prędkości ( tutaj też zazwyczaj jest zworka ).

3. No i na koniec sprawdź czy układ docelowy jest poprawnie wlutowany, wszystkie połączenia do programatora są poprawnie zrobione (brak zwarcia) i czy nic nie obciąża zbytnio wejścia reset...

Błąd który widzisz mówi, że programator nie dostał żadnej odpowiedzi od strony mikrokontrolera...

Napięcie na złączu na płytce z ATmegą: 4.75 V. Napięcie na ATmedze: też 4.75 V.

Nie ustawiłem w tryb wolnego programowania, bo do ATmegi mam podłączony kwarc 8 MHz.

Połączenia sprawdzałem miernikiem, wszystkie przewodzą.

Co do resetu... Sprawdziłem opór między pinem RST ATmegi, a programatorem. Wynosił 14 kOhm... Poprawiłem połączenie. Sprawdziłem inne ścieżki, ale one wydają się być w porządku.

A ustawiłeś to coś gdzie masz bc/br itp z liczbami? Sorki za takie objaśnienie, ale nie wiem jak to się nazywa.

Nie wiem, nie pamiętam żebym coś takiego robił, chociaż możliwe że po prostu nie kojarzę o co chodzi.

Programowanie uruchamiam tym:

avrdude -p atmega8 -P avrdoper -c usbasp -U flash:w:leds.hex

[leds.hex to program który chcę wgrać]

-P ustawia port, w tym artykule było napisane że to 'avrdoper'. Tak powinno być?

@Up chyba chodzi ci o fusebity.

bo oryginalna atmega jest taktowana 1Mhz,
bez względu jaki kwarc podłączysz.

Musisz zmienić fusy.

Ps. włącz wolne programowanie na programatorze zazwyczaj zworka i zmień fusy.

Teraz pojawia mi się inny błąd:

Wpisuję:

avrdude -p atmega8 -P avrdoper -c usbasp -U flash:w:leds.hex

Dostaję:

avrdude: error: could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp'

avrdude done. Thank you.

Włączyłem zworkę od wolnego programowania, sprawdziłem złącze programatora(czy odpowiednio połączone z µC), sprawdziłem napięcie.

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...