新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 如何優雅的將PWM轉換成DAC?

        如何優雅的將PWM轉換成DAC?

        作者: 時間:2025-01-08 來源:TsinghuaJoking 收藏

        一、前言

        本文引用地址:http://www.104case.com/article/202501/466095.htm

        很多單片機都不具備輸出,但會有多路輸出,下面測試利用芯片,GP8500,將信號轉換成模擬電壓信號。測試一下這個方案,以備之后應用積累經驗。

        二、電路設計

        設計基于STC32G單片機的測試電路。選擇 B中的第四個通道,也就是PWM8 的信號發送給 GP8500,由它將 PWM信號轉換成模擬電壓。鋪設單面PCB,適合一分鐘制板方法制作測試電路板。

        一分鐘之后得到測試電路板,焊接清洗之后 進行測試。現在電路板工作電源為 5V。

        三、測試結果

        下載STC32G程序的時候,?選擇內部時鐘為35MHz,?基于此,在PWM初始化的時候,設置時鐘為單片機內部時鐘7分頻,周期為1000。這樣,輸出PWM信號為5kHz,現在設置的占空比為四分之一。

        ▲ 圖1.3.1 頻率5kHz,占空比為四分之一的PWM波形

        此時,測量GP8500模擬電壓輸出,會發現,它上面出現了高頻寄生震蕩波形。平均電壓為 1.25V,符合在占空比為四分之一情況下對應5V的四分之一的電壓。為什么 會出現這個高頻震蕩呢。想起了在焊接電路的時候,GP8500輸出端口的濾波電容,我想當然的使用了手邊的 0.1微法的電容進行濾波。但是,在GP8500器件手冊中,要求 GP8500輸出端口的濾波電容只能在 0 到 100pf之間。是否就是因為這個原因造成了 GP8500輸出震蕩呢?? 為了證實這個怨言,將這個電容去掉,在電路板上不焊接任何電容。重新測量,可以看到,GP8500輸出信號中就不再出現高頻震蕩了。

        ▲ 圖1.3.2 輸出電壓波形中帶有高頻震蕩

        ▲ 圖1.3.3 去掉GP8500輸出濾波電容之后,輸出電壓不再震蕩了

        下面,每隔一毫秒,更新一次PWM輸出占空比,讓占空比按照正弦規律進行變化,此時可以看到輸出了正弦波信號。中間的斷續顯然應該是因為更新的時間間隔比較大。不過,其中還包含有令人不安的波形。比如這里出現了非常細小的毛刺波形。這種毛刺出現,好像也不是隨機的。感覺應該是在特殊的輸出數值中出現的。具體是什么原因,現在一時毫無頭緒。

        ▲ 圖1.3.4 輸出正弦波的PWM信號

        示波器單次捕捉這個毛刺,放大之后,可以看到,這是 STC32G單片機輸出PWM信號出現了抖動。于是乎就破壞了前后兩次的 轉換結果。所以,這個毛刺的問題,應該有 STC32G單片機來背這個鍋。這是另外一次捕捉的毛刺結果,是同樣的問題。那么問題來了,為何STC32G單片機在輸出PWM波形的時候,會出現這種抖動呢?

        ※ 總結 ※

        本文測試了利用STC32G的PWM輸出,通過GP8500產生的功能。在測試過程中,發現,GP8500輸出端口不能夠并聯 0.1微法的電容,否則就會出現高頻震蕩。輸出端口可以不焊接任何電容。另外一個意外,那就是STC32G單片機輸出PWM波形中,會出現抖動。這究竟是什么原因,現在還不得而知。

        參考資料

        [1]如何將GP8101 的工作電壓改為5V?: https://zhuoqing.blog.csdn.net/article/details/136605372

        [2]GP8500 PAC 芯片的特性: https://zhuoqing.blog.csdn.net/article/details/136774706

        [3]測量GP8500的動態特性: https://zhuoqing.blog.csdn.net/article/details/137201737

        [4]重新測試 GP8500 芯片: https://zhuoqing.blog.csdn.net/article/details/137200037



        關鍵詞: DAC PWM PCA 模擬信號

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东台市| 双峰县| 凌云县| 砀山县| 来宾市| 新丰县| 荃湾区| 海城市| 巩义市| 东兴市| 噶尔县| 夏河县| 定边县| 奎屯市| 大化| 定日县| 望谟县| 达孜县| 苍溪县| 泗水县| 静安区| 滦南县| 河东区| 阜康市| 枣庄市| 呼伦贝尔市| 屯留县| 万山特区| 都匀市| 鄂托克旗| 从化市| 苗栗县| 平湖市| 灌阳县| 图片| 滁州市| 洪江市| 康定县| 泸西县| 蓝田县| 银川市|