Arduino come convertitore seriale

Ciao a tutti! devo uplodare nuovamente il marlin sulla mia stampante 3d (e per pigrizia non c'ho mai saldato l'ft232 :stuck_out_tongue_closed_eyes: ) e oggi ho provato con il convertitore ufficiale arduino ma non dà segni di vita. Il convertitore è un misto tra quello micro e quello con la USB B (ha l'integrato verticale e il layout è completamente diverso), e quindi nonostante la scatola sia originale credo di aver beccato una bella cinesata. Comunque vi volevo chiedere conferma (ond'evitare fritture miste di silicio) per collegare un arduino uno come convertitore. Basta togliere l'Atmega e collegare 5V, GND, RX dell'atmega (quindi presuppongo TX dell'ft232) al RX del 1284p e TX al TX giusto? Grazie a tutti!

Subsea: Comunque vi volevo chiedere conferma (ond'evitare fritture miste di silicio) per collegare un arduino uno come convertitore. Basta togliere l'Atmega e collegare 5V, GND, RX dell'atmega (quindi presuppongo TX dell'ft232) al RX del 1284p e TX al TX giusto? Grazie a tutti!

Si puoi usare Arduino come convertitore USB-UART, va tolto l'ATmega e collegare RX con RX e TX con TX perché visti dal lato Arduino sono già invertiti, devi collegare anche il reset se non vuoi essere costretto a farlo manualmente col pulsantino sulla scheda della 3D. In alternativa puoi usare Arduino come programmatore ISP.

Ciao, la programmazione seriale del 1284P è una brutta bestia, nel mio nuovo libro gli ho dedicato un intero paragrafo con le possibili soluzioni; con i collegamenti puoi far danno solo se inverti l'alimentazione, se invece sbagli TX/RX semplicemente non funziona; siccome è sempre un dilemma capire se le sigle TX/RX si riferiscono al programmatore o al target, inizia con i collegamenti "diretti" TX/TX e RX/RX e se non va prova quelli incrociati TX/RX e RX/TX. Comunque nell'Arduino UNO la sigla RX corrisponde al TX del 16u2 e la sigla TX corrisponde all'RX del 16u2, quindi il collegamento da fare è TX/TX e RX/RX. Se ho ben capito la tua scheda prevede l'uso di un FT232RL, se malauguratamente dovessi fallire la programmazione con la UNO è decisamente preferibile saldare ed utilizzare questo chip, che è un convertitore nativo e non un micro programmato all'uopo.

[quote author=Michele Menniti link=topic=271408.msg1913637#msg1913637 date=1412833235] Se ho ben capito la tua scheda prevede l'uso di un FT232RL, se malauguratamente dovessi fallire la programmazione con la UNO è decisamente preferibile saldare ed utilizzare questo chip, che è un convertitore nativo e non un micro programmato all'uopo. [/quote]

Potrebbe essere un problema perché il FT232RL è in case con passo µMAX, molto fitto, se non sei abile a saldare gli smd oltre a non riuscirci c'è il reale rischio di fare danni alla scheda. Tocca vedere che scheda ha, ce ne sono diverse utilizzabili con le 3D, e valutare la possibilità di un convertitore USB-UART esterno.

Grazie a tutti per le isposte! @Michele Per programmarlo non c'e' problema, gia' flashato il bootloader del Sanguinololu con l'ISP e aggiunto alla cartella HW nella directory dell'IDE i file per il sanguino. La parte logica l'ho presa quasi paro paro al sanguinololu 1.3 appuno per farlo user-friendly, si sa mai che prima o poi debba usarlo uno meno competente di noi (Scusate se mi sono messo in mezzo, diciamo voi :grin: ). Ok, quindi connetto anche il reset ed il gioco e' fatto. Mi ero chieso appunto se i tx/rx dell'arduino erano invertiti e non ero sicuro del reset. Provo e vi faccio sapere. Grazie mille! P.s. veramente la mia scheda e' una UNO r2 e non ha l'ft232 ma il 16u4 (o l'8u4, ora non ricordo bene), ma non dovrebbe cambiare nulla giusto?

Tu hai parlato di ft232..... è 16u2 e a quello mi riferivo

Ciao Michele! Grazie per la risposta. In questi giorni purtroppo non ho avuto molto tempo ma domani provo. Ho il 16u2 dell Arduino UNO. Per te cambia qualcosa? Grazie ancora!

Rieccomi! A quanto pare cambia... Mi dà questo errore:

avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x64
avrdude: stk500_cmd(): programmer is out of sync

Se inverto i cavi mi dà un il problema dell'integrato non trovato che avevo già risolto riscrivendo il bootloader. Ho notato che nella guida parla di segnali particolari oltre al TX e RX che l'FT232 ha, sono l' RTS# e il CTS#. Devo reperire una breakout per l'FT232 o si può comunque fare con l'arduino? La comunicazione dopo aver scritto il programma si dovrà fare sempre connettendo quei due segnali o servono solo per la scrittura del programma? Grazie!

Sub mi pare che di continui a fare confusione. Ogni tanto spunta fuori l'ft232. Forse devi provare a fare ordine nei tuoi test e decidere che strada vuoi seguire. Magari prova a spiegare bene il tuo hardware e forse si riesce a capire che prove fare

ok, ci provo :) Allora, io ho un Arduino UNO, con il 16u2 e sto provando a caricare il firmware sul sanguinololu. per farlo ho connesso +, gnd, rx, tx e il reset dell atmega al reset dell'Arduino. L'FT232 é l'integrato designato alla conversione per il sanguinololu (da cui ho preso spunto per la parte logica), ma che non ho mai saldato, é per questo che ogni tanto lo tiro fuori :grin: Non vorrei che per caricare il firmware servano per forza anche gli altri due segnali che può formire solo l'ft232. Nel caso dovrei procurarmi una breakuot board... grazie per l'aiuto ;)

ok :sweat_smile: Allora, intanto hai certezza assoluta che sul 1284P sia caricato il bootloader? Altrimenti perdi solo tempo. Se la risposta è positiva devo dirti subito che il 1284P è una brutta bestia dal punto di vista della programmazione seriale, io l'ho programmato con l'MCP2200 e con l'FT232RL, ma mai con il 16u2 (quindi usando l'Arduino come programmatore seriale). Ti consiglio vivamente di fare il sacrificio di saldare l'FT232RL per avere il massimo delle possibilità di riuscire nell'operazione. I segnali a cui ti riferisci non ti servono, peraltro saldando l'integrato immagino che i segnali necessari siano già collegati correttamente mediante le piste :grin: Ma queste sono cose che ti avevo già scritto nel mio primo intervento.... ]:D Se non ne esci in alcun modo usa l'Arduino UNO come programmatore ISP, abolisci il bootloader caricando direttamente il firmware e, se fatta correttamente, l'operazione andrà a buon fine al primo colpo, garantito!

Ciao e grazie! Sì, sono certo, l'ho ricaricato per sicurezza anche ieri sera. Saldare l'integrato sarà proprio l'ultima spiaggia, ma si potrebbe provare... Per caricarlo con l'ISP hai una guida o sai come fare? Per adesso ho caricato solo il bootloader con l'ISP con l'apposito comando, non saprei come fare per il firmware... Grazie ancora!

Guide ne trovi tante in giro, la mia l'ho dovuta levare in concomitanza dell'uscita del mio libro (vedi in firma), comunque i collegamenti sono uguali, hai però bisogno di creare una board virtuale per caricare un firmware invece del bootloader.

Capito, più tardi faccio un ultima prova con la seriale e poi provo col ISP. Una domanda, ma se lo carico con l ISP poi sarà comunque riconosciuto da replicator g come se l'avessi caricato col bootloader vero? E dopo basterà l'arduino con il 16u2 per la sola trasmissione dei dato seriali? Come sempre, grazie!

Sì il bootloader serve solo per il caricamento seriale, senza di esso, ma ovviamente vanno settati i fuse del 1284 in modo specifico per questa funzionalità, altrimenti il firmware non lavora, il micro parte anche più velocemente.

Ciao Michele! Con una riscrittura del bootloader alla fine ho risolto! Non per questo funziona però =( =( =( Appena l'ho inserito e collegato l'alimentazione ha cominciato a scaldare... Ho spento subito ma ormai il danno molto probabilmente è fatto. Va bè, questa stampante 3D non sa da fa... :( Marco.

Mi spiace, ma non devi abbatterti al primo problema, invece analizza con calma cosa è successo e tenta di capire se il surriscaldamento è stato dovuto p.es ad un inversione di alimentazione o ad un blocco meccanico che ha provocato un assorbimento smisurato o a un corto circuito da qualche parte. ;)

Certo che non mi abbatto! 8) 8) Ero solo un po' demoralizzato, capita a tutti per i rpimi 2-3 minuti dallo sfacelo :grin: Purtroppo però non era il primo problem che ho avuto! Ormai ci sto dietro da un bel po' di tempo (anche se ci ho lavorato tutt'altro che assiduamente). Ripartirò con un nuovo IC e vedrò cosa è possibile fare. Al massimo uso il firmware TeaCup sulla UNO. Grazie ancora!