Newsgroup: it.hobby.elettronica.digitale
Titolo: Da 5V a 3.3V

Classico problema tra due integrati A e B, A alimentato a 5V e B alimentato a 3.3V.
L'uscita di A può andare a livello basso, alto o alta impedenza. L'ingresso di B 
a cui deve essere collegata l'uscita di A deve riconoscere i livelli corretti e, 
nel caso di alta impedenza, un livello alto.
Se B fosse alimentato a 5V sarebbe facile: basta aggiungere un pull-up blando.
Siccome B è alimentato a 3.3V avevo pensato di usare un partitore (56K + 10K) 
per scendere da 5V a 3.3V, ma non riuscirei poi a vedere un livello alto quando 
l'uscita di A va ad alta impedenza.
Allora m'è venuto in mente di collegare un pull-up a 3.3V sull'ingresso di B, 
collegato a sua volta con uno Schottky all'uscita di A. Lo Schottky conduce solo 
quando l'uscita di A è bassa e sull'ingresso di B vedrei circa una 0.2V. Se 
l'uscita di A è alta o alta impedenza, lo Schottky non conduce e interviene il 
pull-up a mantenere il livello alto sull'ingresso di B.
Ho fatto una simulazione con LTSpice/SwitcherCAD della Linear (a mio avviso un 
ottimo programma di simulazione free) ed ho notato che, in corrispondenza delle 
transizioni basso-alto dell'uscita di A (ho impostato un tempo di salita di 
circa 100ns), anche il livello sull'ingresso di B (dopo lo Schottky) sale, ma 
c'è una sovraelongazione che porta la tensione, anche se per poco tempo, ben 
oltre i 3.3V.
A questo punto ho paura di rompere l'integrato B a 3.3V che ha un massimo 
livello d'ingresso sui pin di 3.3V+0.2V.
Esiste qualche altra soluzione semplice ed economica per interfacciare logica a 
5V con logica a 3.3V con il mio requisito sull'alta impedenza?

 5V con logica a 3.3V con il mio requisito sull'alta impedenza?
Ad un problema classico, una soluzione classica: un ottavo di
74LVC244A, buffer non invertente con ingressi "5V tolerant" anche
quando alimentato a 3.3V (in pratica non ha il diodo verso
l'alimentazione all'ingresso). O qualche altra porta che ti avanza
della famiglia LVC-A.
Saluti,
     LaCar

 i livelli corretti e, nel caso di alta impedenza, un livello alto.
Io butto là un'altra idea...
Un problema simile l'ho avuto nell'interfacciare a logica 5V una secure 
digital più un controllore ethernet microchip ENC28J60 (3,3), controllati 
per mezzo del classico bus SPI (MISO, MOSI, MCLK e CS). Per la conversione 
5V -> 3,3V nessun problema tramite dei partitori resistivi (2,2k e 3,3k, 
valori bassi per problemi di elevate velocità), ma per la linea MISO ho 
dovuto mettere un traslatore di livello integrato.
L'ho realizzato per mezzo di un 74HC125, pilotando gli ingressi di enable 
con i rispettivi chip-select e mettendo in parallelo le uscite dei due 
buffer tristate utilizzati. Nel tuo caso, utilizzando un integrato come 
questo (3x buffer tristate abilitati con un livello basso), potresti 
utilizzare uno dei buffer come traslatore vero e proprio e collegare 
l'uscita in parallelo con un altro buffer, il quale ingresso è a 5V.
Dopodichè, per mezzo del terzo o tramite dei resistori, ti risolvi il 
problema dei livelli logici (volendo hai 2 not libere a disposizione) 
pilotando a dovere gli ingressi di enable
Con un 74HC125 vado senza problemi con una SPI a 10MHz.
Vedi un po' se è il caso di usare un integrato o ti sono sufficienti dei 
partitori
Ciao!
-- 
____________________
      CG Engineering
 Lab. Ricerca & Sviluppo
********************
Skype : cg_ingegnering
MSN : 
cgaudiola...@interfree.it
ICQ UIN# : 104528066 

 della famiglia LVC-A.
Purtroppo quando intendevo soluzione semplice mi riferivo a soluzioni discrete 
poichè non uso in quel circuito buffer o porte logiche di quel tipo e comunque 
sarebbe solo un segnale che mi crea problemi.
--- schema.asc ---
Version 4
SHEET 1 880 680
WIRE 112 48 -208 48
WIRE 112 112 112 48
WIRE -208 128 -208 48
WIRE -64 288 -80 288
WIRE 32 288 16 288
WIRE 112 288 112 192
WIRE 112 288 96 288
WIRE 192 288 112 288
WIRE 304 288 192 288
WIRE 192 304 192 288
WIRE -80 320 -80 288
WIRE 304 320 304 288
WIRE 192 400 192 384
WIRE 304 400 304 384
FLAG -80 400 0
FLAG -208 208 0
FLAG 192 400 0
FLAG 304 400 0
SYMBOL voltage -80 304 R0
WINDOW 0 -72 43 Left 0
WINDOW 3 -390 81 Left 0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V1
SYMATTR Value PULSE(0 5 0 100n 100n 1m 2m)
SYMBOL res 32 272 R90
WINDOW 0 0 56 VBottom 0
WINDOW 3 32 56 VTop 0
SYMATTR InstName R1
SYMATTR Value 100
SYMBOL voltage -208 112 R0
WINDOW 0 39 42 Left 0
WINDOW 3 36 66 Left 0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V2
SYMATTR Value 3.3
SYMBOL schottky 96 272 R90
WINDOW 0 0 32 VBottom 0
WINDOW 3 32 32 VTop 0
SYMATTR InstName D1
SYMATTR Value BAT54
SYMATTR Description Diode
SYMATTR Type diode
SYMBOL res 96 96 R0
SYMATTR InstName R2
SYMATTR Value 10K
SYMBOL res 176 288 R0
SYMATTR InstName R3
SYMATTR Value 1Meg
SYMBOL cap 288 320 R0
SYMATTR InstName C1
SYMATTR Value 1p
TEXT -32 458 Left 0 !.tran 5m
---

 partitori
Come dicevo nell'altro post, non ho porte logiche e per un solo segnale di 
questo tipo non mi va di usarle, se esiste qualche soluzione discreta.
Mi stava venendo in mente anche un'altra soluzione. Un NMOS nella classica 
configurazione per il bus I2C tra due integrati a tensioni differenti. Quella 
configurazione è addirittura bidirezionale, quindi funziona anche in un solo 
senso...

 
questo e' un problema se inietti dal lato 5V piu' corrente di quella che 
assorbono, come utilizzatori, i componenti alimentati a 3.3 ( specie 
quando sono 'a riposo' ) tieni conto che i regolatori di corrente sono 
dei 'source' e nno dei 'sink', non sono, cioe', sono in grado di 
assorbire corrente.
una possibile soluzione e' mettere un carico resistivo sulla 3.3 in modo 
che faccia lui da carico 'sink'
P.S: se qualcuno ha una buona traduzione di source e sink , che non sia 
sorgente e pozzo si faccia avanti :-)

 in un solo senso...
A me non piacciono le soluzioni discrete che funzionano sempre peggio e 
costano di più di quelle integrate. Per un bus I2C puoi utilizzare un 
oggetto come il MAX3372 che costa 90 centesimi, fa tutto e non consuma 
praticamente niente....
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3253
Ciao


sorgente e pozzo si faccia avanti :-)
E' difficile trovare parole efficaci in italiano per concetti molto tecnici.
In genere tendo ad usare i source e sink anch'io, a volte mi viena da usare dà e
tira, ma non è proprio una bella traduzione.
--
ciao
  Stefano

 
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3253
Interessante, lo terrò presente, anche se ho già provato la soluzione discreta 
(un NMOS e due resistenze per ogni linea bidirezionale) e funziona benissimo.

 funziona benissimo.
In certi casi ho sfruttato anche degli optoisolatori come traslatori di 
livello :) Quando posso però evito e uso soluzioni integrate, anche perchè 
molto spesso faccio oggetti battery powered....


 Io vado avanti a free samples :)
Lo so, lo so, devi vedere io :))

SB (
stNOOOb...@tin.it
) ha scritto:
:: E' difficile trovare parole efficaci in italiano per concetti molto
tecnici.
:: In genere tendo ad usare i source e sink anch'io, a volte mi viena da
usare
:: dà e tira, ma non è proprio una bella traduzione.
Si potrebbe dire fornisce corrente e  assorbe corrente.
Quindi, non ho capito bene, come hai fatto ad interfacciare i dispositivi
a 5V con quelli a 3.3V in modo bidirezionale?

pozz (
pNoOzSz...@gmail.com
) ha scritto:
:: Mi stava venendo in mente anche un'altra soluzione. Un NMOS nella
classica
:: configurazione per il bus I2C tra due integrati a tensioni differenti.
Quella
:: configurazione č addirittura bidirezionale, quindi funziona anche in un
solo
:: senso...
Puoi indicarmi lo schema di questa soluzione? Grazie.

a 5V con quelli a 3.3V in modo bidirezionale?
Ho usato questo che alimentato a 3V accetta i 5 in ingresso.
http://150.217.8.18/ing/pic/ESD%20Data%20Sheets/74LVC08%20-%20Quad%20AND.pdf
mentre per l'input visto che il segnale arriva a  3V e quindi supera i 2.5V ho
collegato direttamente e funziona.
--
ciao
  Stefano

SB (
stNOOOb...@tin.it
) ha scritto:
:: mentre per l'input visto che il segnale arriva a  3V e quindi
:: supera i 2.5V ho collegato direttamente e funziona.
Perņ, in questo modo, riduci il Margine di Immunitą ai Disturbi...

Però, in questo modo, riduci il Margine di Immunità ai Disturbi...
Forse, in teoria, magari per collegamenti lunghi potrebbe essere un problema.
Dal momento che la MMC in questione è a pochi millimetri dall' IC il problema
proprio non c'è, anche a 10Mhz.
--
ciao
  Stefano

 Puoi indicarmi lo schema di questa soluzione? Grazie.
Lo trovi nel documento dello standard I2C dalla Philips (ora NXP).
http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf