Skocz do zawartości

Problem z zaprogramowaniem ATmega8. AVR Burn-o-mat.


pawel147

Pomocna odpowiedź

Witam, próbowałem zaprogramować ATmega8 zgodnie z instrukcją z artykułu:[Programowanie] Szybki start z WinAVR. Wszystko jest dobrze aż do momentu programowania pamięci układu AVR. Wybierając opcję [WINAVR] Program wyskakuje następujący błąd:

> "make.exe" program

avrdude -p atmega8 -P -c stk200 -E (AVRDUDE_EXITMODE) -U flash:w:led.hex

/usr/bin/sh: -c: line 1: syntax error near unexpected token `(A'

/usr/bin/sh: -c: line 1: `avrdude -p atmega8 -P -c stk200 -E (AVRDUDE_EXITMODE) -U flash:w:led.hex '

make.exe: *** [program] Error 258

> Process Exit Code: 2

> Time Taken: 00:01

Jeden z forumowiczów napisał, że jest błąd w AVRDUDE_EXITMODE. Poprawiłem komendę, ale nie dało to żadnych efektów. Polecił także skorzystanie z programu AVR Burn-o-mat.I tu jest moje pytanie: jak skorzystać z tego programu? Chodzi mi o instrukcję obsługi co po kolei robić. Proszę o pomoc.

Link do komentarza
Share on other sites

WinAVR przekazuje tekst "(AVRDUDE_EXITMODE)" do komendy. Musisz to albo obejśćalbo wyłączyć.

Burn-o-mat w ogóle widziałeś i korzystałeś? Bo jeśli tak to nie wiem w czym tkwi problem, bo program jest intuicyjny i wszystkie pola ma opisane.

Link do komentarza
Share on other sites

Ściągasz "AVRBurnOMat" i instalujesz. Uruchamiasz, wchodzisz w "SETTING\AVRDUDE".

W "AVRDUDE location" podajesz ścieżkę do pliku "avrdude.exe "

( u mnie domyślnie to "C:\WinAVR-20100110\bin\avrdude.exe").

W "alternative AVRDUDE configuraton file" podajesz ścieżkę do pliku "avrdude.conf"

( u mnie domyślnie "C:\WinAVR-20100110\bin\avrdude.conf").

W "Programmer" wybierasz rodzaj programatora, a w "Port" rodzaj portu do którego jest podłączony

(u mnie to USB). Potwierdzasz i zamykasz okienko "Setting".

W "AVR type" wybierasz model mikrokontrolera.

We "Flash" klikasz "File" i wybierasz plik .hex, który chcesz wgrać. Klikasz "Written" i gotowe.

Po kliknięciu we "FUSES" możesz ustawiać fusebity.

Link do komentarza
Share on other sites

Dziękuje za napisanie tej instrukcji,ale i tak mam problem, ponieważ w okienku programmer nie wyświetla się mój programator. Programator jest poprawnie zainstalowany wraz ze sterownikami, przynajmniej tak informuje mnie komputer. Spróbowałem więc zaprogramować metodą z artykułu, ale bez komendy AVRDUDE_EXITMODE. Wynikiem jest tekst: Brak reguły do wykonania obiektu. Więc sam nie wiem co robię źle, bo już od dłuższego czasu próbuje zaprogramować ATmege na różne sposoby (z różnych stron) i nie wychodzi mi to.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dziękuje za napisanie tej instrukcji,ale i tak mam problem, ponieważ w okienku programmer nie wyświetla się mój programator.

To mnie zdziwiłeś, z pierwszego postu wynika, że to stk200, u mnie jest widoczny:

Generalnie nie musisz dawać komendy "-E cośtam", ponieważ sterujesz w ten sposób np. resetem albo vcc, chyba, że nie chcesz, aby program się uruchamiał po zaprogramowaniu (np. gdy programujesz tym samym kodem wiele takich samych urządzeń i nei chcesz aby się uruchamiały aby nie robić sobie problemów).

Link do komentarza
Share on other sites

Już się domyślam.

Instalowałeś WinAVR, prawda? Mógłbyś sprawdzić, w jakim folderze? Te dwie ścieżki na dysku powyżej pola wyboru programatora muszą wskazywać na poprawne miejsca na dysku twardym. U mnie WinAVR jest w folderze WinAVR-20100110 i możesz zauważyć jak wyglądają ścieżki.

Link do komentarza
Share on other sites

Miałeś rację poprawiłem ścieżki i od razu znalazł mój programator. Lecz jest kolejny problem, kiedy klikam 'write' w okienku output pokazuje się komunikat:

E:\winavr\bin\avrdude.exe -C E:\winavr\bin\avrdude.conf -p m8 -P usb -c stk200 -U flash:w:E:\winavr\mfile\led.hex:a

avrdude.exe: can't open device "giveio"

avrdude.exe: failed to open parallel port "usb"

Z tego co się domyślam to chyba jest jakiś błąd w avrdude, ale nie wiem.

Spróbowałem jeszcze drugiej metody z artykułu :szybki start z WinAVR. W okienku output pokazuje się komunikat :

> "make.exe" program

avrdude -p atmega8 -P -c USBasp -E (AVRDUDE_EXITMODE) -U flash:w:led.hex

/usr/bin/sh: -c: line 1: syntax error near unexpected token `(A'

/usr/bin/sh: -c: line 1: `avrdude -p atmega8 -P -c USBasp -E (AVRDUDE_EXITMODE) -U flash:w:led.hex '

make.exe: *** [program] Error 258

> Process Exit Code: 2

Nie wiem dlaczego jest problem z AVRDUDE_EXITMODE, ponieważ nie dopisywałem tych dwóch wersów związanych AVRDUDE_EXITMODE.

Link do komentarza
Share on other sites

Po uruchomieniu install_giveio.bat i po kliknięciu "write" ukazuje się komunikat:

E:\winavr\bin\avrdude.exe -C E:\winavr\bin\avrdude.conf -p m8 -P usb -c stk200 -U flash:w:E:\winavr\mfile\led.hex:a

avrdude.exe: port name "usb" is neither lpt1/2/3 nor valid number

avrdude.exe: can't open device "usb"

avrdude.exe: failed to open parallel port "usb"

Rozumiem, aby że port usb i lpt1/2/3 mają nie ważny numer, ale o co z tym chodzi to nie wiem.

Link do komentarza
Share on other sites

E:\winavr\bin\avrdude.exe -C E:\winavr\bin\avrdude.conf -p m8 -P usb -c stk200 -U flash:w:E:\winavr\mfile\led.hex:a

avrdude.exe: port name "usb" is neither lpt1/2/3 nor valid number

avrdude.exe: can't open device "usb"

podajesz mu programator na lpt a port podajesz USB - dlatego jest problem. Zmień "usb" na jakieś LPT, np. "lpt1".

Link do komentarza
Share on other sites

Zmieniłem na "lpt1" i otrzymuje komunikat:

E:\winavr\bin\avrdude.exe -C E:\winavr\bin\avrdude.conf -p m8 -P lpt1 -c stk200 -U flash:w:E:\winavr\mfile\led.hex:a

avrdude.exe: AVR device not responding

avrdude.exe: initialization failed, rc=-1

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

this check.

avrdude.exe done. Thank you.

Po przetłumaczeniu " urządzenie nie reaguje", " sprawdź połączenia", czyli mam rozumieć że z ATmega8 jest coś nie tak. Sprawdziłem czy dobrze jest podłączona ATmega trzy razy i wszystko się zgadza. Więc co może być nie tak?

Link do komentarza
Share on other sites

Teraz już masz standardowy błąd 😉 czyli:

- zły port lpt (o ile masz więcej widocznych w systemie)

- złe połączenie (zasilasz? wszystkie linie podłączone?)

- zła prędkość (aczkolwiek nie wiem czy w stk200 można regulować)

Link do komentarza
Share on other sites

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

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.