Entschuldigung, wenn dies eine dumme Frage ist. Ich muss wirklich überarbeitet sein, um selbst keine Antwort zu sehen.
Kurz gesagt, ich möchte den GPIO-Pin freigeben, indem ich die LED auf BOOT0 von STM32L4Q5 verschiebe .
Laut Datenblatt schaltet BOOT0 nach Reset automatisch in den analogen Modus und kann dann als PH3 GPIO verwendet werden. Der einfache Weg, es zu verwenden, besteht darin, einen 10k-Pulldown und einen FET zum Ansteuern der LED hinzuzufügen. Aber was ist, wenn ich den Pin über LED und seinen 300R-Widerstand mit GND verbinde? Wird es während des Zurücksetzens als eine Art Pulldown funktionieren (um vom Haupt-Flash zu booten)?
Nein, es ist nicht garantiert, dass es funktioniert, da LEDs lichtempfindlich sind und eine gewisse parasitäre Kapazität haben. Um unter allen Bedingungen 100 % zuverlässig zu sein, ist ein separater Pull-Down-Widerstand erforderlich.
Das liegt daran, dass eine LED auch als Photovoltaikzelle fungiert und aufgrund von Licht, das auf die LED trifft, Spannung ausgibt.
Ich habe gerade gemessen, dass eine zufällige SMD-LED mit Vorwiderstand bei hellem Licht 1,24 V misst. Die Eingangsimpedanz des Multimeters beträgt über 10 MOhm, aber die Spannung ist ohne Lastimpedanz und nur mit der MCU höher.
Selbst mit dem Multimeter liegt die LED-Ausgangsspannung also bereits über den typischen CMOS-Eingangsspannungsanforderungen für einen logisch niedrigen Pegel.
In der Praxis könnte die MCU dies immer noch als logisch niedrig verstehen, und die Spannung wird unter normalen Lichtbedingungen niedriger sein. Ich habe eine Taschenlampe zu Demonstrationszwecken verwendet.
Viele andere Schaltungen mit LEDs, die an Pins angeschlossen sind, die möglicherweise drei Zustände haben, oder gelegentlich Eingänge (wie GPIO-Expander), schlagen ebenfalls einen Widerstand über der LED vor, um den Fotostrom zu überbrücken, um unbestimmte schwebende Spannungen zu vermeiden.
Auch der LED-Halbleiterübergang hat eine etwas kleinere Kapazität in der Größenordnung von 10 bis 100 Picofarad.
Wenn Sie die LED einschalten und die MCU zurücksetzen, dauert es einige Zeit, bis die Ladung abgebaut ist, und bis dies der Fall ist, wird der GPIO-Pin als hoher Eingang gelesen. Ein externer Widerstand sorgt auch dafür, dass diese Ladung entladen wird. In einigen Schaltkreisen kann die LED-Kapazität verwendet werden, um Lichtpegel zu messen, indem gemessen wird, wie lange es dauert, bis der Fotostrom die Kapazität auflädt – wodurch die LED effektiv zu einem bidirektionalen Kommunikationsgerät wird.
Sicher; Sie müssen nur sicherstellen, dass die Spannung unter der niedrigen / hohen Schwelle liegt, wenn man bedenkt, wie viel Strom (unvermeidlich) aus dem Boot-Eingang fließen wird.
Schauen Sie sich Tabelle 62 des Datenblatts an: Der Leckstrom des Boot-Pins sollte im Bereich von höchstens 100 nA liegen, also 3 · 10² Ω · 10⁻⁷ V = 0 V über dem Widerstand und 0 V über dem Übergang der LED Es ist ziemlich sicher, dass die Spannung am Boot-Pin unter der Low-Max-Spannung von 0,3 · VDD liegt.
user_1818839
Ahorn
Russell McMahon
Ahorn