电源的程序主要是PWM驱动MOS管,然后通过采样反馈电压与设定电压比较在通过相应的换算来调整PWM的占空比,从而达到稳定输出。
显然PWM模块要,AD模块要,为了方面到时候调试程序里面的参数,应把把采集的数值和当前的PWM占空比记录下来,所以要通过串口把数据发送到电脑上来,所以现在UART模块也要,到时候换成液晶。
PWM模块的程序:
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模块的程序:
UART模块的程序:
为了验证一下我的这两个模块能不能工作,我直接把串口发送数据的程序扔在了主函数里面:
我现在还不知道前面的运算占用了系统多少时间,调用标准函数库里面的函数用了多少资源。明天先把PWM模块加上,这些模块都只是砖瓦而已,还没开始建,只是先将需要的材料放在这里,程序的结构和算法才是她的灵魂。
现在3个模块都能独立的工作,开关电源的工作频率暂定为20K,输入电压15V到20V,负载先接个电阻大一点的100Ω,输出电压可以变化。下一步是算一下电感,然后进行调试,Go on.
文章评论(0条评论)
登录后参与讨论