Domanda:
Il modo più economico per tradurre il segnale SPI 5V in SPI 3V?
Mike
2011-08-14 02:09:45 UTC
view on stackexchange narkive permalink

Ho un MCU che funziona a 5 V e un display che consiglia un livello logico di 3 V. Sono collegati tramite SPI che può funzionare fino a 1,5 Mhz. Qual è il modo migliore e il modo più economico (non necessariamente lo stesso), per convertire i 5V in 3V? La connessione SPI è unidirezionale (solo SCK, MOSI, CS; non è necessario che l'LCD comunichi con l'MCU, quindi la traduzione è solo da 5V a 3V).

Grazie, Mike

Sei risposte:
Majenko
2011-08-14 02:16:29 UTC
view on stackexchange narkive permalink

Il modo più semplice (non so se sia il migliore) è con un semplice partitore di tensione. 3,3 V è 2/3 di 5 V, quindi un divisore 1: 2 dovrebbe funzionare:

enter image description here

Russell McMahon
2011-08-14 02:35:12 UTC
view on stackexchange narkive permalink

Un semplice divisore resistivo è il metodo più economico e può servire abbastanza bene ai tuoi scopi.

Posizionare un piccolo condensatore attraverso il resistore superiore aiuterà ad allineare i bordi causati dal carico capacitivo. Finché la costante di tempo RC dei due resistori in parallelo combinata con la capacità di carico in uscita è molto più veloce del tempo di salita e di discesa dei segnali, questo condensatore non dovrebbe essere necessario.

Sono disponibili molte soluzioni bidirezionali e attive. Solo come esempio di una soluzione compatta, MAX3023 di Maxim fornisce 4 driver bidirezionali in un pacchetto TSSOP.

enter image description here

Olin Lathrop
2011-08-14 02:39:37 UTC
view on stackexchange narkive permalink

Come ha detto Matt, il più semplice è un divisore di resistenza. Lo svantaggio è che rallenterà leggermente i bordi. Probabilmente starai bene con 1 kΩ e 2 kΩ che mostra, ma sarebbe una buona idea controllare la forma d'onda con un oscilloscopio.

Quando la velocità è un problema, come molto probabilmente sarebbe se stavi utilizzando il bus SPI a 10 MHz, quindi un convertitore di livello esplicito sarebbe probabilmente migliore. Questi chip hanno due alimentatori e di solito un ingresso direzionale, che potresti legare permanentemente in una direzione nel tuo caso.

E il divisore costruito con condensatori?
@Dor - è come una casa fatta di carte :-). Sarebbe applicabile in alcune circostanze, ma non qui senza che vengano intraprese misure eccezionali per mantenere il livello DC, che è importante qui. .
@Dor: Un divisore capacitivo puro perderebbe il livello DC, quindi non funzionerà. Tuttavia, un divisore capacitivo in parallelo con il divisore resistivo può essere utilizzato per bilanciare la risposta al gradino immediato con la risposta CC a lungo termine. Questo è esattamente ciò che fanno i probe dell'oscilloscopio. La regolazione della compensazione di una sonda dell'oscilloscopio varia uno dei condensatori in modo che i rapporti del divisore CC e CA corrispondano. Lo svantaggio di un divisore capacitivo aggiuntivo con il divisore resistivo è il carico capacitivo aggiuntivo.
@Olin Lathrop: Il motivo per cui il divisore puramente resistivo arrotonda i bordi è che c'è molta più capacità parassita in parallelo con la parte inferiore rispetto alla parte superiore. L'ideale sarebbe aggiungere la capacità parallela solo alla parte superiore del divisore, in una quantità appena sufficiente a compensare la capacità sul fondo. Ciò aumenterebbe il carico capacitivo sull'uscita, ma sarebbe comunque inferiore a quello connesso direttamente all'uscita.
B Pete
2011-08-14 04:43:51 UTC
view on stackexchange narkive permalink

Se il tuo processore ha pin di uscita a drain aperto, puoi collegarli direttamente al display, aggiungendo una resistenza di pull-up all'alimentazione a 3,3 V a ciascuna linea. Potrebbe essere necessario impostare i pin per aprire la modalità drain utilizzando un registro MCU.

Nota: ho scritto quanto segue prima di rileggere la domanda e notare che l'interfaccia SPI in questione è solo in uscita e non è presente alcuna riga MISO. L'ho lasciato come riferimento.

Se il tuo processore ha ingressi tolleranti a 5V (controlla la scheda tecnica) puoi collegare la linea MISO dal display direttamente all'MCU, a condizione che il display Voh sia superiore all'MCO Vih livello.

bobflux
2017-09-06 21:03:54 UTC
view on stackexchange narkive permalink

Suggerirei un buffer 74LVC.Ingressi tolleranti a 5 V, uscite a 3,3 V, economici, veloci, piccoli, prontamente disponibili e solo una parte da saldare invece di molte resistenze.

L'LVC126 dispone anche di tre stati, che può tornare utile.

Paul B.
2017-09-06 17:02:02 UTC
view on stackexchange narkive permalink

No, in realtà il modo più semplice di interfacciarsi è quello utilizzato da Adafruit Huzzah;un diodo con catodo al segnale 5 V e anodo all'ingresso ESP8266.Ciò non produce alcun ritardo nel pull-down e nell'ESP8266 è presente un pull-up predefinito interno, anche se è possibile fornire un pull-up a 3,3 V se necessario.

Non vi è alcun motivo per fornire la conversione di livello da un'uscita ESP8266 poiché 3,3 V è una logica ALTA valida per CMOS a 5 V.

I pull-up interni potrebbero essere troppo lenti per 1,5 MHz (e l'LCD potrebbe non averli).Dopo aver aggiunto un pullup esterno di 1-2 kOhm, otterrai un consumo di corrente vicino a quello suggerito da Olin nella sua risposta.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...