Skocz do zawartości

Kurs AVR - problem z pierwszym zaprogramowaniem


Pomocna odpowiedź

Napisano

Witam.

Na wstępie właściwie mogę zacytować jeden z mych poprzednich tematów:

Jestem osobą bardzo początkującą.

Natknąłem się na świetny kurs autorstwa ABXYZ dotyczący programowania AVR:

http://www.kursc.forbot.pl/str001.html

Tym razem mam następujący problem. Podłączyłem wszystko zgodnie z instrukcją (schematem), pobrałem odpowiednie oprogramowanie (WinAVR itd.). Poza tym system wykrywa programator (XP) i widzi go jako usbasp.

Po wybraniu w programmer's notepad (zgodnie z kursem) komendy Tools->Make All wszystko było OK (Exit code 0).

Natomiast po wybraniu Tools ->Program otrzymałem komunikat

avrdude -p atmega8 -P usb -c usbasp -U flash:w:led.hex

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.

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

> Process Exit Code: 2

W makefile mam ustawione:

AVRDUDE_PROGRAMMER = usbasp

AVRDUDE_PORT = usb

tak czy tak, z tego co widzę programator jest dobrze połączony z komputerem (pali się zielona lampka, podczas programowania na chwilę zmienia się na czerwoną), a problem leży chyba w połączeniu uC z programatorem.

Zgodnie ze stroną http://tnij.org/epm7 , możliwe błędy to:

* Not Connect Programmer with Target circuit

* ISP Connector is bad connection

* Target circuit power is OFF

Połączenia sprawdzałem parokrotnie, zmieniałem też kabel łączący uC i programator. Słyszałem natomiast, że być może powinienem przełączyć jakąś zwrotkę (slow_sck), lecz niestety nie wiem dokładnie co to jest gdyż jak mówiłem dopiero zaczynam się bawić z elektroniką.

Używam kupnego programatora http://allegro.pl/item738576584_nowosc_programator_isp_avr_usb_rohs_atmel_fv.html (znalazłem do niego instrukcję:

http://protech-micro.pl/support/Instrukcje/Instrukcja%20uruchomienia%20programatora%20USBasp.pdf)

i układu atmega8 zgodnie z kursem.

Załączam zdjęcia:

http://img44.imageshack.us/gal.php?g=zdjcia00090a.jpg

p.s.

Wcześniej miałem błędy z połączeniem programatora z komputerem (nie widział go), ale już to rozwiązałem.

p.s.2.

Czy istnieje możliwość że podczas prób zaprogramowania uC coś w nim bezpowrotnie spierniczyłem?

Musisz założyć zworkę, która jest bliżej krawędzi płytki - dalej od złącza isp w programatorze, powinna być oznaczona "slow sck". W instrukcji to całkiem ostatni punkt jest.

Witam.

Czy chodzi o to, co zaznaczyłem na czerwono:

Jeśli tak, to w jaki sposób ją 'założyć'? Czy czasem to, że ma na sobie ten wysuwany, czarny element nie znaczy że jest założona? Mam go zdjąć? Od razu przepraszam za niewiedzę.

//nawyk:

(poprawiłem)

masz załączone dwie zworki na programatorze - jedna z nich odpowiada za zasilanie układu z programatora, a na którymś zdjęciu widać że diody się świecą, czyli zasilasz całość z zewnętrznego źródła zasilania i tym sposobem robisz zwarcie - jeżeli to prawda to zasil atmege tylko z jednego źródła.

Hm, co do świecenia się diod - to chyba raczej wynik oświetlenia/odbijania się światła - gdy robiłem zdjęcia, układ był wyłączony.

Próbowałem opcji z odłączoną zwrotką bardziej wewnętrzną - sprawa ma się tak samo, ten sam błąd :/

Zwątpiłem, i spróbowałem też z odłączoną zwrotką zewnętrzną (sck), ale ciągle jeden i ten sam błąd.

Znowu wykażę się brakiem wiedzy.

W jaki sposób podłączyć miernik? Mam jakiś miernik uniwersalny (napięcie, natężenie itd.) - gdzie go podłączyć na tym moim schemacie?

Jeśli okaże się, że napięcie dochodzi - nie ma innej opcji jak zepsuta atmega8? A jeśli jest zepsuta, to tylko zakup nowej?

p.s.

Co do podłączania z zasilaniem z programatora - jeśli odepnę zasilanie do płytki, to cała reszta kondensatorków, rezystorków, diod itd. może zostać na płytce? czy muszę je usunąć, przed programowaniem atmegi?

Dobra, to akurat wiem.

Ale co z miernikiem który ma naraz te rzeczy?

I gdzie tutaj będzie połączenie szeregowe do tego?

Ja nie widzę tutaj jednego obwodu tylko szereg różnych połączeń.

chodziło mi bardziej o sprawdzenie połączeń pod kątem ciągłości - ustawiasz test diody, buzzer, czy pomiar rezystancji (w zależności od tego jaki masz miernik), wtykasz jakiś kawałek drutu w oczko wtyczki która wchodzi do twojego programatora (ta dziesięcio pinowa), przykładasz czerwoną szpilke miernika do tego wetkniętego drutu, czarną do odpowiedniej nóżki procesora (sprawdzasz w nocie która to nóżka) i jeżeli miernik pika lub pokazuje zero omów to znaczy że sygnał z tego pinu dochodzi do danej nóżki, sprawdzasz tak wszystkie piny w wtyczce programatora i jeżeli sygnał dochodzi do wszystkich niezbędnych nóżek (mosi, rst, sck, miso, vcc, gnd) to znaczy że podłączenia masz ok, programator też będzie pewnie ok, więc kupujesz nowy uC

A więc tak.

Ustawiając miernik na hFE podłączałem kolejno czerwoną szpilkę (V*znaczek omegi*mA) do odpowiedniego oczka wtyczki (przez wspomniany drucik), a czarną (COM) dokładałem do odpowiednich nóżek programatora. Następnie podobną operację wykonałem dla oczek wtyczki i końcówek kabla który wcześniej był dołączony do nóżki atmegi (wyjętego z płytki stykowej <- testowanie samego kabla).

Dla połączenia z MOSI (do nóżki) wynikiem były jakieś nie za wielkie wartości.

Dla MISO i STK wyświetlała się jedynka (z lewej strony, podobnie jak gdy nie dołączam szpilek nigdzie).

Dla kabli wyjętych z płytki, przykładając do ich końców i odpowiednich oczek we wtyczce:

MOSI, MISO i STK oraz GND wyświetlały jakieś wartości (trochę większe niż w przypadku pierwszego MOSI).

Jak mam to interpretować?

Zły kabel (MISO, STK), źle wetknięty, zła atmega, czy coś innego?

Wydaje mi się, że chodzi o połączenia...

Wygląda na to, że prąd nie dochodzi do MISO i STK na płytce, ale po wyjęciu i przyłożeniu miernika do końców tych przewodzików pokazują się już jakieś wartości.

Testy wykonałem parokrotnie, z identycznym wynikiem (tylko z MISO na początku przy wyjętym kabelku dostawałem po lewo 1, ale przy kolejnych próbach były już wartości - chyba niedokładnie przykładałem na początku).

Tryb pomiaru hFE służy do czegoś innego.

W zależności od tego, co chcesz sprawdzić musisz użyć wolto-, ampero-, czy też omomierza. Przydatny jest też test ciągłości obwodu.

Hm, myślałem że to jest właśnie ciągłość obwodu :/

Czyli z tego nie da się nic stwierdzić?

I jak w takim razie ustawić miernik przy testowaniu? Na VDC lub stałe? Mam tam różne wartości m.in. 20, 2000m itd. - znaczą pewnie rząd pomiaru.

Podczas mierzenia muszę mieć włożony kabel programator-komp (żeby płyneło napięcie)? Czy mogę testować bez załączania (sama ciągłość?)

Nie mogę zlokalizować ikonki ciągłości.

To pewnie taka z diodą i takimi łukami.

Tak, czy inaczej musisz mieć układ zasilony z zewnętrznego źródła, jeśli chcesz, żeby układ się w ogóle programował(chyba, że masz programator pod USB i zwartą zworkę zasilania układu).

Do samych testów lepiej nie podłączać zasilania, jeżeli nie testujesz działania układu, np. generowanego przebiegu, czy napięcia.

W przypadku ciągłości obwodu nie powinno być raczej podłączone zasilanie.

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