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


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 :)

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.