Ich habe folgendes Problem: Ein SPI Bus muss mit mindestens 10.8V laufen, der Mikrocontroller (ATSAMD21) kann jedoch nur 3.3V. Ich habe diverse "Level-Shifter" gesehen, wo das Signal mit einem Pull-Up auf 12V gezogen wird, und dann mit einem Mosfet auf 0V, so hat man dan einen Levelshifter. Leider invertieren diese, das heist das Signal am Shifter is 1 wenn der Ausgang vom Mikrocontroller 0 ist. Bei einem GPIO ist das einfach lösbar indem man in Software das Signal umdreht. Nun ist aber bei SPI das Problem das dies nicht möglich ist. Ich benötigen die beiden SPI Signale SCK und MOSI und CS genau so wie Sie aus dem Controller kommen. Meine Idee wäre jetz so einen 74er Inverter vor jeden der 3 Mosfet zu setzen. Oder geht das einfacher?
Simonium schrieb: > Meine Idee wäre jetz so einen 74er Inverter vor jeden der 3 Mosfet zu > setzen. Oder geht das einfacher? Zeige erst mal den Schaltplan von deinem Levelshifter.
Simonium schrieb: > Leider invertieren diese, das heist das Signal am Shifter is 1 wenn der > Ausgang vom Mikrocontroller 0 ist. Was? Das wär mir neu.
Es gibt auch Schaltungen die das Signal nicht "invertieren" also umdrehen. Es gibt dafür auch fertige Treiber ICs, kann manchmal auch sinnvoll sein. LG
N-Kanal Fet, Source an den Ausgang, Gate an Vcc, Drain über Pullup an 12V. Gruß Ludwig
Simonium schrieb: > Ein SPI Bus muss mit mindestens 10.8V laufen, Halte ich für Unsinn. Da hat jemand seine Schaltung nicht verstanden. MfG Klaus
Simonium schrieb: > Ein SPI Bus muss mit mindestens 10.8V laufen Hui, bist Du Dir da ganz sicher? Das ist für SPI eine recht ungewöhnliche Spannung. SPI ist kein Feldbus oder ähnliches, sondern für die Kommunikation innerhalb einer Platine oder meinetwegen eines Moduls/Geräts gedacht, nicht für lange Leitungen. Master und Slaves sind daher normal ICs und gängige Spannungen max. 5V. Wenn es wirklich SPI ist: - Was für eine Taktrate? - Wie lang sind die Leitungen? - Sind die Leitungen an einem Stecker oder ähnlichem von außen zugänglich? - Werden die Leitungen unter Spannung an-/abgesteckt? Die Antworten darauf entscheiden ob Du eine Push-Pull-Stufe brauchst oder ob OpenDrain reicht und was für Schutzbeschaltungen Du brauchst.
Für eine solche Pegelumsetzungen nehme ich gerne Multiplexer, die mit dem kleinen Pegel der Ansteuerung (3,3 V) klar kommen. Hier könnte es ein DG4053 tun, der mit LV-CMOS- oder TTL-Pegeln bis zu +16 V Ausgangsspannung schalten kann. MAX4583 ist ähnlich, geht bis +12 V.
Also hier ist z.b ein Link von einem der Level Shifter die ich kenne, dieser invertiert ja https://hackaday.com/wp-content/uploads/2016/11/mosfet-step-up-microchip-ds41285a.jpg Und der SPI Bus mus mit 12V laufen, weil das der IC welcher gesteuert wird so vorgibt. http://ww1.microchip.com/downloads/en/DeviceDoc/20005851A.pdf
Simonium schrieb: > Also hier ist z.b ein Link von einem der Level Shifter die ich kenne, > dieser invertiert ja > > https://hackaday.com/wp-content/uploads/2016/11/mosfet-step-up-microchip-ds41285a.jpg Wenn Du Gate und Source vertauschst invertiert die Schaltung nicht. Wenn der Port low ist, ist der Mosfet leitend und zieht Drain runter. Ist der Port high, sperrt er und Drain geht auf Potential der Versorgung. Bei Zenos Vorschlag zieht die Mosfet Diode den Port runter, wenn die Schaltung andersrum betrieben wird. Gruß Ludwig
Pegelwandler gibts auch nichtinvertierend: https://www.mikrocontroller.net/wikifiles/1/19/Pw_trans_ni.png
:
Bearbeitet durch User
Ludwig schrieb: > Sorry, habe Mist geschrieben. Gate muss auf 3,3V, Source auf den > Ausgangspin. Nein Gate komm auf 3,3V! https://de.wikipedia.org/wiki/Pegelumsetzer#/media/Datei:Bidirektionaler_pegelumsetzer_wikide.svg
Zeno schrieb: > Nein Gate komm auf 3,3V! Ihr macht einen ja ganz kirre. Mein Zitat war schon wieder die Korrektur. Machs so wie auf dem verlinkten Bildle. Da funktioniert auch bidirektional. Habe genau diese Schaltung für den I2C Bus aufgebaut und funktioniert bestens.
Jörn P. schrieb: > CD4504 Ich benötige aber 3.3V, nicht 5V, laut Mouser ist der CD4504 ein 5V-Bauteil
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.