基于AVR單片機PWM功能的低成本高精度數控恒流源
隨著電子技術的深入發展,各種智能儀器越來越多,涉及領域越來越廣,而儀器對電源的要求也越來越高。現今,電源設備有朝著數字化方向發展的趨勢。然而絕大多數數控電源設計是通過高位數的A/D和D/A芯片來實現的,這雖然能獲得較高的精度,但也使得成本大為增加。本文介紹一種基于AVR單片機PWM功能的低成本高精度數控恒流源,能夠精確實現0~2A恒流。
系統框圖
圖1為系統的總體框圖。本系統通過小鍵盤和LCD實現人機交流,小鍵盤負責接收要實現的電流值,LCD 12864負責顯示。AVR單片機根據輸入的電流值產生對應的PWM波,經過濾波和功放電路后對壓控恒流元件進行控制,產生電流,電流再經過采樣電阻到達負載。同時,對采樣電阻兩端信號進行差分和放大,送入ADC。單片機根據采集到的值調整PWM輸出,從而調整了輸出電流。如此反復,直到電流達到設定要求。
圖1 數控恒流源系統框圖
模塊介紹
1 人機接口模塊
本模塊包括小鍵盤電路和液晶顯示電路。鍵盤設計為3×4鍵盤,由數字鍵0~9,功能鍵“
2 核心控制模塊
系統的核心控制模塊為AVR單片機(ATMEGA 16L)。主要使用了AVR的PWM功能和A/D功能。
AVR單片機片內有一個具有16位PWM功能的定時/計數器。在普通模式下,計數器不停地累加,計到最大值(TOP=0xffff)后溢出,返回到最小值0x0000重新開始。當啟用PWM功能即在單片機的快速PWM模式下,通過調整OCR1A的值可實現輸出PWM波的占空比變化。產生PWM波形的機理是:PWM引腳電平在發生匹配時(匹配值為0~0xffff之間的值,如圖2中的C),以及在計數器清零(從MAX變為BOTTOM)的那一個定時器時鐘周期內發生跳變,具體實現過程如圖2所示。
圖2 PWM波產生過程
圖2中的C~F為OCR1A匹配值。從圖中可見,波形在每個匹配值處以及計數清零時輸出發生變化,從而實現了PWM波。由于OCR1A的值可以從0x0000到0xffff,共有65535個值,因此PWM波的最大分辨率為1/65535,滿足系統分辨率設計要求。PWM波的頻率為:
(1)
其中,fclk_I/O為系統時鐘頻率 (7.3728MHz),N為分頻系數(取1、8、64、256或1024)。在N取1時,根據式(1)得PWM波的最大頻率為7.3728MHz;當N取1024時,PWM波的最小頻率為 7.2kHz。本系統N取256,PWM波頻率為28.8kHz。
單片機內部有1個10位的逐次逼近型ADC,當使用片內VCC作為參考電壓Vref,其分辨率為:
(2)
若使用片內的2.56V基準源作為參考電壓,依據式(2)可得到其分辨率為0.003V。
當系統需要更高的分辨率時,可以通過軟件補償的方法來實現。具體實現方法可參考相關資料。
pwm相關文章:pwm原理
相關推薦
-
zhujun615 | 2013-03-22
-
-
-
-
-
-
-
-
-
-
-
-
-
評論