Creative Commons BY-NC-ND 2.5Questo sito e tutto il suo contenuto sono distribuiti sotto la licenza Creative Commons Attribuzione - Non Commerciale - Non opere derivate 2.5 Italia e con le condizioni d'uso definite nel disclaimer: siete pregati di leggere entrambi questi documenti prima di usufruire dei contenuti di questo sito. Per alcuni contenuti è necessaria una registrazione gratuita: non è necessario pagare e non è necessario accumulare punteggi per accedere agli articoli e scaricare i sorgenti: basta solo essere onesti. Se volete che questo sito continui a rimanere attivo, a contribuire ogni giorno alla diffusione della cultura libera, non copiate il materiale per ripubblicarlo in altri luoghi. Se volete partecipare su settorezero e rendere le vostre idee, i vostri progetti, fruibili da tutti senza limitazioni potete farlo tranquillamente.

Un adattatore TTL/RS232 versatile

Autore: Giovanni Bernardo | Data pubblicazione: 8 maggio 2010
Categorie: Elettronica Progetti

Tutti prima o poi nel loro sito di elettronica pubblicano il progettino dell’adattatore da TTL/CMOS ad RS232 e quindi non potevo esimermi dal farlo!

In realtà l’ho fatto per tutta una serie di motivi. Il primo motivo è stato dettato dall’esigenza di un amico, operante nel campo automotivo, che aveva bisogno appunto dell’interfaccia in questione per riparare una centralina auto e quindi aveva bisogno di una piccola interfaccia seriale robusta e funzionante a 12V. Per cui essendomi trovato a realizzare lo schema in questione per lui, ho trovato giusto pubblicarlo anche qui dal momento che l’ho fatto con la massima cura.

Non c’è inoltre da dimenticare tutte le volte che ho avuto bisogno di un circuitino del genere a sè stante: non molti anni fa con l’interfaccia in questione si poteva abilitare il menù “con vibrazione” su alcuni cellulari della Nokia, includere alcuni giochi e utilizzare la funzionalità FBUS per poter trasferire i dati della rubrica e molto altro.

C’è poi la questione dei picmicro, per i quali molte schede di sviluppo hanno già integrata questa parte circuitale, molti che usano la breadboard invece la realizzano in maniera “volante”, e spesso non funziona mai al primo colpo, si scopre poi che avevano invertito due fili!

Tenuto conto di queste e altre esigenze mi sono così preposto di realizzare un circuito con le seguenti caratteristiche:

  • Alimentazione sia a 5 Volt che a tensioni superiori
  • Possibilità di essere utilizzato su una basetta breadboard
  • Possibilità di essere alimentato dall’esterno in vari modi: dalla breadboard direttamente, da un alimentatore da muro o da cavetti volanti
  • Possibilità di sfruttare anche le linee RTS e CTS con le quali alcuni vecchi software comunicano al posto delle “normali” RXD/TXD
  • Deve essere affidabile

E’ nata così la seguente interfaccia:

Come potete notare lo schema è basato sull’ “ovvio” MAX232.

Funzionamento

Il circuito include un piccolo alimentatore (zona superiore dello schema) che può prelevare la tensione dall’esterno sia tramite il classico connettore WAGO a vite (utile nel caso vogliamo usare un alimentatore da banco o una  batteria), sia con il normale Jack presente su molti alimentatori “da muro”. Subito dopo l’ingresso della tensione esterna troviamo D1 che ha la funzione di bloccare la tensione in ingresso qualora sia stata fornita con polarità invertita.

La protezione contro l’inversione di polarità funziona soltanto quando l’alimentazione è fornita sui connettori CN1 e connettore a vite, quindi NON è presente se la tensione viene invece fornita sull’header a 6 pin.

Seguono i due classici condensatori di livellamento/filtro e quindi un jumper per selezionare la tensione di alimentazione. Se alimentiamo il circuito direttamente con una tensione di 5 volt, il jumper andrà messo in posizione 2-3, se la tensione in ingresso è superiore (vedi nota seguente) allora la tensione dovrà essere inviata al regolatore di tensione 78L05 (datasheet in fondo all’articolo) mettendo il jumper in posizione 1-2.

Il regolatore 78L05 è la versione a bassa corrente, in formato TO92, del noto 7805. E’ in grado di erogare soltanto 100mA, quindi: non abusatene.

Il 78L05 accetta in ingresso una tensione continua da 7 a 30Volts. Non bisogna assolutamente mettere in ingresso tensioni al di fuori di questo range, altrimenti il componente si surriscalda fino a rompersi e causare danni agli altri componenti. Ripeto: non potete mettere in ingresso nemmeno 5 o 6 Volts: minimo 7 e massimo 30.

D2 serve a non far scorrere la corrente  verso il  regolatore quando alimentiamo il circuito a 5 volt  ovvero con il jumper in posizione 2-3. D3 serve per abbassare il riferimento di tensione per il regolatore di 0,7Volt cioè unicamente per “recuperare” la caduta di tensione causata da D2 in uscita (in realtà non ce n’é un assoluto bisogno). Troviamo quindi altri due condensatori di livellamento e il led che segnala la presenza della tensione.

La configurazione del MAX232 è quella classica fornita dal datasheet (scaricabile in fondo all’articolo). In più rispetto alla maggioranza degli schemi simili ho previsto anche il collegamento delle linee RTS e CTS che potrebbero essere richieste da alcuni vecchi software. Pure se tale parte circuitale non verrà forse mai utilizzata ho preferito non lasciare scollegati gli altri due convertitori del MAX232 dato che sono li a disposizione…

Vi è quindi il connettore esterno (Header a 6 pin) che riporta tutti i segnali, compresa l’alimentazione. Utilizzando uno strip maschio a 90° è possibile utilizzare tale adattatore anche su una basetta breadboard :

In questo modo, è possibile prelevare anche la tensione dalla breadboard mandando i +5V e la massa sui pin 6 e 1 di tale connettore: così non sarà necessario alimentare il circuito dall’esterno e la posizione del jumper è indifferente, ma questa operazione è fattibile soltanto se sulla breadboard avete a disposizione 5V (e non di più!).

E’ assolutamente sconsigliato, invece, il contrario: prelevare l’alimentazione di tale circuito per fornirla alla breadboard qualora si faccia uso del regolatore di tensione incluso, che, come detto riesce a fornire unicamente 100mA ed è quindi insufficiente ad alimentare altri circuiti, problema non c’è se invece alimentiamo il circuito da un alimentatore a 5V e quindi non utilizziamo il regolatore di tensione: in tal caso la corrente disponibile  sull’header sarà quella fornita dall’alimentatore esterno e potrà eventualmente anche essere inviata agli altri circuiti presenti sulla breadboard.

Sull’header esterno, poi, potete sbizzarrirvi voi a realizzare delle prolunghe e degli adattatori per i vostri precisi scopi. L’importante è che non vi dimentichiate mai di mettere sempre in comune le linee di massa indipendentemente da come viene fornita l’alimentazione, altrimenti i circuiti non potranno mai comunicare.

Costruzione, Elenco componenti e Montaggio

Se realizzate il circuito da voi facendo uso del master in PDF, scaricabile per gli iscritti in fondo all’articolo, dovrete utilizzare un buon bromografo, inoltre la foratura di alcune piazzole richiede massima precisione (meglio usare un trapano a colonna) e delle punte da 0,6mm.

Per gli utenti iscritti che lo desiderano posso realizzare io la basetta con la massima precisione e spedirla. Vedi paragrafo finale “Come ottenere un PCB dell’adattatore TTL/RS232” per maggiori informazioni.

Ovviamente chi dedice di realizzare o richiedere tale circuito, accetta le condizioni descritte nel disclaimer tra cui: non è fornito nessun tipo di garanzia, il progetto non è marchiato CE, il progetto non può essere usato a fini commerciali. La persona che lo richiede, inoltre, dichiara di essere maggiorenne.

Lo schema l’avete già visto in cima all’articolo, il layout della scheda è il seguente:

Elenco componenti:

  • CN1: Connettore Jack maschio da stampato
  • CN2: Connettore Wago a vite a 2 poli
  • JP1: Strip maschio a 3 vie + Jumper
  • Connettore DSUB9 femmina da stampato a 90°
  • D1, D2, D3 = 1N4148
  • C1, C2, C3, C4, C5, C7: condensatore elettrolitico 1μF 50V
  • C6,C8: condensatore poliestere 100nF
  • R1: Resistenza 330Ω ¼W
  • Led da 3mm
  • IC1: MAX232 o equivalente
  • IC2: regolatore di tensione 78L05 (in formato TO92)
  • Zoccolo per circuito integrato a 16pin
  • SV1: Strip maschio a 6 poli a 90°

Il montaggio non presenta particolari difficoltà. La prima cosa da saldare e assolutamente da non dimenticare è il ponticello presente al di sotto del MAX232 (disegnato in rosso sul layout componenti), seguiranno i 3 diodi 1N4148  e quindi la resistenza da 220Ω e il led da 3mm. Inutile dirvi: prestate attenzione al corretto montaggio dei diodi.

Seguirà quindi, in ordine di altezza, il montaggio dei due condensatori in poliestere.

Per C8 e C6 ho previsto delle doppie piazzole in maniera tale da poter montare sia i condensatori poliestere miniaturizzati (che hanno una distanza tra i pin di circa 4mm) che quelli col passo da 7,5mm, fate riferimento alla foto seguente per capire di cosa parlo e come montare l’uno o l’altro tipo di condensatore:

Per i condensatori elettrolitici, se non avete a disposizione quelli da 1μF, potete usare anche condensatori da 10μF, purchè le loro dimensioni siano tali da consentirne il montaggio sulla scheda, fate attenzione alla polarità.

Fase finale, Alimentazione e Collaudo

Dopo aver saldato tutti i componenti e PRIMA di inserire il MAX232 sullo zoccolo facciamo le seguenti verifiche:

  • non ci sono cortocircuiti tra le piazzole
  • i diodi, il led e i condensatori elettrolitici sono montati nel verso corretto
  • lo zoccolo per il max232 è montato con la tacchetta di riferimento in direzione opposta al connettore DB9, ovvero verso C7
  • se stiamo utilizzando un alimentatore da muro, il jack di uscita dell’alimentatore ha la stessa polarità del jack sullo stampato, ovvero: il positivo si trova sul pin centrale
  • se stiamo utilizzando un alimentatore esterno con fili volanti, la massa va a sinistra sul connettore a vite tenendolo di fronte (è indicato GND sul lato saldature)

Vi metto un’immagine in maniera tale che non vi confondiate con i terminali di alimentazione (comunque se la fornite al contrario , c’è sempre il diodo di protezione che, ricordo, è presente soltanto sui due connettori esterni e non anche sull’header a 6pins):

Ricordo inoltre che, per quanto riguarda il jack di alimentazione ne esistono varie misure in circolazione. In particolare per lo stesso diametro esterno possono esistere più diametri interni per quanto riguarda il pin centrale. Per cui se volete montare questo tipo di connettore, la cosa migliore sarebbe andare al negozio di componenti elettronici con il vostro alimentatore da muro in maniera tale da prendere la presa di dimensioni adatte al vostro spinotto. Sul circuito da me ideato/fornito ho tenuto conto di una distanza standard tra le piazzole di tale connettore, quindi verificate anche che il vostro connettore possa essere saldato su tali piazzole.

Prima di alimentare il circuito, inoltre, verifichiamo che il jumper sia in posizione corretta. Se utilizzate un’ alimentazione da 5 Volts, dovete mettere il jumper in posizione 2-3, ovvero verso sinistra avendo di fronte il 78L05:

Se invece utilizzate un’alimentazione da 7 a 30 Volts, il jumper andrà messo in posizione 1-2:

Dopo di ciò, verifichiamo che l’alimentazione che giunge all’integrato sia quella giusta. Oltre al fatto  ovvio che deve accendersi il led, con un tester in posizione volt continui, misuriamo la tensione sullo zoccolo mettendo il puntale positivo sul pin 16 e quello negativo sul pin 15, dovremo leggere circa 5volts:

Fatto questo, stacchiamo l’alimentazione, montiamo il MAX232, forniamo di nuovo alimentazione ed effettuiamo un controllo della comunicazione:

Colleghiamo la scheda al PC tramite un cavetto seriale DB9 maschio/femmina di tipo pin-to-pin (NO nullmodem), colleghiamo insieme i pin 5 e 3 (TXD e RXD) del connettore esterno a 6 pin e avviamo hyperterminal avendo cura soltanto di selezionare la giusta porta di trasmissione e di disattivare il controllo di flusso, tutte le altre opzioni sono indifferenti per questa prova.

Se abbiamo montato tutto correttamente,  ciò che digiteremo sulla tastiera sarà visualizzato nella finestra del terminale, cosa che non avviene se stacchiamo il collegamento tra i pin 5 e 3.

Maggiori informazioni su come impostare l’HyperTerminal, sulla comunicazione RS232 e altro possono essere trovate nella lezione n°10 del corso di programmazione picmicro.

Vi ricordo che sul connettore esterno a 6 poli, il terminale TXD è quello che riceve i dati dal circuito TTL e li trasmette verso la RS232 sul terminale RXD (quindi se usate un PIC per interfacciarvi, qui andrà collegato proprio il pin del pic contrassegnato come TXD), il terminale RXD è quello che riceve i dati dalla porta seriale  (dal terminale TXD) e li trasmette verso il circuito TTL.

Come ottenere un PCB dell’adattatore TTL/RS232

Chi richiede un PCB dell’adattatore TTL/RS232 contribuisce alle spese di gestione di settorezero.com. Il contributo richiesto è di €8, comprensivo di spese di spedizione con posta ordinaria (PCB fornito senza componenti). Il PCB è realizzato con il metodo della fotoincisione su basette Bungard FR4, singola faccia, e forato con punte in Widia su trapano a colonna.

Prima di procedere seguite le istruzioni riportate nella pagina servizi.

Downloads

PDFDatasheet Regolatore di tensione 78L05 (148.41 kB - 967 downloads)

PDFDatasheet MAX232 e altri driver RS232 (454.95 kB - 1811 downloads)

PDFPiedinatura Seriale DB9 (40.45 kB - 3170 downloads)

PDFSchema e PCB adattatore TTL/RS232 (59.19 kB - 236 downloads)

L'articolo ti è piaciuto o ti è stato utile per risolvere un problema? SettoreZero è realizzato soltanto con contenuti originali: tutti gli articoli sono curati con passione dagli autori e nulla viene copiato da altri siti. Supporta e mantieni in vita SettoreZero con una donazione: basta soltanto un caffè o una birra. Puoi supportare SettoreZero anche con uno dei progetti elencati nella sezione servizi o partecipare anche tu con un tuo articolo/progetto personale.

Se desiderate che SettoreZero continui a rimanere gratuito e fruibile da tutti, non copiate il nostro materiale e segnalateci se qualcuno lo fa.

Puoi andare alla fine dell'articolo e lasciare un commento. I trackback e i ping non sono attualmente consentiti.

  1. #1 da McGyver86 il 8 maggio 2010

    Giovanni Bernardo’s RULEZ!! grandissimo, come sempre… Un circuitino che credo un pò tutti abbiamo, ma spiegato in una maniera talmente semplice che ti viene voglia di costruirne un altro!!.. Grandissimo lavoro, come sempre del resto!!

  2. #2 da Roberto il 12 maggio 2010

    La basetta è bellissima, con tutti i componenti allineati per benino. Prima o poi dovrai fare un articolo su come realizzare dei circuiti così: so che su Internet ne trovo altri, ma il tuo sarà sicuramente più chiaro e completo!
    Esiste poi un’attrezzatura che ti consenta di realizzare PCB senza l’uso di acidi o sostanze nocive? Sai com’è, con bambini che ronzano intorno…
    Ultima domanda sui diodi: è possibile usare anche degli 1N4001, vero? Perchè a valle della tensione di ingresso solitamente vedo usare dei 4148?

    • #3 da Giovanni Bernardo il 12 maggio 2010

      Ti ringrazio… Beh si prima o poi mi piacerebbe scrivere un articolo su come realizzare gli stampati, ma l’argomento è davvero vasto. Si dovrebbe partire da come va usato un programma di cad apposito, io uso Eagle per esempio (un ottimo tutorial si trova sul sito di Mauro Laurenti), poi si dovrebbe parlare di come si costruisce e soprattutto usa un bromografo e dell’attrezzatura che ci vuole, che è fondamentale se si vuole fare un lavoro certosino, a partire dalle punte per forare (materiale della punta e misure) che reputo una parametro importante, non per niente mi sono fatto una colonnina apposita della proxxon con punte speciali…

      Come va fatta la stampa su lucido pure è importante ma ho visto che qualsiasi lucido utilizzo, qualsiasi inchiostro utilizzo (sia originale che non che ricaricato) mi viene sempre bene, basta regolare oportunamente i parametri avanzati di stampa.

      Insomma è un bel po di roba di cui parlare… La parte più importante è sicuramente il bromografo, si vedono tanti progetti in giro ma nessuno ti spiega che criteri ha utilizzato, io mi sono fatto un’idea partecipando ad alcuni forum e leggendo il sito di Vincenzo Villa che reputo il più completo ed esauriente su questo argomento. Alla fine mi è venuto fuori uno strumento davvero preciso e ben fatto (puoi vedere alcune foto della fase costruttiva sul gruppo facebook, ma non l’ho più aggiornato). Ovviamente ho dovuto fare molte prove e gettare via alcune basette prima di ottenere risultati impeccabili. E adesso mi sono attrezzato per fare i doppia faccia con fori metallizzati.

      Per quanto riguarda gli acidi in molti utilizzano il sistema dell’acido muriatico con acqua ossigenata, è roba che si recupera facilmente ed incide la basetta in un’istante, ma pure io a causa dell’elevata pericolosità e problemi di smaltimento non l’ho mai utilizzata.

      Personalmente utilizzo il classico perclocuro ferrico che viene chiamato “acido” per il semplice motivo che “corrode” ma in realtà non è un acido: è un sale in soluzione (ti parlo da chimico), certo è ovvio che se te lo bevi ti fa male, ma almeno se ti cade addosso non vai all’ospedale e fin’ora penso sia la soluzione più sicura anche per quanto riguarda lo smaltimento. Solo che le macchie (soprattutto sui vestiti) non le togli più, ma basta usare un po di cautela: dei guanti di gomma, un camice e degli occhiali protettivi e vedi che non puo succedere nulla.

      E poi pure parlando dello smaltimento: non ce ne sarebbe nemmeno bisogno perchè in tantissimi lo rigenerano, anche se il processo di rigenerazione pure potrebbe essere pericoloso in quanto si usa comunque acido cloridrico e acqua ossigenata…

      Comunque…. vedo che posso fare… Volevo pubblicare il progetto del bromografo ma non l’ho fatto perchè il timer che ho realizzato è ancora in versione sperimentale.

  3. #4 da Giovanni Bernardo il 12 maggio 2010

    Ah la questione dei diodi: si al posto degli 1n4148 qui puoi usare pure i 4001 o 4002, 4007 ecc: ho usato i 4148 perchè sono più piccoli sia come dimensioni che come diametro dei pin, tutto qua, la serie 1N400x ti regge fino ad 1A, il 4148 no… Poi se non erro il 4148 è più “veloce”, ora su due piedi non ho i datasheet sottomano ma per questa applicazione in cui devo solo proteggere l’inversione di tensione e alzare un riferimento, uno vale l’altro.

  4. #5 da Roberto il 12 maggio 2010

    Grazie per le spiegazioni e per la segnalazione del sito di V.Villa, che è effettivamente ben fatto.

  5. #6 da mcgyver86 il 30 giugno 2010

    ciao giovanni, ho realizzato l’interfaccia ma con un cavo null-modem non funziona, mentre se la attacco direttamente alla seriale del pc, funziona benissimo! mi sapresti dire come mai??

  6. #8 da Enry il 29 ottobre 2010

    se vi interessa la Zuken ha presentato un programmino fantastico per realizzare piccoli circuiti
    con una libraries vastissima
    CADSTAR12.1 provatela

  7. #9 da Ale il 23 aprile 2011

    Ciao a tutti!

    Innanzitutto volevo complimentarmi con Giovanni per l’ottimo articolo e in generale per l’intero sito.
    Detto questo: ho realizzato l’interfaccia RS232-TTL proposta, però ho un problema quando vado ad alimentare la scheda con il regolatore di tensione. In particolare quando faccio il test di comunicazione con hyper terminal spesso ricevo alcuni caratteri sbagliati o mancanti, mentre se non uso il regolatore tutto funziona alla grande. Hai idea del perché ciò accade? Grazie per l’aiuto

  8. #11 da Ale il 23 aprile 2011

    Giovanni Bernardo :
    Il 78L05 puo tirare fuori solo 100mA, se ci alimenti altro potrebbe “soffrire”, inoltre in ingresso gli devi dare almeno 7V

    si si lo so, infatti lo alimento con un alimentatore da muro a 9V, jumper in posizione 1-2, TXD e RXD collegati tra loro…nient’altro! Però mi sono accorto che l’alimentatore da cui prelevavo la tensione è guasto!!! Grazie comunque per l’aiuto e grazie ancora, ti offro un caffè

  9. #12 da DarXavier il 27 maggio 2011

    ciao la resistenza è da 220 o 330… la lista componenti dice 220 ma nella scheda da te realizzata è presente una 330

    grazie

  10. #14 da marco2551 il 30 dicembre 2011

    Ciao, una domanda veloce veloce.
    Se sostituisco il diodo d2 con un ponticello posso alimentare la scheda direttamente tramite strip maschio.
    Giusto ?

  11. #15 da Stemby il 12 novembre 2015

    Buongiorno,
    grazie mille per la splendida guida! Letta tutta con attenzione nei giorni scorsi.

    Per curiosità, pur non avendone bisogno (dispongo già di un adattatore TTL/RS232 e al momento non ho intenzione di costruirne un altro) ho provato a scaricare “Schema e PCB adattatore TTL/RS232”, ma ottengo un pacchetto ZIP da 0 kB… È un problema mio?

    Grazie di nuovo!

Devi essere collegato per lasciare un commento.

  1. Ancora nessun trackback
settorezero.com e il logo Zroid™ ©2007÷2015 Giovanni Bernardo - E' vietata la copia e la distribuzione anche parziale dei contenuti di questo sito web senza l'esplicito consenso dell'autore.
I contenuti di settorezero.com sono distribuiti sotto una licenza Creative Commons Attribuzione-Non Commerciale-Non Opere derivate 2.5 Italia a cui vanno aggiunte le condizioni d'uso definite nel disclaimer.
settorezero.com e tutti i suoi contenuti sono tutelati dalla legge sul diritto d'autore per cui i trasgressori sono perseguibili a norma di legge. Settorezero fa uso dei cookie leggi l'informativa estesa.
Creative Commons BY-NC-ND 2.5
Il tema di questo sito è basato sul tema Fusion per wordpress, realizzato originariamente da digitalnature e fa uso del plugin Wassup per il computo delle statistiche. Per contattare l'autore siete pregati di utilizzare la sezione contatti.
Per essere aggiornato con tutte le novità di settorezero.com seguici anche anche su Facebook Twitter Tumblr Blogspot Youtube.