programmare il 644 ... ma come????

Beh, intanto proviamo a vedere cosa succede con la seconda, poi se non ricordo male ce ne stanno tre sul 1284P, ed io penso che già due siano sufficienti per un uso comune, al limite si disabilita come seriale e restano i pin digitali; vediamo intanto se si risolve la questione dell'upload :sweat_smile: Fai con calma....

Forse ti è sfuggito...

leo72:
un qualsiasi uso come input del pin RX0 causa iniziezione di dati casuali nella Ram con conseguente possibile crash.

non mi è sfuggito, ma io non mi fido ciecamente di ciò che scrivono, ma solo delle prove che facciamo io tu ed altri che sanno come muoversi e con cui possiamo colloquiare direttamente :wink:

Oggi vedo di prepararti il bootloader.

Anche se fosse così male che vada si fa finta di non avere la USART0 e si cortocircuita il pin Rx a VDD o VSS. La cosa del filtro RC visto che funziona mi fa pensare ad un problema legato al conenuto armonico alto tipico delle onde quadre, ci sarebbe da controllare con l'oscillocopio se l'onda quadra su pin RX è davvero quadra oppure la connessione al pin RX ne compromette la forma.

Se ci fate caso il datasheet del 1284 datata 2010 elenca solo due seriali anziche 3, forse solo in un secondo tempo hanno pensato di apportare modifiche che rendessero appetibile il 1284 rispetto al 644 non puntanto solo sulla differenza di flash, e purtroppo nella transizione è uscito qualche chip di cui non essere orgogliosi.

Ciao.

Nei post precedenti ho pubblicato due immagini del DSO: il filtro RC la distorce, ovviamente, se invece adotto un normale partitore l'onda quadra resta perfetta e con l'FT232RL programmo senza problemi il 644, evitando quella pessima distorsione; anzi mi piacerebbe che facesse la prova Leo, sul suo 1284P, visto che gli funziona col filtro: valori 10k e 22k (quest'ultima in pull-down). Sono anch'io dell'idea che se si riesce a far funzionare si possa abbandonare questa seriale.

Comunque mi sono ricordato che mesi fa avevo aperto un contatto con la Filiale italiana di ATMEL, voglio provare a scrivergli.

@ Leo: ok, più tardi anch'io ti mando del materiale.

Il firmware è allegato. Non l'ho potuto provare perché sulla breadboard ho il circuitino di test per l'altra cosa.
Fammi sapere se va. L'ho compilato per la 2° seriale, quindi usa i pin RX1 e TX1.

optiboot_atmega1284p.hex (1.46 KB)

ok, grazie, appena possibile faccio la prova, tanto ho lasciato tutto montato nel lab. L'altro circuito lascialo montato perché devo ancora fare la mia prova, pazienta, vediamo se riesco a trovare una mezzoretta domani, altrimenti il 28 è sicuro.

Allora, oggi finalmente sono riuscito a tornare nel lab per fare le altre prove col 1284P, purtroppo senza successo.
Ho cambiato ancora micro (ne ho 5, ma sono tutti della stessa partita)
Ho provato a mettere i fuse di cui parlavamo e ovviamente ho aggiunto un oscillatore esterno a 16MHz
La storia è sempre la stessa:
il micro riceve il RESET
immediatamente dopo tre TX in rapida sequenza ma nemmeno un RX
dopo un poò errore "avrdude: stk500_getsync(): not in sync: resp=0x00"
La programmazione la faccio tramite convertitore USB-Seriale con FT232RL
Ho fatto un ennesimo tentativo di scrupolo con Arduino UNO, ma niente da fare :disappointed_relieved:, con o senza filtro RC, 8u2 o FT232RL o MCP2200.
Naturalmente tutti i metodi di programmazione funzionano con qualsiasi altro micro

SONO ATTAPIRATO!!!!! =(

Boh, 'sta cosa ha dell'incredibile nonché del paradossale. Stiamo andando avanti per tentativi, ognuno con una soluzione che non funziona se provata da un altro.... mah... Comunque tutto ciò conferma che i bug questo chip ce li ha davvero sulla USART0.

Il problema è che noi abbiamo usato anche l'altra seriale come esperimento, ma non è cambiato nulla. Ieri sera ho scritto all'Agente ATMEL per l'Italia, spiegando la cosa e riportando il lotto dei miei micro, vediamo se mi risponde. Sarei tentato di comprarne un altro, ma francamente ne ho già 5 inutilizzati, un paio hanno lavorato per le prove dei miei due Programmatori, ma gli altri fino a queste prove erano intatti.

Se è una persona seria, non lo smentirà, il che equivale ad una conferma implicita :wink:

MI ha risposto ieri (di domenica!!!) fornendomi l'indirizzo diretto dell'assistenza ATMEL ed un altro nominativo (italiano) acui scrivere per conoscenza, e mo' mi tocca tradurre in inglese la mia lettera :sweat_smile: :sweat_smile:

Comunque ho fatto una serie di altre prove: ho scollegato i 5V dell'USB e alimentato il micro con una tensione esterna di 4,5V ed ho aggiunto una pull-down al tx del micro ed ora vedo che il micro risponde alle "sollecitazioni" del programmatore, però c'è un problema di sincronismo a mio modesto parere. Vedremo cosa mi rispondono (semrpe se capiscono quello che gli scrivo :stuck_out_tongue_closed_eyes:)

Uhm... mi fa pensare questa cosa.
Sul mio sito un lettore mi ha scritto che lui ha programmato i suoi 1284P alimentandoli separatamente dall'Arduino che usava per programmarli

Ormai preso dalla disperazione ho provato di tutto, variando il range da 3 a 5,5V, come dicevo ora si accende il led tx e poi quello rx, in pratica il micro si accorge che gli è arrivata qualcosa e da una risposta, ma non conosco il protocollo di comunicazione, non so se la risposta del micro è quacosa tipo "eh, cos'hai detto?" oppure "sì, ho capito", ma poi non capisce il programmatore a sua volta; comunque ho lasciato le masse in comune, non avrebbe senso non farlo, secondo me; nei prossimi gg farò altre prove "strane".

Beh, sì. Certo. Altrimenti non tornerebbero neanche i livelli della seriale.

leo72:

[quote author=Michele Menniti link=topic=136740.msg1072033#msg1072033 date=1358199459]
comunque ho lasciato le masse in comune, non avrebbe senso non farlo, secondo me

Beh, sì. Certo. Altrimenti non tornerebbero neanche i livelli della seriale.

[/quote]
la cosa curiosa è questa: normalmente il livello TX è allo stato HIGH e così com'è non dà segni di vita; se metto una pull-down da 10k lo porto allo stato LOW, ed in questo modo vedo l'attività sul pin, ma nun ce sto a capì na piotta :~
Comunque ho scritto all'assistenza, vediamo se mi rispondono

Beh, sono veloci, anche se ti trattano come un deficiente :disappointed_relieved:

Dear customer,
Please make sure that the hardware connection is correct.
You can test UART function with application firmware but not bootloader. The easy code can verify hardware connection and firmware.Pin 15 is used for UART0 but not UART1, so please check which UART you are using.
And please be noticed that the memory size is different between ATmega664PA and ATmega1284.
Thanks.
Best Regards,
Atmel Technical Support Team

La questione dell'USART0/1 è colpa mia perché ieri sera ho parlato di prima seriale e lui l'ha interpretata come "1" invece di "0".
Prima di rispondergli spiegando che non sono così sprovveduto e che conosco le differenze di memoria tra 644 e 1284 ]:smiley: qualcuno gentilmente mi spiega il significato STRETTO della frase che ho colorato in rosso?

Mi par di capire che suggerisca l'uso di un test condotto con un firmware (penso inteso nel senso di programma) e non di un bootloader, programma che può verificare la funzionalità della connessione hardware.
Cioè, capisco che ti sta dicendo che forse il problema è dato da un errore nelle connessioni.

leo72:
Mi par di capire che suggerisca l'uso di un test condotto con un firmware (penso inteso nel senso di programma) e non di un bootloader, programma che può verificare la funzionalità della connessione hardware.
Cioè, capisco che ti sta dicendo che forse il problema è dato da un errore nelle connessioni.

Allora avevo capito bene. La questione delle connessioni se la sta ponendo perché pensa che io abbia fatto confusione tra USART0 e USART1, ma noi sappiamo che così non è. Testare un firmware invece di un bootloader significa che vado a caricare via ISP un qualsiasi software che faccia uso della seriale 0 e verifico se funziona, ma io sono ragionevolmente sicuro di sì, e comunque non potrei avere il problema su 5 micro.
Inutile che gli risponda ora, al limite gli dico che faccio altri test; per scrupolo metto via ISP un qualsiasi sketch che usa la seriale e poi gli allego lo schema applicativo dei test che sto facendo e la copia del bootloader che sto usando, e gli spiego che a me quello serve e non la semplice funzionalità del micro.