打印
[51单片机]

请教:AD558应用中一个非常怪异的问题

[复制链接]
楼主: wf.yang
手机看帖
扫描二维码
随时随地手机跟帖
21
本帖最后由 ayb_ice 于 2013-11-28 09:45 编辑

你的ADC脉冲信号也不正常,其实一直是0,也可以用
但整个电路一团乱,一团糟

你这个电路配程序,什么时候都不正常,正常都是运气而已

使用特权

评论回复
22
wf.yang|  楼主 | 2013-11-28 09:47 | 只看该作者
现在只为调通DA,PSW没有影响。

甚至,连T0我都终止了。本来T0是用来支持AD0809的。

使用特权

评论回复
23
wf.yang|  楼主 | 2013-11-28 09:48 | 只看该作者
这块板,AD0809已经调通了,用的是同一块板。

使用特权

评论回复
24
wf.yang|  楼主 | 2013-11-28 09:52 | 只看该作者
PSW没关系。现在只为调通AD558。

本来定时器T0用来支持AD0809的,AD0809已经调通(用的同一块电路板),就把T0关闭了。



使用特权

评论回复
25
wf.yang|  楼主 | 2013-11-28 09:54 | 只看该作者
不是呀,P2发送11111xxx时,CE就是高电平呀。我用万用表也测过了。

使用特权

评论回复
26
wf.yang|  楼主 | 2013-11-28 09:56 | 只看该作者
只有发送11110xxx时,CE为低电平

使用特权

评论回复
27
wf.yang|  楼主 | 2013-11-28 10:03 | 只看该作者
我反复试过多次,这个结果是唯一出现的,还没有其它例外。偶然碰好的可能性,还不是很大。

用0~255的连续数据产生锯齿波时,CE脉冲用示波器也观察到了,与程序规定的频率相符。

并且,产生锯齿波的异常,与单个数据输入时的异常,情况完全一样。

使用特权

评论回复
28
wf.yang|  楼主 | 2013-11-28 10:10 | 只看该作者
本帖最后由 wf.yang 于 2013-11-28 10:12 编辑

在”技术交流“里,大前门前辈给我这样说的:

具体情况不太了解,DAC/ADC内部基准源或相关电路在一定时刻的波动可能会造成missing code,基本上就是你遇到的现象。
我觉得可以试试在VCC上多加一些去耦,在CS,CE等数据线上串联电阻以减缓上升下降沿和过冲,还可以试试改变数据传输锁定等的时序。


我再试试吧,实在不行,再试试其它批次的片子。

使用特权

评论回复
29
ddb_21ic| | 2013-11-28 10:45 | 只看该作者
与我当年的一个错误类似,我是把有符号和无符号的数据混在一起了,错怪了TI的DAC...

使用特权

评论回复
30
icecut| | 2013-11-28 16:09 | 只看该作者
wf.yang 发表于 2013-11-28 10:10
在”技术交流“里,大前门前辈给我这样说的:

具体情况不太了解,DAC/ADC内部基准源或相关电路在一定时刻 ...

高手就是多啊....

基准源能被干扰到丢数....
就服了...

使用特权

评论回复
31
it_yrj| | 2013-11-28 21:35 | 只看该作者
ADI的芯片应该没问题,还是代码的原因大些

使用特权

评论回复
32
wf.yang|  楼主 | 2013-11-28 22:12 | 只看该作者
本帖最后由 wf.yang 于 2013-11-28 22:14 编辑

谢谢各位了。我明天再做实验。没想到这么一个地方卡住了。


使用特权

评论回复
33
戈卫东| | 2013-11-28 22:24 | 只看该作者
P0口IO模式没有上拉,BUS模式有上拉.
如果你是IO模式,必须接上拉电阻.
当你给出数据和控制信号时,如果输出1,又没有上拉电阻,那么DAC接收到的信号取决于分布电容的偶合.
4,8,16,32,64,128这些组合有个特点就是数据线中只有一条是1,其它都是0,而0是强下拉,它可能抑制了偶合到"1"的电荷,造成它无法被"干扰"成1,于是也就成了0.
至于0.02V的输出,可能是其它原因形成的误差.

使用特权

评论回复
评论
wf.yang 2013-11-29 10:05 回复TA
切中要害! 
评分
参与人数 1威望 +4 收起 理由
wf.yang + 4 很给力!
34
戈卫东| | 2013-11-28 22:27 | 只看该作者
因为这些器件都是TTL电平兼容的MOS输入,在噪音环境下读到1的机会要多于0,所以浮空的输入更多时候会读到1. 只有比较特殊的时候才会总读到0,比如有7条线是强下拉,只有一条线是浮空这种情况.

使用特权

评论回复
35
大前门| | 2013-11-29 08:36 | 只看该作者
icecut 发表于 2013-11-28 16:09
高手就是多啊....

基准源能被干扰到丢数....

这个问题。。。确实有。并不是数据没有锁存到寄存器里,而是转换期间基准源的波动。曾经,为了争取到订单,STMicro在法国的mcu研发项目PM亲自来处理这个问题,还好,最后问题解决了,我们用了他们的器件。

使用特权

评论回复
36
wf.yang|  楼主 | 2013-11-29 08:49 | 只看该作者
今天早点儿起来,特意答谢各位老师!我的一个小问题,这么多先辈来帮忙,并且个个经验丰富。

问题解决了。换了新买来的AD558,好了;再换原来的AD558,问题依旧。在P0口加上上拉电阻,两批AD558都非常可靠。

顺便向大家表示一下歉意,开始没把问题交代清楚。

主板是几年前的,应用的总线方式。AD/DA板是最近的,非总线形式。为了省事,弄了这么一个不伦不类的东西。这样也好,应用非总线方式时,就插上上拉电阻;应用原来的总线扩展板时,就拔掉上拉电阻。上拉电阻焊在了一个双排插座上,可以非常方便的插在40针排线上面。

使用特权

评论回复
37
wf.yang|  楼主 | 2013-11-29 08:59 | 只看该作者
戈卫东老师说到点子上了,而且非常透彻;ayb_ice 老师也提到过这个问题;大前门老师说的问题,也应该引起足够重视。

我获益匪浅,谢谢,谢谢!

使用特权

评论回复
38
大前门| | 2013-11-29 09:00 | 只看该作者
wf.yang 发表于 2013-11-29 08:49
今天早点儿起来,特意答谢各位老师!我的一个小问题,这么多先辈来帮忙,并且个个经验丰富。

问题解决了。 ...

如果进一步想一下,其实奇数里也有很多0,为什么就没问题?

使用特权

评论回复
39
wf.yang|  楼主 | 2013-11-29 09:12 | 只看该作者
本帖最后由 wf.yang 于 2013-11-29 09:18 编辑

file:///d:/01.bmp顺便问一下,怎样结贴呀?

怎么老出现这样的提示呢?

01.bmp (2.56 MB )

01.bmp

使用特权

评论回复
40
ayb_ice| | 2013-11-29 09:20 | 只看该作者
该撒分了

使用特权

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

本版积分规则