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.
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
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.
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
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.
Eine eigene Frage?
Dieser Thread ist über 6 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.