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

【经验分享】DAC 无法输出满量程电压的分析解决

[复制链接]
STMCU小助手 发布时间:2022-2-22 20:44
问题:  m( t1 s/ \; ]' c3 {
该问题由某客户提出,发生在 STM32L100RBT6 器件上。据其工程师讲述:在使用 STM32L100 的 DAC1时,为了能够输出满量程,客户工程师将 DAC 的 Output Buffer 关闭,当 DAC 的输出值为 0x000 时,可以正常输出 0V,但是当 DAC 的输出值为 0xFFF 时,输出电压却只有 0.67V。客户工程师甚是不解。& S% z3 A- Z4 L

4 q; j# h3 y, h4 v; f5 p调研:
8 _0 b# F7 ~& I0 V使用 STM32L-Discovery(板载 STM32L152RBT6)对客户的问题进行确认。客户使用 DAC1,检查 DAC1 所对应的 PA4 在 STM32L-Discovery 中的使用情况,发现其用于驱动 LCD,于是将 LCD 拆下。撰写一个最基本的单通道 DAC1 的电压输出程序,使用万用表对其进行测量,得到以下结果:
, U, M) A: `5 x# f: d2 A5 }6 `
8 v( P& j. s1 A" {9 t LVKJ4(VOG3)}C${B2QVXD.png
. y* J( H5 L* [. I. R: ?) ]/ J
1 b3 S6 P0 h. m9 ]) f  w; r0 t   STM32L152RBT6 为 64pin 的封装,在其数据手册我们可以看到:对于 64pin 以及更少管脚的封装中,芯片没有 Vref+和 Vref-两个引脚,Vref+在内部连接到 VDDA,而 Vref-在内部连接到 VSSA。所以,VDDA即为STM32L152RBT6 的 DAC 参考电压,测量其值得到 2.996V。
8 l2 T' F3 ^5 r9 G, w3 y
4 \. L) F" {: w6 U4 j8 @' |7 W   从数据表格,我们可以看出,当打开 Output Buffer 的时候,电压数据完全正常,但是关闭了 Output Buffer 之后,电压输出不正常了,达不到满量程。或许在电路上还有疏漏的地方。再重新仔细查看STM32L-Discovery 的电路图,发现 PA4 还肩负着另一个重任——测量 Idd。检查电路,PA4 与 Idd 的测量电路使用 SB2 进行连接,所以必须把 SB2 断开,使其彻底悬空。$ C9 J" J0 u6 k, `/ I, v
+ d& Q3 B5 K) f$ v4 l( U& Z: O* V7 g# }
   将 STM32L-Discovery 板子上的 SB2 断开,在 Output Buffer 关闭的情况下,再次测量,发现可以满量程输出了。
1 a  D1 G, g- Z! A9 b( x  [( ]. I2 z0 a; F
   所以对于所以对于客户所遇到的情况,对其板子上的 DAC 是否带着负载表示怀疑。拜访时与客户软件工程师和硬件工程师沟通,发现客户软件工程师在项目中使用了 DAC1,而 DAC1 所连接的 PA4 在外部电路中接着三极管驱动继电器的电路,故其输出电压不正常。其硬件工程师说 PA4 并不是悬空的,是作为普通 I/O 口使用,而 DAC2 对应的 PA5 才是悬空的。于是软件工程师修改其程序,使用 DAC2,DAC 终于工作正常了。
+ y5 A9 x# u* y3 k   
  X2 `  g0 v2 q
0 K, M2 a: R( n' P! Z- ^" A结论:
9 `* q# m: ]- `0 n" W+ o% J   软件工程师与硬件工程师沟通不畅,导致软件工程师错误地使用了 DAC,DAC 上面有较小负载,导致DAC 无法正常输出电压。
6 m1 m8 [3 C; P9 t3 X* }' f. a9 A   % E" e! @2 `( p& Q5 z6 v, ]
处理:- m1 ~; [" ?8 ~# I2 q* ~
   使用正确的 DAC 外设,并注意 DAC 所驱动的负载情况。! y) ^  g' D( q1 e" N# e# A3 ?9 E
   8 q$ n6 F, W" f2 \( G2 l
建议:- O1 `; q  x" ^; a" O
1. 在使用 STM32 的 DAC 时,需要对输出负载进行评估。  v. f+ Y" D3 P8 g% G3 B4 }* t
2. 我们看一下不使用与使用 Output Buffer 驱动的负载的对比图:
6 `. J; ?6 _0 C: R0 T   8 M/ J  P6 d' s' N
UI6)AB{4V`KJVVC`5C0]Z_6.png 0 Y! V" U( M  P" ?% K

( @$ ?7 s1 z2 W' ]- i可以看到,当不使用 Output Buffer 时,由于其驱动能力较弱,外部所驱动的负载必须要大于等于1.5Mohm,当用户的 DAC 电路中,DAC 所使用的引脚直接驱动一个较小的负载时,其电压输出值就可能会比期望的值低。而使用 Output Buffer 的情况下,由于增加了驱动能力,所以外部所驱动的负载只需要大于等于 5Kohm 即可。
& `9 K( d7 L7 Q- l3. Output Buffer 虽然可以在不使用外部运放的情况下直接驱动外部负载,但是其并非轨对轨输出,需注意。% F* n" a9 h' {' r7 K: O8 z% a
4. 若是用户需要满量程地输出电压,建议将 Output Buffer 关闭,在外部使用一个轨对轨的运放接成电压跟随器电路进行驱动即可。- o4 d0 ?6 i1 b* M3 x# \
5. 另外,现在的项目系统越来越复杂,软件工程师和硬件工程师的分工也越来越明确,但是还是需要一个有效的沟通方式,比如,硬件工程师在设计好电压图之后,可以建立一张 Excel 表格用来描述各个 I/O 口的使用情况,转交给软件工程师使用。  G4 [$ K* Z$ Y+ E$ h
% K) {& e3 a6 E: ?4 \& `! s7 w+ K$ P0 N
收藏 评论0 发布时间:2022-2-22 20:44

举报

0个回答

所属标签

相似分享

官网相关资源

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