打印

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

[复制链接]
13006|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 | 只看该作者

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

有意思的经验。

使用特权

评论回复
5
Swd21ic| | 2009-1-28 10:47 | 只看该作者

DAC

开buffer后的有上下200mV的非线性..其他感觉还可以

使用特权

评论回复
6
E精灵小店| | 2009-1-31 23:42 | 只看该作者

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

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

使用特权

评论回复
7
ijk| | 2009-2-2 11:20 | 只看该作者

STM32的DAC

  STM32的DAC,印象里是(在没有开buffer时)电阻式的,所以按理说输出电压应该是单调的。我没有实测过,上面说“开buffer后的有上下200mV的非线性”,这种情况或许是有的。

使用特权

评论回复
8
lpcmcu| | 2009-2-8 22:47 | 只看该作者

倒是说说测试后效果啊。

使用特权

评论回复
9
mcu520| | 2011-1-8 14:08 | 只看该作者
这个后来怎么处理呢?

使用特权

评论回复
10
mcu520| | 2011-1-8 14:09 | 只看该作者
我用万用表测试,怎么在0.002递增,多次转换的时候,就用两个值一直在那里循环跑?

使用特权

评论回复
11
午夜霓虹| | 2011-1-8 19:12 | 只看该作者
呵呵,这个我还真的用过,没有开缓冲,效果还不错的,而且都没用基准,直接接到的电源,呵呵。

使用特权

评论回复
12
午夜霓虹| | 2011-1-8 19:14 | 只看该作者
有些问题大部分是自身的问题,或者不太了解CPU的组成造成的,他的DA在用内部的缓冲器的时候确实存在问题,据香主说也不是轨到轨的。

使用特权

评论回复
13
汉之云| | 2011-1-8 21:21 | 只看该作者
LM358 这种Vio mV级的东西去做DAC 的跟随是勉为其难了。

使用特权

评论回复
14
午夜霓虹| | 2011-1-8 22:32 | 只看该作者
确实是勉为其难。

使用特权

评论回复
15
mcu520| | 2011-1-9 19:02 | 只看该作者
我是开了缓冲,系统16MHZ,
为什么我要在开始初始化后,软件触发3次后,3次分别为不同值,才不再递增?

使用特权

评论回复
16
mcu520| | 2011-1-9 19:03 | 只看该作者
就是我把358拆掉,DAC空载的时候,也要这样处理,到底是为什么呢?

使用特权

评论回复
17
mcu520| | 2011-1-9 19:04 | 只看该作者
对了,用的双通道。

使用特权

评论回复
18
wgj_fly| | 2012-9-24 09:14 | 只看该作者
刚好作者部分的工作,有帮助

1# zhanghg2008

使用特权

评论回复
19
dwwzl302| | 2013-5-10 17:50 | 只看该作者
用万用表测量需要加缓冲器的哦!

使用特权

评论回复
20
cjhk| | 2013-5-10 18:42 | 只看该作者
我感觉STM的芯片的ADC采样模块还是很给力的   应该问题不大   呵呵   

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝