Jak zaprogramować pierwszy AVR?


10
Ocena: None Średnia: 10 (5 głosujących)

Ten artykuł ma na celu pomóc wszystkim tym, którzą pragną rozpocząć swoją przygodę z programowaniem lub zrobić układ mikroprocesorowy na podstawie gotowego schematu. Zawarta tutaj wiedza umożliwi każdemu zaprogramowanie mikrokontrolera gotowym programem i pozwoli cieszyć się z działającego układu. Nie trzeba przy tym nawet znać się na budowie procesorów, można je traktować jak specjalistyczne układy scalone, spełnąjące określone programowo funkcje.

Do zaprogramowania mikrokontrolera gotowym programem potrzebujemy komputer PC z płytą główną wyposarzoną w port równoległy (drukarkowy/LPT) i zainstalowany program BASCOM AVR (W pełni funkcjonalną do naszych potrzeb wersję demo można pobrać tutaj). Port równoległy (Parallel Port) powinien być ustawiony w biosie na tryb ECP, w większości przypadków standardowo jest SPP, a na tym trybie nie chciał u mnie działać ten programator.

Drugim krokiem jest wykonanie prostego programatora a właściwie kabelka programującego składającoego się z gniazda DB25M, czterech rezystorów i kawałka dowolnego kabla. Odpowiedni schemat znajduje się na rysunku poniżej:

Zalecam zastosowanie obudowy do wtyku DB25M i umieszczenie w niej rezystorów R1 - R4 (330R). Z wtyku można wyprowadzić ok. 1m kabla wielożyłowego i przylutować na końcu jakieś złącze uniwersalne. Wykonany w taki sposób programator z pewnością przyda się jeszcze wiele razy (programowanie mikrokontrolerów jest bardzo wciągające). Do zasilania mikrokontrolera podczas programowania konieczne jest napięcie +5V. Można je uzyskać na wiele sposobów: Zasilacz zewnętrzny zbudowany na układzie 7805, Port USB, Gameport lub Bezpośrednio z zasilacza komputerowego (Kabel czerwony w złączu od dysku).

Gdy mamy już wykonany kabelek to po uprzednim dokładnym sprawdzeniu poprawności montażu możemy podłączyć go do portu LPT (Dla bezpieczeństwa i w trosce o płytę główną zalecam zrobić to przy wyłączonym komputerze).

Dalsze czynności zależą od tego czy mamy już płytkę na której mikrokontroler będzie pracował. Jeśli tak to podłączamy odpowiednie piny naszego programatora do płytki z mikroprocesorem, w przeciwnym wypadku musimy zrobić prosty układzik (np na płytce uniwersalnej) wyposażony w podstawkę i kwarc z kondensatorami. Na rysunku poniżej przedstawiony jest schemat podłączenia programatora do mikrokontrolera na przykładzie ATTINY2313:

Pozostałe procesory z rodziny AVR można zaprogramować w analogiczny sposób, różnią się one tylko rozkładem wyprowadzeń i typem obudowy. Wszelkich informacji najlepiej jest szukać w kartach katalogowych poszczególnych Chipów. Znajdziemy tam między innym które piny to MISO, MOSI, SCK i RST oraz gdzie podłączyć zasilanie i jakie ono powinno być.

UWAGA!! Mikrokontroler wymaga zasilania podczas programowania, pamiętaj jednak aby podłączyć je tylko z jednego źródła. Gdy płytka ma swoje zasilanie to nie podłączaj już napięcia z komputera lub innego zasilacza.

Gdy programator został już złożony i podłączony do odpowiednich pinów mikrokontrolera (nie zapominamy o podłączeniu masy - GND) możemy przystąpić do uruchomienia BASCOMA i włączenia zasilania mikrokontrolera.

Na samym początku należy sprawdzić jaki typ programatora mamy ustawiony w preferencjach BASCOM'a. W tym celu wybieramy z górnego menu "Options->Programmer". Poprawna konfiguracja powinna wyglądać jak na rysunku poniżej:

Gdy jesteśmy już pewni że wszystko jest dobrze ustawione możemy uruchomić programator. W tym celu tworzymy nowy projekt za pomocą "File->New", nie jest on do niczego potrzebny ale bez otwartego jakiegokolwiek pliku BASCOM ma nieaktywne okno programatora.

Wybieramy teraz "Program Chip" (ikonka w kształcie zielonej podstawki, Klawisz F4 lub Program->Send to Chip->Program). Mogą się po tym pojawić następujące komunikaty:

Pierwszym, widocznym poniżej, nie należy się w ogóle przejmować gdyż mówi o tym że brakuje pliku *.bin co nie jest dziwne bo nic nie kompilowaliśmy a jedynie chcemy zaprogramować gotowym programem.

Drugi komunikat może oznaczać potencjalne problemy, mówi o problemie komunikacji z mikrokontrolerem:

Trzeci natomiast mówi o niezgodności podłączonego mikrokontrolera z tym ustawionym w programie. Nie należy się tym przejmować bo jest to ważne gdy kompilujemy program a nie gdy chcemy zaprogramować gotowym programem:

Po przebrnięciu przez te dziwne komunikaty dochodzimy w końcu do okna które można zobaczyć na rysunku poniżej:

Jako pierwsze sprawdzimy czy mikrokontroler jest prawidłowo rozpoznawany przez BASCOM'a. Możemy to zrobić wybierając z górnego menu "Chip->Identify" lub klikając ikonkę "Identify Chip" obok listy z wyborem mikrokontrolera. Jeżeli wszystko jest poprawnie to w rozwijanej liście powinien pojawić się wybrany odpowiedni typ procesora (taki jak podłączyliśmy) a dane o producencie i rozmiarach pamięci powinny przyjąć poprawne wartości. Nie powinien wystąpić także żaden komunikat w stylu "Could not identify...." bo inaczej oznacza to że komunikacja z procesorem jest niepoprawna i musimy dokładnie sprawdzić programator i jego połączenie z procesorem oraz poprawność napięcia zasilającego (+5V względem GND).

Gdy BASCOM poprawnie identyfikuje procesor czas na jego zaprogramowanie. W tym celu do bufora ładujemy plik *.bin lub *.hex z programem za pomocą "Buffer->Load From File" a następnie wybieramy "Chip->Autoprogram" lub klikamy ikonkę "Autoprogram chip". Po zaprogramowaniu nie powinien wystąpić komunikat "Difference at...", jeśli wystąpi to znaczy że wystąpił błąd w programowaniu i należy je powtórzyć ponownie wybierając "Autoprogram". Jeśli nie wystąpi komunikat o błędzie wybieramy "Chip->Verify" aby porównać zawartść bufora z zawartością pamięci procesora i dodatkowo upewnić się że wszystko ok. Powinien pojawić się napis "Bufer and Chip are identicall" na pasku statusu u dołu okna programowania.

Kolejną bardzo ważną czynnością jest ustawienie FUSE BITÓW mikrokontrolera na zakładce "Lock and Fuse bits" ale o tym wkrótce będzie osobny artykuł. Wspomnę tylko że najczęstrzym ustawieniem jest wyłączenie dzielenia częstotliwości zegara, czyli ustawienie "Divide clock by x disabled" i ustawienie współpracy z zewnętrznym rezonatorem kwarcowym, czyli "External Crystal Oscilator"




Portret użytkownika White

Re: Atmega8

Nie do końca wszystkie są poprawne.Różnica oczywiście w Vcc gdyż w Atmedze są to 2 piny 7,20 oraz GND też 2 piny 8,22 oraz miejsce na zewnętrzny kwarc 9,10.Ale jeżeli chodzi o piny programujące to wszystko jest tak samo jak w Attiny2313.>>Miso,Mosi,RST,CLK.

-

Co cie nie zabije to cie wzmocni.
(Nie dotyczy kondensatora 230V)

Portret użytkownika mirley

Re: ATMEGA piny

No akurat w tym przypadku piny programujące (ich numery) się pokrywają, ale tylko dla obudowy DIP. Jeśli będziesz miał układ w obudowie SMD to numery pinów będą inne. Zawsze należy popatrzeć do karty katalogowej. Wystarczy w najprostszym przypadku na google wpisać "mega8 +pdf" apierwszym wynikiem będzie karta katalogowa. Na drugiej stronie w pdf'ie są wyprowadzenia opisane dla wszystkich ATMEGA8

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Prezes

ATMEGA podziękowanie!

Witam i dziękuję za odpowiedź która mnie upewniła i teraz mogę brać się za programowanie. Pozdrawiam

Portret użytkownika kamill

programator

Portret użytkownika mirley

Re: Programator

Oczywiście że możesz, to dokładnie USBASP + Podstawka programująca

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

mam pytanie odnosnie

mam pytanie odnosnie rezystorow pisze 330R to jest oznaczenie w smd?? bo 330 w smd oznacza 33 ohm'y czy jest to R wstawione zamiast znaczku oma??[img][/img]

Portret użytkownika mirley

Re: Rezystory

Rezystory 330R to poprostu 330[tex]\Omega[/tex], R to popularne oznaczenia na oma :)

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika VEG

SS

Chce zaprogramować ATmege8 ale oczywiście się nie da. Przycisk reset chip działa (Bascom AVR). Komunikacja Procka z kompem jest ok bo przez PonyProga bezproblemowo wgrywam programy. Dlatego wywnioskowałem ze problem tkwi w konfiguracji Baskoma. I tak zaciekawiło mnie ze należy podać nr-y portów odpowiadających MOSI, MISO, Clock i uwaga SS. Po co przy programowaniu SS i do czego to w ogóle służy? w PonyProgu SS jest nie używany. Podczas prób wgrywania programu wyskakuje błąd 000000. Procek pracuje na wewnętrznym oscylatorze (podobno 1M) więc ustawiłem w Bascomie 1M. Programmer to Simple electronic programmer. LPT adres to 378. HELP!

-----

Ok! właśnie popatrzyłem na Allegro żeby podesłać linka do mojego programatora i się okazało że to PROGRAMATOR ISP STK200/300 a ja jak wspomniałem ustawiłem Simple electrocnics programmer. Po ustawieniu właściwego wszystko działa (STK200/300). W ponyprogu AVR ISP I/O to właściwa konfiguracja.
mogłem od razu popatrzeć. :) mój błąd.
P.s Świetna stronka

Mirley: Scaliłem wypowiedzi, nie wolno pisać "posta pod postem", zaloguj się aby móc edytować wypowiedzi.

Portret użytkownika Kropek

Nowy układ

Witam

Mam pytanie. Zaprogramowałęm jeden układ za pomocą płytki ZL2AVR. Był to układ dostarczony wraz z zestawem Atmega 8. Po zaprogramowaniu umieściłem w odpowiednim obwodzie i wszystko jest ok. No ale z nudów postanowiłem pobawić się troche. Stąd też kupiłem kolejny układ w sklepie. Także Atmega 8. Ku mojemu zdziwieniu okazało sie ze praktycznie nie moge nic z nim zrobić. Nie moge zmienić poziomów na portach ani komunikowac się po RS. Mam zatem pytanie czy ten układ w zestawie startowym róznił się czyms od tego kupionego w sklepie. Chce dodać ze kupiłem jesczze jeden i zachowuje się identycznie. Także musi być jakas róznica pomiędzy układami.

Badzo prosze o pomoc:]

Pozdrawiam

Portret użytkownika mirley

Re: Mega8

A słyszałeś o ustawieniach fusebitów dla mikrokontrolerów AVR? Poczytaj artykuł u mnie na stronie na ten temat, oraz drugi odnośnie programowania mikrokontrolerów pod Avrdude i Burn-o-mat (jeśli nie masz to zainstaluj) (oba są w dziale "Artykuły różne"). Prawdopodobnie będziesz musiał przestawić taktowanie na zewnętrzny kwarc... Aha.. zakładam że masz możliwość programowanie tego nowego ATMEGA8 i programator go wykrywa.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika MasterMatan,

spalony?

Witam, ja chciałem zaprogramować tym programatorem łożone urządzenie i chyba je spaliłem razem z portem LPT. Zasilanie podczas programowania pobierane było z portu USB. Chciało programować ale nie mogło a jak zajrzałem do układu to unosił się dymek i gronowy zapach. Szybko odłączyłem usb aby zerwać zasilanie. Po dokładnym przyjrzeniu się zobaczyłem że spaliła się dioda zenera tak bardzo że aż cyna się rozpuściła i cała dioda się odlutowała. Czy mogłem spalić mikrokontroler? I co najważniejsze czy mogłem spalić LPT. Atmega8 kosztuje grosze. Dodam tylko że port USB z którego pobierałem zasilanie działa normalnie. Niestety nie wiem co z LPT bo nie mam jak sprawdzić.

Portret użytkownika mirley

Re: Spalony

Port LPT mógł się spalić bo jest dość delikatny ale nie znaczy to że w twoim przypadku się tak stało. Kontroler USB jest dobrze zabezpieczony i raczej jego spalenie wymaga trochę zdolności. A jeśli chodzi o mikrokontroler to skąd mam wiedzieć czy się spalił. W jaki sposób podłęczyłeś tą diodę zenera i wogóle do czego Ci ona była? Co to za układ? Napewno nie wlutowałeś jej na odwrót? Najpierw podłączaj układ do zasilania a potem jak już działa to wszystko wyłącz i podłącz do LPT. Zapoznaj się z opisem tutaj

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika MasterMatan

chyba moja wina

Chyba była to moja wina bo najprawdopodobniej źle wlutowałem diodę zenera i wszystko przez to mogło siąść.
Konstruowałem projekt ze strony http://www.raphnet.net/electronique/usb_game12/index_en.php .
Lutowałem wszystko na pająka ale zwarć nie było bo wszystko było zabezpieczone rurkami termokurczliwymi i taśmą izolacyjną. Po tym incydencie zainstalowałem Eagle na Ubuntu i zrobiłem płytkę PCB tylko jak ją zapisać do PDF? Bo mam u siebie drukarkę atramentową, poszedłbym do kawiarenki a oni by mi za kilka groszy wydrukowali na papierze kredowym i bym sobie zrobił wreszcie płytkę.

Mam jeszcze jedno męskie LPT, jest jakieś proste urządzonko które mógłbym zrobić żeby sprawdzić czy z LPT jest wszystko ok? A jeżeli LPT będzie spalone to czy jest jakiś programator na RS232 (com)?

I sorki mirley jeżeli trochu przeszkadzam lub zadaję głupawe pytanka ale jak wcześniej programowałem z tego programatora to było lux i ok.

Portret użytkownika mirley

Re: Programowanie

Najprościej zrobisz jak podłączysz mikrokontroler do portu LPT za pomocą kabelka z rezystorami z opisu powyżej. Procesor wymaga jeszcze zasilania które możesz pobrać z dowolnego źródła. Tak najszybciej sprawdzisz czy działa LPT. Na port COM nie uzywałem żadnego programatora więc musisz poszukać w internecie.

Zapis płytki do pdf (i wszystkiego innego) pod linuxem robi się zmieniając drukarkę na "wydruk do pdf". pod windowsem darmowy program PdfCreator, instaluje sie jako drukarka i poprostu dajesz drukuj na drukarce pdfCreator. W ostateczności możesz wydrukować na atramentówce i iść do ksero aby odbili na kredowym. Zmierz skalę aby napewno było 100% powiększenia a nie np 95%.

Ps. Pamiętaj że pod konkretnymi wpisami na stronie mogą znaleźć się pytania tylko związane z tematyką opisu, wszelkie inne pytanie nie na temat muszą być na forum. Załóż konto i będziesz mógł pisać na forum z dodatkowymi pytaniami.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

Jak skompilować program do

Jak skompilować program do BIN albo HEX ?

Portret użytkownika mirley

Re: Kompilacja

Otwierasz plik źródłowy *.bas w Bascom AVR i wybierasz opcję "compile". Patrz podpisy pod ikonkami na głównym pasku...

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

1. Jeżeli programator wykonam

1. Jeżeli programator wykonam zgodnie ze schematem na tej stronie, to czy jest ryzyko zepsucia się portu oraz ewentualnie płyty głównej lub procesora?

2. Dlaczego w programatorach stk200 umieszcza się układy scalone 74HC244? Czy jest to konieczne?

3. Czy do zasilania programatora oraz mikrokontrolera mogę wykorzystać baterię 3R12 4,5[V]?

4. Czy do poprawnego działania mikrokontrolera konieczny jest rezonator kwarcowy?

5. Czy port LPT na schemacie ( http://mirley.firlej.org/files/Art_PierwszeProg_01.gif ) pokazany jest od zewnętrznej strony obudowy komputera?

6. Jakie wartości powinny mieć rezystory?

Portret użytkownika mirley

Re: Pytania

1. Zawsze jest ryzyko zepsucia jesli zrobisz zwarcie itp. Ja długo uzywałem takiego programatora i nic się nie stało.
2. Układ HCT to bufor, poprawia wydajnośc portu a poza tym dzięki mozliwości wyłączenia bufora programator odpina się od procesora po zaprogramowaniu go. Lepiej już sobie zrobić USBASPa niż stk200
3. możesz mieć baterię 4,5V ale to dolna granica mikrokontrolerów AVR. Lepiej dać zasilanie z USB albo z zasilacza zbudowanego na 7805
4. Rezonator kwarcowy nie jest konieczny ale jak chcesz dokładniej odmierzać czas to będzie konieczny. Jeśli przestawisz fusebity na kwarc to procesor nie ruszy więcej bez niego
5. Port pokazany jest z "obu" stron. Są tam numery wyprowadzeń a piny złącza M i F numerowane są przeciwnie tak że pin 1 idzie do 1, 2 do 2 itd.
6. Wartości rezystorów ze schematu to 330R (330 Ohm)

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

1. Ale jaka ma być wartość

1. Ale jaka ma być wartość mocy oporników?

2. O co chodzi z tym dokładnym obliczaniem czasu?

3. Jak działa rezonator kwarcowy? Proszę o dokładny opis.

4. Czy jeśli nie będę miał układu HCT to nie będę mógł odłączyć programatora od mikrokontrolera gdy go już zaprogramuję?

5. Na tym zdjęciu ( http://mirley.firlej.org/files/Art_PierwszeProg_01.gif ) port LPT pokazany jest z jednej strony.

Portret użytkownika mirley

Re: Pytania

1. 0,25W i wszystkie takie mają byc w projektach na mojej stronie, chyba że obok napisałem np 2W
2 i 3. Rezonator kwarcowy stabilizuje częstotliwość, poczytaj sobie dokładnie http://pl.wikipedia.org/wiki/Rezonator_kwarcowy bez rezonatora na wewnętrznym taktowaniu częstotliwośc może się zmieniać co np przy robieniu zegara spowoduje dużą odchyłkę czasu
4. Prawdopodobnie tak chociaż zdarzyło mi sie że i tak musiałem odłączać programator.
5. Jak już mówiłem sugeruj sie tylko numerami wyprowadzeń (są napisane na wtyczce) bo symbol jest narysowany tak jak się mi akurat kreska zrobiła.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

Więc jeśli nie będę miał

Więc jeśli nie będę miał układu HCT to po zaprogramowaniu mikrokontrolera nie będę mógł odłączyć programatora od komputera? Dlaczego tak się dzieje? A jeśli nie miałbym tego układu to co się stanie gdy odłączę programator?

Portret użytkownika mirley

Re: Programowanie

Jeśli będziesz miał układ HCT to programator będzie (a przynajmniej powinien) odłączać się od uC po zaprogramowaniu. Zdażyło mi się tak źe programator się nie odpinał i musiałem go odłączać od uC. Jeśli nie będzie HCT to zrobi się taki kabelek ja tu jest opisany, w większości wypadków trzeba go odłączać jeśli chcesz wykorzystywać piny do których normalnie jest on podłączony. Tak jak już pisałem, zainwestuj kilkanaście złotych i zrób sobie USBASP'a z mojej strony. On zawsze się odłącza a dodatkowo jest na USB

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

Podstawka DIP28

Kupiłem Atmegę8 16-PU i nie mogę jej włożyć do podstawki DIP28. Rozumiem, że trzeba zagiąć nóżki. CZy przy zaginaniu mogą się złamać? Jak zaginać by było wszytko dobrze?

Portret użytkownika mirley

Re: DIP28

Można złamać nóżki ale musiałbyś się bardzo postarać. Ja poprostu chwytam układ z obu stron po długości, dociskam nóżkami płaską stroną do stołu i lekko przeginam wszystkie naraz. Tak samo z drugiej strony. możesz też użyc w ostateczności kombinerek lub pęsety.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

DIP28 i podłączenie programatora

Zagiąłem nóżki ale nie wchodzą one w podstawkę luźno. Czy mam na siłę je wepchać do styków? Może wystarczy delikatnie włożyć aby tylko piny dotykały styków? Dodam, że uC będę musiał raczej często wyciągać z podstawki programatora.

Czy ten schemat jest poprawnie wykonany?

Portret użytkownika AdMiNeK

Podstawka

U mnie układy w podstawkę wchodzą bardzo ciasno, i nic im nie jest :D
Podstawka jest tak zbudowana żeby układ siedział w niej solidnie przymocowany.
A schemat jest ok.

-

Pozdrawiam,
Michał

Portret użytkownika gosc

WinAVR

Czy programem WinAVR mogę przy pomocy tego programatora programować ATmegę8?

Portret użytkownika mirley

Re: programowanie

ATMEGA8 możesz zaprogramować tym programatorkiem ale czy będzie on działał w WinAVR to niestety niewiem, nigdy nie używałem tego programu.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

WinAVR

Czy mógłby Pan spróbować zaprogramować ATmegę8 WinAVR'em tym programatorem?

Portret użytkownika mirley

Re: WinAVR

Nie dam rady tego narazie sprawdzić bo w tym tygodniu będę tylko na chwilę w domu a nie posiadam ani WinAVR zainstalowanego ani tego programatora zrobionego. Skoro masz winAVR to prościej Ci będzie zlutować układ i sprawdzić. A jeśli chces zaprogramować gotowego hexa to wgraj go bascomem albo avrdude.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

WinAVR

A czy przy pomocy Bascoma lub AVRDude mogę zaprogramować ATmegę8 w języku C?

Portret użytkownika AdMiNeK

Bascom

Bascomem możesz o ile skompilujesz wcześniej program, a z plikiem wynikowym postąpić tak jak Mirek napisał w tym artykule.

-

Pozdrawiam,
Michał

Portret użytkownika gosc

Problem

Witam, mam nastepujacy problem. Programator zbudowalem na podstawie plytki uniwersalnej z zamiarem programowania tylko Attiny13. Programator to zlacze DB25M, 3 rezystorki 220R podlaczone do MOSI, RST, SCK oraz 2 rezystory polaczone rownolegle 470R do diody. Programator za zadnym razem nie chce odpalic :( Niestety, nie mam pojecia co jest z nim nie ta. Prosze o pomoc. Czy sprawca moze byc brak 1 rezystora na MISO lub za male rezystory? Non stop wyskakuje blad Could not indentify with ID:0000000 :(
Z gory dziekuje i pozdrawiam

Portret użytkownika AdMiNeK

Odp: Problem

Podłączyłeś zasilanie do procesora?

-

Pozdrawiam,
Michał

Portret użytkownika mirley

Re: Programowanie

Procesor jest zasilany +5V, a Masa jest podłaczona? Daj wszystkie jednakowe rezystory zgodnie ze schematem wyżej, porównaj wyprowadzenia attiny13 z karta katalogową i dobrze podłacz piny miso, mosi, sck, reset, gnd do procesora. Nie zapomnij o zasilaniu

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

Zasilanie jest z USB, i masa

Zasilanie jest z USB, i masa jest podlaczona. Niby wszystko wyglada jak nalezy ale cos jest nie tak. Czasem jak sprawdzam polaczenie testerem diod i lacze reset z zasilaniem, czyli pin 1 i 8 to dioda swieci, jak laczetesterem diod MOSI i GND, PB3,PB4, to dioda tylko mrugnie przy podlaczeniu, potem cisza... Prosze o pomoc i dziekuje za wskazowki
Pozdrawiam

Portret użytkownika mirley

Re: Programowanie

A czy twój LPT jest włączony w biosie, bo zdarzały się przypadki że był nieaktywny a wtedy nic nie zaprogramujesz?

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Rafol

Witajcie, chcę zrobić ten

Witajcie, chcę zrobić ten programator jedynie po to aby zaprogramować ATMEGA8 do programatora: "http://mirley.firlej.org/programator_na_usb_usbasp" Płytkę prowizoryczną, chcę wykonać (albo na uniwersalnej zrobić ). Tylko jak mam podłączyć ATMEGA8 do programatora ?

Portret użytkownika mirley

Re: Programowanie

To proste... ściągasz sobie kartę katalogową od procesora mega8 (na google "atmega8 +pdf"). Na drugiej stronie 2 jest rozpis wyprowadzeń dla obudowy DIP28. Odnajdziesz tam które piny to MOSI, MISO, SCK, GND, RST itd. Te piny podłącz do odpowiadających w złączu programatora (Patrz schemat wyżej). Nie zapomnij podłączyć zasilania 5V do wszystkich pinów VCC i masy do wszystkich GND.

Ps. Tak na marginesie jeśli chcesz zaprogramować USBASPA to zrób to bezpośrednio na jego płytce, podłączając programator w miejsce gdzie normalnie będzie wyjście na programowany procesor

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Rafol

No w sumie też tak mogłem

No w sumie też tak mogłem zrobić :D Ale nie pomyślałem. Na początku nie wiedziałem, że są takie karty katalogowe, jestem dopiero początkującym. No, ale tak, jeżeli zrobię, USBASPA i podstawkę programującą z twojej strony, to muszę oddzielne zasilanie doprowadzić do tego i do tego tak ? Czy mogę jedynie jednym kablem USB, zasilać to i to ?

Portret użytkownika mirley

Re: USBASP

USBASP został specjalnie tak pomyślany aby dało się go zaprogramować łatwo :) Jeśli zrobisz sobie podstawkę i USBSPA to po włączeniu go do portu USB będziesz mógł pobrać zasilanie z programatora do zasilania procesora w podstawce. USB podłączone do programatora zasila go, a sam programator ma złącze do zasilania programowanego układu (zasilanie to można wyłączyć za pomocą zworki na płytce).

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Rafol

USBASP

hmm... za trudno to na mój tępy umysł ^^
Czyli tak muszę dać dwa gniazda USB typu B. Jedno gniazdo posłuży jako zasilanie do programatora, a drugie jako zasilanie do podstawki. Zgadza się ?

Portret użytkownika mirley

Re: Programowanie

Nie.. Programator właczasz do kompa poprzez USB, a z programatora do podstawki. Jeden kabel idzie do USB a podstawka kradnie zasilanie z programatora.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Rafol

Ok

Okej, dzięki za pomoc :) Jutro będę trawił i lutował płytki : ) Zobaczymy co z tego wyjdzie. Procka już zaprogramowałem, łącząc go kabelkami z opornikami i wtyczką. Na początku wgrałem plik .hex a później zmieniłem bity i już się nie chciał włączyć, jest to wina braku kwarcu, tak ? Ale wszystko powinno się zaprogramować ?

Portret użytkownika Kondziu

Programator USB

Witam,
mam programator USB na płytce testowej kupionej na allegro(EvB 4.3) jaki typ programatora trzeba wybrać w Bascomie? Cały czas wyskakuje błąd (przy identyfikacji atmegi16) "Could not identify chip with ID:620030" Już drugi dzień się z tym męczę, próbowałem też i z drugą, taką samą płytką i nic, testowałem różne programy i też nie da się go zaprogramować a nawet wykryć...

PS. Mam zainstalowane sterowniki wirtualnego portu COM i Vistę 64 bit.

Portret użytkownika mirley

Re: Programowanie

W dokumentacji napisane jest jak dogadać się z płytką i co wybrać: http://www.and-tech.pl/instrukcje

Nigdy nie używałem takiej płytki ani takiego programatora więc będzie trochę zabawy. Poza tym bezpośrednio w bascomie może sie nie dać tego obsłużyć i konieczny będzie zabieg podobny do programatora USBASP (programowanie poprzez AVRDUDE) który opisuję na swojej stronie w dziale "Artykuły różne". Najpierw spróbował bym dogadać się z płytką poprzez AVRDUDE bezpośrednio z linii komend. Potem jak już zadziała to trzeba do bascoma odpowiednie parametry podać aby programowało z bascoma.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Kondziu

Programator USB

A więc po dokładnym przestudiowaniu wszystkich instrukcji doszedłem do momentu w którym niby procesor zaprogramowałem (korzystałem z instrukcji na http://www.and-tech.pl/EvB4.3/EvB-ISP.pdf) ale po wgraniu takiego programu:

$regfile = "m16def.dat"
$crystal = 100000                                           
Config Portc = Output
 Do
    Portc.0 = 0
    Waitms 350
    Portc.0 = 1
    Waitms 350
 Loop
End

i po podłączeniu wszystkiego na płytce nic się nie dzieje(dioda nie mruga) a program chyba jest jednak inny bo wcześniej był sterujący LCD a teraz jak podłączam go na odpowiednie piny nic nie ma na nim.

Portret użytkownika mirley

Re: Programowanie

Poczytaj sobie jeszcze tutaj... a jak to niby zaprogramowałeś procesor. Przecież powinieneś dostać komunikat czy wszystko poprawnie działa. Zapoznaj sie z opisem który podlinkowałem. Tam masz obsługę avrdude. W roli programatora wpisz ten który posiadasz.

Ps. możesz spróbować inny port podłączyć np port d lub a. Za konfiguracje portu użyj:

Config Portd = &B11111111 : Portd = &B11111111

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Kondziu

Programator USB

Próbowałem każdego wyjścia. Jak wgrywałem hex'a za pomocą programu z pdf to nie wyskoczył żaden błąd.
PS. w tym AVRDUDE mam problem ze ścieżką do pliku *.hex i czytałem też na innych stronach jak powinno to wyglądać i nadal program nie może go odnaleźć...

Portret użytkownika mirley

Re: programowanie

Skopiuj plik hex do tego samego katalogu co masz avrdude i potem wywołuj bez ścieżki a tylko z nazwą pliku. Jeśli problemy będą nadal to spróbuj wgrać inny hex bo ten może być uszkodzony wcześniejszymi kombinacjami.

Poza tym wygląda na to że komunikacja jest poprawna

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.