Unten ist die Schaltung, die ich zu erreichen versuche. Der Endpunkt ist ein 5-V-Gerät, aber mein Mikrocontroller (SPI-Master) ist ein 3,3-V-Gerät, also muss ich die Spannungsumsetzung durchführen.
Meine Frage ist, welche Art von Schaltung sollte ich verwenden, um das SPI-Signal so über ein langes Kabel zu treiben? Die Schaltung, die ich jetzt habe (siehe unten), verzerrt das Signal wirklich stark.
Das Signal sieht ziemlich schlecht aus, wenn nur das 5-Fuß-Kabel angeschlossen ist.
Wie wäre es damit: Sie treiben einen Strom durch den Draht, der durch die LED eines Optokopplers auf der anderen Seite geht. Sie treiben die LED von der 3V3-Versorgung und den Fototransistor im Operationsverstärker von den 5V an. Dies löst zwei Probleme: Die Umwandlung von 3V3 in 5V und die Empfindlichkeit gegenüber externem Rauschen.
Fügen Sie dem Ausgang des Übersetzers einen Serienwiderstand hinzu, um die Flankenrate zu verlangsamen. Dies reduziert die Reflexionseffekte und insbesondere den unangenehmen Störimpuls an der abfallenden Flanke, der droht, fehlerhafte Taktflanken zu erzeugen. Der benötigte Widerstand hängt von vielen Details ab, die Sie nicht mitgeteilt haben, daher müssen Sie möglicherweise experimentieren, um den richtigen Wert zu finden.
Dies kann die Kanten bis zu dem Punkt verlangsamen, an dem Sie Ihre Datenrate reduzieren müssen. So ist es halt. Wenn Sie hohe Datenraten über große Entfernungen wünschen, müssen Sie möglicherweise legitime Übertragungsleitungen anstelle von Ad-hoc-Kabeln verwenden.
Das wären etwa 80 ns pro Takt oder 12,5 MHz SPI-Bus? Und Sie treiben es über 1,5 Meter eines vollständig ungeschirmten oder anderweitig symmetrischen Kabels mit 0,4 mm Durchmesser? Sieht so aus, als ob die Anstiegszeit etwa 8 ns oder 125 MHz effektiv beträgt. Autsch.
Theoretisch würde sich das zu einer charakteristischen Impedanz von etwa 200 Ohm summieren, sodass Ihr Übersetzertreiber einen 180R-Vorwiderstand zu den Takt- und SDO-Leitungen (MOSI) haben sollte. Wenn Sie tatsächlich Daten zurücklesen, müssen Sie der SDI-Leitung (MISO) am anderen Ende einen weiteren Widerstand hinzufügen. Wenn der Treiber genügend Strom liefern kann, können Sie den Vorwiderstand überspringen und am anderen Ende einen 200R-Widerstand für den besten Effekt an GND hinzufügen, aber dies erfordert einen 25-mA-Antrieb, was möglicherweise nicht praktikabel ist.
Je nachdem, wie das Kabel zusammengesetzt ist, kann die tatsächliche Impedanz (viel) geringer sein, je nachdem, ob direkt daneben ein Draht liegt (<<5 mm). Experimentieren ergibt einen optimalen Wert, beginnen Sie mit einem 47R-Widerstand in Reihe und arbeiten Sie sich in Schritten von 47R nach oben. Alternativ 22R und 22R, wenn Sie es fein abstimmen möchten, aber es wird wahrscheinlich mit 47R-Schritten "nah genug" sein.
Peter Schmidt
Benutzer1406716
Connector
. Ich werde diese Informationen zur Frage hinzufügen.Peter Schmidt
user_1818839
Das Photon
Benutzer1406716
Gerstenmann
SamGibson
Benutzer1406716
SamGibson