Upload
trinhnhu
View
231
Download
0
Embed Size (px)
Citation preview
M1-Archi 2016-2017 Page1
___________________________________________________________________________
TPn°3:ADC/DAC___________________________________________________________________________
Objectifsdelaséance
-Configurationetutilisationduconvertisseurnumérique/analogique-Configurationetutilisationduconvertisseuranalogique/numérique-Application-Utilisationdudebugger,visualisationdesregistresetdesmémoires
___________________________________________________________________________
Matérielrequis: -Uneplateformenucleo-boardSTM32F446RE___________________________________________________________________________Organisationdelaséance:
1) Rappels2) ConversionAnalogique/Numérique3) ConversionNumérique/Analogique4) Conclusion/Bilan
ToutaulongdeceTP,desquestionsvoussontposées.Prenezletempsd’yrépondreetdeprendredesnotes.___________________________________________________________________________I. Rappels
Unconvertisseuranalogique-numériquepermetdefairel’acquisitiondesignauxissusdumondeextérieuretdelestraduiresousformenumérique.SonrôleestdoncdeconvertirunetensionV,généralementcompriseentre0Vet+Vref,unetensionderéférence.Lavaleurnumériqueissuedelaconversionestcompriseentre0et2N-1avecNlenombredebitsderésolutionduconvertisseur.LemicrocontrôleurSTM32F446REpossèdenotamment: -3convertisseursA/N12bitsà16canaux -1convertisseurN/A12bitsà2canaux
M1-Archi 2016-2017 Page2
Question:SachantqueVref=3,3V,etquelarésolutiondesconvertisseursestde12bits,combienvautlequantumq,c’estàdirelapluspetitetensionpouvantêtrenumérisée?IdéalementpourunCAN,onrappelleque𝑁 = #
#$%&(2* − 1);
PourunCNA,leprincipeestdual,𝑉/0%12%_é56%00% = 𝑉789 − 𝑉712 = 2* − 1 . 𝑞;
• LesconvertisseursduSTM32F446RE
§ CAN(ADC)IlestpossibledeparamétrerleCANenfonctiondesbesoinsdesonapplication.Parexemple,onpeutchoisir:
-larésolution(12,10,8,6bits),-lescanauxutilisés(16sourcesexternes+dessourcesinternes(Vref,température…)),-lemoded’acquisition(unique,continu,discontinu,balayagedeplusieurscanaux…),-l’utilisationd’untriggerexterne(injectedchannel),-l’alignementdesdonnéesdansle,-l’utilisationd’uneDMA,-...
Surlafiguresuivanteestillustréel’architectured’unADCduSTM32F:
Nous avons pu voir qu’il était très important de définir une fréquenced’échantillonnagesupérieureà2foislafréquencemaximale(oubande)dusignald’entréedemanièreàrespecterlecritèredeShannon-Nyquist.L’horlogederéférenceestADCCLK.C’estàpartirdesafréquenceetd’unevaleurduregistreSMPqu’estdéterminéeletempsd’échantillonnage.
M1-Archi 2016-2017 Page3
LeCANestbasésurlatechnologieSAR(RegistreàApproximationsSuccessives).Letempsdeconversionestdoncégalaunombrededivisionàeffectuer,correspondantàlarésolutionduconvertisseur(ici12bitsdonc12cycles).Letempstotaldeconversionsedéterminedelamanièresuivante: T_total_conversion=Sampling_time+12Exemple:
SiADCCLK=30MHz,etqueletempsd’échantillonnageestde3cycles(SMPx[2:0]=000),letempstotaldeconversionvaut:
T_total_conversion=3+12=15cycles,soit0,5us(2Méch/s).Ilexistedeuxdomainesd’horlogeauseinduDAC.L’unpermetl’interfaceaveclemicrocontrôleur(registres)etestrégitparPCLK2,l’autresertàlapartieanalogieetestrégitparADCCLK.L’horlogedelapartieanalogiqueestréglableparl’intermédiaired’unprescaler.Interruption:Selonlesbesoins,ilestpossiblededéclencheruneinterruptionàchaquefindeconversion(flagEOC).Finalement,onrésumelaconfigurationdel’ADCparlescommandessuivantes:
1)Choisirl’entrée-Activationetconfigurationdelabroched’entréeanalogique-Choixdescanauxréguliers
2)Réveildel’ADC-Activationdel’ADC
3)Choixdumodedefonctionnementetducanal4)Configurationdel’interruption
-Permettreounonlagénérationd’uneinterruptionenfindeconversionEOC
5)Déclenchementdelaconversion6)Récupérationdeladonnéenumérisée
M1-Archi 2016-2017 Page4
§ CNA(DAC)
Les microcontrôleurs de la famille STM32 intègrent pour la plupart des DAC avecdifférentes configurations en fonction de la série STM32Fx. Dans le microcontrôleurSTM32F446RE,ilyaunDAC12bitsavecdeuxcanauxdesortie.
Sesprincipalescaractéristiquessontrappelées:
.left or right data alignment in 12-bit mode
.synchronized update capability
.noise-wave generation
.triangular-wave generation
.dual DAC channel independent or simultaneous conversions
.DMA capability for each channel
.external triggers for conversion Pourtouteinformationcomplémentaire,vouspouvezvousréféreràladocumentationconstructeurduSTM32F446RE:http://www.st.com/content/ccc/resource/technical/document/datasheet/65/cb/75/50/53/d6/48/24/DM00141306.pdf/files/DM00141306.pdf/jcr:content/translations/en.DM00141306.pdf
II. Exercice1:Conversionanalogique/numériqueOn se propose de manipuler dans un premier temps le convertisseur analogique
numérique.Objectif:Onsouhaitefairel’acquisitiond’unetensionissued’unpotentiomètreviaune
desbrochesanalogiquesdisponibles(Ax).Enfonctiondelatensionissuedupotentiomètre,onallumeraplusoumoinsdeLEDSD0àD2quiserontconnectéesàl’aided’unecartefilledédiée (cf. plus bas). Pour cela, vous réaliserez le montage comme indiqué sur la figuresuivante:
Toutlematérielserafourniparl’enseignant.
M1-Archi 2016-2017 Page5
q 1ièrepartie:ConfigurationsousSTM32CubeMx
-LancerSTM32CubeMx-CréerunnouveauprojetpournotreboardNucleo64,STM32F446RE.-EffectuerdesuiteuneremiseàzérodelaconfigurationdesbrochesviaPinout/ClearPinouts.-DansClockConfiguration,vérifierqueleshorlogesSYSCLKestà84MHz.Releverlesfréquencesdeshorlogesdesservantlespériphériques,notammentPCLK1,PCLK2.
Question:Selonvous,quelleestl’horlogequiestenvoyéeverslespériphériquescommelesADC?
-Configurerl’ADC1demanièreàpouvoirfairel’acquisitiondusignalsurl’entréeIN0.-Danslesous-menuconfiguration,cliquersurADC1.Lesparamètresdeconfigurationdel’ADCsontvisualisablesetmodifiablesàpartirdecettefenêtre.
Question:Qu’estcequ’unprescaler?Quelleestl’horlogederéférencequiestreliéeàl’entréeduprescaler?
-Danslesous-menuconfiguration,cliquersurADC1.Lesparamètresdeconfigurationdel’ADCsontvisualisablesetmodifiablesàpartirdecettefenêtre.-Configurerl’ADCpourpouvoireffectuerdesconversionscontinues.-Autoriserlesinterruptionsgénéréesparl’ADCauniveauducontrôleurNVIC.
-DanslecontrôleurRCC,autoriserlesinterruptions(RCCglobalinterrupt).-VérifierdanslecontrôleurNVICquelesinterruptionssontbienautorisées.
M1-Archi 2016-2017 Page6
Unefoisquetoutestconfiguré,générerlecodeduprojetdelamêmemanièrequelesTPsprécédents:
DansProjectNameindiquerlenomdevotreprojet.DansProjectlocation,indiquerlerépertoiredevotreprojetoùseragénérerlecode.DansToolchain/IDE,indiquerMDK-ARMv5.DansLinkerSettings,vouspouvezobserverlatailledeszonesdeHeapetdeStack(Pile).
Dansl’ongletsuivant,CodeGenerator,sélectionner“Copyonlythenecessarylibraryfiles”.
PuisOK
M1-Archi 2016-2017 Page7
Enfin,dansl’ongletProject,GenerateCode.
CliquerensuitesurOpenProjectpourouvrirleprojetgénérésousµVision.
q 2ndepartie:DéveloppementducodesousKielµVision
-Compléterlecodegénérépourréaliserleprogrammedemandé.-Fairevaliderparl’enseignant
M1-Archi 2016-2017 Page8
III. Exercice2:DAC-GénérationdesignaltriangulaireNousavonsvudanslecoursqueleDACpermetlagénérationdesignauxcommedubruit,unsignal PWM, etc. Dans cet exercice, on souhaite configurer le convertisseur numériqueanalogiquepourgénérerunsignaltriangulaire.L’amplitudemaxdusignalseralamoitiédelapleineéchelleetlapériodedusignalserade81,92ms.Lapériodedusignalseracalculéeparl’intermédiairedutimer.Celui-cigénéreraunUpdateEventàchaquefindecycledecomptagequilanceralaconversiond’unnouveléchantillonauniveauduDAC.LaconfigurationduTimerdevraêtreprécise(valeurducompteur,fréquencedecomptagevialeprescaler..).
q 1ièrepartie:ConfigurationsousSTM32CubeMx
-SousSTM32CubeMX,créerunnouveauprojet.-Configurerl’horlogeetlereset(RCC).-AjouterensuiteunDAC.-DansParametersettingsduDAC,vouspouvezobservertroisparamètresdeconfiguration: 1)Outputbuffer, 2)Trigger 3)Wavegenerationmode(siuntriggerestsélectionné)Lepremierpermetl’utilisationounond’unbuffer
en sortie du convertisseur, permettant d’adapterl’impédancedesortiesansavoirrecoursàunampliop.
Le second permet de spécifier si un trigger desynchronisation(matérieloulogiciel)estutilisé.
Letroisièmeparamètren’estdisponiblequesiuntriggerestutilisé. Ilpermetdechoisir letypedesignalgénéré(triangleoubruit)ainsiquel’amplitude maximale de la sortie. La génération du signal sera donc déclenchée etsynchroniséeàpartirdusignaldetrigger.
-GénérerlecodeetouvrirKielµvision
q 2ndepartie:ConfigurationsousSTM32CubeMx
-Compléterlecodegénérépourréaliserleprogramme.-Fairevaliderparl’enseignant.
M1-Archi 2016-2017 Page9
IV. Exercice3:TraitementdesignauxNous allons reprendre le signal triangulaire généré lors de l’exercice 2. Sous uVision, onconfigurera le Timer 2 avec un prescaler de 2 et une période de comptage de 5(respectivementvaleurs3et6sousSTM32CubeMx).Legénérateurdesignaltriangleoccuperalapleineéchelleduconvertisseursoit4096pts(DAC_TRIANGLEAMPLITUDE_4095).Question:Quelleseralapériodedusignaltriangulaire?OnconnecteraensuiteunréseauRCcommeindiquéci-dessous.OnprendraR1=1ketC1=220nF(condensateurcéramiquebleu,code224).Lesignaltriangulaireseraappliquéenentrée(Ue)etonobserveralasortie(Us). SousSTM32CubeMX:
-AjouterunADCpour récupérer le signalde sortiequi sera connectéàuneentréeanalogique (A0 par exemple). On autorisera les interruptions indiquant la fin deconversion.-Ajouter un timer (Timer 1) qui permettra de déclencher périodiquement uneinterruptiondéclenchantlaconversiond’unevaleurparl’ADC.OnchoisiraunevaleurdePrescaleretdepériodepouravoiruneUEVtoutesles0,1ms(f=10kHz).
-GénérerlecodeetlanceruVision SousuVision:
-Modifierlecodepourpouvoirlancerletimer1enmodeinterruptionetlesous-programmed’interruptionpermettantdedémarrerlesconversionsnumériquesanalogiques.-Danslesous-programmed’interruptiondel’ADC,récupérerlavaleurluedansunevariableglobale.-Lancerledebug,chercheràvisualiserlesignalnumériséàl’aidedel’analyseurlogique.
Question:Expliquerlaformedusignaldesortie(Us).Sibesoin,regarderlaFFTdusignald’entréepuisdusignaldesortieàl’aided’unoscilloscopeprésentdanslasalle.