Pages: 1 [2] 3 4 ... 7   Go Down
Author Topic: Non riesco a programmare ATmega644P  (Read 6505 times)
0 Members and 1 Guest are viewing this topic.
Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non ho un condensatore adatto purtroppo. Ora provo con qualche resistenza.

Ma perchè la prima programmazione seriale (quella subito dopo il Bootloader via ISP) funziona? 
a saperlo.... io temo che la presenza di uno sketch nel micro crei conflitto alla gestione delle linee rx/tx dopo il reset, però è una cosa che succede solo a te, a conferma che ognuno ha la sua situazione personalizzata smiley-sad-blue
Logged

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

Offline Offline
Edison Member
*
Karma: 40
Posts: 1964
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

il CP 2102 NON ha il condensatore sul reset, però al primo tentativo ha funzionato.

Ho l'altro programmatore seriale, al quale ho saldato sul piedino di DTS un piccolo condensatore da 100nF, ma dubito che sia un problema di quel genere.

Secondo me è un problema, come dici tu, di timing di bootloader, ma mi pare anche strano che gli ideatori di Sanguino non se ne siano mai accorti...
Logged

Offline Offline
Edison Member
*
Karma: 40
Posts: 1964
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Michele, già che ci sei...

Per programmare in ISP è necessario variare il file board.txt con un valore adatto per i Fuse.
I Fuse dell'ATMega 328 sono identici al 644 o cambia qualcosa? Nel senso.. posso usare lo stesso file modificato per il 328 stand alone (ovviamente modificando il nome di intestazione del processore) anche per il 644?
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

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

Offline Offline
Edison Member
*
Karma: 40
Posts: 1964
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

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

Offline Offline
God Member
*****
Karma: 2
Posts: 551
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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?

Quote
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 smiley-grin; 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
Logged

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

Offline Offline
Edison Member
*
Karma: 40
Posts: 1964
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-sweat
Logged

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

Offline Offline
God Member
*****
Karma: 2
Posts: 551
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La resistenza di 2K l'ho trovata provandone alcune. E guardando un po' gli schemi in internet.  smiley-kiss
Quote
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.
Quote
2. ma oggi dici di essere ancora su bb, quindi?
Si sono ancora su breadborad, ma l'ho cambiata.  smiley-twist adesso sto collegando tutti i sensore e altri componenti, per prototipo, prima di disegnare il tutto.
Quote
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
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.
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22817
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.... smiley
Logged

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

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22817
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-sweat smiley-sweat
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-sweat smiley-sweat
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 smiley-wink
Logged

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

Pages: 1 [2] 3 4 ... 7   Go Up
Jump to: