天风雪雨的问题还需要整理一下,下面把 niceman2007 遇到的问题和我的解释、提出的调试建议记录一下
niceman2007 遇到的问题是这样的
描述如下
瓦树,屏幕显示DAC1 检查码03931,是哪里问题?
niceman2007 (17:51:24):
有时不行,有时又正常,热久了过得去几率大多了
然后进入debug界面停住
niceman2007 (17:55:16):
有时过去后也很快画面定住,像死机,erroR下数字不动
上次突然出现的,当时7805后没电了,7805也热。现在就经常这
我的解释和建议如下
washu (17:55:18):
1st 检查的是整个输出电路的失调,此时将设置 DAC Code = 0x0000
washu (17:56:31):
如果报告错误,说明
1、输出缓冲电路的失调太大了
2、DAC 没有正确接收到单片机发送的数据
washu (17:57:34):
2 可能性中,有
a、隔离器有问题,质量不良
b、串行链路有问题
出错后会进入 Debug 模式
washu (17:58:11):
在 Debug 模式下,会依次在几个代码之间循环
你找到 DAC 0x0000 这个代码,循环到此时,用万用表检查输出
washu (18:02:36):
串行数据链是这样的
隔离器 --> 移位寄存器(CD4094)-[Jump]-> Slave DAC(MAX515)--> Master DAC(MAX541)
那晚上回家之后再说
你可以用逻辑分析仪依次检测上述数据链
看看数据的发送是否正确
niceman2007 (18:03:37):
木有逻辑仪呀
washu (18:04:02):
其实我也发现不少人都遇到了这个问题,而且我自己也遇到过几次,最后发现是 JS 送的 MAX515 中有一片不良,有时能工作有时不能,换了一片就好了,幸好 JS 送了好几片
washu (18:05:45):
嗯,没有的话确实不好调试...
总之你依次检查一下我说的链路吧,这个链是不是通的(电气上),然后把这个链所有芯片换一批看看
没有逻辑分析仪只能这样了,要不赶紧上掏包买个便宜的逻辑分析仪
毕竟不是全新片子,虽然保真程度可能好过买全新的片子,但质量就微妙
washu (18:07:06):
MAX515 和 MAX541(AD5541)有问题的几率是存在的,尽管到目前为止,只发现一片 MAX515 和一片 AD711 有问题
就比例来说并不大
niceman2007 (18:08:24):
AD515会正常几天再这么坏么?
niceman2007 (18:09:40):
最后不行只能拆换另一套板子上的替换验证了
不知JS还有515没
washu (18:10:30):
谁知道呢 总之,
1、先检查这一路的电源电压正常且没有纹波(用万用表和示波器检查)
2、检查我说的串行数据链的电气连接是通的(用万用表通断档检查)
3、检查数据发送的正常,需要逻辑分析仪,没有就只能替换 IC 了
在 Debug 模式下,我的程序会按照循序依次发送
Charat = " >REG Code 0x00" : DrawChr(1,1)
Charat = " >REG Code 0xFF" : DrawChr(1,2)
Charat = " >DAC Code 0000" : DrawChr(1,3)
Charat = " >DAC Code 8000" : DrawChr(1,4)
Charat = " >DAC Code FF00" : DrawChr(1,5)
Charat = " >DAC Code 0080" : DrawChr(1,5)
Charat = " >DAC Code 00FF" : DrawChr(1,5)
washu (18:12:20):
你可以首先在 REG Code 0x00 用万用表检查 4094 的 Q1-Q8 全为 0
然后在 REG Code 0xFF 用万用表检查 4094 的 Q1-Q8 全为 1,这两个项目用万用表也能检查
washu (18:13:36):
这两个通过之后,用万用表检查输出电压,
>DAC Code 0000 的时候,应该输出 0V,容许误差正负 5mV
>DAC Code 8000 的时候,应该是 6.25V,容许误差 3.5%
>DAC Code FF00 是 12.5V,容许误差 3.5%
washu (18:15:20):
上面三个是 Mstaer DAC 的输出,除了直接检查输出电压,也可以在 AD5541 的 Vout 端检查,此时
0x00 = 0V
0x80 = 2.5V
0xff = 5V
washu (18:16:41):
然后是 Slave DAC 的检查,
>DAC Code 0080 的时候,检查 MAX515 的 Vout 应该是 2.5V,经过运放(OP177,但 TR 的版本可能是 ??747 或 OPA4277)之后便为 -2.5V,这个电压可以直接在 Rslave 之前测试到
washu (18:17:52):
如果用高位半万用表,则可以测试到输出电压为 -1.5mV 左右
>DAC Code 0080 的时候,MAX515 应该输出 -5V,总输出大约是 -3~-4mV
以上是整个 DAC 的检查步骤
tr_edl (18:19:05):
很复杂。。。
我是看不懂
washu (18:19:16):
如果 CD4094 的检查是通过的,且 4094 到 515 的电气连接通的,而在 >DAC Code 0080、00FF 的检查中不正确,说明 MAX515 有问题了
washu (18:20:17):
如果这两个检查没有问题,但 DAC Code 0000、8000、FF00 不正确,说明
1、MAX515 的逻部分可能有问题,导致数据没有从它流到 541(这个没有逻辑分析仪很难检查,但可以通过替换 515 检查)
2、MAX541/AD5541 有问题了 |