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

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

ROTFL :stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes:

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.

Confermo. :wink:

mi sono guardato il link del Convertitore, si basa sul CP2102, lo stesso chip del cavo Nokia, quindi avrò modo di provare col mio; ho visto nelle immagini che consigliano effettivamente il collegamento "diretto", questo significa solo che le serigrafie TX e RX sul Convertitore fanno riferimento al chip target e non ai segnali effettivi del CP2102; la trasmissione seriale si fa sempre in modo incrociato; anche su Arduino le indicazioni "tx/rx sono riferite all'ATmega328 e NON all'8u2, ecco perché anche in quel caso i collegamenti vanno fatti diretti. COmunque l'importante è che funzioni.

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

io non sono "indubbiamente" bravo, semplicemente mi sono fatto una discreta esperienza in questa specifica cosa della programmazione seriale, tutto qui, e non sono polemico, né un po' e né molto, solo che dico chiaramente quando una cosa non mi piace ma, ripeto, nella specifica questione scherzavo con Leo (che ti ha dato conferma...), se avessi "promesso" i credits a qualcun altro non avrei fatto la stessa battuta, sarei venuto direttamente in Sardegna a cercarti :stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes:

Esattamente. L'altro giorno quando ho consigliato di incrociare RX e TX non mi ricordavo che con l'Arduino usato come convertitore seriale/USB si doveva far riferimento al chip Atmega8/16U2 e non all'Arduino.

Dando un'occhiata al datasheet si capisce la situazione degli "incroci pericolosi" :wink:
Il "problema", se così si può chiamare, del non dover incrociare le linee RX/TX sull'Arduino quando si usa la scheda senza il chip Atmega328 ma come convertitore seriale/USB nasce del fatto che sull'Arduino abbiamo già 2 chip che comunicano serialmente fra di loro, il già nominato Atmega832 ed il convertitore USB/seriale, l'AtmegaxxU2 (che può essere l'8U2 come il 16U2).
Come si vede dal datasheet, le linee RX e TX dall'AtmegaxxU2 vengono collegate rispettivamente con i pin TX ed RX dell'Atmega328, e poi sono riportate sui pin esterni della scheda. In sintesi, i pin esterni dell'Arduino usano l'indicazione RX e TX ma in riferimento all'Atmega328, e va bene così nell'uso normale della scheda.

Ma se si deve usare l'Arduino come convertitore per far dialogare l'AtmegauuU2 con un altro dispositivo seriale, le linee non si incrociano perché il pin dell'Ardino RX è collegato già con il pin TX dell'AtmegaxxU2, ed il pin TX con il piedino RX.

Oggi sono riuscito solo a mettere il bootloader sul 644, avevo tanto altro da fare; domani assemblo il collegamento seriale e provo tutti i sistemi di conversione che ho, poi aggiorno il Topic.

Ho fatto una serie di test di programmazione seriale su un 644PA, confermo al 100% i vostri esiti:
MCP2200 (due schede identiche): richiede R10k in serie e C 100pF in parallelo verso massa sulla linea RX del 644; da tenere presente l'ininfluenza delle due R da 1k in serie ad entrambi i segnali sulla mia schedina e la R di pull-up da 22k sull'RX del 2200 (quindi sul TX del 644)

FT232RL (due schede diverse): stessa identica situazione dell'MCP2200 solo che qui ho dovuto aggiungere il C100nF sulla linea del DTR, in quanto queste schede non lo prevedono, mentre sulle mie MCP2200 c'è.

CP2100 (Cavo Nokia): a suo tempo avevo inserito nello spinotto terminale il C da 100nF; il cavetto funziona anche senza il gruppo RC (quindi confermate le prove di PaoloS), ma non risente della sua presenza, quindi funziona anche se c'è.

Riepilogando: per far funzionare qualsiasi convertitore USB-Seriale al 100% conviene:

  • mettere un C da 100nF in serie alla linea DTR(Conv)-RESET(micro)
  • mettere una R da 10k in serie alla linea TX(Conv)-RX(micro)
  • mettere un C da 100pF tra la linea RX del micro e GND

Ora però voglio completare il ciclo di test con un 644A ed un 1284P, se ne parla nel pomeriggio, ma prima voglio cercare di capire qualcosa collegando il DSO alla sola linea RX del 644PA, visto che i problemi sono tutti lì.

Scusate, ma non ho letto tutto il topic.
Volevo sapere se le soluzioni trovate riguardano solo la programmazione seriale, mentre per quella ISP non è necessario alcun accorgimento.

PaoloP:
Scusate, ma non ho letto tutto il topic.
Volevo sapere se le soluzioni trovate riguardano solo la programmazione seriale, mentre per quella ISP non è necessario alcun accorgimento.

E' corretto. L'ISP non è influenzata.

Confermo Paolo, tant'è che usiamo regolarmente l'ISP per caricare il bootloader sui micro in test.
Ora inizio le misure col DSO, spero di capirci qualcosa :~

Intanto iniziamo con una cosuccia semplice. :sweat_smile:
Prendi lo sketch Blink, compilalo e cerca di inviarlo sul 644P tramite l'accoppiata seriale/bootloader con e senza filtro RC, per vedere a livello di segnali cosa succede sulla linea RX.

Dunque, osservando le immagini allegate potete vedere l'effetto del "filtro" RC che abbiamo usato finora: in pratica il fronte di salita dei segnali viene arrotondato e contemporaneamente l'ampiezza diminuisce leggermente, e i risultati li sapete.
Però ho notato che l'MCP2200 a volte soffre questa situazione, quindi ho fatto altre prove, tra cui quella di creare un partitore per diminuire il segnale ma senza distorcerlo, il risultato lo vedete nella seconda figura, l'ampiezza diminuisce e il segnale resta perfetto, in queste condizioni però funziona solo l'FT232RL, mentre l'MCP2200 risponde solo a volte e il CP2100 non ne vuole.
Ho notato un miglioramento con un C1nF ed una R4k7 entrambi tra RX del 644 e massa, ma comunque la situazione resta incerta; non cambia molto se levo la 4k7
Ora posso passare alle prove con altri micro, per il momento resta il fatto che la situazione non è molto affidabile; considerate però una cosa: io mando gli sketch a ripetizione, cioè finisce uno e spedisco immediatamente lo stesso, a volte si creano sovrapposizioni, ma comunque l'incidenza di ciò è abbastanza limitata.

DS0004.jpg

DS0005.jpg

La mia domanda (pertinente con il lavoro che stiamo facendo noi) è:
c'è una combinazione "sicura" per ogni tipo di convertitore? Oppure, c'è un convertitore che funziona senza?

Mi spiego, se io uso l'FT232 mi par di capire che il filtro RC non crei problemi, anzi.
Ma con l'MCP2200 qualche problema il filtro lo crea, per cui hai trovato un circuito filtrante "tollerato" dal convertitore oppure l'MCP2200 funziona anche senza? Questo non l'ho capito.

Attendo i testi del 1284.

Sono le domande che mi sto ponendo io, e le risposte non mi piacciono per niente :disappointed_relieved: Con due diversi 1284P non riesco a programmarli in alcun modo e con alcun convertitore, non ho provato l'Arduino perché non me ne frega niente, anche se a questo punto DEVO, se non altro per avere conferma che qualche spiraglio ci sia.
il 644A ha una diversa signature, francamente mi secca ora andare a modificare qualcosa per farlo funzionare, anche perché è "inutilizzabile" per i nostri scopi, non serve perderci tempo.
Prova un altro 644PA e poi uso Arduino, a tra poco....

OK

Tre su tre 644PA funzionano anche con Arduino UNO ed il solito RC, oltre che con FT232RL, il mio problema ora sono proprio i 1284P, che non vanno con nessun sistema: Arduino UNO, FT232RL, MCP2200, CP2100. A questo punto mi viene il dubbio che il problema non sia il bootloader, a me pare di aver usato la tua ultima versione, ma l'avevo scaricata forse un mesetto fa, come faccio a sapere se sto usando i file corretti? Secondo te potrebbe essere una cosa del genere?