STM8单片机制作的3-4V升5V的Boost电路
金坷居士2014/10/15电气电工 IP:澳大利亚

上大学之后忙成了Doge 很少来论坛转悠
最近稍微空闲于是就鼓捣了一个简易的升压电路 可以用于移动电源

STM8S103F3素一种TSSOP20封装(很小的QwQ)的8位单片机, 具有价格低|外设多|开发方便(有固件库)以及宽工作电压等优点,平均只要1块多就能买一片的
这货里面有3个定时器,一个UART串口,一个I2C串口,一个SPI串口,一个10位16通道的高速ADC(由于封装用不到16通道),还有看门Doge等, 几乎每一个IO口都有自己的外部中断, 内部多个始终源,简直用不完的赶脚啊

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

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

下面是电路图,非常简单没有一个多余的原件哦:
V1.png


程序方面的话也很简单, 就是配置好定时器TIM1 TIM4还有ADC即可, 然后在TIM4中定时运行PID算法.

初始化TIM1, 由主时钟直接驱动不分频, 把它弄成向上计数模式,
        TIM1_TimeBaseInit(0, TIM1_COUNTERMODE_UP, DUTYCYCLE_RESOLUTION, 0);
然后把输出通道1配置成PWM模式,高电平有效,同时开启反向的输出,可以给同步整流的管子用哦w
        TIM1_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
        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%

PID素怎么撸的:
PID素一种广泛应用的控制算法, 据说其历史有100多年了?(雾
优点素不需要建立复杂的数学模型, 世界上大部分PID控制器靠良好的P I D系数整定就能工作的很好
这里只用到了PI,其实为了快速响应,还是应该加上D的,不过窝时间少啪麻烦没加, 有兴趣的同学可以试试看
Kp和Ki得从小往大调,保证不震荡的情况下最快速调节就好,程序里面的没有什么问题了

最后发资料包:

attachment icon MobileCharger.zip 524.51KB ZIP 202次下载
哦对了,如果要测试的话需要把STM8S103F的OptionalByte修改下,OptionalByte掌控IO口的功能复用,具体的操作如下:
在STVD中点Tools菜单中的Programmer,然后按如下设置
OB.png
再去Memory Areas选项卡,把Memory Area下面的选择框选成PROGRAM MEMORY,再点Add把Debug文件夹中的proj.s19文件装进来,最后去Program页面点Start,如果没看到红字,就完成了!

最后发福利(雾
53e130adcbef7609b07db61f2edda3cc7dd99ed5.jpg
来自:电气工程 / 电气电工
39
 
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
金坷居士 作者
10年2个月前 IP:澳大利亚
726695
引用 novakon:
首先,STM8可以推挽输出,电流>20毫安,没有使用图腾柱的必要。图腾柱导致实际驱动电压摆幅偏低,开关性能变差。

其次,1n4148串2.2k电阻,电流为1mA。相对于其提供的电压精度来讲,非常不节能。正确的方式:直接将adc脚连接到VC...
1. PWM输出那个脚已经素推挽了 20mA 推mos太勉强了
XXXXap那个电压 真的不随供电电压改变么
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
金坷居士作者
10年2个月前 IP:澳大利亚
726696
引用 novakon:
再多个嘴,外部中断不是per pin的,而是per port的。
对的 准确说素per port 但素可以在中断里判断哪个pin
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
金坷居士作者
10年2个月前 IP:澳大利亚
726697
引用 baiwenglong:
初中党更伤不起。。百度来的打死看不懂
窝也初中开始搞的 最近才明白并搞真正稳定...
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
金坷居士作者
10年2个月前 IP:澳大利亚
726698
引用 .........:
你就把它看成一个函数嘛,函数声明假设是这样的:
float pidUpdata(float sample, float kp, float ki, float kd)
{
     .....
     return result;
}

...
不理解不敢用啊 神马变量溢出搞死泥 还有8位单片机算那么多float真的呆娇布?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
金坷居士作者
10年2个月前 IP:澳大利亚
726700
引用 justinpiggy:
给个建议。低压下二极管压降明显,非常影响效率。
建议改成同步整流,用单片机编写非常方便
这个单片机同时提供了反向的PWM信号输出 可用于控制整流的mos 不过这里做实验就没加同步整流
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
金坷居士作者
9年10个月前 IP:澳大利亚
754699
引用 fusecn:
单片机做的升压电路,这算不算高端大气上档次啊23333

ps:难道我要放弃学的一半的51。。。。。
51一样可以做的
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
金坷居士作者
9年7个月前 IP:澳大利亚
771396
引用 qd118:
思路很好,如5v的电流不大,用单片升压ic最省事便宜
单片机加点显示啊 电源管理啊神马的更方便
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
金坷居士
学者 机友 笔友
文章
170
回复
1711
学术分
11
2011/09/23注册,3个月5天前活动

怪哉!灵异的三极管电流流向! 这素一个在仿真的RCC电路,示波器上绿色的是集电极电流红色的是发射极电流。窝萌都知道发射姬电流素集电极电流和基极电流之和,所以讲道理发射极电流一定比集电极略大。可仿真结果刷了三观,Q1集电极电流一部分流经基极,然后流经Q2的C->E。

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}