Programmare Atmega8

Salve a tutti, ho bisogno di riprogrammare un ATmega8 con la tecnica ISP. L'Atmega in questione è quello presente in questo programmatore http://www.hobbyking.com/hobbyking/store/__21321__usbasp_avr_programming_device_for_atmel_proccessors.html. Sulla rete è presente il file .hex da flasharvi sopra tramite avrdude ma tutte i miei tentativi sono stati vani, sono quindi qui per chiedere aiuto. Qua (http://openrcforums.com/forum/viewtopic.php?%20f=10&t=1363) è spiegato come procedere con una scheda Arduino 2009 ma io dispongo di una Arduino Uno r1, qualcuno può aiutarmi?

Descrivici per bene cos'hai fatto e come l'hai collegato, poi sicuro che sia un Atmega8 e non un atmega8A ?

in realtà non si riesce a leggere cosa c'è scritto sopra, nel caso in cui sia un ATmega 8A cosa cambia? Ho caricato arduinoISP sull'Arduino Uno poi ho effettuato i collegamenti come spiegato un po' da tutte le parti, infine da riga di comando ho scritto:

avrdude -p m8 -b 19200 -c avrisp -P com3 -U flash:w:usbasp.atmega8.2009-02-28.hex

ma dice:

Invalid device signature.

Come programmer-id ho provato ad inserire anche arduino ma il risultato è identico difatti non ho capito che differenza c'è.

Versione di IDE che stai usando?

Board che stai usando per la programmazione ISP?

Sto usando una scheda Arduino Uno r1 con l'IDE 1.0.5

Ascolta, se continui a rispondere in modo telegrafico saremo ancora qui il giorno di ferragosto :sweat_smile: il problema certamente si risolverà, a patto che il micro sia funzionante, ma devi fornire tutte le necessarie informazioni su ciò che stai facendo: 1 - FOTO CHIARA dei collegamenti tra Arduino e breadboard e della configurazione hardware del mega8 allegando comunque la descrizione testuale in modo da avere conferma 2 - righe della board del file boards.txt che stai usando per la programmazione ISP 3 - sequenza delle operazioni fatte.

Ok scusa, è che la faccenda è un po' incasinata. Dunque, partendo dall'inizio, il problema è che il software presente in quel programmatore presenta un errore ed al fine di eliminare tale errore è necessario flasharlo con un altro firmware. Per fare ciò ho seguito la guida linkata al primo post ma il problema è che in quella guida viene utilizzato un Arduino 2009. I collegamenti sono effettuati nello stesso identico modo specificato dalla guida, cmq il problema non dovrebbe essere quello visto che li ha funzionato. 1 La foto posso farla ma mi serve qualche giorno perchè la mia macchina fotografica è in vacanza, la configurazione hardware del mega8 non la sò perchè non è disponibile una schema elettrico ma solo appunto, quella guida. 2 questo passaggio non l'ho effettuato, non sapevo bisognasse modificare il file boards.txt 3 Dopo aver effettuato i collegamenti come specificato, ho caricato lo sketch ArduinoISP sulla scheda e da avrdude ho provato a flashare l' .hex Insomma, il gran casino è che devo riprogrammare un chip che è già montato su un circuito ma non ho nessuno schema di quel circuito, posso farcela? E' per questo motivo che mi riferisco continuamente a quella guida, è l'unica mia fonte di informazioni :sweat_smile:

Se vuoi farti le idee chiare devi dare una buona lettura alla mia guida sulla Programmazione. In due parole: Arduino (UNO o 2009 è uguale) con ArduinoISP a bordo fa da programmatore, i collegamenti ISP: 5V, GND, Reset, MISO, MOSI, SCK (v. sempre la mia Guida per sicurezza) ti permettono di programmare il micro, ma per farlo devi prima selezionare una board che contenga le informazioni del mega8A (se usi direttamente IDE) oppure da riga di comando scrivi quella che ti riporto più sotto; poiché tu hai seguito quest'ultima strada ed ottieni un errore di signature, il problema è al 90% nei collegamenti o nella riga di comando; la signature dei vari tipi mega8/A/L è identica, quindi il problema non è nel micro. Ricontrolla bene i collegamenti, l'ideale è verificare con un tester, ma devono essere ben stretti, basta un minimo di falso contatto e non ti funziona nulla. Verifica che il tuo Arduino UNO sia effettivamente collegato alla porta COM3, altrimenti cambiala, poi prova questa riga di comando: avrdude.exe -C avrdude.conf -p m8 -c arduino -b 19200 -P COM3 -U flash:w:usbasp.atmega8.2009-02-28.hex

la riga è questa, devi fare in modo da riuscire a leggere avrdude.conf, e poi devi essere sicuro dei collegamenti, se continui ad avere errore probabilmente è andato il micro, ma io penso in modo fisso ai collegamenti....

Ok, grazie mille, adesso verifico tutti i collegamenti.
La tua guida mi sembra di averla già letta solo che mi pare fosse incentrata più che altro sulle vecchie versioni dell’IDE, comunque la rileggerò :wink:

LikeLifer: Ok, grazie mille, adesso verifico tutti i collegamenti. La tua guida mi sembra di averla già letta solo che mi pare fosse incentrata più che altro sulle vecchie versioni dell'IDE, comunque la rileggerò ;)

vero, ma c'è un capitolo/aggiornamento sull'IDE 1.0.1 dove è spiegato tutto in modo chiaro e dettagliato ;)

ratto93:
sicuro che sia un Atmega8 e non un atmega8A ?

Non c’e’ nessuna differenza tra 8 e 8A
Oltre alla guida di Michele, che se la studi non te ne pentirai, puoi dare uno sguardo alla mia guida (in firma) che e’ molto piccola, la leggi in un attimo, e parla proprio di atmega8A, magari ti e’ utile. C’e’ anche una board da poter copiare

Sono riuscito, grazie mille, il problema era nei collegamenti, una volta controllato il tutto con il tester ha funzionato perfettamente :D Adesso, con calma, mi leggerò per bene le vostre guide ;)

puoi anche non leggerle, non non ci offendiamo, l'importante è che tu abbia risolto il problema. XD

L'installazione dei driver del programmatore USBasp non ha dato problemi su un computer con window 7 32 bit mentre su un computer con win 7 64 bit ho faticato non poco ed il risultato è stato che funziona su una sola porta USB... mah

Ho letto le vostre guide (anche se ho saltato alcune parti di quella di Menniti), complimenti a tutti e due :)

Grazie. Ciao :)

Grazie dei complimenti, visto che non ci paga nessuno, sono il nostro unico salario :)

se ti puo' essere utile io uso USBAsp su Win764 senza problemi, hai usato gli ultimi driver dal sito del creatore originale ? Come mai hai fatto l'aggiornamento ? il mio mi da' un messaggio, che non pregiudica nulla, per togliere il quale dovrei aggiornarlo, e' per lo stesso motivo ?

Leggendo un po' in giro mi ero fatto l'idea che i driver su win 7 64 bit dessero problemi un po' a tutti, ma se non è così mi metterò sotto a cercare l'inghippo ;) I driver sono quelli originali, presi da qua: http://www.fischl.de/usbasp/

Ho fatto l'aggiornamento perchè il circuito da me comprato, essendo cinese, era dotato di un firmware proprietario che non permetteva ad avrdude di impostare l'SCK.

yes, ti confermo il perfetto funzionamento con quei driver.

La questione del settaggio via avrdude della frequenza di clock del bus SPI non e' causata da un firmware proprietario, e' semplicemente la vecchia versione, infatti prima che avrdude assimilasse tutte le funzionalita' di usbasp lo si faceva via jumper. E' proprio l'errore di cui parlo io :)

warning: cannot set sck period. please check for usbasp firmware update