本期我们就来介绍一下STM32G474RE中如何利用板载运算放大器放大不带偏置的交流信号(负电压)。9 T! n! c" e0 O" ~, k' v
首先根据STM32G474的芯片手册,其运算放大器具有非常多的功能,由许多的多路复用器进行选择。# J' h) Z7 N; \4 J, E
$ L/ \0 X. a, z! Q3 l+ z0 E 其部分运算放大器同向输入端可以连接至板载数模转换器,关于这两路DAC(STM32G474RE中总共有四个DAC)* Z0 _' l1 f, y( P3 X& Q2 G
可以看到DAC3和DAC4是没有直接的GPIO连接的,但是我们它可以连接至OPAMP的同相输入端,这使得我们可以通过OPAMP的跟随器(Follower)来将其输出。 + u0 _. G2 s/ t8 w$ e. M' ^* h
- t. ^2 M' I {0 n/ \5 X0 T 同样的,本期我们想要处理负输入端的信号我们也要用到OPAMP的同向输入端接入DAC的这个特性,我们使用DAC的输出作为一个偏置构成一个反向比例放大电路。 9 h9 K ^6 N3 u2 d$ P; S' F
具体的配置电路图在手册中说明了,其中的VINP留出(我们将其配置为连接到DAC),我们的信号从VINM(反相输入端)输入,其遵守以下的公式。
4 ~1 B. u9 v& G, j1 V5 W 所以我们的输出公式则是成为一个带直流偏置的反向比例放大器。8 {8 b1 d! ?" _ - _6 L2 s# G& P$ ?3 H 接着让我们来实际操作一遍。
1 m+ E; N* d, I8 W# R m4 } 首先我们打开DAC的通道输出,但是这里并没有直接的GPIO来测试是否正常。: F: v7 Z% q# Q) Q$ `9 t3 E
% a9 m6 s$ m& H- E 接着我们设置为PGA的反向放大,并且将同相输入端接入DAC的输出引脚。. S1 P5 P4 G4 C! z( g- h : q6 a. C: V% P; o 配置我们的工程其他内容。/ u t7 ~* b2 W2 V9 S' }: l+ a6 H
在工程中开启我们的运算放大器以及DAC,设置DAC的输出,这里我将DAC输出设置为1.665V,由于我们的反向输出端空置,因此此时电路的作用等价于跟随器。输出端输出电压为DAC电压。+ w0 z9 k& S0 m3 C8 x3 h' k5 [ 0 S' E& ]4 d- `3 L H/ [' J9 | 由于我们配置的放大倍数是2 or -1;放大倍数是-1即电阻Rf和R相等,因此Vout = 2 * Vd - Vin。所以我们配置DAC的输出电压为四分之一的参考电压,这样子让可以让Vout的偏置电压为参考电压的一半。 9 E7 R3 x: [* _( U 接着测试我们的运算放大器。! c/ [! O6 m/ B) g5 R ( g& n8 r% m* x, h F# q) U; e* F5 I! v
可以看到我们做到了一个带偏置的反相放大器,其放大倍数为1。 : c' w( r" q/ K6 F% x% R2 N( W. e 接着我们测试高放大倍数比例放大器。
我们将直流偏置调整为原来的三十二分之一,之后调整PGA放大倍数为16倍。0 \3 U4 r2 N/ C# g' [
可以看到,我们将一个峰峰值为100mv的信号放大-15倍,之后输出波形也非常的完美。 + A, O7 V$ T# A% E& U/ u# t" x( L 最后我们测试其最大的放大倍数。 # Z" f7 L& \! `% t% V. O' z1 i
: z, }7 C$ s/ s6 r; L
我们将一个峰峰值20mv的信号放大-63倍,这里由于示波器性能问题(我这个信号线也不是特别好)所以通道二的信号看起来很差,但是输出信号却非常的好。( a: d4 X& `7 I+ h, Z 转载自:电路小白 如有侵权请联系删除5 N0 T1 ^/ o8 I% g C) G. [. k & s4 D" ?! U: V- K- a 1 e k4 g" s+ G( C2 I& { |
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
OpenSTLinux 6.1发布:M33-TD加持+安全升级,STM32MPU开发效率翻倍!
【经验分享】STM32CubeIDE汉化
微信公众号
手机版