3,3-V-IC mit Arduino steuern?

Ich arbeite mit einem IC, der nicht mehr als 3,3 V (+/- 0,2 V) aufnehmen kann, einschließlich an seinen E / A-Pins. Ich möchte es mit Arduino steuern, aber seine PINs sind 5 V. Jetzt frage ich mich, ob ich PWM verwenden kann, um die 3,3 V zu erreichen, indem ich das richtige Tastverhältnis einstelle. Es scheint keine so gute Lösung zu sein, da die Spannung vorübergehend über 5 V liegt, was den IC beschädigen könnte.

Was ist also die beste Lösung dafür? Da ich 6 PINs sowohl ein- als auch aussteuern muss (zwei PINs werden nur in den IC eingegeben, während 4 je nach Zustand des ICs beide ein-/ausgehen), würde ich etwas bevorzugen, das so wenig Komponenten wie möglich enthält, da ich es tun muss duplizieren die Lösung 6 mal!

Da die Stromaufnahme wahrscheinlich sehr gering sein wird, denke ich, dass ich einen Spannungsteiler an jedem PIN (= 2 Widerstände) verwenden könnte, um die 5 V auf 3,3 V zu senken. Ist das eine gute Lösung? Oder gibt es einen besseren?

Eine andere Lösung könnte darin bestehen, einen 3,3-Zener umgekehrt von Signal zu Masse (nach dem Widerstand) zu legen?

Sind Sie sicher, dass es keinen 5-V-IC gibt, der dieselbe Funktion erfüllt? Es ist wirklich ein Problem, etwas anzusteuern, das nicht die gleiche Spannungsreferenz von Ihrer MCU hat. Noch mehr, wenn die Pins IN/OUT sind.
@Gleison: Es könnte 5V-Versionen geben, aber dann müsste ich Wochen warten, um sie zu bekommen ;-) Aber es wäre auch schön zu wissen, wie man allgemein mit solchen Situationen umgeht. Ich nehme an, es ist nicht unmöglich - warum sollte der Spannungsteiler nicht funktionieren?

Antworten (3)

PWM wird das Problem nicht lösen. Die Spannung beträgt 2/3 der Zeit 5 V, dies beschädigt Ihren IC.

Die einfachste Option, die Sie haben, ist das Setzen von Spannungsteilern zwischen jedem Pin. Wenn Sie wirklich keine 12 Widerstände platzieren möchten, können Sie nach einer 5-V-Version Ihres IC suchen. Viele Chips werden als 3,3V und 5V Versionen produziert.

Ich sehe nicht, wie der Spannungsteiler die 3,3 V auf 5 V in den IC-Ausgangspins erhöhen wird. Immer noch ein Problem.
@Gleison: Die analogen Pins auf dem Arduino können im Eingangsmodus die Spannung im Vergleich zu einer Referenz messen, also könnte man einfach den Schwellenwert für eine "Eins" setzen, damit er z
@Geurt: Hast du meine Frage zur Verwendung von Zenern gesehen?
@Morty Warte, meinst du die "analogen Pins" als ADC-Kanäle? Ich denke, es ist ein bisschen übertrieben, sie zu benutzen, oder?
@gleison bei Megas haben 0,6 * VCC-Mindesteingabe. Alles über 3 V wird als logisch hoch gelesen, sodass keine Erhöhung erforderlich ist.
@GleisonStorto - Ein ATmega328p, der mit 5 V läuft, hat eine Eingangsschwelle für eine logische "1", die so niedrig ist wie viele andere Teile, die mit 3,3 V laufen. Wenn die elektrische Umgebung also nicht besonders laut ist, ist möglicherweise keine Verstärkung der Eingangssignale erforderlich.
@morty: Entschuldigung, ich habe diesen Teil verpasst. Die Verwendung eines Zeners wird Ihr Problem jedoch nicht lösen, da Sie anstelle jedes zweiten Widerstands eine Zenerdiode benötigen. Sie benötigen also immer noch die gleiche Menge an Komponenten. Widerstände sind billiger, daher ist es eine bessere Wahl

Eine mögliche Option kann die Emulation eines Open-Collector-Ausgangs in SW sein. Das heißt, für "0" setzen Sie den Pin auf Ausgabe mit dem Wert "0" --> ~ 0V Senke. Für "1" setzen Sie den Pin auf "Hochimpedanzeingang" --> schwebend, sodass Sie ~ 3,3 V über einen Pull-Up-Widerstand an die 3,3-V-Versorgung treiben können.

Dies erfordert zwar einen bidirektionalen E / A-Pin und keinen integrierten Pull-up, aber ich denke, alle Arduino-Pins sind E / A.

Sie müssen jedoch sehr vorsichtig mit der Software umgehen, da ein Fehler den Pin mit 5 V ansteuern kann. Dies muss auch während der Inbetriebnahme gewährleistet sein, weshalb es sowohl Sorgfalt als auch Erfahrung erfordert, diese Option zu verwenden.

Überprüfen Sie andererseits, wie viel mA der tatsächliche Pin von den 5 V treiben kann. Es ist nicht unwahrscheinlich, dass Ihr 3,3-V-Chip dies für kurze Zeit übersteht, die im Datenblatt oft separat als nicht funktionierende, aber auch nicht beschädigende Bedingungen angegeben sind.

Beim Übergang von 5 V auf 3,3 V ist der resistive Spannungsteiler die beliebteste Wahl.

Es gibt auch 5-V-tolerante Pufferchips wie 74LVC245, 74HC4050 und andere ähnliche, die mit einer 3,3-V-Versorgung betrieben werden können, aber 5-V-Eingangssignale aufnehmen können.
( http://www.adafruit.com/product/735 )
( http://media.digikey.com/pdf/Data%20Sheets/NXP%20PDFs/74HC4050.pdf ) .

In die andere Richtung gehen die typischen Transistor/Mosfet-Optionen mit Pull-up-Widerständen:

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Dann gibt es sogar einige vorgefertigte Typen, die bidirektional sein können: ( https://learn.sparkfun.com/tutorials/using-the-logic-level-converter )
( http://www.hobbytronics.co.uk/ Mosfet-Voltage-Level-Converter )
Für diese wird der Schaltplan bereitgestellt, damit Sie Ihren eigenen rollen können.

Hier sind einige ähnliche Strategien wie oben und einige andere Strategien (einschließlich der Verwendung eines Zeners): ( http://jamesreubenknowles.com/level-shifting-stragety-experments-1741 )