基于STM8S103F3的简易Boost电路设计
由于不需要建立复杂的数学模型,大部分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%。
STM8S103F3Boost电路设 相关文章:
- 电源设计小贴士 1:为您的电源选择正确的工作频率(12-25)
- 用于电压或电流调节的新调节器架构(07-19)
- 超低静态电流电源管理IC延长便携应用工作时间(04-14)
- 电源设计小贴士 2:驾驭噪声电源(01-01)
- 负载点降压稳压器及其稳定性检查方法(07-19)
- 电源设计小贴士 3:阻尼输入滤波器(第一部分)(01-16)