Non riesco a programmare ATmega644P

imposta:
maximum_size=65536
low_fuses=0xFF
high_fuses=0xDF
extended_fuses=0xFF
il resto ignoralo
in questo modo hai tutta la flash a disposizione

C'hai raGGione, anche la memoria è di più...

Cmq niente programmazione. La prima da vergine va a buon fine, la seconda nisba (senza cambiare una virgola).

Però una nota: Ieri sera non mi programmava nemmeno alla prima, questo perchè avevo un collegamento con dei ponti ulteriori tra TX/RX dei programmatori e il 644, quindi i fili corti sono un elemento d'obbligo

Queste problematiche le aveva riscontrate anche Leo. Come detto io c'ho dedicato svariate (troppe) ore, considerando che il micro si programma via ISP e funziona a meraviglia; certo è giusto riuscire a lavorare via seriale per tanti motivi. Non so se hai letto sull'altro Topic: sono stato in contatto con l'assistenza ATMEL e mi hanno chiesto di caricare via ISP un programma che gestisse la seriale, bell'idea! L'ho fatto ed ha funzionato tutto senza problemi. E' proprio il bootloader, non c'è niente da fare. Con Leo abbiamo fatto altre prove ma senza risultati convincenti, quindi l'unica resta la soluzione di Astro, ma bisogna dargli il suo tempo, visto che è in una fase di lavoro molto intensa ed è giusto dare priorità al lavoro e poi al resto.

Io ti posso dare la mia esperienza in cui sto preparando un pcb con all' interno un 644P stand alone, ma per il momento è ancora su breadboard, riuscendo a programmarlo via seriale senza problemi senza perdere un colpo.
Ho un adattatore usb seriale con il chip cp2102 collegato al 644 con un cond. poliestere da 100nf in serie nella linea di reset con una resistenza da 2K in pull-up.Tx->TX, RX->RX
Io uso il bootloader di leo.

I problemi che ho avuto in passato sono stati questi.

  1. Non caricava lo sketch via seriale con lo stesso tuo errore, caricavo lo sketch senza la selezione "con il boobtloader"
  2. Errori vari. Ho trovato dei problemi con la breadboard.. Sembra che a volte non faceva bene contatto.
  3. Errore uguale al tuo. Mancanza del condensatore in serie nel reset o della resistenza di pull-up.

Spero che questo ti possa dare una mano

superzaffo:
Io ti posso dare la mia esperienza in cui sto preparando un pcb con all' interno un 644P stand alone, ma per il momento è ancora su breadboard, riuscendo a programmarlo via seriale senza problemi senza perdere un colpo.
Ho un adattatore usb seriale con il chip cp2102 collegato al 644 con un cond. poliestere da 100nf in serie nella linea di reset con una resistenza da 2K in pull-up.Tx->TX, RX->RX
Io uso il bootloader di leo.

NON è possibile, i segnali vanno incrociati, oppure hai le serigrafie sballate sull'adattatore, errori sì, ma non possiamo andare oltre decenza. Perché 2,2K la pull-up invece di 10K, qualcosa a cui sei arrivato o è un valore come un altro?

I problemi che ho avuto in passato sono stati questi.

  1. Non caricava lo sketch via seriale con lo stesso tuo errore, caricavo lo sketch senza la selezione "con il boobtloader"
  2. Errori vari. Ho trovato dei problemi con la breadboard.. Sembra che a volte non faceva bene contatto.
  3. Errore uguale al tuo. Mancanza del condensatore in serie nel reset o della resistenza di pull-up.
    Spero che questo ti possa dare una mano

ovviamente dai una mano se spieghi COME li hai risolti NON se dici che li hai avuti :D; in particolare:

  1. che significa la prima riga? ti riferisci alla board selezionata o a cosa?
  2. ma oggi dici di essere ancora su bb, quindi?
  3. sul C ci siamo, come ho detto anch'io a volte serve, a volte non serve, va provato, poi torniamo al discorso del valore pull-up

Insomma, domani in LAB, prima prova il C da 100nF sul reset, e a seguire R di pull-up.

Michele anche il mio CP2103 va collegato diretto (non incrociando): TX con TX e RX con RX.

Per ora tengo il Bootloader di Sanguino, poi vedremo se è il caso di passare a quello di Leo.

Sono sbagliate le serigrafie, o meglio sono riferite al target e non, come dovrebbe essere, al chip a cui sono collegate, in pratica è la stessa cosa di quando si usa Arduino senza micro, perché le sigle tx/rx sono riferite al micro 328 e non al Convertitore 8u2.
Comunque penso che con il C da 100nF risolvi, in realtà il 644 non è mai stato un problema per nessuno, nemmeno per me, che ho avuto i guai più grossi, finora :sweat_smile:

La resistenza di 2K l'ho trovata provandone alcune. E guardando un po' gli schemi in internet. :*

  1. che significa la prima riga? ti riferisci alla board selezionata o a cosa?

Bhè volevo dire che nella fase di programmazione non selezionavo come tipo di arduino "Atmega644 16Mhz w/bootloader" e per cui dopo la prima programmazione del bootloader via isp e il caricamento dello sketch. Quindi con lo sketch cancellavo il bootloader.

  1. ma oggi dici di essere ancora su bb, quindi?

Si sono ancora su breadborad, ma l'ho cambiata. ]:smiley: adesso sto collegando tutti i sensore e altri componenti, per prototipo, prima di disegnare il tutto.

  1. sul C ci siamo, come ho detto anch'io a volte serve, a volte non serve, va provato, poi torniamo al discorso del valore pull-up

Si, senza io non sono riuscito a fare niente. Ho messo il condensatore e la resistenza di pull-up.

Io ho collegato anche, su suggerimento di leo, un led nel secondo pin del 644, così da avere una diagnostica su cosa sta facendo il chip.
Nei miei tentativi, notavo che l' errore che segnalato da Babbuino mi usciva sempre quando la comunicazione con la seriale non avveniva.

Quello della lunghezza dei collegamenti fra pin del micro e pin del convertitore è un problema che ho risolto solo adottando la R da 175K (100K+75K), usando il semplice filtro RC (con C da 100pF e R da 10K) non potevo usare nessun jumper ma dovevo fare il collegamento tra pin RX dell'Arduino e pin RX0 del chip usando direttamente la R senza nient'altro.

Sul forum internazionale tutti quelli che mi hanno risposto dicendomi che non avevano problemi ho capito che non stavano usando il chip su breadboard, quindi mi par di capire che ci sia anche una certa sensibilità del pin alle capacità parassite introdotte dalle piste dalla breadbord.

Ah, un aggiornamento. Cambiate il fuse basso in $F7. Il valore $F7 attiva un generatore di clock di tipo "full swing", mentre $FF attiva il supporto ad un segnale di clock esterno. Sembra che questa impostazione dovrebbe essere scelta sempre quando si usa un cristallo esterno.

In effetti, anche se questa l'abbiamo sempe usata (e la usa anche Arduino), FF sembrerebbe volere un "oscillatore esterno quarzato", mentre l'F7 comprende nella descrizione "oscillatore a cristallo", ed altre configurazioni vicine parlano di "risuonatore ceramico", quindi potrebbe essere. Però tu questa cosa l'hai già detta tempo fa ed io la provai, ma con il bl con cui non ho mai combinato niente, invece sarà interessante fare qualche prova con il bl che mi funziona, con i vari convertitori; messo in agenda.... :slight_smile:

Sul mio sito un lettore mi ha confermato che a lui il fuse $F7 "full swing oscillator" ha risolto il problema.
A me personalmente non ha risolto nulla, però io ormai attribuisco il 50% dei miei problemi all'uso della breadboard.

Se qualcuno con H2O e HCl volesse provare a fare un PCB per testare la programmazione seriale farebbe un piacere alla scienza... ed a noi :sweat_smile: :sweat_smile:

leo72:
Sul mio sito un lettore mi ha confermato che a lui il fuse $F7 "full swing oscillator" ha risolto il problema.
A me personalmente non ha risolto nulla, però io ormai attribuisco il 50% dei miei problemi all'uso della breadboard.

Se qualcuno con H2O e HCl volesse provare a fare un PCB per testare la programmazione seriale farebbe un piacere alla scienza... ed a noi :sweat_smile: :sweat_smile:

Sai che ti dico? diamo per scontato che la bread dia fastidi, per fare due prove di programmazione seriale a questo punto sarebbe sufficiente una millefori no? quando a collegamenti corti, sarebbe anche più efficace di un PCB :wink:

Vero. Non pensavo alla millefori.

alla fine si tratta di saldare solo 7-8 pin in tutto, quarzo, 2 C e pull-up, si può fare :slight_smile: ma io prima devo finire altro, se no scoppio!

Ho provato ora a modificare i low fuse sia sul 644P che sul 1284P ed ho provato a caricare il blink e mi funziona,sul 1284, anche senza resistenza. Il 644 invece non mi ha mai dato problemi neanche prima.

Tu sei quello che ha avuto meno problemi di tutti, quindi ora sei in condizioni standard, niente R, niente C aggiuntive, programmi come se fosse un 328, bene! Prove sempre su breadboard?

Si Michele sono sempre su breadboard ,nessuna R e nessun condensatore,neanche al reset. L'unica R è la pull_up da 10K sul reset.
Il convertitore è sempre l'MCP2200 in configurazione che ben conosci.

ok, grazie, sarà l'aria di Torino :~

ok, grazie, sarà l'aria di Torino

Effettivamente è strana questa cosa.....Io di software non capisco molto ma se fosse un problema di bootloader è possibile che il problema si manifesti con dei chip sì ed altri no?? Boh :cold_sweat:

non di software, nel senso stretto, ma di tempistica gestita dal software, in pratica io penso che i vari bootloader che stiamo usando, come del resto confermava Astrobeed, derivando da quelli per il 328P, non tengano conto delle particolari, ed evidentemente diverse, tempistiche di queste bestiole più grandi; poiché siamo si differenze comunque minime, ecco giustificati certi comportamenti positivi o negativi e l'instabilità di altri, in fondo siamo sul filo del pelo di pulce, le micro-tolleranze da lotto a lotto fanno il resto.
La prova certa di ciò l'avremo solo quando Astro ci fornirà il bootloader a cui stava lavorando lui, che invece parte da quello del mega2560, per cui molto più vicino come parentela rispetto al 328P, vedremo....
Notte a tutti, domani ho una giornata da disperati ed ancora non mi sono ripreso completamente :disappointed_relieved: