Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Robert
Elektronbűvölő
Hozzászólások: 10213 Csatlakozott: 2005. december 9. péntek, 7:00
Hozzászólás
Szerző: Robert » 2011. január 3. hétfő, 20:40
A leírás alapján a soros illesztőt felrakjuk, és az Arduino-xxx szoftvert telepítjük (itt most a 0022 verzió került telepítésre, mivel ez a legfrissebb).
Így a Bascomhoz használandó feltöltőállomány a mellékelt. Ebben a Wiring, Arduino 2009 és az Arduino-UNO támogatás is megtalálható már.
Kód: Egész kijelölése
@echo off
title TavIR-Duino
echo.
echo AVR-Duino/Arduino uploader for Bascom by AVRDuDe
echo Version: 0.7 alpha for Arduino-NG / Arduino-Diecimila / Arduino UNO / Wiring-Mega128 / Arduino-Mega1280.2560
echo Contact: csehrobert(at)tavir(dot)hu
echo http://avr.tavir.hu
echo (c) 2011-01-03
echo.
set avrdudefile=C:\Program files\arduino-0022\hardware\tools\avr\bin
set avrdudeconf=C:\Program files\arduino-0022\hardware\tools\avr\etc\avrdude.conf
set comport=COM6
set chip=168
set debug=0
if %debug% == 0 goto next
echo Param1:%1
echo Param2:%2
echo Param3:%3
echo Param4:%4
echo Param5:%5
echo Param6:%6
echo Param7:%7
echo Param8:%8
echo Param9:%9
echo.
:next
if "%1" == "" echo Usage: duino.bat "flash.hex" "eeprom.hex" ("comx" "chip")
if "%1" == "" echo.
if "%1" == "" echo Where flash.hex - flash file to write to AVR (hex format)
if "%1" == "" echo eeprom.hex - eeprom file to write to AVR (hex format)
if "%1" == "" echo comx - serial, where connected the AVR-Duino (optional)
if "%1" == "" echo chip - chip name which in AVR-Duino (optional)
if "%1" == "" echo.
if "%1" == "" echo there are some optional/default parameter (Com:%comport% and chip:%chip%)
echo.
echo.
echo Flash : %1
echo EEPROM : %2
if "%3" == "" echo COM : %comport% (default)
if NOT "%3" == "" echo COM : %3
if NOT "%3" == "" set comport=%3
if "%4" == "" echo Chip : %chip% (default)
if NOT "%4" == "" echo Chip : %4
if NOT "%4" == "" set chip=%4
echo.
rem cd "%avrdudefile%"
rem avrdude.exe -C "%avrdudeconf%" -p m168 -c avrisp -P %comport% -b 19200 -U flash:w:%1:a
if %chip% == 8 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m8 -c avrisp -P %comport% -b 19200 -U flash:w:%1:a
if %chip% == 168 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m168 -c avrisp -P %comport% -b 19200 -U flash:w:%1:a
if %chip% == 328 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m328p -c stk500 -P %comport% -b 57600 -U flash:w:%1:a
if %chip% == 328UNO "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m328p -c stk500 -P %comport% -b 115200 -U flash:w:%1:a
if %chip% == 128 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m128 -c stk500v2 -P %comport% -b 115200 -U flash:w:%1:a
if %chip% == 1280 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m1280 -c stk500 -P %comport% -b 57600 -U flash:w:%1:a
if %chip% == 2560 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m2560 -c stk500v2 -P %comport% -b 115200 -U flash:w:%1:a
pause
Robert
Elektronbűvölő
Hozzászólások: 10213 Csatlakozott: 2005. december 9. péntek, 7:00
Hozzászólás
Szerző: Robert » 2011. február 25. péntek, 13:09
Win7 alatt *.bat helyett *.cmd javasolt. XP alatt és Vista alatt egyenértékű.
strigo
DrótVégénSzéndarab
Hozzászólások: 27 Csatlakozott: 2006. február 17. péntek, 7:00
Hozzászólás
Szerző: strigo » 2011. március 16. szerda, 14:58
Sziasztok!
A leírások alapján beállítottam a Bascom 2.0.4.0-t
Sajnos nem működik!
Úgy tűnik nem adja át a paramétereket a Bascom az Arduinonak.
Ha a paraméter mezőt üresen hagyom akkor hiányolja a paramétereket, ha beírom a {FILE} {eeprom} COM4 paramétereket, akkor csak felvillan egy DOS-os ablak és nem történik semmi!
Ez a megoldás működik a Mega8U2-vel szeret UNO-val is, vagy csak az FT232 illesztővel készült panelekre
Üdv:
Zsolt
Robert
Elektronbűvölő
Hozzászólások: 10213 Csatlakozott: 2005. december 9. péntek, 7:00
Hozzászólás
Szerző: Robert » 2011. március 16. szerda, 16:26
Mindegyikkel megy.
Ami hiba lehet:
- duino2.bat a meghajtó gyökérkönyvtárba legyen
- a duino2.bat-ban a set avrdudefile / set avrdideconfig beállítottad?
- az arduino feltelepítve a \program Files alá ?
- adminként indítva a Bascom?
File EEprom: "{file}" "{eeprom}"
Idézőjel a szóközök miatt kell.
Igaz NINCS sehol ékezetes betű?
a duino2.bat helyett duino2.cmd-ként is kellhet (Win7 nem támogatja a bat-t, csak a cmd-t)
strigo
DrótVégénSzéndarab
Hozzászólások: 27 Csatlakozott: 2006. február 17. péntek, 7:00
Hozzászólás
Szerző: strigo » 2011. március 16. szerda, 18:29
Egy kis előrelépés:
A bach fájl gyökérből futtatása hatásosnak bizonyult.
Így már nincs szükség a paraméterátadásnál az "-re
Arduino letöltött változata nem telepítős, de bemásoltam Program Files mappába
A set avrdudefile jó helyre mutat
A működés kezdetének jelei látszanak:
Flash : teljes elérési úttal a .bin fájl
EEPROM : teljes elérési úttal a .eep fájl (ilyen fájl nincs a forráskönyvtárba)
COM : COM4
Chip : 328 (default)
avrdude.exe: stk500_getsync(): not in sync: resp=0xe0
avrdude.exe stk_2_receiveMessage(): timeout
és az utolsó sor ismétlődik
Van még ötlete Valakinek?
és egy új jelenség programozás indításakor elindul a terminál emulátor is!
Amit átállítottam egy másik portra, mert mire programozásra kerülne a sor addigra már megnyitja a portot.
Üdv:
Zsolt
strigo
DrótVégénSzéndarab
Hozzászólások: 27 Csatlakozott: 2006. február 17. péntek, 7:00
Hozzászólás
Szerző: strigo » 2011. március 16. szerda, 19:42
Igen megszületett!
A Chip beállítás nem 328 hanem 328UNO !
Nem mindegy, mert
328-nál 57600 bps
és
328UNO-nál 115200 bps
Még egy fontos észrevétel:
Laptopról általában nem elég a táp a programozáshoz.
Segédtáppal stabilan megy a feltöltés!
Köszönöm a segítséget Róbert!
Üdv:
Zsolt
Robert
Elektronbűvölő
Hozzászólások: 10213 Csatlakozott: 2005. december 9. péntek, 7:00
Hozzászólás
Szerző: Robert » 2011. március 16. szerda, 21:54
Némi súgóval ellátva...
Kód: Egész kijelölése
@echo off
title TavIR-Duino
echo.
echo AVR-Duino/Arduino uploader for Bascom by AVRDuDe
echo Version: 0.9 alpha for Arduino-NG / Arduino-Diecimila / Arduino-UNO / Wiring-Mega128 / Arduino-Mega1280.2560
echo Contact: csehrobert(at)tavir(dot)hu
echo http://avr.tavir.hu
echo (c) 2011-03-16
echo.
set avrdudefile=C:\Program files\arduino-0022\hardware\tools\avr\bin
set avrdudeconf=C:\Program files\arduino-0022\hardware\tools\avr\etc\avrdude.conf
set comport=COM6
set chip=168
set debug=0
if %debug% == 0 goto next
echo Param1:%1
echo Param2:%2
echo Param3:%3
echo Param4:%4
echo Param5:%5
echo Param6:%6
echo Param7:%7
echo Param8:%8
echo Param9:%9
echo.
:next
if "%1" == "" echo Usage: duino.bat "flash.hex" "eeprom.hex" ("comx" "chip")
if "%1" == "" echo.
if "%1" == "" echo Where flash.hex - flash file to write to AVR (hex format)
if "%1" == "" echo eeprom.hex - eeprom file to write to AVR (hex format)
if "%1" == "" echo comx - serial, where connected the AVR-Duino (optional)
if "%1" == "" echo chip - chip name which in AVR-Duino (optional)
if "%1" == "" echo.
if "%1" == "" echo There are some optional/default parameter (Com:%comport% and chip:%chip%)
if "%1" == "" echo.
if "%1" == "" echo Chip: 168 - ATMega168 / Arduino
if "%1" == "" echo 328 - ATMega328 / Arduino
if "%1" == "" echo 8 - ATMega8 / Arduino
if "%1" == "" echo 328UNO - ATMega328 / Arduino UNO
if "%1" == "" echo 128 - ATMega128 / Wiring
if "%1" == "" echo 1280 - ATMega1280 / Arduino Mega
if "%1" == "" echo 2560 - ATMega2560 / Arduino Mega
echo.
echo.
echo Flash : %1
echo EEPROM : %2
if "%3" == "" echo COM : %comport% (default)
if NOT "%3" == "" echo COM : %3
if NOT "%3" == "" set comport=%3
if "%4" == "" echo Chip : %chip% (default)
if NOT "%4" == "" echo Chip : %4
if NOT "%4" == "" set chip=%4
echo.
rem cd "%avrdudefile%"
rem avrdude.exe -C "%avrdudeconf%" -p m168 -c avrisp -P %comport% -b 19200 -U flash:w:%1:a
if %chip% == 8 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m8 -c avrisp -P %comport% -b 19200 -U flash:w:%1:a
if %chip% == 168 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m168 -c avrisp -P %comport% -b 19200 -U flash:w:%1:a
if %chip% == 328 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m328p -c stk500 -P %comport% -b 57600 -U flash:w:%1:a
if %chip% == 328UNO "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p M328P -c stk500 -P %comport% -b 115200 -U flash:w:%1:a
if %chip% == 328uno "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p M328P -c stk500 -P %comport% -b 115200 -U flash:w:%1:a
if %chip% == 128 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m128 -c stk500v2 -P %comport% -b 115200 -U flash:w:%1:a
if %chip% == 1280 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m1280 -c stk500 -P %comport% -b 57600 -U flash:w:%1:a
if %chip% == 2560 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m2560 -c stk500v2 -P %comport% -b 115200 -U flash:w:%1:a
pause
Robert
Elektronbűvölő
Hozzászólások: 10213 Csatlakozott: 2005. december 9. péntek, 7:00
Hozzászólás
Szerző: Robert » 2011. május 1. vasárnap, 7:58
És kiegészítve immár az EEPROM feltöltéssel is...
(Igaz a Bascom 2.0.5.0 már direkt ARDUINO támogatással is bír (alaptesztek meg voltak: megy))
Kód: Egész kijelölése
@echo off
title TavIR-Duino
echo.
echo AVR-Duino/Arduino uploader for Bascom by AVRDuDe
echo Version: 1.0 alpha for Arduino-NG / Arduino-Diecimila / Arduino-UNO / Wiring-Mega128 / Arduino-Mega1280.2560
echo Contact: csehrobert(at)tavir(dot)hu
echo http://avr.tavir.hu
echo (c) 2011-05-01
echo.
set avrdudefile=C:\Program files\arduino-0022\hardware\tools\avr\bin
set avrdudeconf=C:\Program files\arduino-0022\hardware\tools\avr\etc\avrdude.conf
set comport=COM6
set chip=168
set debug=0
if %debug% == 0 goto next
echo Param1:%1
echo Param2:%2
echo Param3:%3
echo Param4:%4
echo Param5:%5
echo Param6:%6
echo Param7:%7
echo Param8:%8
echo Param9:%9
echo.
:next
if "%1" == "" echo Usage: duino.bat "flash.hex" "eeprom.hex" ("comx" "chip")
if "%1" == "" echo.
if "%1" == "" echo Where flash.hex - flash file to write to AVR (raw/hex/bin format)
if "%1" == "" echo eeprom.hex - eeprom file to write to AVR (raw/bin format)
if "%1" == "" echo comx - serial, where connected the AVR-Duino (optional)
if "%1" == "" echo chip - chip name which in AVR-Duino (optional)
if "%1" == "" echo.
if "%1" == "" echo There are some optional/default parameter (Com:%comport% and chip:%chip%)
if "%1" == "" echo.
if "%1" == "" echo Chip: 168 - ATMega168 / Arduino
if "%1" == "" echo 328 - ATMega328 / Arduino
if "%1" == "" echo 8 - ATMega8 / Arduino
if "%1" == "" echo 328UNO - ATMega328 / Arduino UNO
if "%1" == "" echo 128 - ATMega128 / Wiring
if "%1" == "" echo 1280 - ATMega1280 / Arduino Mega
if "%1" == "" echo 2560 - ATMega2560 / Arduino Mega
echo.
echo.
echo Flash : %1
echo EEPROM : %2
if "%3" == "" echo COM : %comport% (default)
if NOT "%3" == "" echo COM : %3
if NOT "%3" == "" set comport=%3
if "%4" == "" echo Chip : %chip% (default)
if NOT "%4" == "" echo Chip : %4
if NOT "%4" == "" set chip=%4
echo.
if %chip% == 8 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m8 -c avrisp -P %comport% -b 19200 -U flash:w:%1:a
if %chip% == 168 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m168 -c avrisp -P %comport% -b 19200 -U flash:w:%1:a -U eeprom:w:%2:r
if %chip% == 328 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m328p -c stk500 -P %comport% -b 57600 -U flash:w:%1:a -U eeprom:w:%2:r
if %chip% == 328UNO "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p M328P -c stk500 -P %comport% -b 115200 -U flash:w:%1:a -U eeprom:w:%2:r
if %chip% == 328uno "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p M328P -c stk500 -P %comport% -b 115200 -U flash:w:%1:a -U eeprom:w:%2:r
if %chip% == 128 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m128 -c stk500v2 -P %comport% -b 115200 -U flash:w:%1:a -U eeprom:w:%2:r
if %chip% == 1280 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m1280 -c stk500 -P %comport% -b 57600 -U flash:w:%1:a -U eeprom:w:%2:r
if %chip% == 2560 "%avrdudefile%\avrdude.exe" -C "%avrdudeconf%" -p m2560 -c stk500v2 -P %comport% -b 115200 -U flash:w:%1:a -U eeprom:w:%2:r
pause
Robert
Elektronbűvölő
Hozzászólások: 10213 Csatlakozott: 2005. december 9. péntek, 7:00
Hozzászólás
Szerző: Robert » 2011. május 28. szombat, 9:31
A Bascom-AVR beállításaiban a paraméterek:
Az idézőjel kell!
zolsza
DrótVégénSzéndarab
Hozzászólások: 32 Csatlakozott: 2008. október 14. kedd, 6:00
Hozzászólás
Szerző: zolsza » 2011. július 6. szerda, 9:05
Kérdésem triviálisnak tűnik, de kezdő vagyok így nézzétek el.
(Igaz a Bascom 2.0.5.0 már direkt ARDUINO támogatással is bír (alaptesztek meg voltak: megy). Ez azt jelenti, hogy ha feltelepítem az Ardunio022-öt a programokhoz a Bascom2.0.5.0-át szintén a programokhoz, akkor az Ardunio UNO panelemet tudom programozni a Bascom-ból
bakter
Robert
Elektronbűvölő
Hozzászólások: 10213 Csatlakozott: 2005. december 9. péntek, 7:00
Hozzászólás
Szerző: Robert » 2011. július 6. szerda, 9:09
Elvileg igen. DE: NEM teljeskörű arduino támogatás van a Bascomban (mintha az UNO pont hiányozna), míg a Arduino-022 + kiegészítő batch file teljesen jól működik...
És a járt út és járatlan összefüggése alapján és maradok a batch-nál...
"Aranyszabály: ha valami nem tesztelt mások által, több mint 2-4 verzión át - azt nem nekem találták ki. A betatesztelés nem fér bele az idpmbe
"
zolsza
DrótVégénSzéndarab
Hozzászólások: 32 Csatlakozott: 2008. október 14. kedd, 6:00
Hozzászólás
Szerző: zolsza » 2011. július 6. szerda, 9:26
Arduino-022 + kiegészítő batch fájl teljesen jól működik...
Ismét egy kezdő kérdés. Feltelepítem Arduniot, Bascomot, programokhoz, batch filét, C gyökérkönyvtárba ,és kész?
bakter
Robert
Elektronbűvölő
Hozzászólások: 10213 Csatlakozott: 2005. december 9. péntek, 7:00
Hozzászólás
Szerző: Robert » 2011. július 6. szerda, 10:54
Igen.
De a külön leírásban step by stepként is le van írva (A drivert nem kell külön letölteni, a Arduino-0022-ben levő is jó)
A COM port 1...8 közé essen, amit kioszt a duino panelnak (vagy átírni a eszközkezelőben).
A batchban a dude es a dudecfg helyek stimmeljenek. A bascomban extrenal rg és társai. Innen nyert ügy (kb. 10 perc).
Típushibák:
- ékezetes név az elérési útban
- "{file}" -> zárójel és idézőjel nem elhagyható.
zolsza
DrótVégénSzéndarab
Hozzászólások: 32 Csatlakozott: 2008. október 14. kedd, 6:00
Hozzászólás
Szerző: zolsza » 2011. július 31. vasárnap, 20:34
Bascom demóváltozatával is működik?
bakter
Robert
Elektronbűvölő
Hozzászólások: 10213 Csatlakozott: 2005. december 9. péntek, 7:00
Hozzászólás
Szerző: Robert » 2011. július 31. vasárnap, 20:37
Igen.
A lefordított kód <=4k.
De a programozást ez nem befolyásolja....
Simán External programmer-t állíts be. És a 2 db Set avrdude és set avrdudecfg sorokat a feltelepített Arduino szerint állítsd be.