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

Purtroppo è lo scotto da pagare quando si usano chip che non sono ufficialmente supportati. Lo stesso capita con i Tiny.

eccomi:

quindi io dovrei fare così:

leo72:
Quindi, io partirei dal caricare lo sketch ArduinoISP sull'Arduino UNO. Poi chiudi l'IDE.
Ora il mio core 644_1284: scaricalo (prendi la versione per IDE 1.0.2 sia per l'IDE 1.0.2 che per l'IDE 1.0.3) ed installalo.
Avvia l'IDE, seleziona "Atmega644 @ 16 MHz w/bootloader" e poi scrivi il bootloader sul microcontrollore (così imposti anche i fuse corretti per lavorare a 16 MHz e riservare l'area al bootloader) con la tecnica ISP usando l'ArduinoISP come programmatore.
Adesso prenditi l'Arduino (lasciamo per ora da parte il tuo convertitore USB/seriale), staccagli il chip e fai questi collegamenti:
Arduino ---> 644P
Pin RST ---> pin 9
Pin RX ---> pin 15
Pin TX ---> pin 14
Pin 5V ---> pin 10 e 30
Pin GND ---> pin 11 e 31

Collega l'Arduino, apri l'IDE, poi scegli la voce "Atmega 644 @ 16 MHz w/bootloader", carica lo sketch Blink e spedisci con l'icona di upload. Adesso prendi un LED + R e collegali al pin 19 del 644: se il bootloader ha svolto il suo compito, lo sketch Blink dev'essere sul micro ed il LED deve lampeggiare.

.. e così:

leo72:
......
Sicuramente.
Ah, per dovere di cronaca. Con la pull-up da 10K anche sulla linea TX il caricamento va a buon fine sempre. Alcuni problemi che avevo menzionato, e cioè che il caricamento dava errori eppure pareva fosse stato portato a termine perché lo sketch partiva, erano dati dal fatto che in fase di verifica i dati non erano stati spediti correttamente verso il PC.

Per cui, riassumo i miei test:

  1. R di pull-up da 10K (per 5V) sulle linee RX e TX: tutto OK
  2. aggiunta del C da 0.1uF poliestere in serie alle linee RX e TX: ERRORE. Sembra dargli noia, non so il perché.
  3. aggiunta di un C da 100pF ceramico in serie alle linee RX: tutto OK. Anzi, PERFETTO. Programmo al primo colpo.
  4. aggiunta di un C da 100pF ceramico in serie alle linee RX e TX: ERRORE. Non programma il micro.

Quindi la combinazione vincente per me è:
R di pull-up da 10K su RX e TX, C in serie da 100 pF su RX

... ho capito bene???

Sì, è giusto. E' quello che ho fatto io.

... ok!!! grazie....

caro Leo .... spero di poterti menzionare tra i "credits" .. nel lavoro in corso ...

:sweat_smile:

leo72:

[quote author=Paolo S link=topic=136740.msg1039254#msg1039254 date=1356018478]
... ok!!! grazie....

caro Leo .... spero di poterti menzionare tra i "credits" .. nel lavoro in corso ...

:sweat_smile:
[/quote]
ah bravi, tutt'e due, così avete risolto e vi scambiate salamelecchi e promesse di credits. Eh già, centinaia di migliaia di schiavi costruirono le Piramidi spezzandosi la schiena ma la gente oggi ricorda solo Cheope, Chefren e Micerino :disappointed_relieved:. E comunque non ti funzionerà, mi ci gioco i sì-ddetti, così impari :stuck_out_tongue: e non è jettatura, ma dato di fatto 8)

Ma io non ho chiesto nulla, mica vorrai incolparmi per responsabilità oggettiva, eh? :stuck_out_tongue_closed_eyes:
PS:
iettatore ]:smiley:

leo72:

[quote author=Michele Menniti link=topic=136740.msg1039582#msg1039582 date=1356032960]
ah bravi, tutt'e due, così avete risolto e vi scambiate salamelecchi e promesse di credits. Eh già, centinaia di migliaia di schiavi costruirono le Piramidi spezzandosi la schiena ma la gente oggi ricorda solo Cheope, Chefren e Micerino :disappointed_relieved:. E comunque non ti funzionerà, mi ci gioco i sì-ddetti, così impari :stuck_out_tongue: e non è jettatura, ma dato di fatto 8)

Ma io non ho chiesto nulla, mica vorrai incolparmi per responsabilità oggettiva, eh? :stuck_out_tongue_closed_eyes:
[/quote]
non chiedi ma nemmeno rifiuti :wink:

PS:
iettatore ]:smiley:

ho detto chiaramente che NON è jettatura....non funzionerà perché non può funzionare..... 8)

E' Natale, devo essere gentile :stuck_out_tongue:

ho detto chiaramente che NON è jettatura....non funzionerà perché non può funzionare..... 8)

Ah, per via dell'incrocio delle linee RX/TX.
Sì è vero. :roll_eyes:

niki77:
Vedo una programmazione hv all'orizzonte.
Cmq sicuramente sei possessore di una versione pdip, quindi ... non fai manco tanta fatica!

OK. Una mezz'oretta sulla basetta ed il chip è tornato operativo :smiley:
L'ho dovuta rifare 2 volte perché la prima volta mi ero scordato di collegare i 12V e quando ho terminato l'operazione ho smontato tutti i ponticelli, poi ho visto che mancava l'ingresso dei 12V :roll_eyes: :sweat_smile:

Dunque, stamani mi sono rimesso a fare alcuni test.

PREMESSE:

  1. ci sono in circolazione dei 1284P in formato DIP di una partita difettosa, che hanno un bug a livello hardware sulla linea RX della 1a seriale (e questo è assodato da conferme avute sul forum internazionale). Ripeto: solo il formato DIP è affetto da questo problema che riguarda solo alcune partite.
  2. questi 1284P con bug hanno bisogno di un filtro RC sull'ingresso di RX0 altrimenti la comunicazione seriale non funziona. Questo vale sia per la programmazione seriale tramite bootloader sia per la normale comunicazione.
  3. i 644P in formato DIP sembrano esenti da questo problema

OBIETTIVO:
trovare una soluzione che possa essere utilizzata sia per i 1284P che per i 644P, senza che l'utente debba cambiare nulla a livello di circuiteria.

SOLUZIONE:

  1. togliere la pull-up aggiuntiva da 10K sulla linea RX (che farebbe un partitore con la R da 1K presente sulla linea RX che arriva dall'Atmega8/16U2) che dà noia al 1284P mentre la sua presenza è indifferente per il 644P.
  2. la pull-up aggiuntiva da 10K sulla linea TX si può tenere, non disturba nessuno dei 2 chip
  3. usare un filtro RC sulla linea RX del microcontrollore composto da una R da 10K in serie fra il pin RX dell'Arduino ed il pin RX0 del 644P/1284P, ed un condensatore ceramico da 100 pF (100 picoFarad) in parallelo (fra RX0 e GND).

Ho provato questa configurazione con 1284P affetto da bug e 644P non affetto da bug ed entrambi sono stati programmati al primo colpo senza storie da parte di avrdude.

OK. Una mezz'oretta sulla basetta ed il chip è tornato operativo
L'ho dovuta rifare 2 volte perché la prima volta mi ero scordato di collegare i 12V e quando ho terminato l'operazione ho smontato tutti i ponticelli, poi ho visto che mancava l'ingresso dei 12V

Immagina quanto sarebbe stato carino se il tuo chip fosse stato tqfp :fearful:

niki77:
Immagina quanto sarebbe stato carino se il tuo chip fosse stato tqfp :fearful:

Sì ma siccome più che hobbista sono un imbranato patentato con mano tremula assolutamente incompatibile con i componenti smd, uso solo quelli a foro passante per cui sotto questo punto di vista non ho problemi :stuck_out_tongue_closed_eyes:

Leo, ottimo per le prove, però non possiamo pensare che questi chipponi si programmino via seriale SOLO mediante Arduino, che poi è la cosa più deprecabile a motivo di dover tirare fuori l'ATmega328 dallo zoccolo; quindi dobbiamo vedere come si comportano con un Convertitore esterno; io non so se i miei 1284P sono affetti da bug, come faccio a saperlo?
Altra cosa: il fatto che un componente sia tollerato dal sistema non significa che debba starci, la pull-up da 10K sul TX si può eliminare o no? se non serve toglila, se è indispensabile allora devi modificare il punto 2 della soluzione :wink:

Su questo concordo.
Difatti stasera vorrei provare con la Luigino per vedere se tutto funziona correttamente anche con l'FT232.

quindi dobbiamo vedere come si comportano con un Convertitore esterno;

Che io non ho. Tu però hai l'MCP2200, dovresti provare.

io non so se i miei 1284P sono affetti da bug, come faccio a saperlo?

Ci sono SOLO 2 certezze:

  1. il bug affligge solo le versioni DIP
  2. il bug colpisce anche chip dello stesso lotto di produzione.
    Io ho ad esempio un chip il cui lotto è lo stesso di quello di un tipo che sul forum internazionale diceva di non aver avuto problemi. Quindi l'unica è tentare: se non ti va senza, filtro RC, allora è affetto da bug.

Altra cosa: il fatto che un componente sia tollerato dal sistema non significa che debba starci, la pull-up da 10K sul TX si può eliminare o no? se non serve toglila, se è indispensabile allora devi modificare il punto 2 della soluzione :wink:

Funziona anche senza. Per lo meno usando l'Arduino come interfaccia.
Quindi anche qui c'è da capire se una R serve oppure no ad esempio usando un altro convertitore USB/seriale. Quello che avevi fatto tu con l'MCP2200 aveva resistenze in serie o parallelo? Per capire.

... finalmente posso stare un pò seduto davanti al pc a fare ciò che mi piace!!!!

... allora ieri sera ho provato un pò... e per un attimo ho avuto la sensazione che la "gufata" di michele potesse aver avuto seguito ....

.. allora, messe le resistenza di pull up 10K (+5V) sulla linea Tx e Rx ...
.. condensatore in serie nella linea RX da 100pF .... ma niente!!! Niente programmazione via seriale.

Stavo per mollare.... quindi smonto tutto e riprovo a collegare direttamente sul convertitore
linee tx e rx dirette, senza resistenze nè condensatori, solo il condensatore sulla linea di reset, come lo "jetatt"... pardon Michele, non perde occasione di ricordare. E voilà... tutto funziona alla perfezione.

Quindi ho cablato tutto in modo stabile, eliminando fili volanti etc... e và alla grande.
Programma benissimo ad ogni tentativo.. serial monitor perfetto.. esattamente come sulla scheda arduino.... Innesto il cavetto USB e via.... niente più metti-togli 328 sulla scheda arduino ...

quindi riassumendo
RX del convertitore ----> pin 14 (RXD0) del 644 : diretto senza alcuna resistenza di pull up;
TX del convertitore ----> pin 15 (TXD0) del 644: come sopra ..
DTR del convertitore ---> pin 9 (RESET) del 644: interrotto con un condensatore ceramico da 100K pF, ma ho riscontrato che anche
molto diversi va bene comunque ....
naturalmente + 5V e GND dal convertore al 644 ...

funziona tutto alla grande ...

ah.. per michele, anche se in uno dei primi post avevi "criticato" il mio acquisto "superfluo": :slight_smile:

, però non possiamo pensare che questi chipponi si programmino via seriale SOLO mediante Arduino, che poi è la cosa più deprecabile a motivo di dover tirare fuori l'ATmega328 dallo zoccolo; quindi dobbiamo vedere come si comportano con un Convertitore esterno;

io stò usando questo:
http://www.ebay.it/itm/1x-ATMEGA328P-PU-Arduino-UNO-USB-2-0-TO-RS232-UART-KIT-ATMEGA328-/221121384301

adesso continuiamo con lo sviluppo ...
Grazie a tutti ....
Ciao :wink:

@ Leo: sono alle prese con la "creatura", nel frattempo però mi si è rotto il regolatore del Dremel =(, smontato, forse è il mosfet finale, speriamo :sweat_smile: Ok devo fare le prove io, oltre all'MCP2200 ho anche l'FT232RL a schedino e il cavetto Nokia con il CP2100, quindi ho modo di fare svariate prove.

@ Paolo: ]:smiley: quei collegamenti te li sto dettando da non so più quando, quindi ora vorrei capire perché FINO A IERI NON TI ABBIA MAI FUNZIONATO NULLA; purtroppo ultimamente si sta diffondendo il brutto vizio di chiedere aiuto e poi, a problema risolto, non dire quaal era il problema riscontrato e come si è risolto, un bel post: cari amici, ora funziona tutto, grazie e andate aff....; nel tuo caso almeno hai detto come ti funziona, ma visto che la novità per Leo erano le pull-up non si capisce per te cosa sbagliavi.
Io NON deprecavo l'acquisto, cerca di capire, ti stavo suggerendo che potevi programmarlo via ISP, poi è uscita fuori la questione del collegamento seriale e credo di averti detto che potevi farlo anche con Arduino; come avrai letto non solo dispongo di diversi convertitori ma ne ho anche progettato uno che sarà pubblicato prossimamente su Elettronica In, quindi non provo particolare odio per la materia, anzi l'ho studiata e approfondita e ho fatto parecchia sperimentazione, al punto di garantirti in tempi non sospetti che ti avremmo risolto il problema :wink:

@Michele: ti dò atto che me li hai suggeriti da subito, ma non mi funzionava. COME TI SCRITTO MOLTE VOLTE. :wink: ... Non sò perchè. Sicuramente sbagliavo qualcosa. La maggior parte dei tentativi li facevo sempre con l'arduino non con il convertitore. Forse cè qualcosa che non va nell'arduino!!! ....
Quindi non ho capito qual'era il problema. Ipotizzo, come voi, che fosse qualcosa nei collegamenti, magari qualche collegamento un pò lasco. Bho!!!!
Mi limito a comunicarvi, con gratitudine (CON GRATITUDINE), la mia soddisfazione. Di più non posso fare.

Ciao....
PS sto andando a mettere un altro post nella sezione software .... se vuoi partecipare ..... :wink:

Quindi fammi capire, se possibile, hai fatto funzionare tutto usando il Convertitore con i collegamenti diretti tx-tx e rx-rx ed il C tra DTR e RESET, così scrivi e confermi. Ma questa cosa ha un significato ben preciso con Arduino, NON con il Convertitore, che NON dovrebbe funzionare in queste condizioni; allora o la serigrafia del tuo converitore indica stravagantemente i segnali di "destinazione" oppure non c'è più religione e prima di mezzanotte avranno avuro ragione quei mangiamais dei Maya :fearful:.
Riguardo la GRATITUDINE la pizzicata era per il fatto che io avevo suggerito la soluzione e tu mettevi lui nei credits, ma ovviamente si scherzava con Leo, come facciamo sempre, senza ovviamente alcune "gelosia", si gioca e basta.

si.. confermo le letture rx e tx, come sotto, lette direttamente dalla serigrafia del convertitore ....

per le pizzicate non ero sicuro fosse solo una battuta, ma pittosto ho pensato: "ma questo Michele, pur essendo indubbiamente bravo e meritatamente dovrei includerlo nei "credits" ... non è che è un pò polemico???? .... ma no scherzo!!! ciao..