你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32上的板载运放经验分享

[复制链接]
攻城狮Melo 发布时间:2024-5-25 14:12
STM32G系列中有一系列板载运算放大器,例如STM32G473中存在着6个板载运算放大器。* _; _$ v: Y9 N4 T7 b& [3 |
" t) b6 [4 @# M+ L( [, s# l! y
微信图片_20240525141243.png 9 ~+ Y7 k+ t# K
+ z  u( o4 @8 i2 N3 ~" E* p
这些运算放大器具有非常多的功能,包括标准运算放大器,跟随器,程控增益放大器等等。
- F1 O; N4 n/ g' }9 i! c+ O! a  g
. W& n' g; S2 Z- Y/ @% h9 O
微信图片_20240525141240.png ' b* k& d8 q5 a( a$ w
7 S' m$ [* O, ~6 o6 v
# e$ p2 A, a- Y  h. N" @
微信图片_20240525141237.png / o9 ]5 G* j# I; G
- h: v) Q4 {! K/ @3 k1 F# D8 e
其会有三个IO配置成正输入端、负输入端以及输出。
  c' k8 g; P  R  Z
7 n* d" O7 ?7 s+ L, d% w* w
同样的,这里的输出IO可以配置成ADC的采样通道。" a2 f* ^* F7 Y( Q  j# B: a

2 ~6 B+ [6 p2 o( N 微信图片_20240525141233.png
$ r7 u6 |, }2 n) R- ?" ^
$ N6 N5 Z. P+ Y4 s( [
这样子我们就不需要单独的线连接到ADC引脚上。& ?& X6 |3 \1 w$ q

" _  l' q/ U4 U9 b
如果我们想利用其放大的功能的话,我们可以选择板载PGA(可编程增益放大器)可编程增益放大器的使用场景非常广泛,我们可以测量输出波形来调节放大倍数。" \; \' F+ d7 I  i

/ I, Z9 m9 k  m 微信图片_20240525141215.png 6 d+ U0 o2 G2 Q; D5 e
3 P4 f: b7 [, l4 k7 i) u8 u
1.png 5 l+ {  \/ i1 X/ W

$ c3 F" Q6 ~4 O, h$ a我们调节OPAMP的放大倍数为16倍,将输入端连至信号发生器。. ?# K8 v8 h& C  p9 j

- H) a0 d0 N' F2 |
  1. HAL_OPAMP_Start(&hopamp1);
复制代码
3 m8 _* m$ `8 C- y5 n
开启运算放大器。
3 P3 D6 Y9 g  P. ]1 H6 L3 c1 M) G+ W" q/ _8 n4 L5 k7 s
微信图片_20240525141212.jpg 0 d) ?' o: x) @8 R/ `

  K& r! h4 M8 C, j& {# r4 I; u 微信图片_20240525141206.jpg 9 d; e' r, [: h: u0 K+ y+ P4 E

! J6 A! [5 q/ L3 ?& K 微信图片_20240525141203.png / P$ {5 L7 @7 G( i% u# h6 D$ i! ]

$ j; H- w  m0 m0 Y& D6 M" z, C3 e在2MHZ的信号下依旧保持着波形,在高频信号下由于阻抗匹配的问题会导致信号衰减,但是可以知道它的压摆率已经足够了。; _% y7 E7 N+ @- B' [4 n

  m4 O7 L: }( \- a
根据官方的手册介绍,其板载运算放大器的压摆率为45V/us,增益带宽积为13MHZ,完全可以满足我们的高速运放需求。3 F* Z, C9 H& f: S; [3 t1 x' T& h3 x

2 s9 k( t- u% f. J& a
并且其内部有着许多配置,例如上述所介绍的PGA程控增益放大器,当然我们也可以在使用的过程中通过修改PGA的参数来修改PGA的放大倍数。- P) b( D8 z$ |+ b

  A0 U8 E& V3 `5 h
  1. void MX_OPAMP3_Init(void)
    7 x* ?* b, f" ?3 Q4 G
  2. {
    " B5 @1 c+ R& b$ `9 f1 N

  3. / i. e  C/ N9 k
  4. ; H1 P, u% o' j
  5.   /* USER CODE BEGIN OPAMP3_Init 0 */
    $ h8 q9 B5 D! s9 J7 [
  6. % ]$ x1 x, F9 r0 [6 Q2 [* }
  7. ! U3 p( B9 F2 o4 c' D( Z
  8.   /* USER CODE END OPAMP3_Init 0 */
    0 r  r# \+ ^! ?! @8 G) ]- g  X
  9. 6 J9 r& z1 E3 \+ X% F

  10. 5 b8 b0 Y' w: `5 k- j: J! E5 t
  11.   /* USER CODE BEGIN OPAMP3_Init 1 */5 q' K. O: I1 F2 J9 `6 S

  12. 1 \! m& J: X! z2 \; W

  13. + r# C3 Q3 d! G1 G( o8 |
  14.   /* USER CODE END OPAMP3_Init 1 */, M$ n/ N! f( r
  15.   hopamp3.Instance = OPAMP3;% }( y* ^% ~# ^& _, f: J
  16.   hopamp3.Init.PowerMode = OPAMP_POWERMODE_NORMAL;
    ! ~5 F4 k- D  H
  17.   hopamp3.Init.Mode = OPAMP_PGA_MODE;
    ' F' R# }5 N% ?' s' ^( e! c, A
  18.   hopamp3.Init.NonInvertingInput = OPAMP_NONINVERTINGINPUT_IO2;. E/ D# n( l9 y1 z' K
  19.   hopamp3.Init.InternalOutput = DISABLE;
    3 h6 U# Y  R5 V7 c2 C4 I
  20.   hopamp3.Init.TimerControlledMuxmode = OPAMP_TIMERCONTROLLEDMUXMODE_DISABLE;
    ( T  o7 B2 u6 \0 N! d2 }
  21.   hopamp3.Init.PgaConnect = OPAMP_PGA_CONNECT_INVERTINGINPUT_NO;
    3 k% `3 `/ T, l! Z4 v1 C
  22.   hopamp3.Init.PgaGain = OPAMP_PGA_GAIN_2_OR_MINUS_1;0 L2 f0 E2 r+ c* _6 X0 Z% J: b
  23.   hopamp3.Init.UserTrimming = OPAMP_TRIMMING_FACTORY;
    9 g, n0 h# ~4 [4 q7 |+ i$ o
  24.   if (HAL_OPAMP_Init(&hopamp3) != HAL_OK)
    3 J& H+ R) V- Z8 z3 B
  25.   {/ G4 C7 N5 K- O+ b
  26.     Error_Handler();
    - C1 g* l& s+ u" p/ B& i
  27.   }: ~) x. b& C# u+ A
  28.   /* USER CODE BEGIN OPAMP3_Init 2 */9 c2 [4 \8 _9 ~3 K3 [

  29. - g  b/ W, S& |7 t/ O7 I

  30. 6 G+ r& |3 \9 k) @
  31.   /* USER CODE END OPAMP3_Init 2 */; |( B- k- O. h2 X+ a0 y) b

  32. # |  |, d* U( Y& g
  33. + C0 k" ^& E6 U
  34. }
复制代码
. e$ }) P0 t3 k5 H5 t. i. b. e; b
我们利用OPAMP初始化的方式来重新初始化OPAMP则可以修改PGA的放大倍数。
6 _4 r3 a* V' K0 C4 g( w1 ^
! N2 x$ B$ E3 T) @2 ?
(以下段落本人考证补全后面验证)不过板载运放虽然方便,不过也是有非常多的缺陷的,首当其冲的便是其工作范围。STM32板载运放通常被设计为单电源供电,这意味着它们的工作范围受到了严格的限制。典型情况下,这些运放能够工作在供电电压范围内,例如从0V到3.3V或5V。然而,这也意味着它们无法直接处理负电源或超出供电电压范围的信号。这样的限制可能对需要处理交流信号或需要高动态范围的应用带来挑战。在这些情况下,外部运放通常更适合,因为它们可以灵活地适应各种供电电压和信号范围。因此,在选择运放时,需要仔细评估应用需求,并权衡板载运放的便利性与其工作范围限制带来的影响。  H: p  ^' [1 C: M! L
1 C( _9 w# F' K8 k6 Q) q) v
但是合理的利用板载运放可以方便我们的电路节省适当电路。
! D( P. V9 r# |. o4 G- E9 N& |
" x$ k6 a! \8 U8 C
0 z0 P. e9 l/ u! U! X6 T: H) d9 F5 N
转载自:电路小白
7 g7 l0 P& K- s0 o2 U如有侵权请联系删除
/ M& Y) m2 Z8 u4 J( ~; @
  |: M8 S+ L' |! k9 f- I! k
! v9 Q1 a0 [4 W/ [- Y1 Q! E

* g: J" b3 L0 K/ l$ O  A8 n, U/ O, p+ J4 p# ]* a# F5 K& w
收藏 评论0 发布时间:2024-5-25 14:12

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版