ADC Lecture14
ADC Lecture14
ATermFall2015
Lecture#14:UsingtheADC12AnalogtoDigitalConverter
ReadingforToday:
ReadingforNextClass:
HW#4(oweb):
Lab#2(onweb):
Davies9.23,9.7,MSP430User'sGuideCh28
Examplecode
DueMonday9/28/2015
Bonussignoff9/25(5pm).ReportdueTues9/29
(inclass)
Exam#2Tuesday9/29/2015
LastClass:
>>IntroductiontoAnalogtoDigitalConversion
>>MappinganalogsensorstoanADC(FSR,Resolution,DynamicRange)
Example.Asimpledigitalcurrentmetermightmeasurecurrentbymeasuringthe
voltageacrossasmallsensingresistor.HowcouldweusetheADC12tomeasure
acrosstherange0to1Ato1mAaccuracy?Canweget0.1mAaccuracy?
>>>KnowinghowyourexternalsensorworksandhowtomapittotheADC
you'reusingisascriticalasknowinghowtoprogramthemicroprocessortoreadthe
ADC!!
MSP430F5529AnalogtoDigitalConverter(ADC12_A)
16channel,12bitsampleandholdADC(200ksamplespersecondmax)
12ExternalAnalogInputsA0A7,A1215usesamepinsasPorts6&7
4internalAnalogInputsA8A11
Configureandusebysettingvaluesinvariouscontrolregisters
ADC12CTL0controlsthefollowingoptions
SampleandHoldtime(ADC12SHT1xandADC12SHT0x)
Multiplesampleconversionmethod(ADC12MSC)
ReferenceVoltages(ADC12REF2_5VandADC12REF_ON)
ADC12ONbit
Enableandstartconversion(ADC12ENCandADC12SC)
Overflow/Conversiontimeint.enables(ADC120VIE,ADC12TVIE)
ADC12CTL1controlsthefollowingoptions
Conversionstartaddress(ADC12CSTARTADDx)
Sampleandholdsourceselect(ADC12SHSx)
SampleandHoldpulsemodeselectable(ADC12SHP)
Invertsignalsampleandhold(ADC12ISSH)
ADC12clockdivider(ADC12DIVx)
ADC12clocksourceselect(ADC12SSELx)
Conversionmodeselect(ADC12CONSEQx)
ADC12busy/conversionnotcompletebit(ADC12BSY)
>>Resultsfromeachchannelarestoredinthelow12bitsofoneof16
ConversionMemoryRegisters(ADC12MEMx)
>>EachmemoryregisterhasacorrespondingConversionMemoryControl
Register(ADC12MCTLx)
EachADC12MCTLxcontrolsthefollowingoptionsforitsMemoryRegister
EndofSequence(EOS)=Isthischanneltheendonasequenceof
channelsthataretobeconverted
SelectReferenceVoltages(ADC12SREFx)=
Analoginputchannelselection(ADC12INCHx)=
SowhatdoestheprogrammerneedtodotouseADC12_A?
1)SelectADCCoreBehavior:InADC12CTL0andADC12CTL1registers
Clocksourceanddivider
Sampleandholdbehavior
ReferenceVoltages
2)SelectConversionModerequired:ADC12CONSEQxbitsinADC12CTL1reg
Singlechannelorasequenceofchannels
Alsosingleconversionorrepeatedconversions
3)Selectinputchannel(s):INCHxbitsinADCMCTLxregisters
>>ADC12has12(external)analoginputsignalsand4internalinputs
>ADC12'sExternalAnalogInputsA0A7andA12A15are
multiplexedwithPort6and7pins!
Ex:AssumeinputchannelsA6andA7aretobeusedwithADC12_A.ThePort
Selectionbitsforthosepinsshouldbesetto1=FunctionSelect
>>Internalinputchannels8,9&11(ADC12INCHx=1000,1001,1011)
areconnectedtodifferentchipreferencevoltages
Couldbeusedtodohealthmonitoring
>>Internalinputchannel10(ADC12INCH_10=1010)isconnectedtoan
internalTemperatureSensor.
4)EnableappropriateinterruptsADC12IEregister
Donothavetouseinterrupts,butusefulforrepeatedmeasurements
WriteISR(shouldhandleallpossibleADCinterruptswithsome
defaultbehavior...aswitchstatement)
5)EnableandStartConversion(s)ADC1CTL0register
Ex.Continuingonwiththedigitalcurrentmeter,assumethatthegainGissetso
1Aequalsthefullscalevoltageof2.5V.Assumethatthetheanaloginputvoltage
isappliedtoA0.HowwouldwesettheADC12registers?
//
//
//
//
//
//
//
//
//
>>HowwouldweusetheresultsfromtheADCinourprogram?