Vous êtes sur la page 1sur 5

Form@Web Jacquenod Frederic http://bertrand.granado.free.fr/iWeb/microcontroleur/MicroControleur...

Périphérique Convertisseur Analogique/Numérique

Notation

Votre note est :


3 sur 10

Correction

Question 1
Dans un convertisseur à approximation successives, comme celui du STM32, après le
calcul du 7ième bit, sera effectué

Mauvaise réponse
La bonne réponse était
le calcul du 6ième bit

Question 2
Si le convertisseur ADC1 du STM32 est hors tension, et que par programmation le bit
ADON est mis à 1, que se passe-t-il ?

Mauvaise réponse
La bonne réponse était
Le convertisseur est mis sous tension

Question 3
L'instruction RCC->APB2ENR |= 512 permet de

Bonne réponse
La bonne réponse était
d'autoriser l'horloge du bus APB2 du périphérique ADC1

Question 4
L'instruction
NVIC->ISER[0] = 0x40000;
permet de

Bonne réponse
La bonne réponse était
Autoriser les interruptions provenant des ADC

Question 5
L'instruction
ADC1->CR2 |= 257
Accède aux champs

Bonne réponse
La bonne réponse était

1 of 5 1/7/2021, 12:20 AM
Form@Web Jacquenod Frederic http://bertrand.granado.free.fr/iWeb/microcontroleur/MicroControleur...

DMA et ADON du registre CR2 de l'ADC1

Question 6
Soit la fonction d'interruption suivante :

void isr_adc(void) __irq


{
ADC1-> SR &= 0xFFFFFFFD;
Converted_Data = ADC1->DR;
}

Mauvaise réponse
La bonne réponse était
L'adresse du début de cette fonction est stockée dans la table des vecteurs
d'interruptions, à un décalage de 0x88 par rapport au début de la table.

Question 7
Les bits 23 à 20 du registre SQR1 de l'ADC1 sont

Mauvaise réponse
La bonne réponse était
le champ indiquant le nombre de conversion successives à réaliser ?

Question 8
Dans l'ADC du STM32, en mode balayage multi-canaux, comment peut-on récupérer
les résultats des N conversions successives ?

Mauvaise réponse
La bonne réponse était
A l'aide du DMA, car le STM32 ne possède qu'un registre DR

Question 9
Le bit EOC du registre SR est

Mauvaise réponse
La bonne réponse était
un drapeau indiquant une fin de conversion qui n'est pas remis
automatiquement à zéro lors d'un service d'interruption

Question 10
Si le sixième bit du registre CR1 est mis à un cela signifie

Mauvaise réponse
La bonne réponse était
Que les interruptions provoquées par la fin d'une conversion sont autorisées

2 of 5 1/7/2021, 12:20 AM
Form@Web Jacquenod Frederic http://bertrand.granado.free.fr/iWeb/microcontroleur/MicroControleur...

Explication

Question1
Dans un convertisseur à approximation successives, comme celui du STM32, après le
calcul du 7ième bit, sera effectué

Explication :

Dans un mécanisme par approximation successive, les bits sont calculés les
uns après les autres en débutant par le bit de poids fort (le 12ième pour le
STM32) jusqu'au bit de poids faible. C'est un processus itératif.

Question2
Si le convertisseur ADC1 du STM32 est hors tension, et que par programmation le bit
ADON est mis à 1, que se passe-t-il ?

Explication :

C'est le préalable à l'utilisation de l'ADC1. Une conversion peut ensuite être


initiée en écrivant à nouveau 1 dans le bit ADON

Question3
L'instruction RCC->APB2ENR |= 512 permet de

Explication :

Le registre APB2ENR est le registre qui permet d'activer les horloges du bus
APB2 pour les périphériques qui sont connectés sur ce bus.

Question4
L'instruction
NVIC->ISER[0] = 0x40000;
permet de

Explication :

C'est l'autorisation locale aux périphériques ADC

Question5
L'instruction
ADC1->CR2 |= 257
Accède aux champs

Explication :

Voir documentation du STM32

Question6
Soit la fonction d'interruption suivante :

void isr_adc(void) __irq


{

3 of 5 1/7/2021, 12:20 AM
Form@Web Jacquenod Frederic http://bertrand.granado.free.fr/iWeb/microcontroleur/MicroControleur...

ADC1-> SR &= 0xFFFFFFFD;


Converted_Data = ADC1->DR;
}

Explication :

Il est par définition incohérent d'appeler cette fonction à partir d'un


programme, qu'il soit écrit en C ou en assembleur. Cette fonction sera
automatiquement exécuté lors d'une demande d'interruption de l'ADC, si les
interruptions sont autorisées (Globalement, localement à l'ADC et pour la fin de
conversion). Afin que cette automatisation soit possible, il faut au préalable
stocker l'adresse de cette fonction dans la table des vecteurs d'interruption à
l'indice qui lui est échu (0x88). Lors de la demande d'interruption,
automatiquement cette table sera accedée et l'adresse contenue à l'indice 0x88
sera chargé dans le registre PC (Program Counter) du STM32.

Question7
Les bits 23 à 20 du registre SQR1 de l'ADC1 sont

Explication :

Ce champ indique le nombre de conversion de 1 à 16 conversions successives


possible, lorsque ce champ vaut 0, c'est une unique conversion.

Question8
Dans l'ADC du STM32, en mode balayage multi-canaux, comment peut-on récupérer
les résultats des N conversions successives ?

Explication :

Effectivement l'ADC ne possède qu'un registre DR, il est donc nécessaire


d'avoir recours à un mécanisme de DMA qui à chaque fin de conversion copie
la donnée du registre DR à un emplacement mémoire indentifié sans faire appel
à une instruction exécutée sur le coeur CortexM3 du STM32.

Question9
Le bit EOC du registre SR est

Explication :

Ce bit est remis à zéro soit lors de la lecture du registre DR, soit par
programme.

Question10
Si le sixième bit du registre CR1 est mis à un cela signifie

Explication :

Autorisation au niveau source d'interruption du périphérique, troisième niveau


de masquage des interruptions.

4 of 5 1/7/2021, 12:20 AM
Form@Web Jacquenod Frederic http://bertrand.granado.free.fr/iWeb/microcontroleur/MicroControleur...

bertrand.granado@ensea.fr
2010-12-21
Questionnaire produit par
le logiciel Form@Web
©Jacquenod Frédéric
http://www.jacquenod.cicrp.jussieu.fr/Qcm

5 of 5 1/7/2021, 12:20 AM

Vous aimerez peut-être aussi