• 正文
    • 一、前言
    • ※ 總??結(jié) ※
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

如何通過(guò)單片機(jī)串口輸出模擬量?

2024/02/04
2501
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

一、前言

如果在電子線路設(shè)計(jì)中,碰到一個(gè)情況,那就是,單片機(jī)沒有DAC資源,也沒有多余的 PWM 端口可以使用。只剩下一個(gè) 串口還能用。那么如何通過(guò)該端口輸出模擬電壓呢?

利用單片機(jī)的端口,輸出一個(gè)占空比可以調(diào)節(jié)的方波信號(hào),經(jīng)過(guò)RC低通濾波器,去除其中的交流分量之后,便可以輸出方波信號(hào)中的直流信號(hào)。那么就剩下一個(gè)問(wèn)題了,如何應(yīng)用 UART 輸出一個(gè)高電平占空比可以改變的方波信號(hào)呢?

單片機(jī)的串口發(fā)送一個(gè)字節(jié)的信號(hào)波形中,包括一個(gè)bit 的起始位,一個(gè)bit 的停止位。它們分別是0 和 1,這是無(wú)法改變的。中間八個(gè)bit的數(shù)據(jù)位是可以改變的。比如發(fā)送0x44,其中就會(huì)包含有兩位高電平。這樣就有了8個(gè)可以被控制的高低電平的數(shù)據(jù)位。那么這就可以實(shí)現(xiàn) 3bit 位的 DAC輸出了。如果想實(shí)現(xiàn) 8bit 的 DAC輸出。則需要 256個(gè)可以被控制的數(shù)據(jù)位。這樣只要將連續(xù)32個(gè)發(fā)送字節(jié)合在一起,變可以形成256位可以控制高低電平的信號(hào)波形。從而實(shí)現(xiàn) 8bit 的 DAC 輸出了。下面通過(guò)單片機(jī)測(cè)試一下這種串口輸出模擬量的性能。

二、測(cè)試電路

設(shè)計(jì)基于STM32F103的測(cè)試電路板。這顆芯片我手邊有很多,所以選擇它進(jìn)行實(shí)驗(yàn)。利用它的 串口2 進(jìn)行測(cè)試。串口1用于程序的下載。使用RC低通濾波器對(duì) TXD2信號(hào)進(jìn)行濾波。實(shí)際上 RXD2 是沒有使用的。另外,還將兩路ADC引導(dǎo)端口。這樣,可以利用ADC對(duì)外邊送入的信號(hào)進(jìn)行采集之后,再?gòu)?TXD2 送出,驗(yàn)證一下對(duì)音頻信號(hào)的采集與合成的功能。布置單面測(cè)試電路板。其中包括一個(gè)飛線,使用 0 歐姆電阻進(jìn)行跳線。

▲ 圖1.2.1 測(cè)試電路原理圖

▲ 圖1.2.2 PCB版圖

??一分鐘之后獲得了兩塊測(cè)試PCB電路板,其中有一塊有點(diǎn)過(guò)腐蝕。使用另外一塊比較正常的進(jìn)行測(cè)試。

焊接電路。放置在面包板上進(jìn)行測(cè)試。面包板直接給測(cè)試電路提供 3.3V的工作電源。程序通過(guò)探針夾子進(jìn)行下載。

三、軟件測(cè)試

設(shè)置單片機(jī)的 UART2 的基本參數(shù)。輸出波特率為 1MHz。這樣可以提高輸出信號(hào)的更新率。通過(guò)示波器可以測(cè)量到輸出信號(hào) 每一位的時(shí)間 為1微秒,對(duì)應(yīng) 1MHz的波特率。啟動(dòng)DMA輸出模式,UART2 便可以通過(guò)DMA持續(xù)發(fā)送內(nèi)存中 32 個(gè)字節(jié)內(nèi)容。

D:zhuoqingwindowARMIARSTM32Test2024Test1CoreSrcmain.c

將32個(gè)字節(jié)設(shè)置為0,輸出的電壓波形,經(jīng)過(guò)濾波之后測(cè)得的直流電壓為 0.326V。其中看到的脈沖是每個(gè)字節(jié)的停止位對(duì)應(yīng)的高電平脈沖。設(shè)置32個(gè)字節(jié)都為 0xff,看到的低脈沖是每個(gè)字節(jié)的起始位。讀取的濾波后的直流電壓為 2.9V。設(shè)置32個(gè)字節(jié)為 0x55。此時(shí)出現(xiàn)正負(fù)交替的脈沖波形,濾波之后的直流電壓為 1.61V。

下面分別設(shè)置32個(gè)字節(jié)中,高電平位數(shù)從0變化到255,測(cè)量濾波之后的輸出直流電壓。可以看到隨著位數(shù)的增加,輸出直流電壓線性上升。由于串口發(fā)送字節(jié)存在著起始位和停止位,所以對(duì)應(yīng)的直流信號(hào)不是從零開始,最高電平也不是輸出信號(hào)的最高值。

▲ 圖1.3.1 設(shè)置32字節(jié)中高電平位數(shù)與濾波之后的直流電壓

??設(shè)置輸出DMA中的32個(gè)字節(jié)的 1 的位數(shù)按照正弦波變化,串口信號(hào)濾波之后輸出完美的正弦波形。設(shè)置輸出數(shù)據(jù)遞增,濾波后的波形呈現(xiàn)鋸齒波形。在下降沿出現(xiàn)緩變,這是因?yàn)檩敵鯮C低通濾波引起的。這是輸出高低電平的情況,RC低通濾波在上升和下降沿都引起緩變。

※ 總??結(jié) ※

本文測(cè)試了利用單片機(jī)串口輸出PWM波形,然后通過(guò)低通濾波形成直流電壓。利用這種方式,的確可以在特殊的情況下,給單片機(jī)產(chǎn)生一個(gè)DAC的端口。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
ASEMB-25.000MHZ-XY-T 1 Abracon Corporation MEMS OSC XO 25.0000MHZ CMOS SMD

ECAD模型

下載ECAD模型
$2.22 查看
KSZ8721BL 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, PQFP48

ECAD模型

下載ECAD模型
$4.59 查看
FTLF8524P2BNV 1 Finisar Corporation Transceiver, 830nm Min, 860nm Max, 4250Mbps(Tx), 4250Mbps(Rx), LC Connector, Panel Mount, ROHS COMPLIANT PACKAGE
$301.6 查看

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

公眾號(hào)TsinghuaJoking主筆。清華大學(xué)自動(dòng)化系教師,研究興趣范圍包括自動(dòng)控制、智能信息處理、嵌入式電子系統(tǒng)等。全國(guó)大學(xué)生智能汽車競(jìng)賽秘書處主任,技術(shù)組組長(zhǎng),網(wǎng)稱“卓大大”。