原创 LPC2103上的PWM,AD,UART模块

2010-9-9 16:00 3319 7 7 分类: MCU/ 嵌入式

         电源的程序主要是PWM驱动MOS管,然后通过采样反馈电压与设定电压比较在通过相应的换算来调整PWM的占空比,从而达到稳定输出。


        显然PWM模块要,AD模块要,为了方面到时候调试程序里面的参数,应把把采集的数值和当前的PWM占空比记录下来,所以要通过串口把数据发送到电脑上来,所以现在UART模块也要,到时候换成液晶。


        PWM模块的程序:


38dbb86f-fede-4c3c-b600-69032ddac594.jpg 


         LPC2103的定时器0有三个捕获输入和3个匹配输出被连接到管脚上,MAT0.3寄存器在定时器0上没有输出管脚,我就用它来控制PWM的周期长度,用MAT0.0来控制低电平的时间。定时器是用TC对Fpclk进行分频计数,当TC的值和MAT0.0的值相等时,做出相应的动作,当和MAT0.3相等时在做出相应的动作。我的晶振是11.0592M(Fosc)的,经过6倍的倍频以后得到系统频率(Fcclk)也就是CUP执行指令的频率应该是66.3552M,有的说LPC2103可以跑到70M有的说只能是60M,我在将Fcclk进行4分频得到Fpclk为16.5888M,我的 T0MR3 =1000  也就是Fpclk在除以1000得到16.5888K和实际测得的一致。说明可以跑到60M以上。


        AD模块的程序:


ef90f49a-e000-40b4-b7a2-e92fac5b6ced.jpg


        UART模块的程序:


a6f0dad6-bfa3-4d43-83cf-fa9f0992c9ca.jpg        


        为了验证一下我的这两个模块能不能工作,我直接把串口发送数据的程序扔在了主函数里面:


9ff7760b-f726-4830-85e1-2f3de8956f10.jpg


我现在还不知道前面的运算占用了系统多少时间,调用标准函数库里面的函数用了多少资源。明天先把PWM模块加上,这些模块都只是砖瓦而已,还没开始建,只是先将需要的材料放在这里,程序的结构和算法才是她的灵魂。


        现在3个模块都能独立的工作,开关电源的工作频率暂定为20K,输入电压15V到20V,负载先接个电阻大一点的100Ω,输出电压可以变化。下一步是算一下电感,然后进行调试,Go  on.

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条