Go Down

Topic: atmega8a-au come programmare con arduino? (Read 927 times) previous topic - next topic

DriftBoy

Ho solo caricato lo sketch del programmatore HV modificandogli solo i fuse high e low

Come si fa l'erese?

Che modifiche devo fare all'ide per caricare poi il bootloader in 8MHz cosi' mi levo anche il dubbio, impiccio dell'oscillatore?

I micro mi rispondono nuovamente con invalid signature

leo72


Come si fa l'erese?

Se hai realizzato il circuito che hai linkato, premi il pulsante. A questo punto è lo sketch che ti erasa il microcontrollore difettoso. Devi però controllare lo sketch perché quello distribuito in quella pagina è compatibile solo con l'Atmega328. Quindi va visto se l'Atmega8 ha i pin per la programmazione parallela negli stessi pin dell'Atmega328 e poi caricare i valori dei fuse di default.
Anche la versione 2.0 di quel circuito non supporta ufficialmente l'Atmega8.

Michele Menniti

Leo, sei sicuro che quello sketch faccia l'erase? Ora non so però sono assolutamente certo che nel mio sketch, che pur si basava in partenza su quello, dovetti studiarmi tutta la procedura ed implementarla per fare il chip_erase. Riguardo le "compatibilità" posso confermare che vanno esclusivamente per package del micro: tutti i micro ATMEL a 28 pin sono compatibili tra loro per quanto riguarda le linee di programmazione, sia HVPP che HVSP. Unica eccezione sono i package a 20 pin, per i quali all'epoca dovetti prevedere due distinti zoccoli, per le due diverse tipologie. Invece sull'smd onestamente non ho studiato nulla, quindi non posso essere d'aiuto.
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

leo72


Leo, sei sicuro che quello sketch faccia l'erase?

Al 100%? No. Dovrei guardare il codice.

DriftBoy

Nello sketch dell'hv non e' presente l'erase

Cmq a codesto punto mi metto l'animo in pace per ora, e visto che ne sto acquistando di nuovi vi chiedo solo se e possibile impostare l'ide per caricare il bootloader a 8mhz

leo72

#20
May 23, 2013, 02:34 pm Last Edit: May 23, 2013, 02:38 pm by leo72 Reason: 1
Sì ma devi compilartelo perché nell'IDE c'è il firmware pronto solo di quello a 16 MHz.
Vai dentro la cartella /hardware/arduino/bootloader/optiboot e poi dai un "make atmega328_pro8"
A questo punto hai il file pronto per inserirlo in una board impostata ad 8 MHz dentro al file boards.txt

Testato

confermo non ci sia l'erase perche' dopo il salvataggio del mio 328P mi sono ritrovato l'ultimo programma funzionate.
questo pero' conferma anche che non sia necessario l'erase
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

leo72

Sì ma difatti l'erase può essere utile solo se c'è un programma che combina qualche casino, metti una gestione errata del watchdog che resetta continuamente il micro oppure qualcosa che occupa la seriale ed impedisce l'upload di uno sketch tramite seriale/bootloader. Nei casi in cui il micro è brickato per fuse errati, rimettendo questi a posto il chip "resuscita" senza doverlo erasare.

Michele Menniti

quindi ricordavo bene  ;) il chip_erase è inoltre l'unica funzione che permette di "sproteggere" (ma ovviamente cancellandone i contenuti) un micro, perché ignora qualsiasi combinazione  del Lock Bit Byte
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

leo72

Quoto cosa dice il manuale di avrdude relativamente all'erase:

Quote

Causes a chip erase to be executed.  This will reset the contents of the flash ROM and EEPROM to the
value '0xff', and clear all lock bits.  Except for ATxmega devices which can use page erase, it is
basically a prerequisite command before the flash ROM can be reprogrammed again.  The only exception
would be if the new contents would exclusively cause bits to be programmed from the value '1' to '0'.
Note that in order to reprogram EERPOM cells, no explicit prior chip erase is required since the MCU
provides an auto-erase cycle in that case before programming the cell.

Testato

yes,

ho voluto sottolineare l'indipendenza del discorso fuse dal discorso erase perche' la ripsosta di Pelletta potrebbe far pensare che sia obbligatorio un erase prima di un cambio fuse via HV


fai un Erase del micro prima di impostare i fuse, vero?
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

leo72

Sai l'erase conviene sempre farlo quando si ha a che fare con un chip brickato perché non sai mai se il blocco dipende appunto dai fuse oppure dal firmware che può fare i pasticci di cui sopra.

Testato

certo, ma gestendo i test in modo sequenziale ed oculato, riprogrammando solo i fuse ad esempio la signature deve tornare leggibile, anche se il programma e' incriccato o se i lockbit sono bloccati.
Dopo aver avuto accesso alla signature si passa al prossimo step, cosi' si impara meglio imho  :)
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Go Up