[Programmation] STM32 sur pile et lecture ADC
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

STM32 sur pile et lecture ADC



  1. #1
    dje8269

    STM32 sur pile et lecture ADC


    ------

    Bonjour,

    Je rencontre un petit soucis de compréhension avec la lecture analogique sur un stm32.

    Il s'agit d'un STM32L053R8T6 dont voici le lien de la DS : https://www.st.com/en/microcontrolle...m32l053r8.html

    Bizarrement j'ai pas trouvé d'exemple dans mon cas de figure.
    En effet le µC est alimenté par 2 piles AAA . Donc j'ai Vbat qui évolue au fil du temps.
    Il me faut donc une référence fixe quelque soit Vbat .

    Mais ou trouver cette référence fixe ? Je pensais que comme sur les PIC microchip il y avait en interne des LDO qui pourrait servir de référence mais je n'ai pas trouver.
    J'ai vu un Vrefint mais utiliser pour lire la calibration il me semble.
    Je précise que sur ce µC je ne possède pas la broche Vref+.

    Du coup peut être que quelqu'un a déjà été confronter à ce problème !

    Quel serait le bon déroulé d'initialisation pour lire la tension de la température par un capteur externe, avec un Vcc qui varie ?

    Je vois simplifier le schéma actuel pour une meilleure compréhension.

    Nom : Sans titre.jpg
Affichages : 118
Taille : 188,2 Ko

    Merci

    -----
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  2. #2
    umfred

    Re : STM32 sur pile et lecture ADC

    Pourtant c'est écrit dans la doc au point 6.1.1 (https://www.st.com/resource/en/refer...lectronics.pdf ce n'est pas la 1ère doc de la liste)
    Independent A/D and DAC converter supply and reference voltage
    To improve conversion accuracy, the ADC and the DAC have an independent power supply
    that can be filtered separately, and shielded from noise on the PCB.
    • The ADC voltage supply input is available on a separate VDDA pin
    • An isolated supply ground connection is provided on the VSSA pin
    On packages with VREF+ pin
    To ensure a better accuracy on low-voltage inputs and outputs, the user can connect to
    VREF+ a separate external reference voltage lower than VDD. VREF+ is the highest voltage,
    represented by the full scale value, for an analog input (ADC) or output (DAC) signal.
    For DAC:
    1.8 V ≤ VREF+ ≤ VDDA
    For ADC:
    1.65 V ≤ VREF+ < VDDA
    On packages without VREF+ pin
    VREF+ pin is not available. It is internally connected to the ADC voltage supply (VDDA).
    Il y a la partie 14.9 qui traite de la référence interne aussi.

  3. #3
    dje8269

    Re : STM32 sur pile et lecture ADC

    Bojour umfred ,

    Merci de ta réponse rapide .

    D’après ce que j'ai compris , sans Vref+ de disponible, la partie analogique est connecté a Vdda . Je pourrais donc par exemple rajouter un LDO disons à 2.5V pour alimenter Vdda. et aisni avoir une reference fixe ?
    Cela ne m'arrange pas pour le HARD de rajouter un régulateur.

    Pour la partie Vrefint , J'avoue ne pas comprendre ce que dit la DS.
    The internal voltage reference (V REFINT ) provides a stable (bandgap) voltage output for the
    ADC and comparators. V REFINT is internally connected to the ADC V IN[17] input channel.
    The precise voltage of VREFINT is individually measured for each part by ST during
    production test and stored in the system memory area. It is accessible in read-only mode
    Je n'ai pas de ADC V IN[17] sur le µC . Ce sera la solution idéale pour moi mais je ne sais pas comment m'y prendre.
    Il faut que j'aille lire la valeur Vrefint à l'adresse indiqué ? et qu'ensuite je compare avec la valeur lue sur la broche temperature ( apres un petit calcul).

    Merci
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  4. #4
    Vincent PETIT
    Animateur Électronique

    Re : STM32 sur pile et lecture ADC

    Bonjour,
    De ce que j'ai lu dans la datasheet, ce micro a bien une Vref interne de 1,224V (typique.)

    Juste pour ma curiosité, qu'est ce qui justifie un micro aussi énergivore sur 2 piles AAA ?
    Là où il n'y a pas de solution, il n'y a pas de problème.

  5. A voir en vidéo sur Futura
  6. #5
    dje8269

    Re : STM32 sur pile et lecture ADC

    Bonjour Vincent PETIT,


    Juste pour ma curiosité, qu'est ce qui justifie un micro aussi énergivore sur 2 piles AAA ?
    Le STM est un L0 qui est la gamme la moins énergivore.
    Il pilote aussi un écran LCD à segments cela limite vachement le choix

    Effectivement ils indiquent 1.224V en page 59.

    Mais j'arrive pas a m'en servir ! et/ou l'activer ! Je ne comprends pas ou ils veulent en venir avec la DS. Ce ,'est pas clair pour moi.
    Dans l'IOC il y a bien une case a cocher dans la partie Analog : Vrefint Channel
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  7. #6
    dje8269

    Re : STM32 sur pile et lecture ADC

    J'avance malheuresement à petit pas .

    J'arrive bien a obtenir ma tension D'alimentation Vdda en lisant la valeur de VREFINT.

    Si je prends des exemples concrets.

    La valeur VREFIN de calibration lue dans la mémoire est de 1674 .
    Vdda = Tension de calib * VREFIN_CAL / Valeur ADC lu de verfin
    Vdda = 3*1674/ Valeur.

    Je lis une valeur de 1565 quand je suis alimenter en 3.2V
    Donc je fais Vdda = 3*1674/1565= 3.208 V impeccable !!

    Je change Vdda pour le mettre a 2.5V
    Je lis une valeur de 1944 quand je suis alimenter en 2.5V
    Donc je fais Vdda = 3*1674/1944 = 2.583 V impeccable.


    J’arrive donc bien a déterminé la tension Vdda qui est aussi mon tension Vbat.
    Cela focntionne bine quand je n'ai que cette mesure à fiare.

    LA ou ca coince c'est quand j'essaye de faire une second mesure. Sur le CHANNEL 4 j'ai ma sonde de temperature analogique.
    Je pensais donc zwitcher entre Vrefint pour avoir ma tension Vbat et Channel 4 pour lire la temperature.

    Mais je n'ai que la valeur de la temperature qui arrive. On dirait qu'il ne veux pas "revenir" lire Vrefint ? Je ne comprends pas pourquoi

    Code:
    void ADC_Select_CH4(void)
    {
    	ADC_ChannelConfTypeDef sConfig = {0};
    	sConfig.Channel = ADC_CHANNEL_4;
    	//sConfig.Rank = 4;
    	if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
    	{
    	  Error_Handler();
    	}
    }
    void ADC_Select_VREFINT(void)
    {
    	ADC_ChannelConfTypeDef sConfig = {0};
    	sConfig.Channel = ADC_CHANNEL_VREFINT;
        //sConfig.Rank = 0;
        if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
        {
    	  Error_Handler();
        }
    }
    
    -
    -
    -
    -
    -
    
      while (1)
      {
    
    	  HAL_ADCEx_Calibration_Start(&hadc, ADC_SINGLE_ENDED);
    	  ADC_Select_VREFINT();
    	  HAL_ADC_Start(&hadc); // start the adc
    	  HAL_ADC_PollForConversion(&hadc, 100); // poll for conversion
    	  adc_val = HAL_ADC_GetValue(&hadc); // get the adc value
    	  HAL_ADC_Stop(&hadc); // stop adc
    	  printf("Vrefint: %lu\r\n", adc_val);
    	  Tension_vdda = 3*1674;
    	  Tension_vdda = Tension_vdda/adc_val;
    	  printf("Vdda=%.3f Volts   \r\n", Tension_vdda);
    	  printf("\r\n");
    	  HAL_Delay (100); // wait for 100ms
    
    	  ADC_Select_CH4();
    	  HAL_ADC_Start(&hadc); // start the adc
    	  HAL_ADC_PollForConversion(&hadc, 100); // poll for conversion
    	  adc_val = HAL_ADC_GetValue(&hadc); // get the adc value
    	  HAL_ADC_Stop(&hadc); // stop adc
    	  printf("Tension capteur temperature: %lu\r\n", adc_val);
    
    
    	  HAL_Delay (2500); // wait for 500ms
     }
    C'est en faisant des erreurs; que l'on apprend le mieux !!

Discussions similaires

  1. [Autre] Mettre une pile aaa au lieu d'une pile bouton LR1130...
    Par mach3 dans le forum Électronique
    Réponses: 6
    Dernier message: 17/11/2018, 23h12
  2. Stm32
    Par invite25afd93f dans le forum Électronique
    Réponses: 34
    Dernier message: 10/02/2014, 20h21
  3. pile : réactif consommés alors que la pile ne débite pas ?
    Par invite55844dae dans le forum Chimie
    Réponses: 0
    Dernier message: 15/12/2009, 19h14
  4. Pile de Volta, pile à concentration et équation de Nernst
    Par invite8c3060a6 dans le forum Chimie
    Réponses: 3
    Dernier message: 04/03/2007, 13h42
  5. Réponses: 2
    Dernier message: 27/07/2005, 10h44
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...