Arduino kezdő segítség
Arduino kezdő segítség
Szasztok!
Most kaptam készhez készülékemet (AVR-Duino/8 (USB) + AVR-Duino/Ext1 + LCD). A programozáskor máris problémákba ütköztem.
A leírás szerint Deicimila board-ot kell kiválasztani erre azonban a következő hibát kapom:
avrdude: Expected signature for ATMEGA168 is 1E 94 06
Double check chip, or use -F to override this check.
Persze tovább próbálkoztam. Most az ArduinoNG/ATmega8 board-ot kiválasztva szépen programozható. Azonban ha rajta van az Ext1 shield, akkor a programozás elbukik:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
Látszik, hogy nyom egy reset-et, de a feltöltés helyett a már feltöltött program indul el.
Mit csinálok rosszul?
Most kaptam készhez készülékemet (AVR-Duino/8 (USB) + AVR-Duino/Ext1 + LCD). A programozáskor máris problémákba ütköztem.
A leírás szerint Deicimila board-ot kell kiválasztani erre azonban a következő hibát kapom:
avrdude: Expected signature for ATMEGA168 is 1E 94 06
Double check chip, or use -F to override this check.
Persze tovább próbálkoztam. Most az ArduinoNG/ATmega8 board-ot kiválasztva szépen programozható. Azonban ha rajta van az Ext1 shield, akkor a programozás elbukik:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
Látszik, hogy nyom egy reset-et, de a feltöltés helyett a már feltöltött program indul el.
Mit csinálok rosszul?
Szia.
Nincs időm írni,mert nagyon sietek,mivel elkell menjek.Ezért egy dokumentációból idézek:
I had the exact same problem, and even the "geniuses" at arduino.cc didn't help.
Unfortunately, I went through about a dozen chips in trying to find the solution,
thinking that I had fried all those chips. Here is the solution:
I expect what's happening is that the Arduino bootloader IDE incorrectly programs
some fuses under mysterious circumstances. In particular, it selects EXTERNAL CLOCK.
Without clock, the chip will appear to be completely dead and not respond to Avrdude.
What you need to do is to connect a TLL oscillator module (or any clock <20 Mhz) above a few
megahertz (I'm using 1.8 Mhz). Use a 4 pin 5V "metal box" clock oscillator (<20 MHz) you have handy,
power it with 5V on pin "14" of DIP14 footprint, GND on "7". Connect the clock output on
pin "8" to pin 9 OSC/clockin of the ATmega168 DIP 28 . You only need to do this temporarily while you
load the bootloader. It is possible you may damage your crystal, so I suggest to lift one leg
of it out of the hole. After the bootloader is programmed, solder the crystal leg back.
You can load the bootloader directly from within the Arduino software, using:
[tools][burn bootloader][/w parallel programmer]
This is the easiest and cheapest way to program the bootloader without spending money
on a USB AVRISP programmer or fooling with Avrdude command line (though it's useful to learn how while experimenting).
DAPA information here http://www.instructables.com/id/EXIM2VJJ51EUKIKWDF/ and here
http://www.arduino.cc/en/Hacking/ParallelProgrammer
Also,
my suggestions are to build the "DAPA" parallel port programmer, and either use
short wires (<20 cm) or use series termination resistors (33 to 330 ohm).
Also some people experienced problems on the led connected to digital 13, if your clone-board has that,
you may need to disconnect the led - just lift one leg of the resistor. If that doesn't
work (wires too long maybe), you can put a 30-300 pf capacitor to ground on sclk.
Contrary to what some have written, it is NOT possible to "kill" AVR chips with improper
programming that can only be undone with a "high voltage" Atmel programmer. This is bogus.
BTW I used version 11 of the Arduino IDE since version has some problems. Those guys don't
even check things before releasing them. "Beta" means you get what you pay for!
good luck!
I had the exact same problem, and even the "geniuses" at arduino.cc didn't help.
Unfortunately, I went through about a dozen chips in trying to find the solution,
thinking that I had fried all those chips. Here is the solution:
I expect what's happening is that the Arduino bootloader IDE incorrectly programs
some fuses under mysterious circumstances. In particular, it selects EXTERNAL CLOCK.
Without clock, the chip will appear to be completely dead and not respond to Avrdude.
What you need to do is to connect a TLL oscillator module (or any clock <20 Mhz) above a few
megahertz (I'm using 1.8 Mhz). Use a 4 pin 5V "metal box" clock oscillator (<20 MHz) you have handy,
power it with 5V on pin "14" of DIP14 footprint, GND on "7". Connect the clock output on
pin "8" to pin 9 OSC/clockin of the ATmega168 DIP 28 . You only need to do this temporarily while you
load the bootloader. It is possible you may damage your crystal, so I suggest to lift one leg
of it out of the hole. After the bootloader is programmed, solder the crystal leg back.
You can load the bootloader directly from within the Arduino software, using:
[tools][burn bootloader][/w parallel programmer]
This is the easiest and cheapest way to program the bootloader without spending money
on a USB AVRISP programmer or fooling with Avrdude command line (though it's useful to learn how while experimenting).
DAPA information here http://www.instructables.com/id/EXIM2VJJ51EUKIKWDF/ and here
http://www.arduino.cc/en/Hacking/ParallelProgrammer
Also,
my suggestions are to build the "DAPA" parallel port programmer, and either use
short wires (<20 cm) or use series termination resistors (33 to 330 ohm).
Also some people experienced problems on the led connected to digital 13, if your clone-board has that,
you may need to disconnect the led - just lift one leg of the resistor. If that doesn't
work (wires too long maybe), you can put a 30-300 pf capacitor to ground on sclk.
Contrary to what some have written, it is NOT possible to "kill" AVR chips with improper
programming that can only be undone with a "high voltage" Atmel programmer. This is bogus.
BTW I used version 11 of the Arduino IDE since version has some problems. Those guys don't
even check things before releasing them. "Beta" means you get what you pay for!
good luck!
Nem-nem. Szerintem az én problémám sokkal egyszerűbb kell legyen. Mondom, zsír új a vas, ráadásul tudom programozni, de csak a Shiled nélkül.
Most azt látom, hogy a soros kapcsolatot sem tudja értelmezni a processzor, de ez tutira nem a kristály hibája, mert akkor programozni sem tudnám.
Gyanítom, hogy inkább olyasmi lehet a megoldás, hogy meg kell adni azt a -F parancsot neki, amit kért. Vagy ilyesmi.
Ennek az AVR-Duinonak teljesen hülyebiztosnak kell lennie. Tehát én valami dokumentációs hiányosságra gyanakszom.
Most azt látom, hogy a soros kapcsolatot sem tudja értelmezni a processzor, de ez tutira nem a kristály hibája, mert akkor programozni sem tudnám.
Gyanítom, hogy inkább olyasmi lehet a megoldás, hogy meg kell adni azt a -F parancsot neki, amit kért. Vagy ilyesmi.
Ennek az AVR-Duinonak teljesen hülyebiztosnak kell lennie. Tehát én valami dokumentációs hiányosságra gyanakszom.
usb-soros kommunikáció
A többiek okulására:
A kommunikációs demók rendre elbuknak, különös tekintettel azok, amik Processing-ből kerülnek demonstrálásra.
A jelenség oka az, hogy a board reset-elése is usb-soros kommunikációval valósul meg. Vagyis a Processing-ben megnyitott soros port folyamatosan reset-eli a board-ot.
Ha Ext1 board-od van LCD-vel, akkor láthatod a reset-et: ekkor a kijelző felén teli karakterek jelennek meg.
Megoldás: Ha leveszed a board-on lévő jumbert-t, akkor ez a jelenség megszűnik, de ekkor programozáskor magadnak kell nyomnod a reset gombot.
A kommunikációs demók rendre elbuknak, különös tekintettel azok, amik Processing-ből kerülnek demonstrálásra.
A jelenség oka az, hogy a board reset-elése is usb-soros kommunikációval valósul meg. Vagyis a Processing-ben megnyitott soros port folyamatosan reset-eli a board-ot.
Ha Ext1 board-od van LCD-vel, akkor láthatod a reset-et: ekkor a kijelző felén teli karakterek jelennek meg.
Megoldás: Ha leveszed a board-on lévő jumbert-t, akkor ez a jelenség megszűnik, de ekkor programozáskor magadnak kell nyomnod a reset gombot.
Binary size
Sziasztok írtam egy kis progit avr-duino-8-ra, történetesen ~6200 byte lefordítva (arduino gui szerint), a max 7168. Feltöltéskor azonban az avrdude hibát jelez:
Kössz.
Ha faragok a progiból ~60 byte-ot, akkor viszont gond nélkül feltölti. Mi lehet ennek az oka?avrdude: verification error, first mismatch at byte 0x1800
0x53 != 0xff
avrdude: verification error; content mismatch
Kössz.
Kissé értetlen vagyok...
Sziasztok!
Elnézést ha értetlen vagyok, de olvasgattam sokat, de még mindíg nem vagyok biztos mi az az AVR-Dunio. Fejlesztő kártya? I/O kártya? Programozó? Azt látom van belőle pár fajta...
Akkor mi is ez pontosan?
Elnézést ha értetlen vagyok, de olvasgattam sokat, de még mindíg nem vagyok biztos mi az az AVR-Dunio. Fejlesztő kártya? I/O kártya? Programozó? Azt látom van belőle pár fajta...
Akkor mi is ez pontosan?
Alappanel, rajta AVR chip (ATMega8 vagy 168 vagy 328).
A PC fele csatlakozhat USB vagy sorosporton
Ez a sokféle alappanel oka...
Az alapon rajta van:
mikrokotroiler, soros/usb illesztő, tápfeszültség részek, sallangok(resetgomb, kvarc stb) és hüvelysor az egyedi kiegészítők csatlakoztatásához.
A kiegészítőpanel lehet pl.
- ethernetre : Eth1
- kiindulásra, gyakorolni: Ext1 (sokféle típusáramkör)
- hangkezelés: WaveShield
- egyedi fejlesztésre, kísérletezni: csupalyuk.
A programozó nem kell hozzá, a chip önmaga felprogramozására elő van készítve (ún bootloader is van benne).
De az Arduino az (egyik) keretrendszer is, amivel programozni, kezelni és játszani lehet vele.
A PC fele csatlakozhat USB vagy sorosporton
Ez a sokféle alappanel oka...
Az alapon rajta van:
mikrokotroiler, soros/usb illesztő, tápfeszültség részek, sallangok(resetgomb, kvarc stb) és hüvelysor az egyedi kiegészítők csatlakoztatásához.
A kiegészítőpanel lehet pl.
- ethernetre : Eth1
- kiindulásra, gyakorolni: Ext1 (sokféle típusáramkör)
- hangkezelés: WaveShield
- egyedi fejlesztésre, kísérletezni: csupalyuk.
A programozó nem kell hozzá, a chip önmaga felprogramozására elő van készítve (ún bootloader is van benne).
De az Arduino az (egyik) keretrendszer is, amivel programozni, kezelni és játszani lehet vele.
Ezer köszönet.
Na így már kezd érthető lenni
Robert írta:Alappanel, rajta AVR chip (ATMega8 vagy 168 vagy 328).
A PC fele csatlakozhat USB vagy sorosporton
Ez a sokféle alappanel oka...
Az alapon rajta van:
mikrokotroiler, soros/usb illesztő, tápfeszültség részek, sallangok(resetgomb, kvarc stb) és hüvelysor az egyedi kiegészítők csatlakoztatásához.
A kiegészítőpanel lehet pl.
- ethernetre : Eth1
- kiindulásra, gyakorolni: Ext1 (sokféle típusáramkör)
- hangkezelés: WaveShield
- egyedi fejlesztésre, kísérletezni: csupalyuk.
A programozó nem kell hozzá, a chip önmaga felprogramozására elő van készítve (ún bootloader is van benne).
De az Arduino az (egyik) keretrendszer is, amivel programozni, kezelni és játszani lehet vele.
T. boczhunor!
Ha még nem ismered ezt? Ajánlom figyelmedbe:
Arduino:
http://forum.index.hu/Article/showArtic ... 1194a33b47
Ha még nem ismered ezt? Ajánlom figyelmedbe:
Arduino:
http://forum.index.hu/Article/showArtic ... 1194a33b47
Helló!
Helló. De ez meg mi? Tehát minek adtad ezt az oldalt? Mit csináljak vele? Nem lehet valamit rosszul írtál? És másnak akartad adni?
Na helló.
Apropó. Jó sok gond és hibaüzenet került ide be. Nem tudom mért. Én 1000000000-szer programoztam vele és semmi gondom se volt. Most persze a Decimilia-ra gondolok. Egyébként egyszer nekem is volt hiba. Az volt,hogy nem ment át a bootloader. De azért mert nem tettem fel véletlenül a frissen instalált windowsra az FTDI USB Drivert.:D:D:D
Egyébként én terveztem magamnak saját Arduino boardot, a neve LFRDuino(Little Future Robot=robotépítő versenyeken ez a szlogenem) és hát módosítottam egy kicsit bootloaderen meg az Arduino fejlesztőkörnyezeten. Hát bevallom voltak hibák. A 18-as verzióban azért enyhültek a dolgok és tök elfogadhatónak vélem. Az LFRDuinoban a bootloader javításán kívül az LFRDuino nem igényel FTDI chippet ami jelentősen csökkenti az áramfogyasztást és hát a kölcségeket. Ami még plusz benne,hogy van rajta egy számológépből kiszedett kis napelem amely folyamatosan tölti az aksit. És hát SDM alkatrésszel kijött ugyanabba a méretbe min egy norm Arduino. A fejlesztésben még szeretném vízteleníteni lakkréteggel meg az Arduino terhelés altt elég lassú. Ezért már készül egy gyorsabbítás. Hát ez az ötlet az instructables nézésekor jutott az eszembe mikor megláttam ezt:
http://www.instructables.com/id/Arduino ... to-fix-it/
Csak hát nagyon mostanába nincs idő mert hát készülök a Magyarok a Marsonra,igaz már csak a robot felöli mikrokontroller program, maradt. Az áramkörök és a többi program kész van. Hát meg még ott van a suli...
Minden esetre mindenkinek sok sikert kívanok és kevesebb errort!
Na helló.
Apropó. Jó sok gond és hibaüzenet került ide be. Nem tudom mért. Én 1000000000-szer programoztam vele és semmi gondom se volt. Most persze a Decimilia-ra gondolok. Egyébként egyszer nekem is volt hiba. Az volt,hogy nem ment át a bootloader. De azért mert nem tettem fel véletlenül a frissen instalált windowsra az FTDI USB Drivert.:D:D:D
Egyébként én terveztem magamnak saját Arduino boardot, a neve LFRDuino(Little Future Robot=robotépítő versenyeken ez a szlogenem) és hát módosítottam egy kicsit bootloaderen meg az Arduino fejlesztőkörnyezeten. Hát bevallom voltak hibák. A 18-as verzióban azért enyhültek a dolgok és tök elfogadhatónak vélem. Az LFRDuinoban a bootloader javításán kívül az LFRDuino nem igényel FTDI chippet ami jelentősen csökkenti az áramfogyasztást és hát a kölcségeket. Ami még plusz benne,hogy van rajta egy számológépből kiszedett kis napelem amely folyamatosan tölti az aksit. És hát SDM alkatrésszel kijött ugyanabba a méretbe min egy norm Arduino. A fejlesztésben még szeretném vízteleníteni lakkréteggel meg az Arduino terhelés altt elég lassú. Ezért már készül egy gyorsabbítás. Hát ez az ötlet az instructables nézésekor jutott az eszembe mikor megláttam ezt:
http://www.instructables.com/id/Arduino ... to-fix-it/
Csak hát nagyon mostanába nincs idő mert hát készülök a Magyarok a Marsonra,igaz már csak a robot felöli mikrokontroller program, maradt. Az áramkörök és a többi program kész van. Hát meg még ott van a suli...
Minden esetre mindenkinek sok sikert kívanok és kevesebb errort!
Ez szép gondolat, de túlmisztifikálod a problémát. A leírás szerint a digitalWrite lassú, ezért direkt port írást javasol. Nosza! De az arduino erre is mutat uniformizált megoldást, csak bele kell kukkantani.meg az Arduino terhelés altt elég lassú. Ezért már készül egy gyorsabbítás.
A digitalWrite függvény kódja elérhető, ha lassúnak találod írd át, vagy használd helyette a következőt:
Kód: Egész kijelölése
#include "pins_arduino.h"
uint8_t bitMask;
volatile uint8_t *portRegister;
// -- ezt emeld ki mondjuk a setup-ba
bitMask = digitalPinToBitMask(pin);
portRegister = portOutputRegister(digitalPinToPort(pin));
// -- ezt használd íráskor: LOW
*portRegister &= ~bitMask;
// -- HIGH
*portRegister |= bitMask;
Csak hogy ne essék félreértés: Az Arduino "lassúsága" akkor merülhet fel, ha valaki nagy frekvenciás varázslásokat akar elkövetni. Ekkor kell alkalmazni a fönti hack-et. Az általad idézett cikk nagyon félrevezető. Szerintem a fazon keveri a micro-t a milli-vel. 1000 digitalWrite-ot 4 ezredmásodperc (millisec.) alatt megcsinál, vagyis másodpercenként 250ezret. Azért annyira ezt nem nevezném lassúnak.
PS: Nekem az összes hibaüzenetemet megoldotta egy garanciális csere, szóval mondhatom, hogy az AVR-Duino hardver teljesen stabil.
A hozzászólást 2 alkalommal szerkesztették, utoljára prmpec 2010. április 18. vasárnap, 22:05-kor.