Hallo zusammen, ich möchte zwei Mikrocontroller über SPI miteinander verbinden, die von unterschiedlichen Spannungen versorgt werden: der eine mit 3,3V und der andere mit 1,8V. Ich habe den LevelShifter-Baustein SN74LVT162245 gefunden. Kann man den Baustein mit den Mikrocontrollern wie in der Zeichnung beschalten? Muss man bei SPI sonst etwas beachten? Gruß Siggi
Nee nee, das ist schon korrekt, wie es Siggi gesagt hat: MOSI auf MOSI (Master out Slave in) und MISO auf MISO (Master in Slave out). Theoretisch müsste es so funktionieren, wie Siggi es skizziert hat. Interessant wäre nur, ob noch Pull-Widerstände notwendig sind.
Siggi schrieb: > Ich habe den LevelShifter-Baustein SN74LVT162245 gefunden. Nach dem Datenblatt von http://pdf1.alldatasheet.com/datasheet-pdf/view/96384/TI/SN74LVT162245ADLR.html erkennt der IC eine logische 0 sicher unter 0.8V und eine logische 1 sicher über 2V. Dazwischen schaltet er irgendwo um. Bei welcher Spannung hängt aber von der Temperatur, Vcc, Toleranzen, ... ab. Der 1.8V Controller kann also keine sichere logische 1 an den IC weitergeben. Hendrik schrieb: > Theoretisch müsste es so funktionieren, wie Siggi es skizziert hat. Es wird wahrscheinlich funktionieren. Jeder CMOS-Eingang hat nen definierten Level, sobald beide µCs laufen und ihre Ports initialisiert haben. Bis dahin floatet der Eingang. Beim floaten können die ICs mehr Strom ziehen. Bei den Chips von TI sind es bis zu 4mA pro Eingang.
Alternativ könnte man auch mit Open Collector-Ausgängen arbeiten. Wenn der/die µC(s) keine haben, dann könnte man diese ja nachrüsten. Wenn der Master mit 3.3V läuft, könnte man ggf ja auch mit einfachen Spannungsteilern arbeiten und bräuchte nur einen OC-Ausgang vom Slave. Statt 3 Spannungsteiler kann man auch einen 3.3V-Toleranten Buffer mit OC nehmen, wie 7407 oder 7417 und dann mit Pullup auf 1.8V ziehen. Den OC für den 1.8V µC müsste man dann wohl mit 2 Transistoren und 3 Widerständen aufbauen. Wenn der Slave mit 3.3V läuft, könnte man pro Ausgang vom Master 2 Widerstände und einen Transistor nehmen, um auf die 3.3V zu kommen und danach mit einem 3.3V Inverter die invertierung durch den Transistor zu korrigieren. Die Leitung vom Slave zum Master könnte man dann ggf wieder mit einem Spannungsteiler machen. ggf ist auch hier noch was interessantes dabei.. Auch wenn du Bidirektional nicht brauchst.. Unidirektional kann man die ja auch betreiben: http://www.mikrocontroller.net/articles/Pegelwandler#1.2C65V...5.2C5V_.3C-.3E_1.2C65V...5.2C5V z.B. 1x SN74AVC1T45 (SOT23) und 1x SN74AVC4T245 (SOIC16/TSSOP16) oder 4x SN74AVC1T45
Mir ist gerade aufgefallen, dass Siggi und ich einen Denkfehler haben: der MISO pin vom Slave kann nicht wie im Bild beschrieben an den SN74LVT162245 geführt werden. Die Seite wird mit einer anderen Spannung versorgt. Das geht wahrscheinlich in die Hose.
Was spricht denn gegen die SN74AVC.. Oder etwas noch passenderes: TXB 0104: http://www.ti.com/product/txb0104 TXB 0304: http://www.ti.com/product/txb0304 ???
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.