63
O.Romain & J.Lorandel Màj: F.Ghaffari & S.Zuckerman – 2020 IUT– Université de Cergy-Pontoise 1 ADC et DAC Conversion analogique-numérique et conversion numérique-analogique

ADC et DAC - ENSEA

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ADC et DAC - ENSEA

O.Romain & J.LorandelMàj: F.Ghaffari & S.Zuckerman – 2020IUT– Université de Cergy-Pontoise 1

ADC et DACConversion analogique-numérique et

conversion numérique-analogique

Page 2: ADC et DAC - ENSEA

2

ADC/DAC – ConversionsFonctionnalitéRegistres de configurationExemple de programmation

2

Sommaire

Page 3: ADC et DAC - ENSEA

O.Romain & J.LorandelMàj: F.Ghaffari & S.Zuckerman – 2020IUT– Université de Cergy-Pontoise 3

Convertisseur Analogique Numérique

Page 4: ADC et DAC - ENSEA

4

Traitement du signal

Synoptique d’une chaîne de traitement du signalcaméra

microphone

capteurs

CAN CNA

image

son

données

µP

Numérique

Page 5: ADC et DAC - ENSEA

5

Traitement du signal

Traitement à intervales temporels réguliers des données issues d’un ADC

Echantillonnage temporel des données

Nécessite une gestion précise temporelle de l’acquisition

Page 6: ADC et DAC - ENSEA

6

Convertisseur Analogique Numérique

Utilisation d’un périphérique dédié à l’acquisition du signal analogique :

ADC (Analog to Digital Converter)CAN (Convertisseur Analogique Numérique)

Remarque : Ne pas oublier d’utiliser un filtre anti-repliement avant acquisition

CPU

Programme principal de

calcul

Timer

ADC DAC

Interruption

Page 7: ADC et DAC - ENSEA

7

Convertisseur Analogique Numérique

L’échantillonnage consiste à représenter un signal analogique continu s(t) par un ensemble de valeurs discrètes s(nTe) avec n entier et Te constant appelé période d’échantillonnage

0 Te

2.Te

3.Te

n.Te

2.1volts

2.2volts

2.0volts

0volts

5volts

Page 8: ADC et DAC - ENSEA

8

Convertisseur Analogique Numérique

La numérisation d’un signal consiste en l’échantillonnage et la quantification des amplitudes du signal échantillonné. Le signal numérisé est discrétisé en temps et en amplitude. Il correspond à un signal numérique (binaire) qui évolue au rythme de Te

0 Te

2.Te

3.Te

n.Te

011101

011110

011101

000000

111111

Page 9: ADC et DAC - ENSEA

9

Convertisseur Analogique Numérique

Echantillonnage idéal

s(t) se(t)=s(nTe)

Te

Périodisation du spectre

s t

S f

se t

S e f

Page 10: ADC et DAC - ENSEA

10

Convertisseur Analogique Numérique

Comment choisir Fe ?

+fe-fe fM fe-fM-fM fe+fM-fe-fM -fe+fM

Repliement du spectre

fe > 2. fM

fe < 2. fM

Page 11: ADC et DAC - ENSEA

11

Echantillonnage idéal/ Fe ?

• Comment choisir la fréquence d’échantillonnage Fe ?

+fe-fe fM fe-fM-fM fe+fM-fe-fM -fe+fM

Repliement du spectre

fe> 2. fM

fe< 2. fM

Page 12: ADC et DAC - ENSEA

12

Convertisseur Analogique Numérique

Fréquence d’échantillonnage trop basse, le spectre du signal échantillonné est replié sur lui même

Théorème de Shanon/Nyquist: La fréquence d’échantillonnage doit être 2 fois supérieure à la bande B occupée par le signal original

Fe=2.B représente la fréquence critique d’échantillonnage ou Nyquist Si Fe>B sur-échantillonnage Si Fe<B sous-échantillonnage

Si les conditions sur la fréquence ne sont pas respectées, le spectre du signal échantillonné sera replié.

fe ³2.B

Page 13: ADC et DAC - ENSEA

13

Convertisseur Analogique Numérique

Exemple du choix de Fe

Page 14: ADC et DAC - ENSEA

14

Convertisseur Analogique Numérique

Filtre anti-repliement

Filtre idéal Pente infinie à Fe/2 Ordre infini !

Filtre réelAttenuation de Adb à Fe-Fm

S(f)

fFe/2 FM Fe

Zone signal utile

Filtre anti-repliement

Atténuation fFe/2FM FeFe-FM

A(dB)

20n.dB/Dec

Page 15: ADC et DAC - ENSEA

15

Convertisseur Analogique Numérique

Exemple

• Signal audio bande passante de 3kHz échantillonné à 8kHz

• Signal audio bande passante de 3kHz échantillonné à 1kHz

Page 16: ADC et DAC - ENSEA

16

Convertisseur Analogique Numérique

Quantification

2 N valeurs sur la dynamique totale entre –A et +A

LSB représente la plus petite valeur acquise 1 quantum : q

En exprimant la puissance du signal:

qA n 12

Ncn

c BPqP 2

21

223

22

SNRPcB

æ

èç

ö

ø÷dB

10log3

222Næ

èç

ö

ø÷ 6.2N+1.76

A+

A

Page 17: ADC et DAC - ENSEA

17

Convertisseur Analogique Numérique

RésolutionN bits => 2N états : exemple 12 bits => 4096 paliers d’acquisition

Page 18: ADC et DAC - ENSEA

18

Convertisseur Analogique Numérique

Caractéristique de transfert

Page 19: ADC et DAC - ENSEA

19

Convertisseur Analogique Numérique

Les erreurs des CAN

Page 20: ADC et DAC - ENSEA

20

Convertisseur Analogique Numérique

Page 21: ADC et DAC - ENSEA

21

Convertisseur Analogique Numérique

CAN SARConvertisseur à approximation successives

Page 22: ADC et DAC - ENSEA

22

Convertisseur Analogique Numérique

CAN FLASH

Page 23: ADC et DAC - ENSEA

23

Convertisseur Analogique Numérique

CAN PIPELINE

Page 24: ADC et DAC - ENSEA

24

Convertisseur Analogique Numérique

Comparaison

Page 25: ADC et DAC - ENSEA

25

Convertisseur Analogique Numérique

Résolution vs Fréquence acquisition

Page 26: ADC et DAC - ENSEA

26

Caractéristiques techniquesSARRésolutions programmables

12, 10, 8, 6 et 4bits

19 canaux multiplexés16 sources externes

2 sources internes

1 canal dédié Vbat

ModeSingle

Continu/Discontinu

Donnée stockée dans un registre 16 bitsTrigger externe

CAN STM32F

Page 27: ADC et DAC - ENSEA

27

Caractéristiques techniquesVref : 3.3V Amplitude max numérisable : VrefAmplitude min numérisable : q =

805uV

CAN STM32F

Page 28: ADC et DAC - ENSEA

28

Deux domaines d’horloge

ADCCLK : domaine analogiqueADCCLK généré à partir de l’horloge APB2 divisé

par un prescaler programmable. Permet à l’ADC de travailler à fPCLK2/2, /4, /6 or /

8.

Clock pour l’interface numérique (utilisé pour les registres en écriture et lecture)

Correspond à APB2 sous Cube. Cette horloge peut être individuellement

contrôlée (inhibée/autorisée) pour chaque ADC à partir du registre RCC_APB2ENR.

CAN STM32F

Page 29: ADC et DAC - ENSEA

29

Registre ADC STM32F

Comment configurer son ADC ? Choisir l’entrée

Activation et configuration de la broche d’entrée analogique

Choix des canaux réguliers

Réveil de l’ADCActivation de l’ADC

Choix du mode de fonctionnement et du canal Configuration de l’interruption

Permettre la génération d’une interruption en fin de conversion EOC

Déclenchement de la conversion Récupération de la donnée numérisée

Page 30: ADC et DAC - ENSEA

30

Exemple ADC STM32F

Exemple de programmation sous mbed

Acquisition sur plusieurs voies

Valeurs renvoyées entre 0 et 11 4096

Page 31: ADC et DAC - ENSEA

31

Exemple ADC STM32F#include "mbed.h"

AnalogIn adc_temp(ADC_TEMP);AnalogIn adc_vref(ADC_VREF);AnalogIn adc_vbat(ADC_VBAT); // Warning: Not available on all devicesAnalogIn ain(A0);

DigitalOut led(LED1);

int main() { printf("\nSTM32 ADC internal channels reading example\n"); while(1) { printf("ADC Temp = %f\n", adc_temp.read()); printf("ADC VRef = %f\n", adc_vref.read()); printf("ADC VBat = %f\n", adc_vbat.read()); printf("ADC A0 = %f\n", ain.read()); printf("\033[3A"); led = !led; wait(1.0); }}

Page 32: ADC et DAC - ENSEA

O.Romain & J.LorandelMàj: F.Ghaffari & S.Zuckerman – 2020IUT– Université de Cergy-Pontoise 32

Convertisseur Numérique Analogique

Page 33: ADC et DAC - ENSEA

33

Objectif : Circuit dual du CANConvertir une donnée numérique

en tension ou courant

Idéalement :

CNA

Vpleine_échelle Vmax Vmin (2N 1).q

Page 34: ADC et DAC - ENSEA

34

Tension de sortie dépend du format du convertisseurTension mono-polaire ou bipolaire / format numérique

CNA

Page 35: ADC et DAC - ENSEA

35

Paramètres d’un CNA : les mêmes que ceux d’un CANDynamique : Variation possible de tension de sortie d’un CNA Résolution : Plus petite tension manipulable : q quatumLinéarité : Différence entre la sortie théorique et effective [%, mv ou lsb]Cadence : Vitesse de restitution «Sample Per Seconde» (SPS) Format : Représentation des données numériquesTemps d’établissement : Temps de conversion Type de sortie : en tension ou en courant

CNA

Page 36: ADC et DAC - ENSEA

36

Architectures des CNA 2 classes de CNA

Architecture directGénéralement une somme pondérée de

courant ou de tension

Architecture R-2R

Architecture potentiométrique

Architecture à source de courant

Architecture indirecteMLI + lissage de tension

CNA

Architecture simplifiée R-2R

Page 37: ADC et DAC - ENSEA

37

Architectures potentiométrique Architecture à sources de courant

A3

A2

A1

A0

CNA

Page 38: ADC et DAC - ENSEA

38

Architecture indirecte

CNA

Page 39: ADC et DAC - ENSEA

39

Exemples de CNA

CNA

Page 40: ADC et DAC - ENSEA

40

Les STM32 intègrent pour la plupart des DAC avec différentes configurations en fonction de la série STM32Fx :1 à 3 sorties Générateur de bruit blancGénérateur de signal triangulaireDMAHorloge analogique dédiée

STM32 CNA

Page 41: ADC et DAC - ENSEA

41

3 formats de donnée8 bits12 bits alignés à droite12 bits alignés à gauche

Dépend du nombre de canaux utilisés

STM32 CNA

1 sortie : 1 canal

2 sorties : 2 canaux

Page 42: ADC et DAC - ENSEA

42

Triggers utilisable pour synchroniser le DAC Triggers logiciel SWTRIGxTrigger externe : EXTI_x Trigger provenant de Timer :

TIMx_TRGO : dépend du STM32 utilisé

Sur un front montant de TIMx_TRGO, la dernière donnée enregistrée dans le registre DAC_DHRx est transférée au registre DAC_DORx

STM32 CNA

Page 43: ADC et DAC - ENSEA

43

STM32 CNA

Configuration du trigger

Registres du DAC

Générateur de bruit (LFSR) et

en triangle

Sortie du DACTension

analogique

Entrée externe de référence

Page 44: ADC et DAC - ENSEA

44

STM32 CNA : fonctionnement

Le registre DAC_DORx ne peut pas être écrit directement et les données sont transférées uniquement lorsque le registre DAC_DHRx est chargé d’une nouvelle valeur.

Les données enregistrées dans le registre DAC_DHRx sont transférées au registre DAC_DORx après un cycle d’horloge, si aucun trigger est sélectionné (TENx bit dans le registre DAC_CR est reseté).

Quand un trigger est sélectionné (TENx bit dans le registre DAC_CR est autorisé), et un signal arrive, le transfert est réalisé en 3 cycles d’horloge.

Quand le registre DAC_DORx est chargé avec le contenu du registre DAC_DHRx, la sortie analogique prend sa nouvelle valeur après un temps d’établissement Tsettling, qui

dépend de la tension d’alimentation et de l’impédance de charge en sortie du DAC.

Page 45: ADC et DAC - ENSEA

45

STM32 CNA : fonctionnement

Page 46: ADC et DAC - ENSEA

46

STM32 CNA

Générateur de bruit :

LFSR – Linear Feedback Shift Register 12 bascules D avec un rebouclage sur la 1ère Longueur de la séquence : pôlynome de rebouclage Génére un pseudo code aléatoire de longueur finie Répartition fréquentielle s’apparente à un bruit blanc

(répartition constante de la puissance en fonction des fréquences)

Page 47: ADC et DAC - ENSEA

O.Romain & J.LorandelMàj: F.Ghaffari & S.Zuckerman – 2020IUT– Université de Cergy-Pontoise 47

CAN/ADC : configuration des registres

Page 48: ADC et DAC - ENSEA

48

Registre RCC_APB1ENR

Registre RCC_APB2ENR

CAN STM32F

Page 49: ADC et DAC - ENSEA

49

CAN STM32F

Page 50: ADC et DAC - ENSEA

50

Registre ADC STM32F

Contrôle ADC (on/off)L’ADC est mise en marche en positionnant le bit ADON à 1 dans le registre

ADC_CR2L’ADC passe du mode Power-Down au mode WAKE-UP

Le bit ADON positionner à 0 permet aussi d’arrêter la conversion de l’ADC.

La conversion commence après que soit le bit SWSTART ou que le bit JSWSTART est à 1

Page 51: ADC et DAC - ENSEA

51

Registre ADC STM32F

Sélection des canaux16 canaux sont multiplexés2 types d’acquisition

Regular Channel :Les canaux ainsi que l’ordre

d’acquisition peut être définie à partir de la configuration du registre ADC_SQRx ; à tavers les bits L[3:0]

Exemple : Acquistion de ADC_IN3, puis de ADC_IN2, puis de ADC_IN15, …., et ADC_IN4

Injected Channel :Composé jusqu’à 4 canaux

Registre ADC_JSQR

Page 52: ADC et DAC - ENSEA

52

Registre ADC STM32F

Sélection du type de conversionAcquisition unique

Mode asynchrone

Bit SWSTART dans le registre ADC_CR2

Acquisition continueA la fin d’une acquisition, une nouvelle

est faite automatiquement

Bit JWSTART dans le registre ADC_CR2

Acquisition de type balayageOrdre de balayage est défini dans le

registre ADC_SQRx

Conversion séquentielle canal par canal automatiquement

Page 53: ADC et DAC - ENSEA

53

Registre ADC STM32F

Acquisition sur un triggerExterne ou interneProgrammation du type de signal (front, niveau, etc.) Configuration via EXTEN[1:0] dans les registre EXTI

Page 54: ADC et DAC - ENSEA

54

Registre ADC STM32F

Interruption en fin de conversionGénérée pour tout type de

conversionLe type de d’interruption est

programmable ADC_CR1 et son état est disponible dans le registre ADC_SR

Page 55: ADC et DAC - ENSEA

55

Registre ADC STM32F

Fréquence d’échantillonnagePour le mode continue

Page 56: ADC et DAC - ENSEA

56

Registre ADC STM32F

Les principaux registres

Page 57: ADC et DAC - ENSEA

57

Registre ADC STM32F

Timing : 15 cycles d’horloge pour le temps de conversion pour 12 bits

Power down Wake up

IDLE Conversion

Page 58: ADC et DAC - ENSEA

58

CNA / DAC:configuration des registres

CNA / DAC:configuration des registres

Page 59: ADC et DAC - ENSEA

59

Registre DAC_CR

STM32 CNA

Page 60: ADC et DAC - ENSEA

60

Registre DAC_SWTRIGR

STM32 CNA

Page 61: ADC et DAC - ENSEA

61

Registre TIMX_CR2

STM32 CNA

Page 62: ADC et DAC - ENSEA

62

Registre DAC_DHR12R1

Registre DAC_DHR12L1

Registre DAC_DHR8R1

STM32 CNA

Page 63: ADC et DAC - ENSEA

63

Registre DAC_DOR (DATA OUTPUT REGISTER)

STM32 CNA