首页 > 代码库 > 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