由于不需要建立复杂的数学模型,大部分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次放才是真正的电压。单片机的供电可能不稳定,如果没有这个参考,那可能会造成输出不稳定。
电路图
运行时配置好定时器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%。
上一篇:纠结中理清思路 搞定TL494负反馈问题
下一篇:基于次级稳压反激的开关电源异常状况分析
推荐阅读最新更新时间:2023-10-12 22:49
Vishay线上图书馆
- 选型-汽车级表面贴装和通孔超快整流器
- 你知道吗?DC-LINK电容在高湿条件下具有高度稳定性
- microBUCK和microBRICK直流/直流稳压器解决方案
- SOP-4小型封装光伏MOSFET驱动器VOMDA1271
- 使用薄膜、大功率、背接触式电阻的优势
- SQJQ140E车规级N沟道40V MOSFET
- Bourns 推出两款厚膜电阻系列,具备高功率耗散能力, 采用紧凑型 TO-220 和 DPAK 封装设计
- Bourns 全新高脉冲制动电阻系列问世,展现卓越能量消散能力
- Nexperia推出新款120 V/4 A半桥栅极驱动器,进一步提高工业和汽车应用的鲁棒性和效率
- 英飞凌推出高效率、高功率密度的新一代氮化镓功率分立器件
- Vishay 新款150 V MOSFET具备业界领先的功率损耗性能
- 强茂SGT MOSFET第一代系列:创新槽沟技术 车规级60 V N通道 突破车用电子的高效表现
- 面向车载应用的 DC/DC 电源
- Vishay推出适用于恶劣环境的紧凑型密封式SMD微调电阻器
- MathWorks 和 NXP 合作推出用于电池管理系统的 Model-Based Design Toolbox