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
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.
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.
@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
Michi schrieb: > ok spricht was gegen ein 74HC4050D? Die Level der Eingangsspannungen und ich habe gerne einen Treiber, der ordentlich Last treiben kann.
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??
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.
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.
na gut, Vielen Dank! Ich werde es auch mit einem Spannungsteiler machen
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.