首页 > 代码库 > DM8168 PWM驱动(寄存器设置)

DM8168 PWM驱动(寄存器设置)

DM8168的PWM是通过TIMx_OUT引脚输出的,需要对Timer进行配置才能有波形输出。

①对Timer的时钟进行配置,确保Timer能正常工作。

②设置寄存器之前关闭Timer。

③设置定时溢出后的装载值。

④设置比较值,该值决定PWM占空比。

⑤设置internal counter值。

⑥启动Timer。

启动DM8168过后,停在U-boot界面,使用U-boot的内存读写工具来进行调试。

一、修改CM_ALWON_TIMER_4_CLKCTRL,该寄存器信息如下:


是对Timer4 CLOCK的控制寄存器,详细信息:


使能Timer4让其正常工作的做法是将CM_ALWON_TIMER_4_CLKCTRL设为0x00000002,而它的上电默认值是0x00030000。

U-boot命令下输入:

TI8168_EVM#mw.l 0x4818157C 0x00000002  完成设置

二、关闭Timer

0x48044038  |  TCLR  |  Timer Control

U-boot命令下输入:

TI8168_EVM#mw.l 0x48044038 0  

三、下面一个表格展示了不同的设置不同的输出波形。


我们选择的是(TRG=10 & PT=1)倒数第二个选项,只要设置了一个装载值和比较值就可以确定占空比和周期。

设置装载值:

TI8168_EVM#mw.l 0x48044040 0xffffffe0

四、设置比较值:

TI8168_EVM#mw.l 0x4804404c 0xfffffff0 


PT=1选择翻转模式,TRG=2使得输出口在溢出和匹配时翻转,这样就有了连续的PWM。

五、设置internal counter与装载值保持一致:

TI8168_EVM#mw.l 0x4804403c 0xffffffe0  

六、启动:

TI8168_EVM#mw.l 0x48044038 0x1843    

0x1843是对TCLR控制寄存器的设置值,其中就包括对PT与TRG的设置,详细情况参考两千多页的大数据手册。

七、测试成功后,可以在Timer运行的状态下直接修改比较值改变占空比,比如:

TI8168_EVM#mw.l 0x4804404c 0xfffffff5