Ich versuche, eine Schaltung zu entwerfen, um eine 50-MHz-Taktquelle von 5 V auf 3,3 V umzuwandeln. Zuerst dachte ich daran, den im folgenden Link gezeigten Level-Übersetzer von Sparkfun zu verwenden:
https://learn.sparkfun.com/tutorials/bi-directional-logic-level-converter-hookup-guide
Allerdings hat der dort verwendete NMOS BSS138 Verzögerungs- und Anstiegszeiten, die für das 50-MHz-Taktsignal ungeeignet sind. Er hat eine Verzögerungszeit von 2,5 ns und eine Anstiegszeit von 9 ns beim Einschalten. Ebenso hat es eine Verzögerung von 20 ns und eine Abfallzeit von 7 ns beim Ausschalten.
Ich habe versucht, nach Lösungen zu suchen, die dem Konverter ähneln, aber die meisten scheinen nicht für MHz-Signale geeignet zu sein. Einige Lösungen zeigen die Verwendung von ICs wie dem SN74LVC8T245, aber seine Richtung hängt vom Eingang zum Richtungsstift ab, und die Anstiegszeiten scheinen angesichts des Taktsignals ungeeignet zu sein. Andere Lösungen wie ein Widerstandsteiler scheinen für niedrigere Frequenzen zu funktionieren, aber ich möchte die Signalintegrität sicherstellen, da dies ein Taktsignal ist. Die Verwendung eines schnelleren NMOS wäre ideal und simpel, und ich kann die Sparkfun-Schaltung für mehrere Leitungen replizieren, aber welche anderen Lösungen wären für dieses schnelle Taktsignal optimal?
EDIT: Da es einige Diskussionen über die Notwendigkeit der Bidirektionalität gegeben hat, wollte ich hier ein wenig erklären. Anfangs dachten wir, dass wir mit dem Level-Übersetzer gehen könnten. Ein Kanal wäre verfügbar, um den Takt von 5 auf 3,3 V zu verschieben, und die verbleibenden Kanäle würden nach Bedarf für andere Zwecke verwendet. Aber aufgrund der Spezifikationen des BSS138 schien es für unseren 50-MHz-Takt nicht zuverlässig zu sein. Nach einigen Diskussionen ist Bidirektionalität nicht länger erforderlich, zumindest nicht für das Taktsignal, also konzentrieren wir uns vorerst nur darauf, den Takt nach unten zu verschieben. Es tut mir wirklich leid, dass ich die Bi-Richtung erwähnt habe. Vergessen wir es jetzt einfach. Wir planen, dass das Taktsignal heruntergestuft wird, und dann sollte es in ein anderes Modul gehen, das 3,3 V als Eingang akzeptiert. Ich kenne die Lastkapazität oder Impedanz des Moduls nicht,
BEARBEITEN: Nachdem ich die bidirektionale Funktionalität ignoriert habe, glaube ich, dass ich möglicherweise eine mögliche Lösung gefunden habe: einen Puffer zu verwenden, um ihn von 5 V auf 3,3 V zu verringern, während die Signalintegrität erhalten bleibt. Ich habe einige Puffer gefunden, die von TI zu funktionieren scheinen, den SN74LV1T34 und den SN74LV1T126.
http://www.ti.com/product/SN74LV1T34/description
http://www.ti.com/product/SN74LV1T126/description
Ich importierte das Modell des SN74LV1T126 in LTspice und führte eine Simulation durch, indem ich es an 3,3 V und eine 5-Volt-Taktquelle mit 50 MHz anschloss und die Ausgangsspannung mit und ohne Last zeigte. Am liebsten hätte ich das SN74LV1T34 getestet, aber es gibt keine SPICE-Modelle dafür, also arbeite ich nur mit dem SN74LV1T126. Das Bild ist unten gezeigt:
Hier zeige ich nur einen Taktzyklus, damit ich die Anstiegs- und Abfallzeiten messen kann, um zu sehen, ob sie angesichts des Takteingangs innerhalb akzeptabler Toleranzen liegen. Der Simulation nach zu urteilen, scheint es gut zu funktionieren, aber unter Last erreicht es nicht 3,3 V, sondern fällt auf 1,8 V ab. Da dies an ein Modul angeschlossen wird, wird es unter sein Last, kann ich also irgendetwas tun, um sicherzustellen, dass es die richtige Spannung erreicht?
Wenn Sie glauben, Sie können plötzlich von einer Geschwindigkeitsbegrenzung von 3,2 MHz für I2C-Geschwindigkeit 3 auf 50 MHz springen, ohne Impedanzkontrolle an Treibern auf beiden Seiten, sorgfältige Abschirmung und kontrollierte T-Leitungsimpedanz mit einem niedrigen RdsOn-Open-Drain-Schalter, der in Coss, Ciss ansteigt da RdsOn reduziert wird.
Hier ist der schnellste mit 16,8 MHz, den ich gefunden habe. (2017) mit Nch-FETs
https://datasheets.maximintegrated.com/en/ds/MAX14591.pdf
Aber in Schaltern der BJT-Serie kann man mit dem von @BruceAbbot vorgeschlagenen PCA3060 maximale Anstiegs- / Abfallzeiten von <3,3 ns in 300-Ohm-Lasten = 30 pF erhalten
Aber selbst dies funktioniert möglicherweise nicht auf I2C bei 50 MHz
Der PCA9306 hat eine Standard-Open-Collector-Konfiguration des I2C-Busses. Die Größe dieser Pullup-Widerstände hängt vom System ab, aber jede Seite des Übersetzers muss einen Pullup-Widerstand haben. Das Gerät wurde entwickelt, um zusätzlich zu SMBus-Geräten mit I2C-Bus-Geräten im Standard-Modus, Fast-Modus und Fast-Modus Plus zu arbeiten.
Die maximale Frequenz hängt von der RC-Zeitkonstante ab, unterstützt jedoch im Allgemeinen > 2 MHz
Dies ist ein Ansatz, bei dem Stripline = 50 Ohm und 25 Ohm 5 V Logik der 74LVC'- oder 74LVA'-Familie verwendet werden.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Dies ist alte Schule mit 74ACL und 74ACL2, funktioniert aber.
Jetzt gibt es so viele verschiedene Logikfamilien zu berücksichtigen, die KEINE Pegelumsetzer für unidirektionale Signale benötigen.
Nun, obwohl ich die Notwendigkeit von bidirektional (ausgerechnet für eine Uhr?) nicht verstehe, gibt es eine Komponente, die in die Rechnung zu passen scheint ...
Wir stellen den bescheidenen Transformator vor!
So etwas wie ein FT50-61 mit vielleicht 10 Windungen, die bei 6 abgegriffen und mit einer Kappe ein- und ausgekoppelt sind, Gleichstromwiederherstellung mit ein paar 220-Ohm-Widerständen, scheint die Rechnung zu erfüllen.
Sehr Standardkost im HF-Design, aber heutzutage möglicherweise nicht mehr so oft auf einem Logic Board zu sehen!
Ale..chenski
Bruce Abbott
BesteQualitätVakuum
DigitalNinja
Tony Stewart EE75
Markus Müller
Tony Stewart EE75
nächster Hack
BesteQualitätVakuum
Tony Stewart EE75
Dan Mühlen
BesteQualitätVakuum
Dan Mühlen
BesteQualitätVakuum
Dan Mühlen
BesteQualitätVakuum
BesteQualitätVakuum
BesteQualitätVakuum