Un adattatore TTL/RS232 versatile
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.
Indice dei contenuti
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 microcontrollori pic.
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. E’ richiesta una donazione minima 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. Invece del denaro possiamo metterci d’accordo sullo scambio di materiali: seguite le istruzioni riportate nella pagina servizi.
Downloads
- Datasheet Regolatore di tensione 78L05 (1652 download)
- Datasheet MAX232 e altri driver RS232 (2544 download)
- Piedinatura Seriale DB9 (4047 download)
- Schema e PCB adattatore TTL/RS232 (739 download)