Kłopoty z programowaniem mikrokontrolerów AVR? Oto opis genialnego w swej user-friendly-oprawie programu SinaProg. Nigdy więcej zablokowanych „fuse-bitów”! Nigdy więcej problemów z konfiguracją programatora!
Przystępny opis, dużo zdjęć z oznaczeniami, krok po kroku opisujący wgrywanie oprogramowania (plików *.hex) do pamięci mikrokontrolerów typu AVR przy pomocy znakomitego programu (a raczej nakładki graficznej na avrdude) SinaProg. Nigdy więcej zablokowanych „fuse-bitów”! Nigdy więcej problemów z konfiguracją programatora!
1. Pobieramy SinaProg:
Pobierz “SinaProg 2.0” SinaProg2.zip – Pobrano 7565 razy – 4,07 MBTen plik (i wiele innych ciekawych rzeczy) jest też dostępny na moim koncie Chomikuj.pl:
2. Wypakowujemy archiwum np. na Pulpicie i uruchamiamy plik SinaProg.exe.
3. „Poszerzamy” okno programu, żeby widzieć więcej informacji:
4. Wybieramy w polu (1) nasz programator podłączony do komputera (nic nie szkodzi, jeśli nie mamy pewności), a w polu (2) port, do którego jest podłączony (można to sprawdzić we właściwościach Mojego Komputera, zakładka Menedżer Urządzeń):
5. Wybieramy mikrokontroler, który chcemy zaprogramować (i który jest już połączony z programatorem):
6. Sprawdzamy czy wszystko jest dobrze ustawione, powinniśmy otrzymać konkretną sygnaturkę (inną dla różnych mikrokontrolerów) i informację, że fusebity są ustawione prawidłowo:
Jeśli to się nam nie uda, to metodą prób i błędów zmieniamy ustawienia programatora (po szczegóły odsyłam do jego instrukcji obsługi), klikając „Search” by sprawdzić.
Nie działa? Bez paniki! Statystycznie najczęstszym powodem są:
- błędy w połączeniach (przerwy lub zwarcia, tzw. zimne luty, uC odwrotnie włożone w podstawkę itp.)
- nieprawidłowo skonfigurowany programator (brak sterowników, złe ustawienia BIOS w przypadku STK200 itp.)
- zablokowany lub uszkodzony uC; bez odpowiednich narzędzi jedynym wyjściem pozostaje niestety zakup nowego.
7. [kompletnie początkującym radzę zignorować ten punkt]
Ustawiamy fuse bity na takie, które odpowiadają naszemu programowi (przypominam o podłączeniu zewnętrznego rezonatora jeśli wybieramy opcję „Ext.Crys.”) i programujemy je.
8. Wybieramy nasz skompilowany wcześniej program (plik z rozszerzeniem *.hex):
9. Programujemy nasz mikrokontroler:
Po raz kolejny upewniamy się, że weryfikacja przebiegła pomyślnie (wszystko wgrało się bez błędów).
Powodzenia!
oo…fajny programik, zwlaszcza opcja z gotowymi ustawieniami fusebitow. Szkoda tylko ze nie do wszystkich uC, ale z tego co widze to mozna tworzyc wlasne pliki txt z ustawieniami. Dzieki za opis, przyda sie 😉
To program tak jak inny,który używa avrdude więc nie ma nic w nim nowego,wszystko jest wykonywane za pomocą wspomnianego programu.
Witam,
Przecież zaznaczyłem w treści, że jest to tylko nakładka graficzna na avrdude. Nie ma w nim nic nowego, ale wyróżnia się jako najbardziej „user-friendly” jeśli chodzi o tego typu darmowe programy. Mam tu na myśli głównie konfigurację fusebitów (sposób podobny, co w AVR BurnOMatic, ale dodatkowo są też gotowe pre-ustawienia wybierane z listy rozwijanej jednym kliknięciem) w połączeniu z szybką i prostą konfiguracją programatora (również lista rozwijana + testowanie połączenia jednym kliknięciem). Dodatkowo jest pozbawione cech np. AVRdude-gui, które przy losowym uruchomieniu potrafiło samo zaznaczyć do zaprogramowania lock-bity, trzeba było stale mieć się na baczności… A jeśli ktoś woli dosowy terminal avrdude, to już jego sprawa 🙂
Witam,nie testowałem tego programu,przetestuje go za jakiś czas.Jeśli wyda mi się dobry to będę korzystać z niego częściej :).
Witam!Zbudowałem sobie nowy adapter do at90s2313,mój programator to usbasp.
Gdy programuje przez sineprog to mam taki błąd
avrdude -C avrdude.conf -c usbasp -p 2313 -q
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.
Co jest nie tak?Programator jest oczywiście sprawny.
Zapomniałem dodać czy mogłem przypadkowo zablokować fuse bity?
Jak najbardziej, mogłeś przypadkowo zablokować fuse bity. Chyba, że korzystałeś od początku z SinaProg – tutaj trzeba się postarać 😉 (dlatego tak bardzo ten program polecam).
Dostałeś informację „Double check connections and try again” bo w 99% przypadków problem wynika z nieprawidłowego podłączenia adaptera. Sprawdź, czy układ jest zasilany, masy uC i programatora są połączone oraz czy wszystkie linie poprowadzone są poprawnie do złącza. Warto też przyjrzeć się jakości lutów.
Przepraszam za tyle komentarzy.Musiałem zresetować komputer,strasznie ścinał mi się.Moje pytanie dot. usbasp i w nim gnd ma aż 4 złącza mam wsztkie podłączyć do vcc adaptera?
Musisz odpowiednio podłączyć każdy sygnał na zasadzie GND do GND (wszystkie GND połączone ze sobą), VCC do VCC (o ile zasilasz z programatora – USBasp ma zwykle odpowiednią zworkę, poszukaj sobie w instrukcji do programatora która to), MOSI do MOSI, MISO do MISO, RST do RST, SCK do SCK. LED możesz zostawić „w powietrzu”.
Komentarzy było zbyt dużo, uruchomił się antyspam – dlatego nie mogłeś pisac. Na przyszłość spróbuj wszystko napisać w jednym 😉
Zrobiłem dla Ciebie schemat PCB, jak taki adapter powinien wyglądać:
http://hobbyrobotyka.pl/wp-content/uploads/2010/08/sch.png
http://hobbyrobotyka.pl/wp-content/uploads/2010/08/pcb1.png
Witam!Czy po kliknięciu verify w tabie flash w sina prog pokazuje ci się komunikat „C:\Users\`\Desktop\SinaProg\avrdude.exe” not found?Chodzi mi gdy nie masz nic podłączonego (programator i inne takie rzeczy).
Nie, informuje tylko, że nie znalazł sprzętu. Jeśli nie masz avrdude w folderze z programem, to spróbuj z inną wersją (np. tą z załącznika) albo pobierz avrdude osobno i rozpakuj do katalogu z sinaprog (bez podfolderów).
Witam!Ten program co Pan podał jest dobry bo sam ustawia fuse bity ale czy te ustawienia ,które daje program dotyczące fuse bitów mogą być za słabe np. do mojego projektu ,ponieważ to fusy ustawiają jak ma pracować mikro?Nie znam się za bardzo na tym ale słyszałem ,że fusy ustawiają wydajność scalaka.Proszę mnie wyprowadzić z błędu jak się mylę.
Fuse bity pozwalają na konfigurację mikrokontrolera. Można ustawić nimi mnóstwo rzeczy, chociaż najczęściej (zwłaszcza na początku przygody) wykorzystuje się ustawianie wartości i źródła taktowania wraz z dzielnikiem. W połączeniu np. z rezonatorem kwarcowym 16MHz możliwe jest osiągnięcie nawet do 16MIPS (Mega instructions per second), co w porównaniu z fabrycznymi ustawieniami większości uC (chyba 1MHz dla Atmega 8 – ok. 1MIPS) znacznie przyspiesza pracę układu (kosztem większego poboru energii oraz wydzielania ciepła).
Zauważyłem ,że ten program obsługuje atmegę 32 i tu mam problem.Czy do zaprogramowania atmegi 32 trzeba podłączyć takie same linie co do atmegi 8 tak?Rozumiem ,że trzeba podłączyć rezonator kwarcowy 8mhz i dwa kondensatory cer. np. po 16 pf?Wszystkie linie vcc i gnd razem połączyć?Po takich zabiegach powinien się dać zaprogramować?
MOSI z MOSI, MISO z MISO, SCK z SCK, RESET z RST, GND z GND i VCC z VCC (zakładam, że zasilasz układ – VCC – z programatora, przeciwnym wypadku VCC układu podłącz do swojego źródła zasilania). Jeśli uC ma zaprogramowane fusebity od zewnętrznego rezonatora, to musisz podłączyć taki do uC żeby móc go programować. Jeśli uC jest fabrycznie nowy, albo np. nie zmieniałeś fusebitów, to nie trzeba podłączać rezonatora.
Czy mimo tego,że atmega jest fabrycznie nowa można podłączyć rezonator kwarcowy?Jeszcze nie dostałem odpowiedzi czy wszystkie vcc połączyć ze sobą ,i czy tak samo zrobić z gnd?Ta atmega ma wiele linii oznaczonych jako GND i VCC.
Ok,znam już odpowiedź na pytanie.Możesz usunąć dwa ostatnie posty.
Dzięki
Jeśli mój układ pracuje z podłączonym rezonatorem kwarc. 48 mhz to wybiera się ext.crys?Jak podłącze do atmegi 8 taki rezonator wraz z kon.ceramicznymi 39pf to będzie działać?
Nie ruszy z takim rezonatorem, maks. to 16MHz, czasami udaje się odpalić przy 20MHz, ale uC bardziej się grzeje. Schematy podłączania i dopuszczalne wartości rezonatorów znajdziesz w dokumentacji do mikrokontrolera.
Witam 😉 wlasnie zainstalowalem po wlaczeniu wyskakuje mi komunikat:
Unable to locate the LabVIEW Run-Time Engine.
SinaProg requires a version 2010 (or compatible) LabVIEW Run-Time
Engine. Please contact the vendor of SinaProg to correct this problem.
w czym jest problem? Z gory dzieki.
Juz sobie poradzilem 🙂 kolejnym problemem jest to ze tam gdzie mam do wyboru Hex file nie pojawia mi sie program :/
Już dziala 🙂 sorki
Co to może być za błąd przy uruchamianiu tego programu: „Unable to locate the LabVIEW Run-Time Engine. SinaProg requires a version2010 (or compatybil) LabVIEW Run-Time Engine. Please Contact……dalej wiadomo
Niestety, potrzebujesz pobrać silnik LabVIEW, żeby móc działać na SinaProg…
http://joule.ni.com/nidu/cds/view/p/id/2292/lang/pl
Salam,
Is it required for the lab view and sina prog setups to be in the same folder?