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 mirley

Re: Usbasp

Należy pamiętać że nie ma czegoś takiego jak "podłączyłem wszystko na 100% a nie działa". Jek jest wszystko dobrze na 100% to wtedy działa :)

Ps. Kabel USB 2.0 nie jest konieczny. Jak pisałem już wcześniej USBasp działa poprawnie podłączony do huba 1.0 na 1,5m kablu + dodatkowy kabel (byle jaki) od huba do programatora (testowałem tak). USBAsp działa w standardzie "Low Speed" (1,5Mb/s), więc przebiegi sygnałów mają częstotliwość tylko 1,5MHz.

-

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 mosfet

konfiguracja Bascom

Witaj u mnie jest ten sam problem co u kolegi i jak daje read fuses to coś robi ale po chwili stwierdza że:
avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: AVR device initialized and ready to accept instructions
avrdude.exe: Device signature = 0xffffff
avrdude.exe: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check
Wszystko mam połączone jak należy programator podpięty do atmegi8 (zestaw uruchomieniowy ZL2AVR) jest też kwarc zewnętrzny 8MHz. Wcześniej używałem programatora AVR Prog i nie miałem problemów i nie musiałem tyle ustawiać i używać jakiś nakładek nie mówiąć już o tych parametrze w Bascomie. No i co ustawić w zakładce Other jaki Program? Avrdude.exe, start.bat(który nie działa z Bascoma) czy jeszcze coś innego?

Portret użytkownika mirley

Re: Programowanie

Te wszystkie ustawienia nie są skomplikowane, wystarczy przeczytać :) Napisałem to już na stronie wcześniej (jak ustawić bascoma do współpracy a avrdude i jak ustawić Burn-O-Mat'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 Bartek

Witam! Problemów ciąg

Witam!

Problemów ciąg dalszy :(
Otóż... Z połączeniami się uporałem i przestrzegam innych że w atmega8 MOSI jest na wcześniejszej nóżce niż MISO a nie dalej :D

No ale teraz programator klepie mi jakieś pierdoły... Zdjęcie LCD w wyświetlanym wynikiem

Zdjęcia układu:
ONE
TWO

Zdjęcia programatora:
ONE
TWO

Proszę o pomoc :(
Program w procku to programik z projektu timera foto. Na wyświetlaczu powinien być "tekst startowy".

Pozdrawiam!

Portret użytkownika mirley

Re: Timerek-Problemy

Po pierwsze z podłączeniem dowolnego procesora nigdy nie ma problemu jeśli przeczyta się 2-3 strony karty katalogowej :)

Żeby sprawdzić co się "krzaczy" na LCD należy sprawdzić dokładnie czy jest połączenie od końca tasiemki na której masz LCD do podstawki z procesorem. Sprawdzić należy również czy żaden z pinów nie jest zwarty do masy. Ostatnio miałem podobne problemy bo się ścieżka nadtrawiła i nie było połączenia

-

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 Mariusz

Siemka

hej mam 15 lat kończę gimnazjum mam zamiar kontynuować nauke w technikum na kierunku "technik mechatronik" mikrokontrolery na pewno będa przerabiane jednak programowanie ich i obsługa chyba łatwa nie jest i chciał bym jeszcze przed pójściem do szkoły trochę sie na ten temat dowiedzić i "przygotowac". Wiem że to sporo pracy ale może mógł byś mi pomóc tzn może masz namiary na dobre artykuły dla zielonych poczatkujących które mógł byś mi wysłac na e-mail(skarpetki18@wp.pl - wiem że ty zobaczysz mój adrs ale podam tutaj może ktoś inny tez by mi pomógł) jesli znajdzie się rzyczliwy cżłowiek który mógł by mi napisac od poczatku jak zacząc. aha jelsi ktoś ma jakies artukuły bąd zna dobrą literaturę na ten temat (nie koniecznie podręczniki szkolne) jesli tak mógł by mi ktoś wysłac tytuł i autora na poczte z góry dziękuje

Portret użytkownika Bartłomiej Kobiałka

RE: Książki o AVR

Dobre książki:
http://allegro.pl/item543194873_mikrokontrolery_avr_programowanie_w_jez_...
http://allegro.pl/item540044580_mikrokontrolery_avr_w_praktyce.html

Tylko jeśli idziesz na mechatronika nie nastawiaj się za bardzo na mikroklocki... Przygotuj się raczej do fizyki i troszkę z działu elektryków... Czyli silniki, siłowniki... I na początku pewnie będziesz miał podstawy elektrotechniki... Wbrew pozorów na pocztku jest łatwo... Ale z czasem ten przedmiot staje się za bardzo upierdliwy ze względu na nawał teorii...
A mikroprocki idą gdzieś tam w daj i podejrzewam że garstkę o nich dostaniesz dopiero w 3 klasie ;)

Apropos... Nie lepsza elektronika? :)

Pozdrawiam!

Portret użytkownika Mariusz

...

dziekuje za pomoc co do elektroniki? hmm.... myslałem o tym jednakże mechatronika wydaje mi sie bardziej przyszłościowa i wydaje mi sie że programowanie bedzie w duzym stopniu poniewaz technik mechatronik zajmuje sie m.i.n programowaniem linji produkcyjnych i w ogóle wszystkiego co sterowane jest elektronicznie. z tego co mi wiadomo jest to połączenie 5 dziedzin techniki tzn.:
-mechaniki
-elektroniki
-automatyki
-robotyki
-informatyki
na pewno kierunek będzie trudny. Co do samego programowania układów scalonych po prostu sie tym interesuje i dla siebie nawet bym chciał posiadac taka wiedze. Elektronike tak jak mówiłem myślałem o tym do póki nie zobaczyłem mechatroniki i od tamtej pory wydaje mi się że to jednak będzie lepszy wybór

Portret użytkownika mirley

Początki

Świetna do nauki jest mikroprocesorowa ośla łączka prowazona w miesięczniku Elektronika Dla Wszystkich. Jeżeli znajdziesz gdzieś dostęp do numerów archiwalnych to polecam. Pierwszy raz AVR'ow uczylem się w oparciu o ten kurs.

Jeżeli chcesz się nauczyć programować mikrokontrolery to musisz się zabrać sam do pracy bo niestety w żadnej szkole za dużo się nie nauczysz z praktyki. Teoria jest ważna ale na dwóch równaniach nie zbudujesz urządzenia niestety

-

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 Mariusz

...

sorki że zaśmiecam wytłumacz mi jeszcze gdzie na ATTINY2313 znajduje sie pin VCC i GND na schemacie narysowan sa po bokach w normalnym ATTINY2313 jest 10 pinów po jednej i 10 po drugiej stronie na schemacie jest ineczej to sa rozumiem 2 skrajne zewnętrzne?

najlepiej chyba przy robieniu tego programatora będzie w miejsce ATTINY2313 (jesli robie na płutce drukowanej) wlutowac podstawke 20 pinowa i do niej wkładac mikroprocesorki? dobrze chyba mi sie wydaje

ale to i tak jeszcez poczeka z rok zanim sie połapie jako tako w temacie atmosfera jest tu bardzo miła przejrze sobie dokładnie twoją stronke i w razie czego moge zadac pytania? jelsi masz jakies miejse albo poczte to moze podaj żebym ci komentarzy nie zaśmiecał

Portret użytkownika mirley

Re: Początki

Wyprowadzenia na schematach prawie nigdy nie są poukładane tak jak w rzeczywistości w obudowie. Są za to podpisane numery wyprowadzeń, dzięki ktorym możesz zidentyfikować co jest gdzie podłączone w obudowie fizycznej. Zawsze należy patrzeć do karty katalogowej (jeszcze nikogo to nie zabiło a na pierwszych stronach jest wszystko najważniejsze napisane). Najważniejsze jest abyś poczytał sobie "mikroprocesorową oślą łączkę" z EdW a większość się wyjaśni. Napisz mi na maila a wtedy postaram się przysłać jakieś materiały. Mail znajdziesz u gory strony w zakładce kontakt.

-

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 Owner

Początki programowania

Witam
Dzięki za taki poradnik pomógł mi zaprogramować mi moją pierwszą ATmege 8. Lecz mam pewien problem otóż chciałem zaprogramować AT89S52 i tu już zaczęły się schody wyskakiwał mi błąd ID FFFFFF przy naciśnięciu F4 zamiast ID 0000000 ale naciskałem ok i wyskoczyło okienko do wpisania wsadu zrobiłem identify ponownie błąd ID FFFFFFF. Parę razy uruchomiłem ponownie bascoma i komputer wyjąłem włożyłem wtyczkę lpt zasilanie odłączałem, i parę razy zamiast błędu ID FFFFFF wyskoczył błąd ID 000000 po czym jak jeszcze raz nacisnąlem identify pojawił się błąd ID FFFFFF. Mam nadzieje ze dosć jasno opisałem sytuację czego może być to wina ?? Proszę o pomoc

Portret użytkownika mirley

Re: Programowanie

Po pierwsze z tego co mi się wydaje to AT89S52 jest z rodziny MCS-51 a zatem nie powinno się go programować w bascomie avr. Jest w ogóle tam w spisie procesorów obsługiwanych w bascom avr? Wydaje mi się że bascom avr obsługuje tylko Tiny, Mega i AT90 ale mogę się mylić. Powinieneś może spróbować w BASCOM 8051, w tym prędzej powinno zadziałać.

Nie programowałem nigdy programować tego mikrokontrolera, więc mogę się tylko domyślać co jest nie tak. Nie mam chwilowo dostępu do bascoma więc musisz zainstalować bascom 8051 ze strony producenta, najlepiej najnowszy. Sprawdzisz czy jest tam taki mikrokontroler na liście i wtedy się będzie kombinować co dalej.

Ten poradnik dotyczy mikrokontrolerów z rodziny AVR :)

-

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

Zasialnie.

Mam pytanie, dlaczego nie możemy Zasilić programatora i zarazem mikrokontrolera z portu LPT ?

Portret użytkownika mirley

Re: Programowanie

Port LPT nie ma zasilania wyprowadzonego i nie nadaje się do zasilania niczego, może poza diodą led

-

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 marol_pm

Programator USBTiny AVR ISP

Wyswietla mi sie takie cos:
http://img300.imageshack.us/my.php?image=avrdude.jpg

Wg opisu oznacza to ze programator dziala poprawnie lecz nie wykrywa podlaczonego uC, jak pozyczylem kupna plytke z Atmnega8, obraz niestety sie nie zmienil :(
Polaczenia przedzwonione, Atmege widzi inny programator!
To sprawka fuse bitow?

Portret użytkownika mirley

Re: Programowanie

Jak sam komunikat wskazuje są problemy z komunikacją:
1. Czy twój programator rozpoznawany jest w systemie poprawnie? Sterowniki zainstalowałeś?
2. Czy masz odpowiednią wersję avrdude obsługującą ten programator?

Jakby się nie mógł połączyć z mikrokontrolerem to by wystawił komunikat "Target doesn't answer" czy jakoś tak podobnie więc wydaje mi się że to wina programatora, jego sterowników lub avrdude

Znalazłem coś takiego, może się przyda: http://kociewie.republika.pl/usbtiny_mat/

-

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 marol_pm

Re: USBtiny AVR ISP

Właśnie wysłałeś mi moje materiały z których korzystałem,

instalacja.pdf - zrobiona i ładnie mi go wykrywa
avrdude.pdf - tez zrobione nie mialem podlaczonej Atmegi wiec wyswietlilo mi sie dokladnie to co tam pisze wiec robilem dalej

stk500.pdf - jak używać z AVRStudio- to nastepni zrobilem ale do 5 strony gdzie mialem:
W AVRStudio wybieramy: Tools-> Program AVR -> Connect (w mojej wersji avr studio Ver 4.10.356 mam tam podobne AVR Prog... po wlaczeniu na to wyskakuje mi Antyvirus i widzi tam trojana :()

Po zdobyciu Atmegi8, wrocilem do instrukcji avrdude.pdf i chcialem zobaczyc czy mi pokaze ten ostatni zrzut ekranu, i lipa

Programator robilem na podastawie tego:
http://www.elektroda.pl/rtvforum/viewtopic.php?t=1076468&highlight=

Portret użytkownika gosc

Czy taki błąd jest rzeczą

Czy taki błąd jest rzeczą normalną ?
http://img25.imageshack.us/my.php?image=programator.jpg
Wszystkie kable- podppięte prawidłowo.
Z tym,że od dówch różnych kabli drukarkowych : 26 żyłowych i 30 żyłowych- podłączając w/g numeracji : wykazuje różne napięcie. w- 1wszym kablu drukarkowym 26 zyłowym 0,23 Vdc na MOSI, MISO,SCK , na RESET i Vcc-5,12 V
Na 2-gim kablu 30 żyłowym: napięcie wynosi: MOSI, MISO,SCK,RESET,Vcc- 2,14 V.
W obydwu przypadkach, GND jest zastosowane.
Rezonator kwarcowy : 14, 324. Przy próbie wykrycia mikrokontrolera, wyskakuje błąd ID; FFFFF.
Masz jakieś propozycje ?

Portret użytkownika mirley

Re: Re: USBtiny AVR ISP

Jeśli piszesz że w systemie jest rozpoznawany dobrze, to testuj działanie pod samym avrdude. Po co na początku komplikować sobie życie. Do programatora podłacz procesor i wydając komendę w avrdude:

avrdude -p m8 -c usbtiny

odczytaj sygnaturę procesora. Jeśli pojdzie do dopiero drugim krokiem jest zabawa z dodatkowymi programami.

-

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 mirley

Re: Błąd Bascom

Taki błąd nie jest rzeczą normalną. Pierwszy raz go na oczy widzę i nikt inny o taki błąd mnie nie pytał.

Kilka uwag:

1. Jakiej wersji bascoma używasz? Pod jakim systemem operacyjnym? (Zainstaluj najnowszego)
2. Zamiast orginalnego kabla drukarkowego zalecam zrobić samodzielnie kabel (wtyczka DB25M + 1m kolorowej tasiemki). Unikniesz wszystkich problemów z kablem
3. Do zasilania mikrokontrolera wykorzystaj USB albo osobny zasilacz o napięciu 5V (z portu LPT nie da się nic zasilać)
4. Jeśli procesor jest nowy to do jego wykrycia nie jest konieczny kwarc. Będzie potrzebny jak przestawisz fusebity

-

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 marol_pm

USBtiny AVR ISP

Włączyłem programator, łądnie mi go wykryło,
Podpiety jest do Atmegi8
Wpisałem Twoją komende i wyrzuciło dokładnie to samo co wcześniej mi z tą komendą (avrdude -c usbtiny -p m8)

Portret użytkownika mirley

Re: USBtiny

Myślę że tu jest błąd w komunikacji. Sprawdź inną wersję avrdude. U mnie w pliku conf nie ma nawet programatora usbtiny. Wydaje mi się że powinien pojawić się taki wpis w konsoli po poprawnym odczycie uc:

avrdude: AVR device initialized and ready to accept instructions
 
Reading | ################################################## | 100% 0.02s
 
avrdude: Device signature = 0x1e910a
 
avrdude: safemode: Fuses OK
 
avrdude done.  Thank you.

Odczyt ten zrobilem na swoim USBAsp. Niestety skończyły mi się narazie pomysły co by z tym jeszcze zrobić

-

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 marol_pm

USBtiny

Tobie wyskoczyło wszystko jak należy :)

Ja podtepując zgodnie z instrukcja avrdude.pdf zainstalowoalem WinAVR-20060421-install.exe(taka chcieli wersje dokladnie bo z nowszymi byly problemy)
rozpakowałem usbtiny_win_avrdude5.3.1.zip (innej wersji nie mam tylko ta ktora jest podana w materialach) przegralem tam gdzie trzeba bylo

Ja tez sie dziwie, nie mialem podlaczonego i opis sie zgadzal ze jest nie podlaczony, szkoda ze teraz sie nie zgadza bo wszystko szlo super

Portret użytkownika mirley

Re: USBtiny

Mi wyskoczyły odpowiednie komunikaty ale ja mam inny programator USBAsb a nie USBtiny. Skopiowałem Ci wynik abys wiedział jak powinien wyglądać komunikat z avrdude. Na twoim miejscu zainstalował bym wszystko jeszcze raz od początku. Jeśli oczywiście da sie to wszystko bez problemu wyinstalować. Pamiętam jak kiedyś miałem problem z portem lpt bo zainstalowałem jakiś głupi sterownik i skończyło się wszystko na reinstalce systemu

-

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 marol_pm

USBtiny

To nic ze masz troszke inny, wg instrukcji w materialach avrdude.pdf na samym koncu jest zrzut ekranu, identyczny jak Twoj xD
Ja sprawdzalem wczesniej na starym kompie a pozniej na nowym, wiec na starym kompie mam "czysto" i chyba tam nie instalowalem sterownikow pod STK500 by go widzialo w AVRStudio i nie tworzylem wirtualnych portow COM, wiec sprawdze, jezeli wyskoczy dalej to samo, przedzwonie znowu wszystkie sciezki, ale mam pytanie czy to moze byc spowodowane zle zaprogramowanymi fuse bitami??

Za 1 razem mi wywalilo calkiem cos innego, ale patrzac do materialow plik bledy.pdf nalezalo wszystko podlaczyc od nowa tak jakby taki restarcik ukladu i wypalilo :)

Bylem juz pewny ze z podpietym uC juz nie bedzie problemu :)

Portret użytkownika mirley

Re: USBtiny

Jeśli masz taką możliwość to zaprogramuj uC do tego programatora w bascomie za pomocą tego prostego programatora na LPT, co tu został opisany. Ustaw jeszcze raz fusebity

-

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 adamrr

Witam. Udało mi się

Witam.
Udało mi się zaprogramować według pana wskazówek mikrokontroler attiny2313 ale nie umiem ustawić zewnętrznego oscylatora w fuse bits .Używam Bascom-a.
można prosić o pomoc.
dodam że kwarc to 4,3320mhz

Portret użytkownika marol_pm

USBtiny - mi tez sie udalo :)

Siedzialem z 3h przedzwonilem wszystko co sie dalo, programator sie zgadzal, kabel USB, kupny ukladzik pod plytke, analizowalem wyprowadzenia, schematy, Pana podstawka programujaca ma jeszcze dodatkowo rezystory, tutaj ich nie ma, ale w innych tez ich nie bylo, na koncu doszedlem do wniosku ze wszystko jest dobrze :) Odpalilem po tym "wymacaniu" programatora avrdude taka jak byla wczesniej i wielkie zaskoczenie...

http://img408.imageshack.us/my.php?image=test2m.jpg

Wreszcie moge podziwiac jak 2 kolorowa dioda sie pali na czerwono :D
Teraz trzeba to jakos zintegrowac z AVRStudio :)

Dziekuje za zainteresowanie tematem, napewno bede tutaj czesto siedzial, bo znajduja sie tutaj podstawka pod uC i modluly do plytek testowych ktore tez sobie zrobie :D Oraz mozna liczyc na wsparcie :)

Portret użytkownika mirley

Re: Bascom Fusebity

Fusebity powinny wyglądać tak jak rysunku poniżej, z tym że druga zaznaczona opcja powinna być ustawiona na 3-8MHz. W nawiasie powinny być wartości CKSEL3..0 = "1101" i SUT1..0 = "11"

-

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 mirley

Re: USBtiny

Dobrze że wszystko już działa. Odnośnie modułów do płytek testowych to mam w planie jedną dużą płytkę testową, zintegrowaną z programatorem na USB i wieloma dodatkowymi układami. Powinna mieć też możliwość włożenia dowolnego AVR'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 adamrr

Ślicznie dziękuje przeszło

Ślicznie dziękuje przeszło układ działa.
Na przyszłość mam jeszcze jedno pytanie czym się sugerować w ustawieniach Bascom Fusebity dla kwarca zewnętrznego, ewentualnie jaką lekturę pan zaproponować .
Pozdrawiam

Portret użytkownika mirley

Re: Fusy

Generalnie dla ATTiny2313 ustawienie jest zawsze takie same w prostych warunkach. Napisałem taki artykuł: http://mirley.firlej.org/fuse_bity_w_mikrokontrolerach_avr

Są tam zawarte podstawowe informacje o fusebitach popularnych mikrokontrolerów AVR. Przeważnie zawsze ustawiam tzw. Setup Time na powolny narost napięcia zasilającego a częstotliwość rezonatora w zależności od wlutowanego w układzie. Należy też pamiętać że niektóre mikrokontrolery mają dzielnik częstotliwości o którym łatwo zapomnieć

-

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 otóż wziąłem się

Mam pytanie otóż wziąłem się za budowę lampki RGB - oczywiśćie twojej :) CZy najpieew wydrukować płytkę wlutować kwarc ? czy wszystko ? czy może tylko kilka elementów i zaprogramować ? Jestem nowicjuszem, najpierw zrobiłem w oparciu o płytkę uniwersalną stk/200 zmodyfikowany przez autora. A na schemacie to GND to ma być wyprowadzenie pinów z wtyczki czy co bie nie rozumiem tego hmmm objaśnienia na schemacie.
Pozdrawiam

Portret użytkownika mirley

Re: Lampka RGB

Zlutuj wszystko a potem zaprogramuj a potem zaprogramuj mikrokontroler (nie zapominając o fusebitach).

Odnośnie GND to nie rozumiem pytania, ale myśle że chodzi o punkty oznaczone czarną kreską i napisem "GND". Mają one być podłączone razem do siebie. Podobnie jest z punktami VCC (Odpowiednie połączenia są już zrealizowane na płytce lampki)

Ps. To pytanie powinno być pod opisem lampki RGB a nie tutaj. Następne pytania o lampkę umieszczaj pod nią.

-

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

ok dziękuje. Jeszcze tylko

ok dziękuje. Jeszcze tylko takie pytanie: w sumie ten kabel programujący składa się z kabla, 3 oporników, wtyczki i obudowy ? :) A ja sie męczyłem z stk 200 a na końcu i tak nie działa... :(

Portret użytkownika mirley

Re: Programowanie

W zasadzie to nie do końca bo składa się z 4 rezystorów a nie trzech :) i obudowa jest niepotrzebna do działania :)

STK200 jest dobrym programatorem i ma kilka zalet nad tym prostym "drutem" programującym, między innymi posiada bufor HCT na wyjściu, odcinający procesor od komputera po zakończeniu programowania.

-

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

Małe sprostowanie.

Na stronach bascooma, jest plik do pobrania bascom:help-
A w nim parę układów programatora, jest identyczny jak twój, z kablem LPT 3 rezystorami , kondesatorem ( opcjonalnie) + kwarc (opcjonalnie) .Z tą różnicą, że podają tam kabel db25F- i takie same wyjścia.
http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=86&Itemid=54
Mam zatem pytanie, czy to ma jakieś znaczenie ? I stanowi istotną różnicę ?

Portret użytkownika gosc

Tak "cyferówka" oczywiście 4.

Tak "cyferówka" oczywiście 4. :) W takim razie zabieram się do roboty.

Portret użytkownika misza

Attiny 2313 problem

Witam zaczynam przygode z uC AVR-zrobiłem prosty układzik z diodą przez rezystor do plusa.
załączenie sw1 ma zapalić diode a sw2 zgasić (sw -swicze).Programator STK200 programy bascom i ponyprog.
Założeniem jest że układ ma pracować na wewnętrznym oscylatorze 1mhz-program mam gotowca.z forum dioda.pl
Z tego co wyczytałem fabrycznie jak sie nie rusza fuse bitów to at2313 ma pracować na 1mhz wew.
jedyny błąd jaki popełniłem to podanie na układ odwrotnie włożony do podstawki napięcia czy mogło go to uszkodzić?
ale bascom wykrywa go ok veryfikacja po wgraniu też ok.
Zapomoc z góry dziękuję pozdrawiam misza

Portret użytkownika mirley

Re: ATtiny2313

Podłączenie na odwrót mikrokontrolera w podstawce to częsty przypadek rozespanego elektronika :) Nie powinno się jednak nic stać. Przeważnie uC to odporne układy. Jeśli bascom go wykrywa to jest wszystko w porządku. Możne jeszcze zaprogramować zmianę stanów logicznych na wszystkich portach i sprawdzić czy żaden pin nie jest uszkodzony, ale jest to mało prawdopodobne. Osobiscie jeszcze nie udało mi się spalić mikrokontrolera :)

Odnosnie fabrycznego mikrokontrolera Tiny2313 to zaraz po kupieniu pracuje on na oscylatorze 8MHz z podziałem przez 8 co daje w efekcie 1MHz. Tak też należy ustawić w kompilatorze aby program działał poprawnie.

-

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 misza

witam dzięki za odpowiedź

witam dzięki za odpowiedź może przybliże co i jak
program:

    $regfile = "attiny2313.dat"                 'najpierw określamy typ proca
    $crystal = 1000000                          
 
    config portb=input                          'port b  jako wejścia
           portb=&B00000000                     'wszędzie stan spoczynkowy-0
    config portd=output                         'pprt d jako wyjścia
           portd=&B0000000                      'wszędzie stan spoczynkowy-0
 
     do                                         'pętla nieskończona
       if pinb.0=1 then                         'jeżeli przycisk 1 wciśnięty
       portd.0=1                                'zapal diode
       elseif pinb.1=1 then                     'jeżeli przycisk 2 wciśnięty
       portd.0=0                                'zgaś diodę
       endif                                    'koniec bloku warunkowego
     loop                                       'koniec pętli
 
    end                                         'koniec programu

www.dioda.com.pl forumviewtopic.php?t=1091 to link do schematu
moja zmiana w schemacie to że diode podp.katodą do wyp uC a przez opór do +
i na switche "-" zamiast Vcc.
Chodzi mi o to żeby najpierw coś wgrać i zobaczeć ,że działa-a potem samemu wziąść sie za pisanie
Ale jak narazie nie chce mi to odpalić(a może jakiś screen ustawień fusebit na wew.oscylator)
Za pomoc z góry dziękuję pozdro

Portret użytkownika mirley

Re: Pierwszy Program

Fusebitami narazie się nie przejmuj bo taki program i tak będzie działał a konfiguracja jest dobra. W pętli głównej wpisz:

     do    
       Waitms 250                                 
       portd.0 = not portd.0                               
     loop  

Zrobi to miganie diody. Jak to pójdzie to dopiero zajmij się resztą. Ten program co podałeś jest kiepski bo brakuje mu opoźnień po sprawdzaniu stanu pinu. Wstam tam jakiś:

Waitms 50

Pamiętaj że twoja dioda zapali się stanem niskim, jeśli podłączyłeś ją tak jak piszesz.

Ps. Używaj znaczników dla kodu źródłowego

-

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 Atmega32

witam, rowniez rozpoczynam

witam, rowniez rozpoczynam zabawe z AVR, zrobiłem wszystko jak w instrukcji, wpisuje w konsoli :
avrdude -p m32 -c usbasp -U flash:r:program.hex
i avrdude zaczyna czytac uP , na dole pokazane jest reading w procentach, ale po niewielkim postepie w czytaniu procesora przerywa i wyskakuje błąd :
error:wrong reading bytes b8
ma ktoś moze jakis pomysł ?
[img]C:\Documents and Settings\Spider\Pulpit\avr.jpg[/img]

Portret użytkownika grizz

obrazka z Twojego komputera

obrazka z Twojego komputera nie zobaczymy... wrzuc go na jakiś serwer np. wstaw.org, albo imageshack.us

Portret użytkownika Atmega32

http://img10.imageshack.us/im

http://img10.imageshack.us/img10/7972/avr.jpg

przepraszam,pierwszy raz używam takiego forum :)

Portret użytkownika mirley

Re: ATMEGA32

A próbowałeś najpierw coś wgrać do mikrokontrolera? Jest to nowy układ, czy był juz gdzieś używany?

-

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 Atmega32

Jest tam wgrany prosty

Jest tam wgrany prosty programik do świecenia diodami, dziwi mnie to ze ten blad wyskakuje przy roznym postepie, raz przy 0% a raz przy 3 lub 10%.

Portret użytkownika mirley

Re: MEGA32

Weź innego M32 i wgraj do niego program. Potem spróbuj odczytać czy zadziała. Jeśli nie potrzebujesz dokładnie tego kodu do świecenia diodami to skasuj ten uC co masz i wgraj do niego coś innego

-

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

atmega8

Witam!
na schemacie podłączenia portu lpt jako programującego mamy wyprowadzenia dla procesora ATTINY231.
Moje pytanie brzmi: Czy do atmegi8 będzie takie samo podłączenie? Proszę wybaczyć takie pytania ale jeśli chodzi o uC to dopiero "raczkuje".
z góry dzięki za odpowiedź! Pozdrawiam.