
问题: m( t1 s/ \; ]' c3 { 该问题由某客户提出,发生在 STM32L100RBT6 器件上。据其工程师讲述:在使用 STM32L100 的 DAC1时,为了能够输出满量程,客户工程师将 DAC 的 Output Buffer 关闭,当 DAC 的输出值为 0x000 时,可以正常输出 0V,但是当 DAC 的输出值为 0xFFF 时,输出电压却只有 0.67V。客户工程师甚是不解。& S% z3 A- Z4 L 调研: 使用 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 断开,使其彻底悬空。$ C9 J" J0 u6 k, `/ I, v + d& Q3 B5 K) f$ v4 l( U& Z: O* V7 g# } 将 STM32L-Discovery 板子上的 SB2 断开,在 Output Buffer 关闭的情况下,再次测量,发现可以满量程输出了。 [( ]. I2 z0 a; F 所以对于所以对于客户所遇到的情况,对其板子上的 DAC 是否带着负载表示怀疑。拜访时与客户软件工程师和硬件工程师沟通,发现客户软件工程师在项目中使用了 DAC1,而 DAC1 所连接的 PA4 在外部电路中接着三极管驱动继电器的电路,故其输出电压不正常。其硬件工程师说 PA4 并不是悬空的,是作为普通 I/O 口使用,而 DAC2 对应的 PA5 才是悬空的。于是软件工程师修改其程序,使用 DAC2,DAC 终于工作正常了。 结论: 软件工程师与硬件工程师沟通不畅,导致软件工程师错误地使用了 DAC,DAC 上面有较小负载,导致DAC 无法正常输出电压。 % 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 驱动的负载的对比图: 8 M/ J P6 d' s' N ![]() 可以看到,当不使用 Output Buffer 时,由于其驱动能力较弱,外部所驱动的负载必须要大于等于1.5Mohm,当用户的 DAC 电路中,DAC 所使用的引脚直接驱动一个较小的负载时,其电压输出值就可能会比期望的值低。而使用 Output Buffer 的情况下,由于增加了驱动能力,所以外部所驱动的负载只需要大于等于 5Kohm 即可。 3. 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 |
实战经验 | Keil工程使用NEAI库的异常问题
STM32 ISP IQTune:真正零门槛的免费ISP调整软件
【经验分享】STM32 新建基于STM32F40x 固件库的MDK5 工程
意法半导体MCU双供应链策略,打消中国客户后顾之忧
【经验分享】基于STM32使用HAL库实现USB组合设备CDC+MSC
2024意法半导体工业峰会:赋能智能电源和智能工业,构筑可持续未来
ST推出灵活、面向未来的智能电表通信解决方案,助力能源转型
意法半导体 x Qu-Bit Electronix:推动新一轮的数字声音合成革命
从STM32 MPU产品看嵌入式系统中微处理器的新变化
【Hot!】STM32全系列开发板都支持Arduino开发,你知道吗?