atmega644p

Salve a tutti
io sto provando a programmare un atmega644p tramite arduino uno usato come isp. Mi serve capire bene come eseguire i vari collegamenti e come installare le varie librerie per poterlo programmare usando l'ide 1.6.0 (l'ultimo).

Grazie

nessuno lo conosce??

Sul mio sito (link in calce) trovi un pacchetto con il core per l'IDE 1.5.8, non l'ho ancora potuto sistemare al 100% con l'ultima versione 1.6.0 perché attualmente ho un progetto che mi sta portando via un sacco di tempo ma funziona anche con quest'ultima.
Nella guida c'è tutto, compreso lo schema dei collegamenti per la programmazione via ISP ma anche via seriale grazie ad un bootloader da scrivere sul chip.

Per sicurezza scarica il pacchetto di Leo (http://www.leonardomiliani.com/2014/aggiornato-il-core-atmega644p1284p-per-lide-1-5-8-di-arduino/) e il vecchio IDE 1.5.8 --> http://arduino.cc/en/Main/OldSoftwareReleases

allora io ho fatto questi collegamenti:

pin 10 uno con pin 9 644p e resistenza 10k verso 5v
pin 11 uno con pin 6 644p
pin 12 uno con pin 7 644p
pin 13 uno con pin 8 644p

pin 10 e 30 644p a 5v
pin 11 e 31 644p a gnd

pin 12 e 13 ai condensatori 22pf e oscillatore al quarzo da 16 hz

però ottengo sempre lo stesso errore :

avrdude: Expected signature for ATMEGA644P is 1E 96 0A
Double check chip, or use -F to override this check.

sbaglio qualcosa?

Togli la R dal collegamento pin 10-pin 9. E' l'ArduinoISP che pilota lo stato di quel pin, non serve nessuna pull-up.

pin 11 e 31 644p a gnd

E massa in comune con quella dell'Arduino?

per quanto riguarda l'alimentazione l'atmega644p è alimentato da arduino uno che a sua volta è alimentato tramite usb.

Partiamo dalle basi. Ce la fai a mandare una foto dei collegamenti, che sia chiara e ben a fuoco?

In allegato l'immagine dei collegamenti esatti tra Arduino e la famiglia del 644P, puoi fare a meno di quarzo e condensatori se il chip è vergine e vuoi farlo lavorare a 1 o 8MHz col clock interno. La r di pull-up può effettivamente essere omessa ma non necessariamente, io le metto per poter subito dopo eliminare i collegamenti e testare il micro. L'immagine è copyright in quanto è presente nel mio libro, chi vuole ne faccia uso personale con preghiera di diffonderla solo se non viene modificata, p.es. eliminando la dicitura in sovraimpressione. L'errore sembrerebbe indicare che in realtà il tuo chip non è P, hai controllato bene?

Ero convittissimo di avere un atmega644p ed invece ho un atmega644a-20pu.
Ho fatto una prova modificando il file boards.txt togliendo la p nelle due righe

atmegax4.menu.cpu.644_16.bootloader.file=optiboot_atmega644.hex
atmegax4.menu.cpu.644_16.build.mcu=atmega644

e di fatto così carica. La cosa strana che ho notato è che funziona bene con il clock interno a 1Mhz mentre se lo imposto a 16 Mhz esterno noto che diventa lento. Come mai?

Probabilmente non hai settato i fuse in modo corretto, l'operazione richiede una board settata correttamente ed un core & bootloader specifici, in modo che caricando il bootloader setti anche i fuse; in alternativa puoi settarli da riga di comando, mediante avrdude, o meglio ancora ricorrendo ad una delle tante GUI basate su avrdude. Naturalmente devi essere ben consapevole di come vanno settati i fuse altrimenti rischi di brickare il micro.