新聞中心

EEPW首頁 > 電源與新能源 > 設計應用 > 基于STM8S103F3的簡易Boost電路設計

基于STM8S103F3的簡易Boost電路設計

作者: 時間:2016-12-06 來源:網絡 收藏

由于不需要建立復雜的數(shù)學模型,大部分PID控制器靠良好的PID系數(shù)整定就能工作的很好。而STM8S103F屬于很小的8位單片機,它開發(fā)簡單便捷、價格適宜,是一種非常好用的單片機。本文中我們運用STM8S103F3來制作一個穩(wěn)定簡單的升壓電路。

本文引用地址:http://m.butianyuan.cn/article/201612/326975.htm

STM8S103F3是一種TSSOP20封裝很小的8位單片機,具有價格低、外設多、開發(fā)方便、以及寬工作電壓等優(yōu)點,平均只要1塊多就能買一片。這里我們要用到3個定時器、一個UART串口、一個I2C串口、一個SPI串口、一個10位16通道的高速AD,還有看門Doge等。幾乎每一個IO口都有自己的外部中斷,內部具有多個始終源。

這里暫時只用了兩個定時器和ADC。IM1這個高級16位定時器用于產生固定頻率可變占空比的PWM波,通過一個引腳進行輸出TIM4這個普通8位定時器用于隔一段時間進行PI運算,從而穩(wěn)定輸出電壓ADC中的4通道(AIN4)用于檢測輸出電壓,而3通道(AIN3)用于提供一個參考電壓,約0.6-0.7V,這個電壓利用二極管正向導通壓降產生的。

使用參考電壓是因為ADC出來的結果是一個整數(shù),還需要乘以單片機電源電壓再除以2的10次放才是真正的電壓。單片機的供電可能不穩(wěn)定,如果沒有這個參考,那可能會造成輸出不穩(wěn)定。

電路圖

運行時配置好定時器TIM1 TIM4還有ADC即可。然后在TIM4中定時運行PID算法。初始化TIM1,由主時鐘直接驅動不分頻,把它弄成向上計數(shù)模式:

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次分頻的主時鐘驅動,當計數(shù)到達255的時候觸發(fā)一次中斷。

TIM4_TimeBaseInit(TIM4_PRESCALER_64, 0xFF);

上來就得觸發(fā)一次更新事件還有中斷,讓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,沒有進行分頻。當計數(shù)到320時自動重裝計數(shù)器的值,得出PWM頻率=16MHz/320=50KHz, PWM的分辨率為100/320%。



評論


技術專區(qū)

關閉