ho installato winavr, dal quale ho estrapolato avrdude... ho scaricato il firmware e realizzato il seguente collegamento per interfacciare arduino uno al micro attiny2313
Perché hai intitolato il thread "USBtinyISP"?
Stai usando un USBtinyISP oppure vuoi replicare questo programmatore?
Per ora prova aggiungendo il parametro "-b 19200", che in quelle stringhe per avrdude non c'è. Serve ad impostare la velocità di comunicazione, e senza di esso lo sketch ArduinoISP non lavora correttamente.
leo72:
Perché hai intitolato il thread "USBtinyISP"?
Stai usando un USBtinyISP oppure vuoi replicare questo programmatore?
Per ora prova aggiungendo il parametro "-b 19200", che in quelle stringhe per avrdude non c'è. Serve ad impostare la velocità di comunicazione, e senza di esso lo sketch ArduinoISP non lavora correttamente.
dando anche solo il primo comando in giro vedo che ci sono degli errori:
# avrdude -U lfuse:w:0xe4:m -U hfuse:w:0x9f:m -U efuse:w:0xff:m -p t2313 -c stk500v1 -P /dev/ttyACM0
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
avrdude done. Thank you.
allora ho aggiunto l'opzione -F ottenendo lo stesso degli errori:
# avrdude -U lfuse:w:0xe4:m -U hfuse:w:0x9f:m -U efuse:w:0xff:m -p t2313 -c stk500v1 -P /dev/ttyACM0 -F
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
avrdude: Expected signature for ATtiny2313 is 1E 91 0A
avrdude: reading input file "0xe4"
avrdude: writing lfuse (1 bytes):
Writing | | 0% 0.00s ***failed;
Writing | ################################################## | 100% 0.08s
avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xe4:
avrdude: load data lfuse data from input file 0xe4:
avrdude: input file 0xe4 contains 1 bytes
avrdude: reading on-chip lfuse data:
Reading | ################################################## | 100% 0.00s
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0xe4 != 0x00
avrdude: verification error; content mismatch
avrdude: safemode: lfuse changed! Was e4, and is now 0
Would you like this fuse to be changed back? [y/n] Y
avrdude: stk500_recv(): programmer is not responding
Come potrei risolvere? purtroppo è la prima volta che utilizzo avrdude da linea di comando e non ci capisco molto... se aggiungo l'opzione da te indicata -b 19200 ottengo:
Il parametro "-F" non lo usare mai. Forzi un'operazione anche contro il volere di avrdude, e potresti fare dei danni.
Prova con avrdude distribuito con l'IDE di Arduino, lo trovi in /hardware/tools/
E con esso usa il suo file .conf.
Quindi, ricapitoliamo:
spostati in /hardware/tools e lì copiaci il firmware
apri poi un terminale in questa cartella e dai:
./avrdude -C ./avrdude.conf -U lfuse:w:0xef:m -U hfuse:w:0xdb:m -p t2313 -c stk500v1 -P /dev/ttyACM0 -b 19200
NB: questi sono i fuse che Adafruit imposta per il suo USBtinyISP (li ho presi dalla versione 1.0 del programmatore)
NB2: in questo modo imposti il micro per usare un clock esterno quindi se la scrittura va a buon fine, poi ti serve il risonatore ceramico da 12 MHz esterno
Il parametro -b 19200 non puoi ometterlo, infatti AVRDUDE sta leggendo la signature del micro di Arduino.
Se usi l'IDE 1.0.1 al posto di stk500v1 devi scrivere arduino.
-U flash:w:main.hex:i io la scrivo col percorso del file (WIN):
-U flash:w:C:\main.hex:i
altra cosa: il "classico" condensatore lo devi togliere, serve solo se hai il problema dell'autoreset, diversamente ti impedisce di lavorare.
mmm.. forse passando da windows a linux devo aver combinato qualche casino...
ho ricaricato l'arduinoISP e ho magicamente risolto con la 0023 64 bit... i comandi utilizzati sono stati quelli segnalati nel primo post con l'aggiunta del parametro -b 19200
grazie mille come sempre....
un ultima domanda... guardando lo schema.. le resistenze 22-47 si intende K vero?
se hai la UNO R3 non va usato il condensatore anti-autoreset perché la UNO R3 ha l'Optiboot 4.4 che risolve quel problema;
usando avrdude stk500v1 o arduino sono equivalenti: il secondo emula il primo. Tant'è che nelle ultime versioni di avrdude è stato inserito "arduino" tra le opzioni selezionabili come programmatore, ma è indifferente perché l'ArduinoISP emula proprio un programmatore STK500 versione 1.
come dice Michele, stavi cercando di programmare l'Atmega328 dell'Arduino, lo conferma la signature che ti scriveva: 0x1e950f è quella del 328
per replicare l'USBtinyISP io ho usato R da 47 ohm, se può esser d'aiuto
una sola precisazione, nell'AVRDUDE della 0022 il programmatore "arduino" non c'è quindi bisogna usare STK500v1, nella 1.0.1 ci sono entrambi.
in lettura di uno stand-alone si usa comunque STK500v1
invece in scrittura si deve usare STK500v1 nella 0022 e arduino nella 1.0.1
Ovviamente le mie prove riguardano le versioni integre di 0022 e 1.0.1, quindi ognuna col proprio AVRDUDE.exe
Ciao a tutti, prima che faccia danni ho un ultima domanda.. ho realizzato l'usbtinyisp... ora lo devo collegare all'atmega328 da programmare... mi domandavo:
max95:
Ciao a tutti, prima che faccia danni ho un ultima domanda.. ho realizzato l'usbtinyisp... ora lo devo collegare all'atmega328 da programmare... mi domandavo:
No, il pin RST del Tiny2313 non va collegato al corrispondente del 328. Il pin RST dell'Atmega328 va collegato al pin che pilota il reset del Tiny2313, che se non ricordo male nell'USBtinyISP è il pin 16 del 2313. Per sicurezza ricontrolla gli schemi del programmatore di Adafruit
risolta la parte software ho un problema nella parte hardware...
facendo riferimento all'allegato (prelevato da questa discussione http://arduino.cc/forum/index.php/topic,110429.0.html ) la scheda non viene riconosciuta dal pc (sia sotto win7 che sotto linux)...ho controllato e ricontrollato il circuito da me realizzato piu volte...
In che senso non viene riconosciuta?
Che ti dice dmesg?
Che distro usi, poi?
Ricordati che l'USBtinyISP necessita di permessi aggiuntivi per poter essere montato senza problemi.
Leggi la parte finale di questa pagina: http://www.ladyada.net/make/usbtinyisp/avrdude.html
Prova l'ultima riga, perché sulle distro più recenti le altre due non funzionano sempre (ricordati di riavviare il computer dopo aver salvato il file)
ciao, ho provato su windows... io collego la scheda, nessun led si accende e se do il comando indicato ottengo sempre:
ho provato con il tester a controllare un po e ho notato che tra + e - ho circa 5.05 V ma sui pin 2 e 3 dell'usb ho una tensione di 0 V...
nel dubbio ho riprogrammato anche il 2313, ma nulla da fare...