Non riesco a programmare ATmega644P

svariate volte hai parlato di 100pF NON nF, un errore o diverse combinazioni?

Grazie Michele e grazie Leo per la pazienza.

MA UNA DOMANDA!!! In condensatorino dopo la R da 10.000 Ohm per fare il filtro anti-rompiscatole-1284, non era da 100pF??? Adesso leggo che è da 100nF...

Ecco, mi sembrava!!

Meno male che ci sei tu a vegliare su di me :sweat_smile:
Ora correggo.

Cmq adesso carico il Bootloader Sanguino. Almeno una prima programmazione del Blink me lalasciava fare. Poi comincio con i tentativi.

Babbuino, una precisazione. Io di problemi ne ho più con il 1284 che con il 644.
Quest'ultimo con me fa meno lo str...zo dell'altro.

Sisi, sabato notte mi sono letto le 23 pagine del mega-post. Per questo che mi meraviglio a maggior ragione.

Cmq bootloader caricato, adesso metto il Blink...

Blink caricato ad 1 Hz. Adesso provo a 2 Hz.

Intanto date un'occhiata alla def di Board:

##############################################################
atmega644.name=Sanguino W/ ATmega644P via Bootloader
atmega644.upload.protocol=stk500
atmega644.upload.maximum_size=63488
atmega644.upload.speed=57600
atmega644.bootloader.low_fuses=0xF7
atmega644.bootloader.high_fuses=0x9A
atmega644.bootloader.extended_fuses=0xFF
atmega644.bootloader.path=atmega
atmega644.bootloader.file=ATmegaBOOT_168_atmega644p.hex
atmega644.bootloader.unlock_bits=0x3F
atmega644.bootloader.lock_bits=0x0F
atmega644.build.mcu=atmega644p
atmega644.build.f_cpu=16000000L
atmega644.build.core=arduino
##############################################################
atmega644.name=Sanguino W/ ATmega644 via ISP
atmega644.upload.protocol=stk500
atmega644.upload.maximum_size=65536
atmega644.upload.speed=115200
atmega644.upload.using=arduino:arduinoisp
atmega644.bootloader.low_fuses=0xF7
atmega644.bootloader.high_fuses=0xDF
atmega644.bootloader.extended_fuses=0xFF
atmega644.bootloader.path=atmega
atmega644.bootloader.file=ATmegaBOOT_168_atmega644p.hex
atmega644.bootloader.unlock_bits=0x3F
atmega644.bootloader.lock_bits=0x0F
atmega644.build.mcu=atmega644p
atmega644.build.f_cpu=16000000L
atmega644.build.core=arduino

Sembrano a posto, varia sempre l'HFuse visto che ogni bl ha la sua capienza, ma con il low a F7 siamo a posto

Ultimo tentativo è stato di estrarre il 644 dalla board "bella" e buttarlo stand alone su una breadboard, con tutti i componenti di contorno.

Niente da fare. Carica bene il Bootloader, carica il 1° Blink via seriale, ed al secondo si pianta. Provati 2 ATMega644 ed entrambi hanno lo stesso comportamento.

Per ora ci rinuncio...

Mah...Io ho usato il bl di Leo e nelle board di testo vedo che per il caricamento in ISP si utilizza la velocità di 19200 mentre per caricamento tramite bootloader la velocità sale a 115200.
Queste sono le differenze ma non credo sia questo il problema.

Io ti posso dire che ho usato il C da 100nf in serie con il la linea di reset e la R in pull-up... tra l' altro il quarzo nella breadb. non è neanche tanto vicino al micro.
Ora nella Bread ho collegato la micro 5 sensori di tutti i tipi e anche un port expander i2c e una micro sd via ISP, funziona tutto a meraviglia.. (per il momento) ]:smiley:
Cosa ti dice il led nel pin2 e con il boot loader di Leo ?

Ciao

Ciao,
potrei dire cose già dette o castronate, non son ancora riuscito a leggermi tutte le pagine del thread...

Per ora la parte di caricamento del bootloader me la son schivata: ho un paio di ATMega644p già con bootloader sanguino.
Ieri sera ho dovuto aggiornare con nuovo firmware uno di questi.
Sono su board Sanguinololu - c'è un convertitore ftdi e quarzo 20mhz

In ogni caso, modificando il file boards.txt e impostando (riporto solo i cambiamenti):

atmega644.upload.protocol=arduino
atmega644.upload.speed=38400

il caricamento dello sketch avviene senza problemi (se non consideriamo il giochetto del tasto di reset tenuto premuto prima dell'upload).

@pitusso:
mettendo 38400 però dovresti ricompilare il bootloader per lavorare a quella velocità. Il bootloader AtmegaBOOT lavora a 57600 mentre l'Optiboot 4.5 a 115200.

@babbuino:
fai un'ultima prova. Prova con il filtro RC e non usare jumper per fare il collegamento tra pin del convertitore e pin RX0 del micro ma utilizza la stessa resistenza come ponticello. Sembrerà una scemenza ma a me ha funzionato. In pratica ci deve essere la minor distanza possibile da percorrere.

@leo

mettendo 38400 però dovresti ricompilare il bootloader per lavorare a quella velocità. Il bootloader AtmegaBOOT lavora a 57600 mentre l'Optiboot 4.5 a 115200.

ha bootlaoder sanguino

pitusso:
ha bootlaoder sanguino

E' compilato per una velocità di 57600.

@leo
ok, rimane il fatto che a modificare la velocità nel boards.txt non ci son arrivato a tentoni, ma dapo lettura di svariate fonti nel mondo RepRap dove l'mcu in questione è largamente usato con il bootloader sanguino.
Solo così si riesce a caricare un qualche sketch sul micro...

Perché allora non provi a modificare la velocità anche nel file Makefile allegato ed a ricompilare il bootloader?

Ma se gli funziona perché dovrebbe ricompilare? Tanto per scegliare l'orso che dorme? :grin:
Mi segno anche quest'altra prova, considerando però che io con il bl "optiboot" maniacbug ultimo (vel 115200) attualmente programmo il 644 con la sola R, ma se la posso eliminare.....