申慶華
(桂林理工大學信息科學與工程學院,廣西桂林,541006)
PWM的英文全稱是”Pulse Width Modulation”,中文翻譯為"脈沖寬度調制"。PWM信號的應用十分廣泛,比如使用PWM信號控制溫度、控制比例閥的開度、控制電機的轉速、控制舵機的轉向等。對這些應用范圍要求精度比較高的地方,特制作了這一高精度脈沖信號發生器。
為滿足應用的要求,該信號發生器的設計目的是能產生頻率,電壓,占空比均可以調節的高精度,大功率脈沖信號[1]。該信號發生器的硬件部分:通過STM32 F103C8T6[2]單片機定時器輸出頻率,占空比,電壓都可調節的PWM信號,但是從STM32單片機輸出的PWM信號的波形和電壓無法達到設計的要求,所以要再經過模擬開關MAX4626進行波形整形得到較為完美的波形后,再用放大電路AD8397來放大達到電壓在0.1V到5V之間可調,這樣就得到較大功率的脈沖信號,同時通過LCD顯示器顯示各個參數指標。系統硬件框圖如圖1示。

圖1 系統硬件框圖
本信號發生器采用STM32F103C8T6最小系統板,其核心芯片為STM32F103C8T6,自帶電壓穩壓芯片,擁有復位按鍵、8M主晶振、32.768KHZ晶振用于校準或供內置RTC使用,自帶USB接口,STM32F103C8T6最小系統板的B15、A8、A9和A10分別連接按鍵,A7~ A0、C15、C14和C13與顯示電路相連接,運用STM32F103C8T6定時器TIM1輸出PWM,設置最小系統板的A11引腳輸出PWM信號。STM32F103C8T6最小系統板的電路如圖2所示。

圖2 STM32F103C8T6最小系統板的電路
由于輸出信號的波形和電壓不能滿足設計的需求,所以采用了模擬開關和放大電路,模擬開關電路的芯片采用的是MAX4624,它是MAXIM公司生產的低開路電阻、低電壓先合后開單刀雙擲模擬開關。它具有過電流保護,能夠快速開閉,閉合及斷開最大時間均為50ns,電壓開路電阻很低,電路內部開關噪聲低的特點。當MAX4626的V+引腳接+5V的電壓時,Vin輸入信號最高可達2.4V,最低Vin為最低0.8V,而A11輸出的PWM信號的輸出電壓為3.3V,這就超過了MAX4626的輸入信號的最大電壓值,所以加上一個10K的電阻。
要求輸出電壓最大為5V,而模擬開關輸出電壓還不能滿足要求,要對模擬開關的輸出信號進行放大,從而滿足對電壓的要求。于是在模擬開關電路后接一個放大電路,以實現電壓在0.1V到5V之間可調。放大電路采用的是AD8397芯片,AD8397是高輸出電流雙運算放大器,可以有310mA的輸出電流。由AD8397和一些電阻組成同相比例運算電路,同相輸入端接信號Vin,反相輸入端通過電阻R4接地,Vout與Vin同相,根據“虛短”和“虛斷”:

R3=10K,R4=10K,所 以 Vout=2 Vin,所以該放大電路放大2倍。滿足電壓放大要求。模擬開關電路和放大電路圖分別如圖3和圖4所示。

圖3 模擬開關電路

圖4 放大電路
顯示器件用LCD1602,LCD1602的D0~ D7分別與相對應的STM32F103C8T6最小系統的A0~ A7相連接。端口V0需要連接一個滑動變阻器來調節。 根據前面的控制單元和整形放大電路,再加上LCD1602顯示,得到本信號發生器的總體電路設計如圖5所示。

圖5 總體電路設計

圖6 主程序流程圖
程序需要實現的是對按鍵輸入的數據進行接收、控制STM32F103C8T6中的輸出,以及LCD顯示輸出電壓、頻率、占空比等功能。首先定義好各個端口,計算好LCD顯示對應的值。經過程序的掃描,按鍵是否按下去判斷接下來要執行的程序,通過對STM32F103C8T6單片機的定時器TIM1進行編程,使定時器TIM1輸出PWM,再通過LCD顯示參數。主程序流程圖如圖6所示。
本信號發生器與其它相比具有如下優點:①較51單片機信號發生器而言,具有功能強大,頻率高,工作穩定等特性;②較專用DDS 芯片的信號發生器而言,具有結構簡單,成本低等特性。
本信號發生器各參數調節范圍為:脈沖占空比調節范圍為2- 100%; 電壓調節范圍為0- 5.0V,步進0.02V;頻率調節范圍為1KHz- 100KHz。通過對軟件硬件的調試和檢測表明,該系統的軟件和硬件均能夠很好的工作,能夠滿足教學和生產的要求。
本信號發生器還存在著一些誤差,就是設計出來的理論上的輸出電壓、占空比和頻率值與實際測量的輸出電壓、占空比和頻率值有一點誤差,應該是模擬開關和放大電路精度不夠造成的,用其他更好的芯片來代替則能得到更好的信號參數。