实测STM32的DAC 性能,让我有些失望(输出电压不是单调的)

[复制链接]
14872|22
 楼主| zhanghg2008 发表于 2009-1-27 11:36 | 显示全部楼层 |阅读模式
CPU是100脚封装,512K的STM32F103VET6, 有独立的参考电压管脚。
(1)参考电压接2.5V的参考稳压源(LM285-2.5)。
(2)DAC1输出串联1K电阻接LM358同相输入端.
 (3) 万用表是UT71B(4位半)。

直接测量CPU的DAC1管脚的电压, 测试结果如下:

寄存器    DAC1管脚电压V
0    0.0584
1    0.0583 
2    0.0598
3    0.0580 

4    0.0604
5    0.0594
6    0.0602
7    0.0578

8    0.0606
9    0.0602
10    0.0615
11    0.0593

12    0.0614 (异常值,测量了多次均如此)
13    0.0601
14    0.0605
15    0.0578

16    0.0607
17    0.0605
18    0.0621
19    0.0602

20    0.0626

2000    0.6608
2001    0.6618
2002    0.66
2003    0.6634
2004    0.6603
2005    0.6629

4090    1.4427
4091    1.4566
4092    1.4468
4093    1.4568
4094    1.4571
4095    1.4820

注:
(1)IO脚浮空状态也测量过,跟上面的值相差在1mV内, 但变大变小的规律是一样的.
(2)寄存器每递增4个值才能保证大部分输出是单调递增的,也就是说大部分情况只有10bit分辨率,但有一个异常值12, 0.0614v说明连10bit分辨率都达不到。

我的疑问: 
(1) 输出电压为何不是单调递增的?
(2) 当数据寄存器值等于 4095时,为何输出不是2.5V, 就算按手册的指标也应该有2.5-0.2v = 2.3V.

希望高人指点一下, 如果STM32的DAC的性能却是如此,那我们必须得加一个专业的12bitDAC芯片了. 


 楼主| zhanghg2008 发表于 2009-1-27 12:20 | 显示全部楼层

不好意思. 是板子的参考电压源有问题

上面的测试结果有问题,我的板子的参考电源源不正常(期望是2.5,实测1.4820).  等我修改好后再测。
 楼主| zhanghg2008 发表于 2009-1-27 12:38 | 显示全部楼层

参考电源电压不正确的原因

之前测量过参考电压是对的, 今天再测不正确, 原因是:
DAC的时钟关闭时,测量参考电压是2.499V
DAC的时钟打开时,测量参考电压是1.482V

解决办法: 减小LM285的串联电阻.
香水城 发表于 2009-1-27 17:46 | 显示全部楼层

改正以后的测试结果如何?

有意思的经验。
Swd21ic 发表于 2009-1-28 10:47 | 显示全部楼层

DAC

开buffer后的有上下200mV的非线性..其他感觉还可以
E精灵小店 发表于 2009-1-31 23:42 | 显示全部楼层

或者可以先把358部分的回路断开,测试一下?

既然直接测DAC的管脚,建议把358回路断开和接上分别测一组数据,对比一下结果看看?
另:358 用的多少V供电?
(我主要是想不通这个:“3楼: 参考电源电压不正确的原因。。。。。。。。。解决办法: 减小LM285的串联电阻.”)
ijk 发表于 2009-2-2 11:20 | 显示全部楼层

STM32的DAC

  STM32的DAC,印象里是(在没有开buffer时)电阻式的,所以按理说输出电压应该是单调的。我没有实测过,上面说“开buffer后的有上下200mV的非线性”,这种情况或许是有的。
lpcmcu 发表于 2009-2-8 22:47 | 显示全部楼层

倒是说说测试后效果啊。

mcu520 发表于 2011-1-8 14:08 | 显示全部楼层
这个后来怎么处理呢?
mcu520 发表于 2011-1-8 14:09 | 显示全部楼层
我用万用表测试,怎么在0.002递增,多次转换的时候,就用两个值一直在那里循环跑?
午夜霓虹 发表于 2011-1-8 19:12 | 显示全部楼层
呵呵,这个我还真的用过,没有开缓冲,效果还不错的,而且都没用基准,直接接到的电源,呵呵。
午夜霓虹 发表于 2011-1-8 19:14 | 显示全部楼层
有些问题大部分是自身的问题,或者不太了解CPU的组成造成的,他的DA在用内部的缓冲器的时候确实存在问题,据香主说也不是轨到轨的。
汉之云 发表于 2011-1-8 21:21 | 显示全部楼层
LM358 这种Vio mV级的东西去做DAC 的跟随是勉为其难了。
午夜霓虹 发表于 2011-1-8 22:32 | 显示全部楼层
确实是勉为其难。
mcu520 发表于 2011-1-9 19:02 | 显示全部楼层
我是开了缓冲,系统16MHZ,
为什么我要在开始初始化后,软件触发3次后,3次分别为不同值,才不再递增?
mcu520 发表于 2011-1-9 19:03 | 显示全部楼层
就是我把358拆掉,DAC空载的时候,也要这样处理,到底是为什么呢?
mcu520 发表于 2011-1-9 19:04 | 显示全部楼层
对了,用的双通道。
wgj_fly 发表于 2012-9-24 09:14 | 显示全部楼层
刚好作者部分的工作,有帮助

1# zhanghg2008
dwwzl302 发表于 2013-5-10 17:50 | 显示全部楼层
用万用表测量需要加缓冲器的哦!
cjhk 发表于 2013-5-10 18:42 | 显示全部楼层
我感觉STM的芯片的ADC采样模块还是很给力的   应该问题不大   呵呵   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部