首页/文章/ 详情

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

1年前浏览188

问题:

该问题由某客户提出,发生在 STM32L100RBT6 器件上。据其工程师讲述:在使用 STM32L100 的 DAC1时,为了能够输出满量程,客户工程师将 DAC 的 Output Buffer 关闭,当 DAC 的输出值为 0x000 时,可以正常输出 0V,但是当 DAC 的输出值为 0xFFF 时,输出电压却只有 0.67V。客户工程师甚是不解。


调研:

使用 STM32L-Discovery(板载 STM32L152RBT6)对客户的问题进行确认。客户使用 DAC1,检查 DAC1 所对应的 PA4 在 STM32L-Discovery 中的使用情况,发现其用于驱动 LCD,于是将 LCD 拆下。撰写一个最基本的单通道 DAC1 的电压输出程序,使用万用表对其进行测量,得到以下结果:



   STM32L152RBT6 为 64pin 的封装,在其数据手册我们可以看到:对于 64pin 以及更少管脚的封装中,芯片没有 Vref+和 Vref-两个引脚,Vref+在内部连接到 VDDA,而 Vref-在内部连接到 VSSA。所以,VDDA即为STM32L152RBT6 的 DAC 参考电压,测量其值得到 2.996V。

   从数据表格,我们可以看出,当打开 Output Buffer 的时候,电压数据完全正常,但是关闭了 Output Buffer 之后,电压输出不正常了,达不到满量程。或许在电路上还有疏漏的地方。再重新仔细查看STM32L-Discovery 的电路图,发现 PA4 还肩负着另一个重任——测量 Idd。检查电路,PA4 与 Idd 的测量电路使用 SB2 进行连接,所以必须把 SB2 断开,使其彻底悬空。

   将 STM32L-Discovery 板子上的 SB2 断开,在 Output Buffer 关闭的情况下,再次测量,发现可以满量程输出了。

   所以对于所以对于客户所遇到的情况,对其板子上的 DAC 是否带着负载表示怀疑。拜访时与客户软件工程师和硬件工程师沟通,发现客户软件工程师在项目中使用了 DAC1,而 DAC1 所连接的 PA4 在外部电路中接着三极管驱动继电器的电路,故其输出电压不正常。其硬件工程师说 PA4 并不是悬空的,是作为普通 I/O 口使用,而 DAC2 对应的 PA5 才是悬空的。于是软件工程师修改其程序,使用 DAC2,DAC 终于工作正常了。


结论:
  

 软件工程师与硬件工程师沟通不畅,导致软件工程师错误地使用了 DAC,DAC 上面有较小负载,导致DAC 无法 正常输出电压。
   

处理:
   

使用正确的 DAC 外设,并注意 DAC 所驱动的负载情况。
   

建议:


1. 在使用 STM32 的 DAC 时,需要对输出负载进行评估。
2. 我们看一下不使用与使用 Output Buffer 驱动的负载的对比图:
   


可以看到,当不使用 Output Buffer 时,由于其驱动能力较弱,外部所驱动的负载必须要大于等于1.5Mohm,当用户的 DAC 电路中,DAC 所使用的引脚直接驱动一个较小的负载时,其电压输出值就可能会比期望的值低。而使用 Output Buffer 的情况下,由于增加了驱动能力,所以外部所驱动的负载只需要大于等于 5Kohm 即可。
3. Output Buffer 虽然可以在不使用外部运放的情况下直接驱动外部负载,但是其并非轨对轨输出,需注意。
4. 若是用户需要满量程地输出电压,建议将 Output Buffer 关闭,在外部使用一个轨对轨的运放接成电压跟随器电路进行驱动即可。
5. 另外,现在的项目系统越来越复杂,软件工程师和硬件工程师的分工也越来越明确,但是还是需要一个有效的沟通方式,比如,硬件工程师在设计好电压图之后,可以建立一张 Excel 表格用来描述各个 I/O 口的使用情况,转交给软件工程师使用。

转自:ST中文论坛



来源:EEDesign
电路芯片
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-07-17
最近编辑:1年前
EE小新
硕士 签名征集中
获赞 91粉丝 122文章 817课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈