Pages: 1 ... 25 26 [27] 28 29 ... 36   Go Down
Author Topic: Topic permanente di programmazione newbie  (Read 27766 times)
0 Members and 1 Guest are viewing this topic.
Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ah... c'era una sintassi particolare per indicare la porta com ad avrdude... non mi ricordo.
E se non ce la metti? Da qualche part ho letto che se il programmatore è su porta USB, è indifferente.

EDIT:
prova \\.\COMxx
« Last Edit: April 18, 2012, 04:42:48 pm by leo72 » Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 501
Posts: 12307
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

niente da fare, con entrambe le prove, sempre errore 0x14 e 0x51, è il reset credo; sono stanco, domattina ho un paio d'ore libere, rifaccio prove a mente fresca o quasi. notte e grazie del supporto smiley
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

0
Offline Offline
Faraday Member
**
Karma: 45
Posts: 5784
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma su com 2 arduino normalmente usato, cioe inviare blink via ide seriale, funziona ?
Se funziona lascialo li, non si puo leggere Com60 nei tuoi messaggi  smiley
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Rovereto
Offline Offline
Full Member
***
Karma: 0
Posts: 152
La luce e' piu' veloce del suono. Per questo motivo alcune persone sembrano brillanti fino a quando non parlano.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Confermo che avrdude ha problemi con numeri di COM alti (ma non ne conosco il limite massimo).
Puoi comunque forzare l'assegnamento del numero di COM andando in Risorse del computer -> Proprietà -> Hardware ->Gestione periferiche.
Quindi click destro sulla porta da modificare (COM60 nel tuo caso) e selezioni Proprietà -> Impostazioni della porta -> Avanzate -> Numero di porta COM e selezioni un numero basso, magari sotto il 10. Ti viene sicuramente segnalato che quella porta è già in uso da parte di un altro dispositivo, ma confermando forzi il nuovo assegnamento. Stacca e riattacca arduino e verifica che l'assegnamento richiesto sia avvenuto.
Questo con XP ma è del tutto analogo in Win7.

Ciao
QP
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9158
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Confermo che avrdude ha problemi con numeri di COM alti (ma non ne conosco il limite massimo).

Windows, ogni volta che viene collegato un dispositivo USB di tipo CDC (Vcom), assegna una nuovo numero di porta seriale se sono soddisfatte queste due condizioni, Vid e Pid del device USB non ancora registrato e numero di serie non ancora registrato, questo modo di procedere è sia un vantaggio che uno svantaggio al tempo stesso.
Può fare molto comodo che windows mappi differentemente due device Vcom identici, cioè stesso Pid e Vid, ma con diverso numero di serie, perché in questo modo posso collegare due, o più, diversi Arduino avendo la certezza che avranno sempre lo stesso numero di Vcom quando collegati alla stessa porta seriale indipendentemente da quanti altri dispositivi CDC ho collegato nel tempo a quella porta, per contro con questo modo di procedere è facile trovarsi nel tempo con un numero enorme di Vcom assegnate e non tutti i programmi sono capaci di accedere a valori della Vcom alti, anzi spesso sono limitati solo fino a 10.
Da notare che cambiare semplicemente il numero della porta ad una periferica esistente non sempre funziona se prima non si disinstalla il precedente device.
C'è un modo per evitare che Windows assegni nuovi numeri di Vcom ogni volta che si collega un device con lo stesso Pid e Vid, ma con numero seriale diverso, basta aggiungere una voce al registry, poi apro un topic dedicato a questa cosa, in questo modo ogni volta che si collega un Arduino dello stesso modello, anche se sono schede diverse, viene usato sempre e solo il numero di Vcom assegnato alla prima connessione.
Per fare piazza pulita di tutte le Vcom assegnate nel tempo, di cui la maggior parte spesso non viene più utilizzata, c'è un modo semplicissimo, basta aggiungere alle variabili di sistema la voce "devmgr_show_nonpresent_devices" e settarla a 1, in questo modo andando nella "gestione periferiche" basta attivare attivare dal menù "visualizza" la voce "mostra periferiche nascoste" per vedere tutte le periferiche che sono state installate anche se non in uso o scollegate, dopo di che aprire la voce relativa alle porte COM e LPT per vedere tutta la lista e a questo punto eliminare le porte di troppo usando l'opzione disinstalla.
Fatto quanto sopra quando si collega nuovamente una delle periferiche cancellate sarà necessario reinstallare i driver e verrà assegnata il primo numero più basso di Vcom disponibile.
Esempio pratico ho le porte da 1 a 28 assegnate a schede "fantasma", la 29 e la 30 assegnate al cellulare, disinstallo dalla 1 alla 28 e quando ricollego Arduino dopo la procedura di installazione dei driver gli viene assegnata la porta 2 o la 3, dipende dalla mother board perché le prime due sono quasi sempre riservate alle seriali hardware anche se non presenti.

Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 501
Posts: 12307
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La questione posta da Astro è estremamente interessante e comoda; io effettivamente tra le tante cose che ho collegato al PC (internet key, cellulari, convertitori, arduini vari) sono arrivato alla COM 76 smiley-eek
Come ho già detto sono riuscito a cambiare nelle periferiche la COM da 60 a 2, al riavvio IDE l'ha trovata e sono riuscito a lavorarci senza problemi. A questo punto ho riprovato con AVRDUDE e mi dà errore di sync (non più l'errore di COM precedente); allora ho scompattato il Sinaprog2.0 gentilmente offerto da Amario57 ma è la stessa cosa, anche se qui non ho capito come settarlo.
Separiamo le due cose, che stamattina sono un po' più "leggero" e posso fare diverse prove:
Ripartiamo da AVRDUDE. La mia configurazione è: Arduino UNO visto su COM2, IDE 0022 con Astro-toolchain, ISP di Leo&BB, un 328P in stand-alone a 1MHz. Domanda, la sintassi:
Code:
C:\avr\bin\avrdude.exe -C"C:\avr\etc\avrdude.conf"  -p atmega328p -cstk500v1 -b 9600
-P COM2 -Uflash:r: C:\Flash.hex:i
dovrebbe leggere la flash del 328 in stand alone e memorizzarla in un file Flash.hex in C:\?
Mi dà l'errore:
Code:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
che è quello che l'IDE mi dà quando dimentico il condensatore per l'antiautoreset e cerco di programmare Arduino.
« Last Edit: April 19, 2012, 02:12:35 am by Michele Menniti » Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@Mike:
rileggendo i vecchi msg, io ti avevo scritto:
Riprendendo ciò che ha prodotto la tua IDE direi di provare questo:
avrdude -CC:\arduino-0022\hardware/tools/avr/etc/avrdude.conf  -patmega328p -cstk500v1 -P\\.\COM60 -b19200 -Uflash:r:C:\Flash.hex:i

Ma tu stai continuando ad usare questo:
Code:
C:\avr\bin\avrdude.exe -C"C:\avr\etc\avrdude.conf"  -p atmega328p -cstk500v1 -b 9600
-P COM2 -Uflash:r: C:\Flash.hex:i
Lasciamo da parte la questione dell'indicazione della porta (\\.\COM60 contro COM60 e basta) però è la velocità differente. Io ho segnalato 19200 bps, tu metti 9600. L'ArduinoISP della 002x lavora a 19200.
Logged


Rovereto
Offline Offline
Full Member
***
Karma: 0
Posts: 152
La luce e' piu' veloce del suono. Per questo motivo alcune persone sembrano brillanti fino a quando non parlano.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Con la versione 0023, che richiede un baudrate a 115200, funziona senza problemi.

Quote
C:\Documents and Settings\tgiovanni>C:\arduino-0023\hardware\tools\avr\bin\avrdu
de.exe -C "C:\arduino-0023\hardware\tools\avr\etc\avrdude.conf"  -p atmega328p -
cstk500v1 -b 115200 -P com4 -Uflash:r:"C:\Lavoro-temp\flash.hex":i

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude.exe: Device signature = 0x1e950f
avrdude.exe: reading flash memory:

Reading | ################################################## | 100% 4.64s

avrdude.exe: writing output file "C:\Lavoro-temp\flash.hex"

avrdude.exe: safemode: Fuses OK

avrdude.exe done.  Thank you.

Ciao
QP

Edit: parte del codice scaricato
Quote
:200000000C9463000C948B000C948B000C948B000C948B000C948B000C948B000C948B00B0
:200020000C948B000C948B000C948B000C948B000C948B000C948B000C948B000C948B0068
:200040000C9419030C948B000C944D040C948B000C948B000C948B000C948B000C948B00F1
:200060000C949E010C948B0000000000240027002A0000000000250028002B000000000029
:20008000230026002900040404040404040402020202020203030303030301020408102071
:2000A0004080010204081020010204081020000000070002010000030406000000000000EB
« Last Edit: April 19, 2012, 02:35:59 am by QuercusPetraea » Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 501
Posts: 12307
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusa hai ragione, nelle tante prove mi sono impippolato e come dicevo ero stanco e poco lucido.
Avevo provato la sintassi alternativa COM ed anche a non metterla.
Ora fatto tutto con calma e con -P COM2 ed a 19200 sta leggendo  smiley-lol ..... ha finito....
(E ora che ho chiaro tutto sono riuscito a far partire ance Sinaprog2.0.)
L'errore di AVRDUDE ora è in scrittura, da quanto capisco.
EDIT: mentre scrivo leggo il prost di QP e capisco che l'errore è che il file destinazione andava racchiuso tra "", quindi tutto ok!!!
La sintassi funzionante è:
Code:
C:\avr\bin\avrdude.exe -C"C:\avr\etc\avrdude.conf"  -p atmega328p -cstk500v1 -b 19200 
-P COM2 -Uflash:r:"C:\Flash.hex":i

Ora posso finalmente impostare i LB e riprovare a leggere smiley-sweat
Grazie a tutti e a fra poco.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9158
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Lasciamo da parte la questione dell'indicazione della porta (\\.\COM60 contro COM60 e basta) però è la velocità differente. Io ho segnalato 19200 bps, tu metti 9600. L'ArduinoISP della 002x lavora a 19200.

Esatto, devi usare come baud rate quello dello sketch ISP che a sua volta dipende dall'IDE e da che versione di questo sketch utilizzi.
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9158
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie a tutti e a fra poco.

Tieni presente che con un micro protetto in lettura dovresti ottenere un file contenente tutti 0xff, a meno che AvrDude non preveda un errore specifico se il micro è protetto in lettura.
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 501
Posts: 12307
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

micro protetto con FC: lettura
Code:
:00000001FF
micro protetto con FE o non protetto (FF): lettura
Code:
:200000000C9461000C9473000C9473000C9473000C9473000C9473000C9473000C9473005A
:200020000C9473000C9473000C9473000C9473000C9473000C9473000C9473000C94730028
:200040000C948F000C9473000C9473000C9473000C9473000C9473000C9473000C947300EC
:200060000C9473000C94730000000000240027002A0000000000250028002B00000000006D
:20008000230026002900040404040404040402020202020203030303030301020408102071
:2000A0004080010204081020010204081020000000070002010000030406000000000000EB
:2000C000000011241FBECFEFD8E0DEBFCDBF11E0A0E0B1E001C01D92A930B107E1F70E94F2
:2000E000EA010C94F1010C9400008DE061E00E948C0108958DE061E00E94B00164E670E0CE
:2001000080E090E00E94FD008DE060E00E94B00164E670E080E090E00E94FD0008951F9219
:200120000F920FB60F9211242F933F938F939F93AF93BF938091040190910501A091060192
:20014000B0910701309108010196A11DB11D232F2D5F2D3720F02D570196A11DB11D2093BD
:2001600008018093040190930501A0930601B09307018091000190910101A0910201B09106
:2001800003010196A11DB11D8093000190930101A0930201B0930301BF91AF919F918F91A2
:2001A0003F912F910F900FBE0F901F9018959FB7F89420910001309101014091020150913C
:2001C000030186B5A89B06C08F3F21F02F5F3F4F4F4F5F4F9FBF542F432F322F2227280F5C
:2001E000311D411D511D82E0220F331F441F551F8A95D1F7B901CA010895EF92FF920F936C
:200200001F93CF93DF937B018C010E94D700EB010FC00E94D7006C1B7D0B83E0683E78070B
:2002200038F00894E108F10801091109C851DC4FE114F1040105110561F7DF91CF911F91D2
:200240000F91FF90EF900895789484B5826084BD84B5816084BD85B5826085BD85B5816017
:2002600085BDEEE6F0E0808181608083E1E8F0E01082808182608083808181608083E0E8F5
:20028000F0E0808181608083E1EBF0E0808184608083E0EBF0E0808181608083EAE7F0E004
:2002A0008081846080838081826080838081816080838081806880831092C10008958330EC
:2002C00071F0843028F48130A1F0823021F514C08630B1F08730D1F08430E9F404C08091DA
:2002E00080008F7703C0809180008F7D80938000089584B58F7702C084B58F7D84BD0895C4
:200300008091B0008F778093B00008958091B0008F7D8093B000089590E0FC01E656FF4F92
:200320002491FC01EA57FF4FE491EE23C1F0F0E0EE0FFF1FE859FF4F85919491DC0166232A
:2003400041F49FB7F8948C91209582238C939FBF08959FB7F8948C91822B8C939FBF08952F
:200360000F931F93DF93CF930F92CDB7DEB7282F30E0F901E255FF4F8491F901E656FF4F1C
:2003800014912A573F4FF90104910023E9F0882321F069830E945F016981E02FF0E0EE0FAE
:2003A000FF1FEE58FF4F85919491DC01662331F49FB7F8948C911095812304C09FB7F894D7
:2003C0008C91812B8C939FBF0F90CF91DF911F910F9108950E9424010E9475000E947A0081
:0603E000FDCFF894FFCFF1
:00000001FF
quindi la protezione in lettura FUNZIONA!!!. Resta il mistero della protezione in scrittura. Vorrei provare da AVRDUDE, se cambio "r" in "W" dovrebbe funzionare in scrittura, no?
EDIT: sì, funziona, purtroppo, cioè quando devo scrivere scrivo e non gliene frega niente dei LB; se non avete idee o notizie da darmi non posso che fermarmi; a questo punto posso anche ritenermi soddisfatto, anche se non al 100%; almeno la protezione da lettura e quella dei fuse funziona bene.
« Last Edit: April 19, 2012, 03:01:54 am by Michele Menniti » Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Rovereto
Offline Offline
Full Member
***
Karma: 0
Posts: 152
La luce e' piu' veloce del suono. Per questo motivo alcune persone sembrano brillanti fino a quando non parlano.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

quindi la protezione in lettura FUNZIONA!!!. Resta il mistero della protezione in scrittura. Vorrei provare da AVRDUDE, se cambio "r" in "W" dovrebbe funzionare in scrittura, no?

Si. Sostituendo :r con :w scrivi sulla flash. Esiste poi il parametro :v che permette di fare la verifica tra file.hex e flash.

Ciao
QP

AriEdit: scrittura con :w e verifica con :v
Quote
C:\Documents and Settings\tgiovanni>C:\arduino-0023\hardware\tools\avr\bin\avrdu
de.exe -C "C:\arduino-0023\hardware\tools\avr\etc\avrdude.conf"  -p atmega328p -
cstk500v1 -b 115200 -P com4 -Uflash:w:"C:\Lavoro-temp\flash.hex":i

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude.exe: Device signature = 0x1e950f
avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will be perfo
rmed
             To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "C:\Lavoro-temp\flash.hex"
avrdude.exe: writing flash (32748 bytes):

Writing | ################################################## | 100% 3.36s

avrdude.exe: 32748 bytes of flash written
avrdude.exe: verifying flash memory against C:\Lavoro-temp\flash.hex:
avrdude.exe: load data flash data from input file C:\Lavoro-temp\flash.hex:
avrdude.exe: input file C:\Lavoro-temp\flash.hex contains 32748 bytes
avrdude.exe: reading on-chip flash data:

Reading | ################################################## | 100% 4.64s

avrdude.exe: verifying ...
avrdude.exe: 32748 bytes of flash verified

avrdude.exe: safemode: Fuses OK

avrdude.exe done.  Thank you.

-----------------------------------------------------------------------------------------------
C:\Documents and Settings\tgiovanni>C:\arduino-0023\hardware\tools\avr\bin\avrdu
de.exe -C "C:\arduino-0023\hardware\tools\avr\etc\avrdude.conf"  -p atmega328p -
cstk500v1 -b 115200 -P com4 -Uflash:v:"C:\Lavoro-temp\flash.hex":i

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% -0.00s

avrdude.exe: Device signature = 0x1e950f
avrdude.exe: verifying flash memory against C:\Lavoro-temp\flash.hex:
avrdude.exe: load data flash data from input file C:\Lavoro-temp\flash.hex:
avrdude.exe: input file C:\Lavoro-temp\flash.hex contains 32748 bytes
avrdude.exe: reading on-chip flash data:

Reading | ################################################## | 100% 4.64s

avrdude.exe: verifying ...
avrdude.exe: 32748 bytes of flash verified

avrdude.exe: safemode: Fuses OK

avrdude.exe done.  Thank you.
« Last Edit: April 19, 2012, 03:07:32 am by QuercusPetraea » Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 501
Posts: 12307
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie, nel frattempo avevo provato e aggiunto un EDIT.... smiley
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Rovereto
Offline Offline
Full Member
***
Karma: 0
Posts: 152
La luce e' piu' veloce del suono. Per questo motivo alcune persone sembrano brillanti fino a quando non parlano.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Occhio che avrdude prima cancella la flash (e forse i fuse)

Quote
avrdude.exe: Device signature = 0x1e950f
avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will be perfo
rmed

             To disable this feature, specify the -D option.
avrdude.exe: erasing chip

Prova ad inserire il parametro -D

Ciao
QP
Logged

Pages: 1 ... 25 26 [27] 28 29 ... 36   Go Up
Jump to: