Das allseits bekannte Problem: Man hat eine Schaltung mit verschiedenen Logik-Leveln, muss diese aber miteinander verbinden.

Sei es bei Low-Voltage Controllern oder FPGAs, die Spannungen werden immer kleiner. Nicht jeder will noch die 5V TTL- oder CMOS-Level benutzen. Immer mehr Schaltungen laufen auf 3,3V oder sogar 1,2V. Wenn man nun aber zum Beispiel über I²C oder SPI diese miteinander verbinden will, kann das unter Umständen aufwändig werden, wenn man den richtigen Level-Converter- oder Level-Translator-IC suchen muss.

Hier hilft folgende Schaltung ganz gut:

Mit drei Bauteilen lässt sich das Problem perfekt lösen, sofern man nicht in den >2MHz-Bereich muss. Dabei funktioniert die Schaltung bidirektional und hat einen Propagation-Delay von ca. 10ns.

  • Geht das Signal IO_LV auf Low, wird der FET leitend und schaltet das Signal IO_HV auf das LV-Signal und somit auf LOW.
  • Geht das Signal IO_LV auf High, sperrt der FET und über den Pullup wird das Signal IO_HV auf High gezogen.
  • Geht das Signal IO_HV auf LOW, wird die Bypass-Diode leitend und zieht das Signal IO_LV auf Low.
  • Geht das Signal IO_HV auf High, ist der Transistor gesperrt und über den Pullup wird das Signal IO_LV auf High gezogen.

Die Sperrschichtkapazitäten sind bei diesem Transistor zu vernachlässigen, da das RC-Glied, welches sich mit diesen bildet, ein kleineres Tau hat, als die Propagation-Time des FETs (max. 10ns).

Da man bei den Taktfrequenzen immer die Verzögerungszeiten der Bauteile in den Leitungen berücksichtigen muss, sollte man diese Schaltung nicht für Frequenzen über 2MHz benutzen, da sonst Timing-Probleme auftreten können. Empfehlenswert ist es allerdings, nicht über 1MHz zu gehen.

10ns entsprechen zwar einer Frequenz von 10MHz, aber da die FETs dann einen vollen Takt zum Durchsteuern brauchen können, wird damit die Kommunikation bei einem Bidirektionalen Bus gestört. Man sollte, wie die Abtastrate von Oszilloskopen oder Logic-Analyzern immer einen Faktor von 5-10 einhalten, damit die Signale noch richtig dargestellt werden. Da es in diesem Falle um Timing geht, sollte die Taktfrequenz 5-10 mal kleiner sein, als der Delay.