365bet手机网址是多少-正规365彩票平台app下载-365bet游戏开户

【经验分享】DAC 无法输出 0V 的问题分析与解决

问题: 该问题由某客户提出,发生在 STM32F100R8T6 器件上。据其工程师讲述:在使用 STM32F100 的 DAC时,不管如何设置输出的值,最低只能输出到 63

【经验分享】DAC 无法输出 0V 的问题分析与解决

问题:

该问题由某客户提出,发生在 STM32F100R8T6 器件上。据其工程师讲述:在使用 STM32F100 的 DAC时,不管如何设置输出的值,最低只能输出到 63mV,无法输出 0V,而 63mV 的电压经过他的放大电路,对产品的性能产生较大的影响。故其工程师询问是否有办法可以输出 0V?

调研:

经过对 DAC 的输出口 PA4 进行测量,发现将 DAC 的输出值设置为 0x000 的时候,电压输出确实在63mV。检查客户的程序,可以看到客户对 DAC 的配置如下:

DAC_InitStructure.DAC_Trigger = DAC_Trigger_None;

DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;

DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bits8_0;

DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;

DAC_Init(DAC_Channel_1, &DAC_InitStructure);

将 DAC 配置程序修改为:

DAC_InitStructure.DAC_Trigger = DAC_Trigger_None;

DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;

DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bits8_0;

DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;

DAC_Init(DAC_Channel_1, &DAC_InitStructure);

修改后编译,测试:对 PA4 的电压进行测量,发现可以输出 0V 了。所以问题就是在于使能了 OutputBuffer。

我们来看一下参考手册是如何描述 Output Buffer 的:

ND`ZI_)@YFAPVB40Z8$JU[A.png (70.62 KB, 下载次数: 26)

下载附件

保存到相册

2022-2-22 20:41 上传

可以看出,在 STM32F100 的 DAC 中,内嵌了两个 Output Buffer,其作用是减小输出阻抗,可以在不使用外部运放的情况下就可以直接驱动外部负载。可以通过 DAC_CR 寄存器的 BOFFx 位来使能或禁止Output Buffer。

再来看数据手册的描述:

9%OXZ]`$RG((LJ`ZE8BM)HB.png (78.29 KB, 下载次数: 34)

下载附件

保存到相册

2022-2-22 20:41 上传

可以看到 Output Buffer 的位置,当其被禁止时,直接被旁路掉。

再继续从数据手册里看一下 DAC 外设电气特性里关于 Buffer 的相关参数,我们可以看到:

~M$NXM`FHXN6K[JUP6W@}DG.png (101.29 KB, 下载次数: 23)

下载附件

保存到相册

2022-2-22 20:41 上传

这个表告诉我们,当 Output Buffer 被禁止,输出电压最低电压典型值在 0.5mV,输出最高电压最大值为(VREF+-1LSB)V。当 Output Buffer 被使能,能保证的的输出最低电压为 0.2V,输出最高电压为 VDDA0.2V。所以,Output Buffer 并不是轨对轨的输出驱动器,无法输出 0V。再来看一下它的注释:当 VREF+为 3.6V,其响应范围从 0x0E0 到 0xF1C 的 12 位输出值;当 VREF+为 2.4V,其响应范围从 0x155 到 0xEAB的 12 位输出值。也就是说,当 VREF+为 3.6V,DAC 的输出电压范围大约为 0.197V~3.4V;当 VREF+为2.4V,DAC 的输出电压范围大约为 0.2V~2.212V。当然,这只是能保证的数据,并不是说使能了 OutputBuffer,最低输出电压就一定是 0.2V,只是在应用中,应该以从 0.2V 到 VDDA-0.2V 这个范围来进行设计。STM32F100 在使能 Output Buffer 后,其最低输出电压为 63mV 属于正常现象。

结论:

由于打开了 DAC 的 Output Buffer,导致了 DAC 无法输出 0V。

处理:

禁止 DAC 的 Output Buffer 即可,也就是在配置中将 DAC_InitStructure.DAC_OutputBuffer 一项设置成DAC_OutputBuffer_Disable。

建议:

客户的实际应用中,如果对于 DAC 的输出电压范围的要求在于 0.2V~VDDA-0.2V 的范围之内,可以直接使用 DAC 的 Output Buffer,将 Output Buffer 使能。如果对于 DAC 的输出电压范围超出 0.2V~VDDA-0.2V或者需要轨对轨输出,那么建议禁止 Output Buffer,并在外部使用合适的运放器件增强其输出能力。

← 上一篇: 净值型理财产品是什么意思?看懂这三个数字,你就入门了净值型理财
下一篇: dnf镶嵌徽章获取方法 →

相关推荐

最好听的十首送别歌曲 十大经典离别歌曲 适合送别祝福的歌曲→买购APP
我的世界村民交易表
瑞幸咖啡店长怎么晋升(瑞幸咖啡店长晋升区域经理)
舌尖上的隰县,在大街上看见你就迈不开腿…
国内外数据库一般要多久才会更新一次呢?
SNIS-623 - 重新编写的句子:RION拥有美丽的乳房。
fgo各国英灵数量排行 哪个国家英灵最多
深度解析:Windows与Mac系统全面对比,谁才是你的最佳选择?
王者荣耀兰陵王最强玩法教学 兰陵王怎么玩厉害
女乒世界杯朱雨玲4-3胜刘诗雯 职业生涯首夺世界杯单打冠军
泊客·行者Blomberg简介
有智慧的人不靠年齡,而靠練習!5個方法在人生中淬鍊,讓你越活越有價值