Reverse engineering di un adattatore USB per auto
Cos’è la reverse engineering
L’attività di reverse engineering (nota in italiano come ingegneria inversa) consiste nell'analisi dettagliata del funzionamento, progettazione e sviluppo di un oggetto al fine di comprenderne funzionalità, prestazioni, processo costruttivo, costo e generare magari da queste informazioni un nuovo dispositivo o programma che abbia un funzionamento analogo o pure migliorato. E’ un’attività molto interessante che dona grande soddisfazione ai più curiosi e permette di scoprire i “segreti” degli oggetti che ci circondano e, potendo, di migliorarli.
Vediamo oggi un’applicazione semplice di questa attività applicata ad un dispositivo elettronico di larghissima diffusione.
L’oggetto analizzato
Il dispositivo scelto per questa analisi è un comunissimo adattatore da presa accendisigari a USB, pensato per alimentare e ricaricare telefoni e tablet in genere. Il riduttore di tensione ha due uscite a 5V, una capace di erogare 1A e l’altra 2,1A, almeno stando ai dati indicati sul corpo. Il suo prezzo nei vari negozietti e bancarelle si attesta sui 2-3€.
Cominciamo ora ad aprirlo e a scoprirne i segreti.
Costruzione meccanica
Il riduttore è costituito da un corpo plastico realizzato con due gusci verosimilmente saldati ad ultrasuoni che racchiude l’elettronica e fa anche funzione di simulacro del connettore accendisigari. Per separare le due parti si può usare una sottile lama circolare.
Al suo interno troviamo due piccoli circuiti stampati e i particolari meccanici per il contatto alla presa dell’auto.
Se determinare con esattezza il tipo di polimero plastico impiegato per il corpo richiede un laboratorio specializzato, una ragionevole valutazione può essere fatta considerandone l’applicazione:
basso costo
facile stampabilità
temperature di utilizzo contenute
bassi stress meccanici
gradevole aspetto
Da queste indicazioni, una delle scelte più indicate è l’ABS con una leggera carica in vetro.
Schema elettrico e componenti
Come anticipato, la parte elettronica trova posto su 2 piccoli circuiti stampati in substrato economico. Quello più grande supporta il convertitore vero e proprio, mentre il più piccolo i due connettori USB, il led e alcune resistenze.
|
|
Lo schema elettrico ricavato per osservazione e misura del prodotto è il seguente:
Illustrazione 3: Schema elettrico del riduttore di tensione
Cuore del circuito è l’integrato DP2357 della Depuw, azienda cinese specializzata nella produzione di circuiti integrati per piccoli regolatori ed alimentatori. Il dispositivo è un comune step down converter, capace di erogare correnti fino a 2A e accettare tensioni in ingresso da 4,75 a 25V.
Come rettificatore viene usata una coppia di diodi Schottky SR260 della DC Components Co.ltd, capaci di una IO di 2A ciascuno. In totale quindi si avrebbero a disposizione ben 4A medi di raddrizzamento, dato in apparente contraddizione con i 2A del regolatore a commutazione.
Il partitore costituito dalla resistenze R1, R2 serve per regolare la tensione in uscita al valore desiderato. All’interno del DP2357 una stadio comparatore con un riferimento a 1,222V provvede poi a regolare il comando dello stadio d’uscita per stabilizzarla.
La coppia formata da R3 e C4 è una rete di compensazione del guadagno dell’anello di regolazione, per la stabilità del sistema è suggerito che la frequenza di taglio sia attorno ad un decimo di quella di commutazione. Nel caso in oggetto il polo dominante è fissato attorno a 1,5kHz, valore molto conservativo.
Proviamo ora a vedere con alcune misure come si comporta il dispositivo al variare del carico e della tensione in ingresso.
Dalle misure appare inequivocabile come la corrente massima in uscita sia limitata con precisione a 2A, valore oltre il quale la tensione di uscita cade velocemente. L’efficienza è buona con valori oltre l’80% da 300mA a oltre 2A di uscita e sostanzialmente coincidente coi valori indicati dal datasheet. Il ripple in uscita è prevalentemente costituito dai residui della commutazione a 420kHz e tende ad aumentare per correnti in uscita superiori ad 1A. Interessante la misura della tensione in uscita a pieno carico al variare di quella in ingresso: fino a 7V il dispositivo è capace di garantire una uscita compatibile con le specifiche di alimentazione dello standard USB.
Credo che le misure e la valutazione dei dati, indicati nella letteratura del regolatore, indichino senza dubbi residui che il dispositivo nel suo complesso ha un limite di corrente erogabile inferiore a quei 2,1+1=3,1A che la marchiatura fa ipotizzare. Attenzione quindi a non “abusarne”, collegando carichi ad alta corrente alle due uscite in contemporanea. Ma se il dispositivo collegato rispetta gli standard, il problema sarà risolto automaticamente.
Considerando che il dispositivo è un “banale” alimentatore e quindi non utilizza le linee dati della USB, può risultare curioso scoprire come ben 6 resistori siano impiegati per alimentarle. Per scoprire il motivo di questo apparente spreco, si rimanda alla chiosa specifica.
Chiosa: tensione sulle linee dati degli alimentatori USB
Il connettore USB dalla versione 1 fino alla 3 (esclusa) ha 4 pin: +V, D-, D+, GND. Il pin +V assieme al GND fornisce i +5V per l’alimentazione, mentre i pin D- e D+ vengono utilizzati per la comunicazione. Con l’avvento della funzione di ricarica tramite USB si è posto il problema di indicare al dispositivo alimentato la capacità massima d’erogazione dell’alimentatore. Per questo sono stati introdotti alcuni livelli specifici delle linee dati USB che veicolano detta informazione come segue:
tensione di circa 2.0 V su entrambi i pin → corrente massima 500mA
2,8 V su D- e 2,0V su D+ → corrente massima 1A
La “lista della spesa”
A questo punto è possibile elencare tutti i materiali che lo costituiscono e fare una stima del costo di produzione industriale.
n° | Descrizione | Qtà | € unitario | € |
1 | Coppia PCB, singola faccia per un totale di 1098mm2 | 1 | 0,00,1 | 0,1 |
2 | Connettori USB-A da PCB | 2 | 0,05 | 0,1 |
3 | IC DP2357 | 1 | 0,1 | 0,1 |
4 | Diodi SR260 | 2 | 0,04 | 0,08 |
5 | Condensatore 47uF 25V -40+105°C THT | 1 | 0,05 | 0,05 |
6 | Condensatore 470uF 10V -40+105°C THT | 1 | 0,08 | 0,08 |
7 | Resistenze SMD case 0603 | 9 | 0,00168 | 0,015 |
8 | Led blu 3mm THT | 1 | 0,05 | 0,05 |
9 | Condensatori ceramici SMD, case 0603 | 2 | 0,00095 | 0,0019 |
10 | Toroide T50-6 (giallo) con bobina realizzata in filo rame smaltato 6/10mm, 300mm | 1 | 0,2 | 0,2 |
11 | Molla e contatti 0.05€ | 1 | 0,05 | 0,05 |
12 | Plastica per contenitore, ABS GF15 | 0,008kg | 1,2 | 0,0096 |
Totale | 0,837€ |
Alcune note importanti
I costi stimati dei materiali e componenti non sono ovviamente quelli che potremmo trovare nei negozi per singoli pezzi: le stime sono basate sulle quotazioni per forniture industriali per quantità elevate.
Dalla lista sono omesse tre voci, difficili da valutare singolarmente: costo manodopera, materiali di consumo (i.e. flussante, lega saldante, etichette, etc.), ammortamenti delle attrezzature produttive (i.e. stampi). In linea di massima considerando il luogo di produzione il tutto, sommato ai costi vivi dei materiali, non dovrebbe far oltrepassare la soglia dell’Euro al pezzo.
La cifra finale stimata appare compatibile col prezzo di rivendita sopra citato che ovviamente deve includere trasporto, dazi, imposte e i margini di guadagno di produttore e rivenditore.
Possibili “hacking”
Migliorare le prestazioni
Osservando i suggerimenti di utilizzo citati nel datasheet e contenendo l’impatto sul circuito sia in termini di costi sia di ingombri, è possibile provare ad intervenire su tre elementi :
aggiunta del diodo D3 (1N4148) per aumentare l’efficienza
aggiunta della resistenza R11 nel partitore di tensione per “centrare” il valore d’uscita a 5V
aggiunta del condensatore C5 da 100nF in parallelo all’uscita per ridurre il ripple
Il circuito diventa quindi (con i componenti aggiunti nei box rossi):
Illustrazione 4: Schema del riduttore di tensione modificato per migliorarne le prestazioni
E’ importante notare come la modifica al partitore di tensione non sia sempre necessaria né prevedibile a tavolino su tutti gli esemplari. La dispersione dei valori delle resistenze e della tensione di riferimento infatti fanno di ogni esemplare un caso a sé, da misurare prima di intervenire.
Vediamo con alcune misure comparative le differenze fra il circuito modificato e l’originale.
Il ripple a bassi carichi non muta in maniera sensibile, mentre per correnti in uscita superiore ad 1A rimane contenuto a valori fino al 30% inferiori di quelli mostrati dal circuito originale.
Il diodo 1N4148 aumenta l’efficienza di conversione ai bassi livelli di potenza, fino a circa 2,5W in uscita. Oltre tale valore, la differenza rimane sfumata nell’errore di misura del mio banco.
In virtù dei nuovi valori del partitore, la tensione in uscita ora è un quasi perfetto 5,01V su tutto il range delle correnti di uscita.
Uscita fissa a 3,3V
Sempre più circuiti e dispositivi moderni funzionano a 3,3V di alimentazione e non sempre gli alimentatori disponibili nel proprio laboratorio coprono con la dovuta precisione e stabilità quella tensione. Ecco dunque che convertire il nostro adattatore da auto potrebbe dimostrarsi una buona scelta: facile, veloce ed economica.
Per modificare la tensione d’uscita basta modificare il partitore R1, R2. Valori consigliati per una uscita a 3,3V sono di 10kOhm per R1 e 16,9kOhm (ottenibile con 2 resistenze da 33kOhm in parallelo) per R2.
Led driver
Un’altra applicazione derivata per questo circuito è quella di led-driver. Come è noto è buona pratica pilotare i led (particolarmente di potenza) a corrente costante. Per fare questo occorre modificare leggermente il circuito, come sotto riportato. Nell’esempio proposto si ipotizza di alimentare ad una corrente di circa 200mA un led bianco di potenza a tripla giunzione, che richiede quindi circa 8÷9V.
Illustrazione 5: Schema del riduttore USB convertito a Led driver
La resistenza in serie al led (R4) deve essere tale da produrre una caduta di tensione di 1,222V alla corrente desiderata. Nel nostro caso quindi:
ottenibili per comodità con due resistori 12 Ohm in parallelo.
La potenza della resistenza da usare si calcola come di consueto:
Interessanti i risultati ottenuti:
Nel primo grafico è possibile notare come la corrente nel led rimanga perfettamente stabile una volta raggiunto il suo valore obiettivo. La tensione di ingresso è di soli 11V (al led ne arrivano circa 8,5), quindi il convertitore offre anche un drop out relativamente basso. L’efficienza è sempre elevata, attorno al 80% nel campo di lavoro prevedibile.
Considerazioni conclusive
Da quello che pareva un “banale giocattolino” da pochi Euro è stato possibile ricavare parecchie informazioni, immaginarne facili migliorie e ipotizzarne nuovi e completamente differenti impieghi. Siamo partiti con un caricatore USB da auto, siamo giunti ad avere fra le mani un led driver di potenza con solo 2-3Euro di spesa. Ingegno, fantasia, ma soprattutto curiosità sono leve che non tradiscono mai, offrendoci ogni giorno nuovi spunti. Buona sperimentazione a tutti!
Bibliografia
https://www.vincenzov.net/tutorial/USB/power.htm
http://www.instructables.com/id/Modify-a-cheap-USB-charger-to-feed-an-iPod-iPhone/
"Battery Charging v1.2 Spec and Adopters Agreement" (Zip). USB Implementers Forum. 7 December 2010. Retrieved 2014-10-05.
http://www.usb.org/developers/powerdelivery/
Ciao Pierluigi,
ti contatto in quanto ricordo che, qualche anno fa, hai pubblicato su RKE un articolo relativo ad un termostato per un fornetto. Ti chiedo cortesemente se mi puoi dare il riferimento di quell’articolo e/o copia pdf dello stesso.
Grazie anticipatamente.
cordiali saluti.
Ecco il link: https://iw4blg.info/2015/02/10/ardu-oven-rke01-2014/