吳越鴻 馬鑫 張遠銘 付麗華 沈陽工學院信息與控制學院
基于STM32的低成本信號發生器的設計與實現
吳越鴻 馬鑫 張遠銘 付麗華 沈陽工學院信息與控制學院
信號發生器又稱為振蕩器,它是一種較為常用的信號源,是輸出各種電子信號的儀器,主要用于調試、測試電子電路和相關設備的參數。本設計提出的信號發生器裝置,由STM32F103系列單片機、DDS模塊AD9833、LCD以及按鍵等部分組成,實現不同頻率和幅度的方波、正弦波、三角波的信號輸出,并具有自動和手動兩種模式,滿足不同場合的使用需求。本裝置具有控制精度高、操作簡單、工作穩定、失真度小,且價格便宜的優點,具有一定的應用前景。
信號發生器 STM32 AD9833
STM32F103系列屬于中低端的32位ARM微控制器,本設計使用的STM32F103C8T6的片內Flash大小為64K,屬于其中的中容量版本[1]。AD9833是ADI公司設計制造的一款可進行信號波形編程發生器,它能產生多種波形,如方波、正弦波、三角波等。
本設計的主控器件為STM32F103C8T6單片機,通過STM32F103C8T6單片機控制DDS AD9833產生信號,并且采用調節DAC參考電壓實現信號發生器信號幅度的調節,并通過按鍵選擇輸出波形、頻率和幅度在LCD1602液晶顯示屏上顯示。
硬件電路整體框圖如圖2.1所示

圖2 .1 硬件電路整體框圖
整個硬件電路通過一個5V直流電源直接供電,而不同的電路模塊需要不同電壓供電,則采用分流和降壓模塊進行控制。
各部分的電路設計及功能如下。
2.1.1 供電電路
STM32F103系列微控制器的工作電壓在+2.0V~+3.6V之間。由于常用電源為5V,必須采用轉換電路把5V電壓轉換為2.0~3.6之間。采用電源轉換芯片REG1117-3.3輸出固定的3.3V電壓,它是一款正電壓輸出的低壓降三端線性穩壓電路,輸入5V電壓,可以輸出固定的3.3V電壓。
2.1.2 單片機模塊電路設計
本模塊采用的是單片機最小系統的集成模塊,該最小系統由STM32F103C8T6單片機芯片、供電電路、時鐘電路、復位電路、啟動配置電路和程序下載電路構成。
2.1.3 DDS 電路的設計
本電路為信號產生模塊,即DDS模塊,此電路模塊為本設計的核心,是信號的產生部件,核心芯片是AD公司生產的AD9833[2]。在本電路中,AD9833的DAT、SCLK、DDSEN引腳分別接STM32單片機的PB13、PB14、PB15口,通過它們來實現STM32單片機對AD9833芯片的控制。
2.1.4 按鍵電路的設計
按鍵電路采用直接連接STM32單片機的IO端口。此電路的功能是通過按鍵輸入選擇波形、頻率和幅度,采用4個獨立式按鍵,通過K1鍵選擇調節波形、頻率和幅度。
2.1.5 顯示電路的設計
本顯示模塊用的核心部件為LCD1602液晶顯示器,可以顯示輸出信號的波形、頻率和幅值。它可以顯示兩行字符,每行各16個字符,在第一行顯示幅度、波形和步進范圍信息,在第二行顯示頻率值。
本系統通過按鍵設定或修改輸入頻率,按鍵檢測通過使用軟件掃描的方式獲得按鍵信息,采用軟件編程的方法來實現按鍵去抖動,使按鍵檢測更為準確,而且這樣電路簡單,還可以節約硬件資源;按鍵被定義為功能鍵和控制鍵,功能鍵用于選擇輸出信號的波形、頻率、幅度及頻率步進的范圍;控制鍵來控制波形的選擇及頻率、相位的增減。

本設計系統硬件重點使用STM32F103C8T6、AD9833等芯片設計單片機電路、按鍵電路、信號發生電路、幅度調節等電路。在軟件設計方面,則主要包括程序初始化、信號發生程序、按鍵控制程序、顯示程序等。
與當前市場銷售的產品相比較,本設計充分考慮了實用性和便捷性,具有如下特點:
(1)操作簡單,效果直觀
通過對LCD的驅動,實現參數的顯示,該部分工作原理簡單、成本低,LCD的文字顯示功能,一方面顯示精確、效果直觀,另一方面對操作者具體一定的提示功能,有利于用戶使用。
(2)便于攜帶和測量
目前市場銷售的產品,通常體積大,攜帶不方便,在本設計的電源為5V直流電,支持USB、電池等供電,因此體積小,便于攜帶。同時具有按鍵輸入功能,根據設定的提示即可完成相應的功能。
(3)模塊化設計,成本低
本設計以模塊化設計為理念,使用單片機模塊和DDS模塊的組合方式,通過修改單片機程序,實現不同精度的波形輸出,因此硬件成本遠低于同類產品。
[1]蔣昭穎. 基于STM32單片機的變頻正弦信號發生器[J]. 電子設計工程,2016,(05):190-193.
[2]張萍. 基于DDS的低頻信號發生器的設計[J]. 自動化技術與應用,2016,(06):106-109.
吳越鴻、馬鑫、張遠銘,沈陽工學院,學生;付麗華(通訊作者),1972年6月,女,滿族,遼寧人,沈陽工學院,教師,副教授。