Forum: Mikrocontroller und Digitale Elektronik STM32L1(51RCT6A) Referenzspannung ein und ausschalten


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von schmiff (Gast)


Lesenswert?

Hallo,

ich such mich hier Dumm und Dämlich nach einer vermutlich einfachen 
Lösung.

Beim STM32L0 Schaltet man den Referanzspannungaausgang mit folgenden 
Befehlen ein:
1
        /* ADC Referenzspannung einschalten */
2
  if ( HAL_ADCEx_EnableVREFINT() != HAL_OK )
3
4
  //{/*Error_Handling();*/}
5
  HAL_SYSCFG_VREFINT_OutputSelect(SYSCFG_VREFINT_OUT_PB1);

Da gibs bei den L1 nur Errors in der CubeIDE:

implicit declaration of function 'HAL_ADCEx_EnableVREFINT' 
[-Wimplicit-function-declaration]

SYSCFG_VREFINT_OUT_PB1' undeclared (first use in this function)



Wie geht das bei den L1 Microcontrollern?

ich will einfach nur die 1,22 Volt an PB1 haben :(

Freundliche Grüße und Danke im Voraus

von Klaus W. (mfgkw)


Lesenswert?

Da kannst du lange suchen: die Funktion gibt es bei L1 einfach nicht.

Zumindest ist sie in UM1749 für STM32L0 auf S. 89 aufgeführt, in UM1816 
für L1 ist die entsprechende Stelle auf S. 79/80 - ohne die Funktion.

(Das ist das schöne an den STM32 - alle praktisch gleich...)

PS: in UM1816 (L1) S. 106 8.2.1 COMP Peripheral features:
...
6.The comparators also offer the possibility to output the voltage 
reference (VrefInt), used on inverting inputs, on I/O pin through a 
buffer. To use it, refer to macro "__HAL_SYSCFG_VREFINT_OUT_ENABLE()".

: Bearbeitet durch User
von Bauform B. (bauformb)


Angehängte Dateien:

Lesenswert?

Klaus W. schrieb:
> Da kannst du lange suchen: die Funktion gibt es bei L1 einfach nicht.
> (Das ist das schöne an den STM32 - alle praktisch gleich...)

Wobei man Hardware, HAL und Dokumentation unterscheiden sollte. Mein 
Cube 6.2 kennt VREFOUT für den L151RCT und das RM0038 sagt auch, dass es 
geht. Wahrscheinlich muss man die interne Referenz noch extra 
einschalten:
1
The TSVREFE bit in the ADC_CCR register must be set to enable
2
the internal reference voltage (and also the Temperature sensor).

von schmiff (Gast)


Lesenswert?

Bauform B. schrieb:
> The TSVREFE bit in the ADC_CCR register must be set to enable
> the internal reference voltage (and also the Temperature sensor).

Das hat leider nicht geholfen :/

Ich versteh nicht wieso mit Cube MX beim setzen des "Voltage Reference 
out" auch gleich den PB1 oder PB0 als SYS_V_REF_OUT setzt, wenn man mit 
dem Pin dann nichts anfangen kann.

Das muss doch irgendwie gehen.

von schmiff (Gast)


Lesenswert?

So, ich hab jetzt doch noch die Lösung gefunden.
Man muss das hier setzen:

RI->ASCR1 |= RI_ASCR1_CH_9;

bzw

RI->ASCR1 |= RI_ASCR1_CH_8;

Damit wird der entsprechende Schalter zum Pin durchgeschaltet :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.