微软公司宣布不再支持你正在使用的 IE浏览器,这会严重影响浏览网页,请使用微软最新的Edge浏览器
厂商专区
产品/技术
应用分类

基于STM8S103F3的简易Boost电路设计

2014-10-30 13:48 来源:电源网 编辑:兔子

由于不需要建立复杂的数学模型,大部分PID控制器靠良好的PID系数整定就能工作的很好。而STM8S103F属于很小的8位单片机,它开发简单便捷、价格适宜,是一种非常好用的单片机。本文中我们运用STM8S103F3来制作一个稳定简单的升压电路。

STM8S103F3是一种TSSOP20封装很小的8位单片机,具有价格低、外设多、开发方便、以及宽工作电压等优点,平均只要1块多就能买一片。这里我们要用到3个定时器、一个UART串口、一个I2C串口、一个SPI串口、一个10位16通道的高速AD,还有看门Doge等。几乎每一个IO口都有自己的外部中断,内部具有多个始终源。

这里暂时只用了两个定时器和ADC。IM1这个高级16位定时器用于产生固定频率可变占空比的PWM波,通过一个引脚进行输出TIM4这个普通8位定时器用于隔一段时间进行PI运算,从而稳定输出电压ADC中的4通道(AIN4)用于检测输出电压,而3通道(AIN3)用于提供一个参考电压,约0.6-0.7V,这个电压利用二极管正向导通压降产生的。

使用参考电压是因为ADC出来的结果是一个整数,还需要乘以单片机电源电压再除以2的10次放才是真正的电压。单片机的供电可能不稳定,如果没有这个参考,那可能会造成输出不稳定。

boost电路图

电路图

运行时配置好定时器TIM1 TIM4还有ADC即可。然后在TIM4中定时运行PID算法。初始化TIM1,由主时钟直接驱动不分频,把它弄成向上计数模式:

TIM1_TimeBaseInit(0, TIM1_COUNTERMODE_UP, DUTYCYCLE_RESOLUTION, 0);

然后把输出通道1配置成PWM模式,高电平有效,同时开启反向的输出,可以给同步整流的管子用wTIM1_OC1Init (TIM1_OCMODE_PWM1,TIM1_OUTPUTSTATE_ENABLE,TIM1_OUTPUTNSTATE_ENABLE,0,TIM1_OCPOLARITY_HIGH,TIM1_OCPOLARITY_HIGH,TIM1_OCIDLESTATE_RESET,TIM1_OCIDLESTATE_RESET);

启动定时器和PWM输出

TIM1_CtrlPWMOutputs(ENABLE);

TIM1_Cmd(ENABLE);

设置占空比为1/320

TIM1_SetCompare1(1);

初始化TIM4,由64次分频的主时钟驱动,当计数到达255的时候触发一次中断。

TIM4_TimeBaseInit(TIM4_PRESCALER_64, 0xFF);

上来就得触发一次更新事件还有中断,让TIM4_PRESCALER_64生效。

TIM4_SetCounter(0xFF);

TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);

开总中断

rim();

开TIM4

TIM4_Cmd(ENABLE);

本电路设计中的PWM频率计算方法及结果如下:STM8中的主时钟为16MHz。本制作中让STM8全速工作:CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1),也就是说驱动TIM1的预分频器的频率为16MHz,没有进行分频。当计数到320时自动重装计数器的值,得出PWM频率=16MHz/320=50KHz, PWM的分辨率为100/320%。

(编者按:本文为电源网论坛网友“尤小翠”原创分享,本文观点仅代表个人。)

标签: Boost

声明:本内容为作者独立观点,不代表电源网。本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原作者所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱∶editor@netbroad.com。

微信关注
技术专题 更多>>
研发工程师的工具箱
智慧生活 创新未来

头条推荐

电子行业原创技术内容推荐
客服热线
服务时间:周一至周五9:00-18:00
微信关注
获取一手干货分享
免费技术研讨会
editor@netbroad.com
400-003-2006