本文以開發板NUCLEO-U031RB為例實現DAC經過內部運放作為跟隨器的輸出案例。當然不僅限於STM32U0系列MCU,任何帶有DAC和內部運放的MCU均可實現該功能。
DAC是將數字量轉換為模擬量(電壓信號)輸出的一種方式,通常DAC輸出有以下幾個問題。
1.驅動能力弱,遇到外部稍大的負載則會出現驅動響應遲滯
2. 輸出波形有時會受到VDDA/VSSA電源甚至是ADC採樣影響,使波形帶有毛刺、尖峰等現象
而將一個運放作為跟隨器,DAC通過跟隨器輸出,無論在驅動能力、阻抗匹配和波形上,都有改善。恰好,STM32U0系列內部集成了一個Operational amplifier(1.6MHz,85dB),可以用作跟隨器。

下面簡要描述cubeMX如何配置DAC從amplifier輸出
1. NUCLEO-U031RB板上短接SB45電阻,並確認SB8電阻是否脫開,即確保PA3引腳是輸出到插針上的,原理圖如下

2. 使能DAC輸出模式:和正常使用一樣自行配置DAC參數,同時使能DAC外部引腳輸出和內部輸出到OPAMP1

3. 使能運放OPAMP1為跟隨模式,使INP引腳與DAC_OUT1內部鏈接使能

此時PA3和PA4引腳都被點亮,PA4為正常DAC輸出(DAC1_OUT1),PA3為DAC通過運放輸出(OPAMP1_VOUT)

4. 其它功能配置好後,生成代碼,在程序中使能運放,再使能DAC

5. DAC數據寄存器輸入您希望輸出的波形數組,DAC就可以通過PA3(通過跟隨器)和PA4(DAC直接輸出)輸出了。此時可以用示波器測量並比較它們的波形,觀測其紋波、驅動能力是否有所不同。
評論