1:1 level Shifter

Gast #6091749
Lesenswert?
• ▲
▼
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?
#6091784
Lesenswert?
• ▲
▼
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.
Gast #6091825
Lesenswert?
• ▲
▼
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.
Gast #6091899
Lesenswert?
• ▲
▼
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
Gast #6092143
Lesenswert?
• ▲
▼
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.

Antwort schreiben

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.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.