Topic permanente di programmazione newbie

zwzz: Mostly networked community.

Spammer, segnalato ai moderatori.

astrobeed:

zwzz: Mostly networked community.

Spammer, segnalato ai moderatori.

Idem.

OK, grazie ad entrambi, stasera al rientro faccio subito un tentativo e vi riporto i risultati :)

Oppure usa le utility che ti avevo suggerito qui: http://arduino.cc/forum/index.php/topic,100580.msg754520.html#msg754520 ;)

amario57: Oppure usa le utility che ti avevo suggerito qui: http://arduino.cc/forum/index.php/topic,100580.msg754520.html#msg754520 ;)

Sì, hai ragione, ho messo tutto in una cartella "da studiare", il test dell'AVRDUDE dovrebbe essere immediato, una riga e via, vediamo. Grazie!

ricorda che anche se la lettura è bloccata potresti leggere o tutti FF o comunque dati spazzatura senza significato.

BrainBooster: ricorda che anche se la lettura è bloccata potresti leggere o tutti FF o comunque dati spazzatura senza significato.

boh, stasera al rientro faccio qualche prova e vediamo che ne esce....

La sintassi: C:\avr\bin\avrdude.exe -C"C:\avr\etc\avrdude.conf" -patmega328p -cstk500v1 -b9600 -PCOM60 -Uflash:r:C:\Flash.hex:i mi restituisce: can't open device "COM60": impossibile trovare il file specificato (ma la porta è quella); ma l'ultima parte dovrebbe crearmi un file Flash.hex in c:\?

[quote author=Michele Menniti link=topic=95050.msg764948#msg764948 date=1334780387] La sintassi: C:\avr\bin\avrdude.exe -C"C:\avr\etc\avrdude.conf" -patmega328p -cstk500v1 -b9600 -PCOM60 -Uflash:r:C:\Flash.hex:i mi restituisce: can't open device "COM60": impossibile trovare il file specificato (ma la porta è quella); ma l'ultima parte dovrebbe crearmi un file Flash.hex in c:\? [/quote] Metti la porta a cui è collegato il tuo Arduino. Sì, con questa sintassi fai il dump della flash su file e lo salvi nel percorso specificato

Leo, l'ho pure scritto, la porta è quella, ora ho anche provato a mettere il micro con bl e blink durettamente su Arduino, i lock bits sono FF, ma questo è un errore di AVRDUDE, ho visto che in alcune sintassi usavi -b -P 19200 COMx, ma mi dà errore che -P è un baud errato

con COM1 parte ma poi ovviamente dà errore; ho capito che il problema è che non riesce a concepire queste COMxx, ma che posso farci io? come faccio a impostare Arduino su una COM2 o similari?

Sono riuscito a reindirizzare Arduino su COM2, ho impostato 9600baud, ora avviene l'accesso ma mi dà errore di sync... mi sa che non è cosa

Ogni opzione vuole il suo parametro, quindi se vuoi cambiare velocità devi mettere -b 19200 -P porta. Per la porta non so come fare a vederle su Windows, prova collegando l'Arduino e poi aprendo l'icona del Computer per vedere su quale porta viene mappata la scheda.

Leuccio,ma stasera non mi ascolti, va bene che è quasi ora di ninna :D Ho detto che la porta è quella, la COM60 ma AVRDUDE non la gradisce in dos, l'ho cambiata in COM2 da gest periferiche ed ora il comando parte ma fa storie di sync (sembrano probemi del reset). Ora ho anche provato il programma di amario57, il Sina Prog 2, ho ripristinato la COM60 ma anche qui mi dà errore di sync; sto lavorando direttamente su Arduino, senza collegamento ISP

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

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 :)

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 :)

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

QuercusPetraea: 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.

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 :astonished: 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:

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:

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.

@Mike: rileggendo i vecchi msg, io ti avevo scritto:

leo72: 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: [quote author=Michele Menniti link=topic=95050.msg765315#msg765315 date=1334819455]

C:\avr\bin\avrdude.exe -C"C:\avr\etc\avrdude.conf"  -p atmega328p -cstk500v1 -b 9600 
-P COM2 -Uflash:r: C:\Flash.hex:i

[/quote] 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.