Forum: Mikrocontroller und Digitale Elektronik STM32 GPIO Analog Pin?


von Tim K. (timkl94)


Lesenswert?

Hallo Leute,

beim STM32 kann ich per STM32Cube einen Pin als GPIO_Analog 
konfigurieren. Ich verstehe diese Konfiguration aber nicht so ganz. Kann 
ich diesen Pin nutzen, um beispielsweise das Signal eines Sensors 
auszuwerten? Ich frage deshalb, weil ich keinen ADC mehr zur Verfügung 
habe.

von Bimbo. (Gast)


Lesenswert?

Im Datenblatt deines µC kannst du nachsehen, ob an eine Pin eine 
Analogfunktion zur Verfügung steht. Willst du diese nutzen, 
konfigurierst du diesen bin als analog.

Analog Funktionen sind z.B. ADC, DAC, Comparator...

von Stefan F. (Gast)


Lesenswert?

Tim K. schrieb:
> Kann ich diesen Pin nutzen, um beispielsweise das Signal
> eines Sensors auszuwerten?

Ja

> Ich frage deshalb, weil ich keinen ADC mehr zur Verfügung habe.

Die STM32 Mikrocontroller haben alle (?) mehrere ADC, die mehrere Pins 
analog einlesen können. Insgesamt sind damit alle analogen Eingänge 
abgedeckt. Du kannst bei jedem ADC konfigurieren, welche(n) Pin(s) er 
einlesen soll.

"einen ADC mehr zur Verfügung" kann eigentlich nicht sein. Vermutlich 
gehst du davon aus, dass jeder ADC nur genau einen Eingang einlesen 
kann. Das ist aber nicht der Fall. Es ist eher nur ein Pin 
gleichzeitig pro ADC. Aber abwechselnd kannst du alle analogen 
Eingänge lesen.

Guckst du hier: 
http://stefanfrings.de/mikrocontroller_buch2/Einblick%20in%20die%20moderne%20Elektronik.pdf

Kapitel 9.17 und 11.1

Vergleiche den dort gezeigten Quelltext mit den Informationen des 
Referenzhandbuches deines STM32 Modells.

von Guest (Gast)


Lesenswert?

Ich glaube nicht das er den ADC Input meint. Man kann jeden Pin als GPIO 
Analog schalten.

Analog configuration:
When the I/O port is programmed as analog configuration:
•The output buffer is disabled
•The Schmitt trigger input is deactivated, providing zero consumption 
for every analog value of the I/O pin. The output of the Schmitt trigger 
is forced to a constant value (0).
•The weak pull-up and pull-down resistors are disabled by hardware•Read 
access to the input data register gets the value “0”

Steht im Reference Manual. Das ist wenn ich mich richtig erinnere 
hauptsächlich zum Strom sparen gedacht, da alle Input und Output Treiber 
deaktiviert sind. Das kannst du an nicht verwendeten Pins benutzen.

von Maxmus (allagut)



Lesenswert?

Konnte man hier nicht mal ohne Registrierung posten??

Guest schrieb:
> Ich glaube nicht das er den ADC Input meint. Man kann jeden Pin als GPIO
> Analog schalten.
>
> Analog configuration:
> When the I/O port is programmed as analog configuration:
> •The output buffer is disabled
> •The Schmitt trigger input is deactivated, providing zero consumption
> for every analog value of the I/O pin. The output of the Schmitt trigger
> is forced to a constant value (0).
> •The weak pull-up and pull-down resistors are disabled by hardware•Read
> access to the input data register gets the value “0”
>
> Steht im Reference Manual. Das ist wenn ich mich richtig erinnere
> hauptsächlich zum Strom sparen gedacht, da alle Input und Output Treiber
> deaktiviert sind. Das kannst du an nicht verwendeten Pins benutzen.

Richtig. Das hat mich am Anfang auch ganz schön verwirrt, wohl ebenso 
wie die zwei ersten Antwort-Autoren. Ich hab dein Zitat nochmal als 
Screenshot aus dem RefMan des STM32G4 angehängt.

Der Analog-Mode der GPIOs hat (zunächst) nichts mit anderen 
Peripherals zu tun. Grundsätzlich kann jeder GPIO Port im Analog-Modus 
konfiguriert werden, was nach einem Reset für die meisten sogar default 
ist. Siehe zweiter Screenshots vom G4-RefMan im Anhang. Daneben ist es 
möglich einen Pin mit einer Analog-Peripherie, wie eben einem ADC, zu 
verbinden.

Weitere Quelle(n) dazu aus der ST Community:
https://community.st.com/t5/stm32cubemx-mcus/question-about-adc-versus-gpio-analog/td-p/480285/page/2 
bzw.
https://community.st.com/t5/stm32-mcus-products/use-gpio-analog-for-adc-read-value-on-stm32h735/td-p/75324
> The GPIO analogue option is not to be confused
> with an ADC input, but in principle has two functions:
>  • Disconnecting the external pin from the digital function.
>    This is useful, for example, to disconnect the Schmitt trigger
>    present at the digital input from a floating input,
>    because this can lead to high-frequency switching of
>    this trigger with associated current consumption.
>  • Connecting any analogue peripherals (e.g. opamp, comparator, ADC)
>    that may be present, but do not necessarily have to be
>    in the respective case.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.