AVR-Duino bootloader és Bascom használata

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

AVR-Duino bootloader és Bascom használata

Hozzászólás Szerző: Robert »

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 
  
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Win7 alatt *.bat helyett *.cmd javasolt. XP alatt és Vista alatt egyenértékű.
Avatar
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 »

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
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

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)
Avatar
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 »

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
Avatar
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 »

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
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

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 
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

É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 
  
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A Bascom-AVR beállításaiban a paraméterek:

Kód: Egész kijelölése

"{FILE}" "{eeprom}" com8 328uno
Az idézőjel kell!
Avatar
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 »

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
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

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 :P"
Avatar
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 »

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
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

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ó.
Avatar
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 »

Bascom demóváltozatával is működik?
bakter
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

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.
Válasz küldése