资源描述:
《定时器pwm输出实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、定时器PWM输出实验1.实验目的1)熟悉Linux开发环境。2)掌握S5PV210内部相关寄存器的操作方法,最终实现对外部设备的控制。3)熟悉在Linux裸机环境下的C语言编程。4)熟悉S5PV210的定时器编程。2实验内容学习并编程实现ARM的定时器PWM输出。3实验设备1)硬件:S5PV210教学实验箱、PC机;2)软件:PC机操作系统Windows98(2000、XP)+VMwareworkstation+Ubuntul2开发环境。4基础知识S5PV210共有5个32bit的PWM定时器,其中定时器0、1、2、3有PWM功能,定时器4没有输出引脚。PWM定时器使用PCLK_
2、PSYS作为时钟源。PCLK1/11/21/41/81/16—>*SCLKPWM时钟初始化相关寄存器APLLCONOENABLEReservedLOCKEDReservedMDIVReservedPDIVReservedSDIVrv.”ControlLogicO{tcmpboIItcntbqJ―►十6:1—►MUX6:1WUXXpwmTQUTODoadzonoTTControlLoglclh2I—TCMPBli
3、tCNTBi1XpWlTOUTI1-2PWMTIMERClockTreeDiagramr—1/11/21/4W1/16―>麯—>8BTJPRESC/U.EFBitpij[
4、30]08:26]05:16][15:14][13:8][7:3][2:0]ControlLogic2PLLlockingindication0=Unlocked1=LockedReadOnlyReservedPLLMdividevalueReservedReservedPLLSdividetheinputclockfrequencyis24MHz.DescriptionPLLenablecontrol(0:disable,1:enable)ReservedPLLPdividevaluTheresetvalueofAPLL—CONOgenerates800MHzEquationt
5、ocalculatetheoutputfrequency:FOUT=MDIVXFIN/(PDIVx2s,1vely,iftheinputclockfrequencyis24TheresetvalueofMPLL_CONgenerates667MHzMHz.Equationtocalculatetheoutputfrequency:FOUT=MDIVXFIN/(PDIVX2SDIV)3.7.3.1ClockSourceControlRegisters(CLK_SRC0,R/W,Address=0xE010一0200}CLK一SRCOBitDescriptionInitialStat
6、eReserved[31:29]Reserved0x0ONENANDSEL[28]ControlMUXFLASH(0:HCLKPSYS,1:HCLKDSYS)r0Reserved07:25】Reserved0x0MUXPSYS一SEL[24】ControlMUXPSYS(0:SCLKMPLL,1:SCLKA2M)0Reserved[23:21]Reserved0x0MUXJ3SYS一SEL[20]ControlMUX_DSYS(0:SCLKMPLL,1:SCLKA2M)0Reserved[19:17]Reserved0x0MUX一MSYS一SEL[16]ControlMUX_MS
7、YS(0:SCLKAPLL,1:SCLKMPLL)0Reserved[15:13]Reserved0x0VPLL^SEL[12]ControlMUXVPLL(0:FINVPLL,1:FOUTVPLL)0Reserved[11:9]Reserved0x0EPLL一SEL[8]ControlMUXEPLL(0:FINPLL,1:FOUTEPLL)0Reserved[7:5]Reserved0x0MPLL^SEL[4]ControlMUXMPLL(0:FINPLL,1:FOUTMPLL)0Reserved[3:1]Reserved0x0APLL一SEL[0]ControlMUXAPLL
8、(0:FINPLL,1:FOUTAPLL)0定时器初始化相关定时器TimerI叩utClockFrequency=PCLK/({prescalervalue♦1})/{dividervalue}{prescalervalue}=1*255{dividervalue}=1,2,4,8,16.TCLKDeadzonelength=0*254TCFGOBitDescriptionInitialStateReserved[31:24]ReservedBits0x00Deadzonelen