Forum: Mikrocontroller und Digitale Elektronik SPI Pegelwandler 3.3V µC an 5V IC


von Michi (Gast)


Lesenswert?

Ich habe hier ein 3.3V µC und muss nun ein 5V IC über SPI verbinden.

Da habe ich auf der Seite:
http://www.mikrocontroller.net/articles/Pegelwandler#AVR_SPI_.28SDC.2FMMC.29

einige Infos gefunden.

Ansich Fragt der µC den Slave IC ab, braucht es hierfür einen 
bidirektionalen Level Shifter?


Ich habe hier mal versucht die Richtung der Signale zusammen zu fassen.
Ist das so Richtig?
Was mache ich mit IRQ?


Anschluesse am µC (atxmega-A4) -> Level Shifter -> 5V IC

SS ->  ??  -> CS  (Chip Select)
MOSI -> ?? -> DIN
MISO <- ?? <- DOUT
SCK -> ?? -> SCLK

IRQ??



IRQ:
The interrupt request output (IRQ) is an open-drain, active low logic
output. The IRQ output goes active low when one or more
interrupt events have occurred. A status register
indicates the nature of the interrupt.


Datenblatt:
http://datasheets.maxim-ic.com/en/ds/MAX3372E-MAX3393E.pdf

5 Volt IC:
http://www.analog.com/en/analog-to-digital-converters/energy-measurement/ade7758/products/product.html

von Krapao (Gast)


Lesenswert?

Die Datenrichtungen sehen OK aus.

IRQ geht i.d.R. vom Slave an den Master. Der Slave kann damit dem Master 
melden, dass was besonderes passiert ist und der Master bitte per SPI 
Details anfragen soll.

Ich sehe keinen Bedarf an bidirektionalen Pegelwandlern. Der 5V Slave 
müsste auch zufrieden sein, wenn er vom 3.3V µC Master Signale auf den 
entsprechend mit 3.3V getriebenen SPI Leitungen (SS, SCK, MOSI) bekommt.

Wenn der 5V Slave selber sendet (MISO, IRQ), kann ein Spannungsteiler 
als Pegelwandler den 3.3V µC Master schützen.

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Ich nehme hier einen 74HCT365 (oder jeden anderen Treiber) und wandle 
damit 3,3V-Signale auf 5V.
Zurück nehme ich einen Spannungsteiler aus 18k und 33k um aus einem 
5V-Signal wieder ein 3,3V-Signal zu machen.

Paßt.

von Michi (Gast)


Lesenswert?

ok spricht was gegen ein 74HC4050D?

von Michi (Gast)


Lesenswert?

@Krapao,

die Idee hatte ich auch, nur ich bin mir nicht
sicher ob das Funktioniert, laut atxmega Datenblatt sind bei
3.3V min 2.6V als High Wert angegeben.
(bei 3V sinds sogar nur noch 2.1V)

Der 5V IC benötigt aber mindestens 2.4V.

Wird das nicht etwas knapp?

Treffen die GPIO Werte im atxmega Datenblatt überhaupt auf SPI zu?

Wie verhalten sich die Widerstände bei höheren Geschwindigkeiten?

Atxmega:

                             IOH = -8 mA, VCC = 3.3V 2.6 3.0
VOH Output High Voltage GPIO IOH = -6 mA, VCC = 3.0V 2.1 2.7
                             IOH = -2 mA, VCC = 1.8V 1.4 1.6

5V IC:

LOGIC INPUTS
  DIN, SCLK, CLKIN, and CS
  Input High Voltage, VINH 2.4 V min  DVDD = 5 V ± 5%
  Input Low Voltage, VINL  0.8 V max  DVDD = 5 V ± 5%
  Input Current, IIN       ±3  A max  Typical 10 nA, VIN = 0 V to DVDD
  Input Capacitance, CIN   10  pF max

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Michi schrieb:
> ok spricht was gegen ein 74HC4050D?

Die Level der Eingangsspannungen

und ich habe gerne einen Treiber, der ordentlich Last treiben kann.

von (prx) A. K. (prx)


Lesenswert?

Bernd Rüter schrieb:
> Zurück nehme ich einen Spannungsteiler aus 18k und 33k um aus einem
> 5V-Signal wieder ein 3,3V-Signal zu machen.

Bernd Rüter schrieb:
> und ich habe gerne einen Treiber, der ordentlich Last treiben kann.

Das krieg ich nicht ganz auf die Reihe. Der 74HC4050 soll weniger Last 
verkraften als der angegebene Spannungsteiler??

von (prx) A. K. (prx)


Lesenswert?

Michi schrieb:
> ok spricht was gegen ein 74HC4050D?

Für Abwärts, also 5V=>3,3V: ist er mit Vdd=3,3V geeignet.
Für Aufwärts taugt er nicht.

von M. B. (Firma: TH Nürnberg) (ohmen)


Lesenswert?

Warum nicht sowas wie den PCA9306 von TI?

von ziegenpeter (Gast)


Lesenswert?

Michi schrieb:
> die Idee hatte ich auch, nur ich bin mir nicht
> sicher ob das Funktioniert, laut atxmega Datenblatt sind bei
> 3.3V min 2.6V als High Wert angegeben.
> (bei 3V sinds sogar nur noch 2.1V)
>
> Der 5V IC benötigt aber mindestens 2.4V.
>
> Wird das nicht etwas knapp?

Ich würde mich Krapao anschließen.

Das bedeutet, dass der 3.3V µC mindestens 2.6V (bzw. 2.1V) als 
High-Signal erwartet, nicht dass er selber "nur" so viel als High 
ausgibt. Er versucht natürlich die vollen 3.3V auszugeben. Was am Ende 
der Leitung ankommt ist ne andere Frage, sollte aber nicht so viel 
weniger sein. Also immer noch genug für den 5V µC, um es als High zu 
erkennen.

Ich hab das selber schon öffters so gemacht (3.3V Signal an 5V µC, bzw. 
mit Spannungsteiler in die andere Richtung) ohne Probleme.

von Michi (Gast)


Lesenswert?

na gut, Vielen Dank!

Ich werde es auch mit einem Spannungsteiler machen

von HildeK (Gast)


Lesenswert?

Bernd Rüter schrieb:
> Zurück nehme ich einen Spannungsteiler aus 18k und 33k um aus einem
> 5V-Signal wieder ein 3,3V-Signal zu machen.

Imho etwas hochohmig. Es hat zwar noch niemand über die Geschwindigkeit 
geschrieben, mit der das SPI-Interface laufen soll (oder hab ich's nur 
überlesen?), aber ich würde da eher 1k8 und 3k3 nehmen - oder noch 
weniger. Selbst diese Kombination wird bei 10MHz schon grenzwertig sein.

von Michi (Gast)


Lesenswert?

mal abgesehen von dem Spannungsteiler.

Macht es Sinn, gerade wenn der zweite IC (SPI Master) ein 5V IC ist, 
Widerstände
an den (MOSI/MISO/SCK) Leitungen zu verwenden? z.B. 1k8 oder kleiner.
Oder ist dies unnötig?


Ich rede hier nicht von den Widerständen die genommen werden bei ISP 
Programmierung um  zu verhindern das einer der Slaves die Datenleitungen 
Steuert. vgl. Appnote AVR042 / AVR910
Der ATXMega wird ueber PDI Programmiert

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.