Programowanie Mikrokontrolerów w AVRDude


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

Artykuł ten ma rozjaśnić programowanie mikrokontrolerów AVR w programie AVRDude, ten darmowy i znakomity program obsługuje wiele programatorów (np. USBAsp, STK200/300, STK500, Bascom SAMPLE Cable itp) a ponadto jest darmowy i pracuje bezproblemowo pod Linuxem i Windowsem, co jest jego ogromną zaletą. AVRDude jest programem konsolowym (tekstowym) jednak posiada wiele nakładek graficznych ułatwiających pracę.

1. Instalacja AVRdude i praca w trybie tekstowym

AVRDude pod Windowsem nie wymaga instalacji a jedynie ściągnięcia i rozpakowania archiwum do określonego folderu (najlepiej C:\Program Files\avrdude). Wersja której ja używam (5.5) znajduje się tutaj, natomiast najnowszych wersji można poszukać na stronie http://mirror.lihnidos.org/GNU/savannah/avrdude/ . Pod Linuxem instalacja sprowadza się do zainstalowania specjalnej paczki dla mikrokontrolerów AVR (przynajmniej tak jest pod ArchLinux i Ubuntu). Dalsza część opisu dotyczyć będzie pracy pod Windowsem, gdyż pod systemem Linux ten tryb pracy jest wszystkim dobrze znany a komendy w konsoli dla AVRDude są identyczne.

Uruchamiamy konsolę wpisując cmd w linii poleceń (Start->Uruchom) i przechodzimy do folderu w którym mamy AVRDude (domyślnie jest to C:\Program Files\avrdude). Powinno to wyglądać tak:

Jesteśmy teraz przygotowani do pracy. Po wpisaniu w konsoli avrdude bez żadnych parametrów program wyrzuca listę dostępnych poleceń:

C:\Program Files\avrdude>avrdude
Usage: avrdude [options]
Options:
  -p <partno>                Required. Specify AVR device.
  -b <baudrate>              Override RS-232 baud rate.
  -B <bitclock>              Specify JTAG/STK500v2 bit clock period (us).
  -C <config-file>           Specify location of configuration file.
  -c <programmer>            Specify programmer type.
  -D                         Disable auto erase for flash memory
  -i <delay>                 ISP Clock Delay [in microseconds]
  -P <port>                  Specify connection port.
  -F                         Override invalid signature check.
  -e                         Perform a chip erase.
  -O                         Perform RC oscillator calibration (see AVR053).
  -U <memtype>:r|w|v:<filename>[:format]
                             Memory operation specification.
                             Multiple -U options are allowed, each request
                             is performed in the order specified.
  -n                         Do not write anything to the device.
  -V                         Do not verify.
  -u                         Disable safemode, default when running from a script.
  -s                         Silent safemode operation, will not ask you if
                             fuses should be changed back.
  -t                         Enter terminal mode.
  -E <exitspec>[,<exitspec>] List programmer exit specifications.
  -y                         Count # erase cycles in EEPROM.
  -Y <number>                Initialize erase cycle # in EEPROM.
  -v                         Verbose output. -v -v for more.
  -q                         Quell progress output. -q -q for less.
  -?                         Display this usage.
 
avrdude project: <URL:http://savannah.nongnu.org/projects/avrdude>

Wykonujemy teraz proste polecenie pozwalające na sprawdzenie komunikacji między procesorem a komputerem:

avrdude -c usbasp -p t2313

Oczywiście uprzednio programator musi być podłączony do komputera a procesor do programatora. Zasilanie całości musi być włączone (procesora i ewentualnie programatora jeśli tego wymaga). Polecenie to nie wgrywa nic do procesora ale odczytuje jego sygnaturę, co pozwala sprawdzić czy komunikacja przebiega prawidłowo. Składnia tego polecenia wygląda następująco:

avrdude -c {programator} -p {typ procesora}

Nazwy kodowe procesorów i programatorów jakie obsługuje AVRDude przedstawione są na końcu tego rozdziału. Gdy programator jest podłączony do komputera i procesor ma podłączone zasilanie to powinniśmy otrzymać następujący wynik:

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

gdy natomiast występuje problem z komunikacją to dostaniemy następujący komunikat:

avrdude: error: programm enable: target doesn't answer. 1
avrdude: AVR device initialized and ready to accept instructions
 
Reading | ################################################## | 100% 0.02s
 
avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

Jeśli otrzymujesz dowolny komunikat o błędzie to nie wykonuj dalszych poleceń bo jest to bez sensu. Jeśli natomiast wszystko przebiega zgodnie z opisem to można przystąpić do wgrywania programu to mikrokontrolera. Odczyt programu z pamięci mikrokontrolera do pliku *.hex następuje po wykonaniu polecenia:

avrdude -c usbasp -p t2313 -U flash:r:program.hex

Natomiast zapis programu z pliku *.hex do pamięci mikrokontrolera dokonujemy za pomocą:

avrdude -c usbasp -p t2313 -U flash:w:program.hex

Możliwe jest jeszcze ustawienie fusebitów z poziomu konsoli tekstowej ale nie zalecam tej metody(o wiele łatwiej dokonać tego w programie graficznym) gdyż nie jest to zadanie dla początkujących. Jednak gdyby ktoś bardzo chciał to można dokonać ustawień za pomocą komendy:

avrdude -c usbasp -p t2313 -U hfuse:w:0x{wartość}:m -U lfuse:w:0x{wartość}:m 

Gdzie pola wartość to liczby heksadecymalne przedstawiające stan rejestrów hfuse i lfuse mikrokontrolera. Wartości te można obliczyć na podstawie karty katalogowej mikrokontrolera(ale to tylko dla ambitnych)

Poniżej przedstawione są programatory obsługiwane przez AVRDude:

dasa3 = serial port banging, reset=!dtr sck=rts mosi=txd miso=cts
dasa = serial port banging, reset=rts sck=dtr mosi=txd miso=cts
siprog = Lancos SI-Prog
ponyser = design ponyprog serial, reset=!txd sck=rts mosi=dtr miso=cts
frank-stk200 = Frank STK200
blaster = Altera ByteBlaster
ere-isp-avr = ERE ISP-AVR
atisp = AT-ISP V1.1 programming cable for AVR-SDK1 from
dapa = Direct AVR Parallel Access cable
xil = Xilinx JTAG cable
futurlec = Futurlec.com programming cable.
abcmini = ABCmini Board, aka Dick Smith HOTCHIP
picoweb = Picoweb Programming Cable, http://www.picoweb.net/
sp12 = Steve Bolt's Programmer
alf = Nightshade ALF-PgmAVR, http://nightshade.homeip.net/
bascom = Bascom SAMPLE programming cable
dt006 = Dontronics DT006
pony-stk200 = Pony Prog STK200
stk200 = STK200
bsd = Brian Dean's Programmer, http://www.bsdhome.com/avrdude/
pavr = Jason Kyle's pAVR Serial Programmer
dragon_dw = Atmel AVR Dragon in debugWire mode
dragon_hvsp = Atmel AVR Dragon in HVSP mode
dragon_pp = Atmel AVR Dragon in PP mode
dragon_isp = Atmel AVR Dragon in ISP mode
dragon_jtag = Atmel AVR Dragon in JTAG mode
jtag2dw = Atmel JTAG ICE mkII in debugWire mode
jtag2isp = Atmel JTAG ICE mkII in ISP mode
jtag2 = Atmel JTAG ICE mkII
jtag2fast = Atmel JTAG ICE mkII
jtag2slow = Atmel JTAG ICE mkII
jtagmkII = Atmel JTAG ICE mkII
jtag1slow = Atmel JTAG ICE (mkI)
jtag1 = Atmel JTAG ICE (mkI)
jtagmkI = Atmel JTAG ICE (mkI)
avr911 = Atmel AppNote AVR911 AVROSP
avr109 = Atmel AppNote AVR109 Boot Loader
butterfly = Atmel Butterfly Development Board
usbasp = USBasp, http://www.fischl.de/usbasp/
avr910 = Atmel Low Cost Serial Programmer
stk500hvsp = Atmel STK500 V2 in high-voltage serial programming mode
stk500pp = Atmel STK500 V2 in parallel programming mode
stk500v2 = Atmel STK500 Version 2.x firmware (DualAVR)
stk500v1 = Atmel STK500 Version 1.x firmware
stk500 = Atmel STK500
avrisp2 = Atmel AVR ISP mkII
avrispmkII = Atmel AVR ISP mkII
avrispv2 = Atmel AVR ISP V2
avrisp = Atmel AVR ISP

oraz nazwy procesorów używane przez AVRDude:

m6450 = ATMEGA6450
m3250 = ATMEGA3250
m645 = ATMEGA645
usb1287 = AT90USB1287
usb1286 = AT90USB1286
usb647 = AT90USB647
usb646 = AT90USB646
t84 = ATtiny84
t44 = ATtiny44
t24 = ATtiny24
m2561 = ATMEGA2561
m2560 = ATMEGA2560
m1281 = ATMEGA1281
m1280 = ATMEGA1280
m640 = ATMEGA640
t85 = ATtiny85
t45 = ATtiny45
t25 = ATtiny25
pwm3 = AT90PWM3
pwm2 = AT90PWM2
t2313 = ATtiny2313
m168 = ATMEGA168
m88 = ATMEGA88
m48 = ATMEGA48
t861 = ATTINY861
t461 = ATTINY461
t261 = ATTINY261
t26 = ATTINY26
m8535 = ATMEGA8535
m8515 = ATMEGA8515
m8 = ATMEGA8
m161 = ATMEGA161
m32 = ATMEGA32
m6490 = ATMEGA6490
m649 = ATMEGA649
m3290 = ATMEGA3290
m329 = ATMEGA329
m169 = ATMEGA169
m163 = ATMEGA163
m162 = ATMEGA162
m644 = ATMEGA644
m324 = ATMEGA324
m164 = ATMEGA164
m16 = ATMEGA16
c128 = AT90CAN128
m128 = ATMEGA128
m64 = ATMEGA64
m103 = ATMEGA103
8535 = AT90S8535
8515 = AT90S8515
4434 = AT90S4434
4433 = AT90S4433
2343 = AT90S2343
2333 = AT90S2333
2313 = AT90S2313
4414 = AT90S4414
1200 = AT90S1200
t15 = ATtiny15
t13 = ATtiny13
t12 = ATtiny12
t11 = ATtiny11

2. Instalacja i Konfiguracja Burn-O-Mat'a

AVRDude jest bardzo dobrym programem jednak jego obsługa z poziomu konsoli tekstowej może wydawać się skomplikowana. Dlatego wykorzystuje się nakładki graficzne na AVRDude (programy generujące polecenia dla AVRDude) ułatwiające pracę z tym programem. Jedną z nich jest Burn-O-Mat, polecam go ponieważ obsługa jest bardzo intuicyjna a ustawienia Fusebitów banalne. Program można pobrać tutaj. Znajduje się tam wersja w postaci instalatora Windows albo spakowany program w formacie *.zip (Ta wersja działa również pod Linuxem a uruchamianie następuje poprzez znajdujący się tam skrypt powłoki, lub bezpośrednio z konsoli za pomocą Java). Program Burn-O-Mat napisany jest w Javie, więc wymaga zainstalowania pakietu JRE (http://java.sun.com/javase/downloads/index.jsp).

Po zainstalowaniu lub wypakowaniu programu, uruchamiamy go, powinno to wyglądać jak na rysunku poniżej:



Zanim zaczniemy programować mikrokontroler musimy dokonać kilku ustawień w menu Settings->AVRDUDE (bez tego nic nie zaprogramujemy), ale o tym za chwilę. W głównym oknie znajduje się jeszcze pole do wyboru typu mikrokontrolera AVR Type i przycisk wywołujący okno ustawień jego fusebitów (Fuses), jednak o tym powiemy na samym końcu. Tutaj znajdują się jeszcze funkcje umożliwaijące zaprogramowanie pamięci programu (Flash) i pamięci EEPROM mikrokontrolera. Aby zaprogramować procesor wystarczy wybrać plik *.hex z dysku za pomocą przycisku File i kliknąć przycisk Write, weryfikacja poprawności zapisanych danych odbywa się po wciśnięciu Verify, a odczyt danych z mikrokontrolera po klinięciu Read. Analogicznie sprawa wygląda podczas programowania pamięci EEPROM, tylko że służą do tego odpowiednie przyciski w sekcji EEPROM, a dodatkowo można też wgrywać plik *.eep wygenerowany przez Bascom'a. Główne okno programu zawiera jeszcze pole tekstowe, w którym można podglądać parametry z jakimi program Burn-O-Mat wywołuje AVRDude i jego odpowiedzi.

Ustawień programu, jak już wcześniej mówiłem dokonujemy wybierając z menu Settings->AVRDUDE, musimy tego dokonać zanim przystapimy do programowania. Okno ustawień wygląda następująco:



Na samym początku wybieramy ścieżkę dostępu do programu AVRDude (avrdude.exe) i do jego pliku konfiguracyjnego (avrdude.conf), po czym klikamy Apply i uruchamiamy ponownie program Burn-O-Mat aby mogły się wczytać ustawienia i typy programatorów z pliku konfiguracyjnego AVRDude. Po ponownym uruchomieniu programu wchodzimy do ustawień i tym razem konfigurujemy typ programatora (Programmer) i port do którego jest podłączony (nie wszystkie programatory wymagają ustawienia portu, np USBASP, którego sam używam tego nie wymaga). Poniższe opcje, możliwe do zaznaczenia, pozostawiamy odznaczone (tak jak na rysunku wyżej). Na samym dole mamy jeszcze możliwość dopisać ręcznie do AVRDude dodatkowe parametry wywołania (additional options), jednak pozostawmy to pole puste, gdyż nie jest to wymagane. Po tych czynnościach klikamy Apply okceptując ustawienia.

W oknie głównym programu za pomocą przycisku Fuses przechodzimy do ustawień fusebitów (bitów konfiguracyjnych) mikrokontrolera. Widzimy następujące okno:

U góry okna począwszy od lewej mamy przyciski umożliwiające: Odczyt fusebitów (read fuses), Zapis fusebitów (write fuses), weryfikacje ustawień (verify fuses) oraz Reset do wartości domyślnych (reset to default). Poniżej znajdują się zakładki umożliwiające ustawienie Fusebitów różnymi sposobami, nas bedzie interesowała pierwsza zakładka (Fuse Editor) pozwalająca konfigurować pojedyńcze bity i ewentualnie druga (Fuse Hex Editor) pozwalająca wpisywać wartości szesnastkowo. Zakładki te są ze sobą powiązane i zmiana wartości w jednej zmienia wartości w drugiej. Na zakładce pierwszej widzimy tabelkę z pojedyńczymi bitami, tych zaznaczonych na czerwono nie można przestawiać, gdyż nieumiejętne wpisanie złej wartości może zablokować dalszą możliwość programowania procesora (zmiana trybu Mode:normal na Mode:expert u góry okna pozwala ustawiać wszystko). Tabela z bitami konfoguracyjnymi jest dla każdego mikrokontrolera inna a dokładny opis wszystkich bitów znajduje się w karcie katalogowej danego mikrokontrolera. Podstawowe ustawienia dla najczęściej używanych mikrokontrolerów przedstawiłem w opisie tutaj. Należy pamiętać że zaprogramowany bit to bit o wartości 0, czyli zaznaczenie "ptaszkiem" bitu nadaje mu wartość 0 (jest to napisane w programie pod tabelką). Dla przykładu gdy mamy ustawić np. CKSEL=0100, SUT=10 i CKDIV8=0 to znaczy że zaznaczmy bity CKSEL0, CKSEL1, CKSEL3, SUT0, CKDIV8 a odznaczmy CKSEL2 i SUT1 (widok powyżej na zdjęciu)

Konfigurację Fusebitów dobrze jest wykonać w następującej kolejności: Najpierw odczytujemy wcześniejsze ustawienia za pomocą przycisku read fuses, potem jeśli operacja nie wygeneruje błędów to ustawiamy żądane wartości, na samym końcu klikamy write fuses. Należy pamiętać, że jeśli ustawimy sobie taktowanie (za pomocą bitów CKSEL) z zewnętrznego rezonatora kwarcowego to po kliknięciu write fuses procesor nie ruszy dopuki nie podłączymy takiego kwarca.


3. Konfiguracja Bascom AVR do współpracy z AVRDude

Pod Windowsem istnieje możliwość współpracy programu Bascom AVR z AVRDude. Aby to zrobić wykonujemy następujące czynności. Aby to zrobić wchodzimy do ustawień programatora w Bascomie (Options->Programmer). Okno ustawień powinno wyględać jak na rysunku poniżej:

W polu Programmer wybieramy Extrenal programmer. W części Other w polu Program wybieramy scieżkę do AVRDude, w polu Parameter wpisujemy:

"avrdude" -p m8 -c usbasp -U flash:w:"{FILE}":a -U flash:v:"{FILE}":a

oczywiście m8 jest typem aktualnie programowanego mikrokontrolera, a zamiast usbasp musimy podać nazwę naszego programatora (analogicznie jak jest to opisane w rozdziale pierwszym). Drobną niedogodnością jest konieczność przestawiania w opcjach Bascom'a typu mikrokontrolera na ten który aktualnie programujemy za każdym razem kiedy piszemy program pod inny mikrokontroler niż ostatnio, oraz tym sposobem nie są programowane Fusebity ani pamięć EEPROM mikrokontrolera. Mimo wszystko taka konfiguracja jest bardzo przydatna podczas testów nad nowym projektem, lub gdy programujemy płytke testową (wielokrotne programowanie tylko pamięci programu), bo pozwala w kilka sekund wrzucić program do procesora nie wychodząc z okna Bascoma (tylko na początku trzeba ustawić Fusebity w Burn-O-Mat).




Portret użytkownika modelarz

zdjecie do problemu

Portret użytkownika modelarz

odpowidz

już wiem co było źle o wyczytałem że jak się pierwszy raz programuje to trzeba włączyć zwore by programować o częstotliwości poniżej 2Mh.

Portret użytkownika roger

błąd dla AT90S2313

Po wpisaniu w konsoli komendy sprawdzenia podłączenia pokazuje mi się następujący error:

C:\...\avrdude>avrdude -c usbasp -p 2313
 
avrdude: AVR device initialized and ready to accept instructions
 
Reading | ################################################## | 100% 0.03s
 
avrdude: Device signature = 0x1e9101
avrdude: safemode: Verify error - unable to read fuse properly. Programmer may n
ot be reliable.
avrdude: safemode: To protect your AVR the programming will be aborted
 
avrdude done.  Thank you.

to jest AT90S2313 nie rozumiem dlaczego upomina sie o fusebity.
Co mam zrobić w takim przypadku?

Pozdrawiam

Portret użytkownika mirley

Re: Avrdude

Sprawdź opcję -F tylko pamiętaj że nie sprawdza wtedy sygnatury i jak byś zmienil procka na innego a w linii zostało 2313 to nie wiem co się stanie

-

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 roger

Re: Avrdude

Użyłem tej opcji ale nic sie nie zmieniło - dalej wyskakuje ten sam błąd.
Gdzieś natknąłem się, że avrdude w wersjach <=5.2-2 działają lepiej w tych przypadkach i nie pokazuje się ten błąd. Czy ma ktoś może wersją 5.1 lub 5.2-2 ewentualnie inną to bym spróbował na niej.

Mam plik .hex i kod w bascomie i chcę po prostu wgrać wsad do mk. W bascom avr też próbowałem ale potrzebowałbym pliku .bin (gdy robie Buffer -> Load from file). Natomiast gdy skompiluje program i następnie chce go wgrać to pojawia mi się error: "Division by zero".

Portret użytkownika mirley

Re: Hex

Bascom normalnie wgrywa pliki hex... wczytaj do bufora poprostu hex'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 roger

Re: Hex

Jak daje rozwiń w bascomie to tylko .bin moge wybrać.
Kod programu który mam skompiluję i stworzy mi się plik .bin także mogę go wybrać ale później pojawia mi się błąd "Division by zero". Już mi ręce opadają ehh... osiwieje

Portret użytkownika mirley

Re: Programowanie

Przy wyborze pliku zmień typ pliku na Intel HEX

-

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 gosccccc

Witam mam problem

Witam mam problem z
http://yuki-lab.jp/hw/avrdude-GUI/error-e.html
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.
Korzystam z usbasp (kupiony)adapter sam robiłem do at90s2313 i oto błąd.
Co zrobić?

Portret użytkownika mirley

Re: Avrdude

A co pokazuje samo polecenie

avrdude -c usbasp -p 2313 

bez zbędnych rzeczy....

Może to być brak zasilania podłączonego do procka, zwarcie lub nie podłączenie jakiegos pinu.... Może zworka S_SCK pomoże, powinna obniżyć taktowanie... ciężko powiedzieć. Akurat ten błąd może miec wiele różnych przyczyn...

Już ktoś wyżej pytał o AT90S2313, może to problem tego procka.... inne procki sie programują? sprawdzałes tiny2313?

-

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 roger

Re: Avrdude

U mnie to samo;
Zle dziala at90s2313 w bascom avr i avrdude.
Tylko w winavr działa wszystko ok.

Portret użytkownika maniek

Czy programami burn-o-mat i

Czy programami burn-o-mat i AVRdude można zaprogramować mikro-kontroler za pomocą podstawki twojego projektu czy ją czyta?? http://mirley.firlej.org/podstawka_programujaca

Portret użytkownika mirley

Re: AVRDUDE

można zaprogramować za pomocą podstawki i avrdude. W opisie wyżej masz informacje że obsługuje klasyczny kabelek jak z bascoma: "bascom = Bascom SAMPLE programming cable". Sam tego nie sprawdzałem

-

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 LM

Cześć mam taki oto

Cześć mam taki oto problem:avrdude.exe: no programmer has been specified on the command line or the config file lub avrdude.exe: error: no usb support. please compile again with libusb installed Walczę już z tym kawał czasu i już nie wiem co zrobić, dodam że biblioteki mam zainstalowane zgodnie z posiadaną wersją WinAvr (20100110).Programator jest na 100% dobry ponieważ już z niego korzystałem.W ogóle wszystko działało aż do reinstalacji windowsa i zainstalowania nowszej wersji WinAvr. Prosiłbym pokornie o jakąś podpowiedź, jak wskrzesić z powrotem programator.

Portret użytkownika LM

Udało mi się rozwiązać

Udało mi się rozwiązać problem więc pytanie jest nieważne. Z pomocą "przyszła" Elektroda.pl konkretnie ten temat http://www.elektroda.pl/rtvforum/viewtopic.php?t=1354542&highlight=
w przedstawionym tam programie jest wszystko co potrzebne do uruchomienia avr dude i usbasp. Pozdrawiam Łukasz

Portret użytkownika mirley

Re: AVRDUDE

W artykule wyżej podane jest dokładnie wszystko co trzeba do uruchomienia 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 gosc07

Mam pytanko: najpierw wgrywa

Mam pytanko: najpierw wgrywa się programik po wgraniu ustawia fusebity tak??

Portret użytkownika matrix

Re: pytanko o fusy

Quote:
Mam pytanko: najpierw wgrywa się programik po wgraniu ustawia fusebity tak??

Nie, najpierw ustawiasz fusy i dopiero wgrywasz program do procka.

Portret użytkownika mirley

Re: fusebity

Nie ma to dużego znaczenia ale lepiej jest zrobić to w kolejności jakiej podał kolega matrix

-

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 damian

problem

mam taki problem :
http://imageshack.us/photo/my-images/194/avrdde.png/

Jesetm początkujacy i nie wiem jak naprawic ten problem.

Portret użytkownika mirley

Re: programowanie

Jaki masz programator i jak to wszystko podłączyłeś? Wklej tu wywołanie avrdude, które wpisałeś do konsoli bo ze zdjęcia dokładnie nie widać

-

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 Damian

problem

po wpisaniu
avrdude -c usbasp -p t2313
wyskakuje mi takie cos
avrdude: error: could not find USB device "USBasp" with vid=016xc0 pid=0x5dc

ale wszystko jest podłaczone, programator z komputerem za pomoca kabla USB, oraz do programatora jest podpięta ATMEGA8

Portret użytkownika mirley

Re: Programowanie

To znaczy że usbasp nie działa poprawnie, nie znajduje odpowiedniego urządzenia w systemie. Twój usbasp na pewno 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 Damian

problem

Myslę ze tak, bo wyskakuje mi ze połączylo ale wyskakuje kreator zainstalowania urzadzenia, lecz proby instalacji bez pozytywnych skutkow.

Taki posiadam PRogramator:
http://allegro.pl/programator-avr-usb-podstawki-do-atmega-kabel-i1629409488.html

Wystarczy za pomoca kabla usb podlaczyc go do komputera. i chyba powinno ladnie dzialac tak?

Portret użytkownika Damian

problem

Myśle ze potrzebuje po prostu sterownika do tego,

Jesli by ktos mial sterownik do tego to prosilbym o wyslanie na e-mail

Portret użytkownika piotrus_pan

Witam, Mam pewien problem i

Witam,
Mam pewien problem i szukam jego rozwiązania. Sytuacja wygląda tak:
Zgrałem z mikrokontrolera atmega32 pamięć flash. Chcę ten zgrany program wgrać ponownie.
Problem jest taki, że oryginalnie na mikrokonontroler był wgrany bootloader a następnie poprzez rs232 program. Zgrywając z uC zgrałem całą pamięć flash.

Czy da się zgrać pamięć flash z uC bez sekcji, które zajmuje bootloader?
Czy da się wyodrębnić z pliku zgranego z uC program i osobno bootloader?
Jak inaczej rozwiązać mój problem?

Kody źródłowe do bootloadera posiadam, natomiast kodów do programu w wersji, która była wgrana na ten uC już niemam, a nie mogę tam wgrać nowszej wersji.
Pozdrawiam
Piotrek

Portret użytkownika Damian

Problem

Juz wiem co trzeba zrobic tylko nie wiem jak. mianowicie mam sterowniki, lecz musze przy nich ustawic fusebity.
Zależnie od użytego mikrokontrolera muszą to być:

# TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef
# TARGET=atmega48 HFUSE=0xdd LFUSE=0xff

Potem gdy Windows zechce sterowników, trzeba wskazać te, które zostały pobrane ze strony autora razem z plikiem .hex i innymi rzeczami.

No i nie wiem gdzie ustawic te fusebity. A i nie wiem ja wrzucic te pliki z .hex poniewaz przy instalacji sie nie da.

Tutaj jest to mniej wiecej opisane ale i tak nie wiem jak to zrobic http://www.elektroda.pl/rtvforum/topic648399.html .

I ogolnie gdy zainstaluje serwonik to w ,,cmd" pisze mi ze brakuje firmware, tylko nie wiem jak to wrzucic/zainstalowac

Portret użytkownika mirley

Re: Programator

jaki plik hex do programatora? po co? przecież kupiłeś gotowe urządzenie. Skoro wyskakuje prośba o sterowniki to znaczy że układ sprzętowy działa. Po prostu wskaż plik ze sterownikiem i zainstaluj. Popatrz do opisu na mojej stronie programatora USBASP. Tam maż napisane jakie sterownik i gdzie je znaleźć. Z drugiej strony skoro kupiłeś gotowy sprzęt to powinieneś dostać tez sterowniki do niego. Strona autora tego programatora http://www.fischl.de/usbasp/ Tam sa w razie czego potrzebne paczki.

----

Co do bootloadera to nie mam żadnego doświadczenia. Nie robiłem nigdy takich rzeczy

-

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 Damian

ok czaje, ,,Do

ok czaje,

,,Do mikrokontrolera należy załadować plik usbasp.atmega8.2006-12-29.hex znajdujący się w katalogu "/bin/firmware/". "

Załadowac?

Przy instalacji sterownika za pomoca kreatora , da sie zainstralowac tlyko bin/win-driver.

Wiec to zainstalowalem.
Po wpisaniu avrdude -c usbasp -p t2313

Wyskakuje
avrdude" warning" cannot set sck period.please check fos usbasp firmware uptade
-
acrdude: error: programm enable: target doesnt answer.
avrdude: initialization failed, rc=-1
Double check connections and ty again, or use -F to override this check
Avrdude done.Thank you

Portret użytkownika mirley

Re: Programator

No to teraz działa..... mówiłem. Nie musisz nic ładować do procka. Chyba że chcesz nowszą wersję to możesz sobie wgrać na własne ryzyko.... Ostrzeżenie pojawia się bo nowszy AVRDUDE chciałby sterować ustawieniem SLOW_SCK programowo... w starszych programatorach była zworka, ktora to robił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 piotrus_pan

Re Zgrywanie pamięci FLASH

Ok,
jak będę wiedział jak to zrobić to się pochwalę
Pozdrawiam
Piotrek

Portret użytkownika Damian

hmm jak działa, nie uzyskałem

To co musze zrobic zeby tego błedu mi nie pokazywało.

Musze zrobic zeby avrdude sterowało tym ustawieniem? Jesli tak to jak? a Jesli nie, to co zrobic zeby to naprawic?

Portret użytkownika mirley

Re: programowanie AVRDUDE

Musiał być wgrać najnowsze oprogramowanie do programatora tak jak mówi komunikat, jednak jeśli coś zepsujesz to wogóle nie będziesz miał programatora. Żeby wgrać hex do programatora potrzebujesz oczywiście inny programator.

Nie rozumiem co przeszkadza ci taki komunikat... szczególnie że z doświadczenia wiem że najnowszy soft do USBASPA działa gorzej.... zdarzyło mi się że ma trudności z wykrywaniem w kompie

-

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 Damian

aha, czyli ten komunikat nie

aha, czyli ten komunikat nie przeszkadza mi w zaprogramowaniu ? znaczy to co on tam wywoluje nie przeszkadza?

Portret użytkownika mirley

Re: Avrdude

Z tego co jest napisane to nie błąd tylko ostrzeżenie.... podłącz jakiegoś procka i sprawdź czy dział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 kiki

witam Nie wiem dla czego, ale

witam
Nie wiem dla czego, ale zawsze jak włączam avrdude, to wyskakuje:
C:\Program Files\avrdude>avrdude
Usage: avrdude [options]
Options:
-p Required. Specify AVR device.
-b Override RS-232 baud rate.
-B Specify JTAG/STK500v2 bit clock period (us).
-C Specify location of configuration file.
-c Specify programmer type.
-D Disable auto erase for flash memory
-i ISP Clock Delay [in microseconds]
-P Specify connection port.
-F Override invalid signature check.
-e Perform a chip erase.
-O Perform RC oscillator calibration (see AVR053).
-U :r|w|v:[:format]
Memory operation specification.
Multiple -U options are allowed, each request
is performed in the order specified.
-n Do not write anything to the device.
-V Do not verify.
-u Disable safemode, default when running from a script.
-s Silent safemode operation, will not ask you if
fuses should be changed back.
-t Enter terminal mode.
-E [,] List programmer exit specifications.
-y Count # erase cycles in EEPROM.
-Y Initialize erase cycle # in EEPROM.
-v Verbose output. -v -v for more.
-q Quell progress output. -q -q for less.
-? Display this usage.

avrdude project:
i zaraz okno znika. co może być przyczyną?

Portret użytkownika mirley

Re: AVRDUDE

Włączyłeś konsolę czy odpalasz przez kliknięcie?

-

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 kiki

witamJuż wiem w czym polegał

witam
Już wiem w czym polegał problem, bo ja próbowałem włączyć avrdude, a nie przez cmd :D. Już wszystko ok, łącze się z uc, tylko wytłumacz mi, dlaczego, jeżeli chce pobrać plik z tej strony http://www.instructables.com/id/LED-Cube-4x4x4/step9/Compile-and-program/ 4x4x4_ledcube.hex to zciąga mi się plik .tmp???? pomocy, bo tam mi nie chcą odpisać

-----------

ale dziwne jest to, że jeżeli wpiszę "avrdude -c usbasp -p m8" to jest taki komunikat

a jak wpiszę "avrdude -c usbasp -p m8 -U flash:r:program.hex" to wyskakuje taki kimunikat

to zamo z megą16, tylko wpisuję m16. Pomocy bo ja zawsze miałem niefarta do takich rzeczy.

Portret użytkownika mirley

Re: Programowanie

Program wygląda na dobry, sciągnij i zmień rozszerzenie na hex.

Komunikat bez odczytu programu jest jak najbardziej poprwawny. To że nie może ustawić SCk to wina tego że masz nowego avrdude i stary hex do programatora. Polecam jednak ten co na stronie bo nowszy robił mi problemy

Co do drugiego komunikatu to może to jest wina pustego procesora. Wgraj coś do niego najpierw a potem odczytuj. Szczerze mówiąc nigdy nie odczytywałem programu z procka. Zawsze tylko programuje

Ps. Nie rób tyle wpisów bo musze to wszystko potem układać. Zaloguj sie i klikaj edytuj na swoim poście jeśli chcesz coś zmienić a nie ma odpowiedzi

-

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 tomaszu

Mam programator USB AVR ISP

Mam programator USB AVR ISP III mkII (tryb HID, zasilanie z programatora), podpięty attiny 2313.

Quote:
C:\Users\tomaszu\Desktop\avrdude>avrdude -c avrispmkII -p t2313
avrdude: ser_open(): can't open device "com1": Nie mo?na odnalečŠ okreťlonego pliku.

Czemu woła o COM skoro połączony jest jako HID?

Portret użytkownika mirley

RE: Programator

A napewno nie masz wirtualnego coma? Wepnij programator do kompa jaki port widniej przy programatorze. Może trzeba wyspecyfikować przy poleceniu port np -P usb lub -P

-

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 tomaszu

Instaluje się jako

Instaluje się jako "Urządzenie wejściowe USB" i tam jest port Port_#0002.Hub_#0002

A wywołanie z -P usb wywala:
usbdev_open():did not find any USB device "usb"

Portret użytkownika kiki

witam Czy mogę zamiast

witam
Czy mogę zamiast pisaćCKSEL 3 = 0
CKSEL 2 = 1
CKSEL 1 = 0
CKSEL 0 = 0

napisać

avrdude -c usbasp -p t13 -U lfuse:w:0xE4:m
avrdude -c usbasp -p t13 -U hfuse:w:0xD9:m

tutaj jest strona : http://forumrc.alexba.eu/ipw-web/bulletin/bb/viewtopic.php?p=72550#72550

Portret użytkownika mirley

Re: fusy

Coś tu jest nie tak.... masz w wywołaniu usbaspa zaznaczony tiny13 a on przecież nie ma 4 bitów CKSEL tylko 2

-

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 kiki

no, to pisze KSEL 3 =

no, to pisze
KSEL 3 = 0
CKSEL 2 = 1
CKSEL 1 = 0
CKSEL 0 = 0

Portret użytkownika mirley

TIny 13

Nie rozumiesz co mówię... jak chcesz ustawić CKSEL3 i CKSEL2 w tiny 13 jak on nie ma tych bitów ! Popatrz do pdf'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 ivan

A co jeśli C:\dokument settings\User>

A co jeśli C:\dokument settings\User> i nie da się usunąć adresu a avrdude też nie widzi ?
to raczej jest na administratorze . jakieś koncepcje co mogę zmienić żeby odpalić avrdude ?

P.s. w burn o mat nie widzi pliku exe ani config :|

Portret użytkownika mirley

Re: avrdude

A gdzie ściągnałeś i rozpakowałes avrdude. Ja to zrobiłem na swoim kompie poprostu na C. Przechodzisz do folderu albo wpisując C: a potem "cd avrdude" gdzie avrdude to nazwa folderu z programem i jesteś już w odpowiednim folderze.

Popatrz do internetu na instrukcje dosowe i polecenia konsoli aby się w tym odnaleźć

-

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 ivan

dokładnie to było

dokładnie to było tak

C:\Documents and settings\User> * kolega bestboy21 pomogł mi na elektrodzie i podał komendę
"cd.." na wyście z foldera ( user'a i D&S )

C:\Documents and settings\User>cd..

C:\Documents and settings>cd..

C:\avrdude\avrdude***

***i tu też nie działało ale ściągnąłem po prostu inna wersje 5.8 gdzie był config i plik exe i załadowało się tak jak pisze tutaj w tym poradniku

a o to strona http://diy.elektroda.eu/programy/ ( tam jest nazwa avrdude 5.8 )

P.S.może to komuś pomoże =]

Portret użytkownika Luki

Witam, mam do zaprogramowania

Witam, mam do zaprogramowania robota z wbudowanym mikrokontrolerem ATmega 128, który był programowany do tej pory programatorem ISP za pomocą programu PonyProg przy włączonym zasilaniu całego układu. Z racji tego że proces programowania trwa trochę długo zakupiłem właśnie do niego programator USBasp. Robot nie jest mój dlatego nie chce nic popalić ani zablokować. Mam pytanie co do ustawień jakie należy wprowadzić w programie AVRDude przy nakładce Burn-O-Mat. Rozumiem że jeśli Fuse Bity zostały już wcześniej ustawione nie należy już nic więcej w tej kwestii robić? I jeszcze pytanie odnośnie samego programatora USBasp czy w tym przypadku programowanie ma odbywać się nadal przy włączonym zasilaniu układu oraz czy zworka zasilanie w programatorze ma zostać usunięta? Z góry dzięki za pomoc:)