申慶華
(桂林理工大學(xué)信息科學(xué)與工程學(xué)院,廣西桂林,541006)
PWM的英文全稱是”Pulse Width Modulation”,中文翻譯為"脈沖寬度調(diào)制"。PWM信號的應(yīng)用十分廣泛,比如使用PWM信號控制溫度、控制比例閥的開度、控制電機(jī)的轉(zhuǎn)速、控制舵機(jī)的轉(zhuǎn)向等。對這些應(yīng)用范圍要求精度比較高的地方,特制作了這一高精度脈沖信號發(fā)生器。
為滿足應(yīng)用的要求,該信號發(fā)生器的設(shè)計(jì)目的是能產(chǎn)生頻率,電壓,占空比均可以調(diào)節(jié)的高精度,大功率脈沖信號[1]。該信號發(fā)生器的硬件部分:通過STM32 F103C8T6[2]單片機(jī)定時(shí)器輸出頻率,占空比,電壓都可調(diào)節(jié)的PWM信號,但是從STM32單片機(jī)輸出的PWM信號的波形和電壓無法達(dá)到設(shè)計(jì)的要求,所以要再經(jīng)過模擬開關(guān)MAX4626進(jìn)行波形整形得到較為完美的波形后,再用放大電路AD8397來放大達(dá)到電壓在0.1V到5V之間可調(diào),這樣就得到較大功率的脈沖信號,同時(shí)通過LCD顯示器顯示各個(gè)參數(shù)指標(biāo)。系統(tǒng)硬件框圖如圖1示。
圖1 系統(tǒng)硬件框圖
本信號發(fā)生器采用STM32F103C8T6最小系統(tǒng)板,其核心芯片為STM32F103C8T6,自帶電壓穩(wěn)壓芯片,擁有復(fù)位按鍵、8M主晶振、32.768KHZ晶振用于校準(zhǔn)或供內(nèi)置RTC使用,自帶USB接口,STM32F103C8T6最小系統(tǒng)板的B15、A8、A9和A10分別連接按鍵,A7~ A0、C15、C14和C13與顯示電路相連接,運(yùn)用STM32F103C8T6定時(shí)器TIM1輸出PWM,設(shè)置最小系統(tǒng)板的A11引腳輸出PWM信號。STM32F103C8T6最小系統(tǒng)板的電路如圖2所示。
圖2 STM32F103C8T6最小系統(tǒng)板的電路
由于輸出信號的波形和電壓不能滿足設(shè)計(jì)的需求,所以采用了模擬開關(guān)和放大電路,模擬開關(guān)電路的芯片采用的是MAX4624,它是MAXIM公司生產(chǎn)的低開路電阻、低電壓先合后開單刀雙擲模擬開關(guān)。它具有過電流保護(hù),能夠快速開閉,閉合及斷開最大時(shí)間均為50ns,電壓開路電阻很低,電路內(nèi)部開關(guān)噪聲低的特點(diǎn)。當(dāng)MAX4626的V+引腳接+5V的電壓時(shí),Vin輸入信號最高可達(dá)2.4V,最低Vin為最低0.8V,而A11輸出的PWM信號的輸出電壓為3.3V,這就超過了MAX4626的輸入信號的最大電壓值,所以加上一個(gè)10K的電阻。
要求輸出電壓最大為5V,而模擬開關(guān)輸出電壓還不能滿足要求,要對模擬開關(guān)的輸出信號進(jìn)行放大,從而滿足對電壓的要求。于是在模擬開關(guān)電路后接一個(gè)放大電路,以實(shí)現(xiàn)電壓在0.1V到5V之間可調(diào)。放大電路采用的是AD8397芯片,AD8397是高輸出電流雙運(yùn)算放大器,可以有310mA的輸出電流。由AD8397和一些電阻組成同相比例運(yùn)算電路,同相輸入端接信號Vin,反相輸入端通過電阻R4接地,Vout與Vin同相,根據(jù)“虛短”和“虛斷”:
R3=10K,R4=10K,所 以 Vout=2 Vin,所以該放大電路放大2倍。滿足電壓放大要求。模擬開關(guān)電路和放大電路圖分別如圖3和圖4所示。
圖3 模擬開關(guān)電路
圖4 放大電路
顯示器件用LCD1602,LCD1602的D0~ D7分別與相對應(yīng)的STM32F103C8T6最小系統(tǒng)的A0~ A7相連接。端口V0需要連接一個(gè)滑動變阻器來調(diào)節(jié)。 根據(jù)前面的控制單元和整形放大電路,再加上LCD1602顯示,得到本信號發(fā)生器的總體電路設(shè)計(jì)如圖5所示。
圖5 總體電路設(shè)計(jì)
圖6 主程序流程圖
程序需要實(shí)現(xiàn)的是對按鍵輸入的數(shù)據(jù)進(jìn)行接收、控制STM32F103C8T6中的輸出,以及LCD顯示輸出電壓、頻率、占空比等功能。首先定義好各個(gè)端口,計(jì)算好LCD顯示對應(yīng)的值。經(jīng)過程序的掃描,按鍵是否按下去判斷接下來要執(zhí)行的程序,通過對STM32F103C8T6單片機(jī)的定時(shí)器TIM1進(jìn)行編程,使定時(shí)器TIM1輸出PWM,再通過LCD顯示參數(shù)。主程序流程圖如圖6所示。
本信號發(fā)生器與其它相比具有如下優(yōu)點(diǎn):①較51單片機(jī)信號發(fā)生器而言,具有功能強(qiáng)大,頻率高,工作穩(wěn)定等特性;②較專用DDS 芯片的信號發(fā)生器而言,具有結(jié)構(gòu)簡單,成本低等特性。
本信號發(fā)生器各參數(shù)調(diào)節(jié)范圍為:脈沖占空比調(diào)節(jié)范圍為2- 100%; 電壓調(diào)節(jié)范圍為0- 5.0V,步進(jìn)0.02V;頻率調(diào)節(jié)范圍為1KHz- 100KHz。通過對軟件硬件的調(diào)試和檢測表明,該系統(tǒng)的軟件和硬件均能夠很好的工作,能夠滿足教學(xué)和生產(chǎn)的要求。
本信號發(fā)生器還存在著一些誤差,就是設(shè)計(jì)出來的理論上的輸出電壓、占空比和頻率值與實(shí)際測量的輸出電壓、占空比和頻率值有一點(diǎn)誤差,應(yīng)該是模擬開關(guān)和放大電路精度不夠造成的,用其他更好的芯片來代替則能得到更好的信號參數(shù)。