本帖最后由 xxyyzz123 于 2021-3-28 09:50 编辑
没有ADI论坛,在此咨询个ADI的吧
在用一款ADI的ADUC7061芯片,ADC+ARM7的老芯片。
有DAC和ADC。正常来说ADC和DAC是互不相干扰的两个独立模块,但是,在特定的配置条件下,会出错。
就是:P0口配置成ADC输入的时候,DAC的输出不正确,非线性。如果P0口配置成GPIO或者SPI,则输出正确。
不正确还有几个特点:
1. 如果用ULINK,则下载后,自动运行的,DAC输出不正确;
2. 如果用ULINK, 点击DEBUG,然后RUN或者STEP BY STEP,则DAC输出是正确的。
3. 如果用JLINK,则下载后,自动运行,DAC输出正确。
4. 如果是把代码下载到FLASH,电源关闭后再开,运行的DAC输出不正确;
5. 考虑是否是复位问题,用镊子短路复位RC电容,正常复位,DAC输出不正确。
这看上去,我的理解是:如果使用过JTAG,JTAG可能把内部某些BUG寄存器,巧合地复位了,所以运行正常。
如果不用JTAG,直接开机运行,等于没有JTAG的访问过程,系统应该初始化的某个寄存器可能异常,导致输出不正确。
不知道大家的理解是怎么样的?可以提醒一下,谢谢。
ADI的产品说明书太少,没几页,技术支持也很差劲,没人回复。我个人认为,这个可能是个厂家BUG,厂家可以通过告诉用户配置未公开的寄存器,即可修复BUG.当然现在美国佬收入也不好,消极怠工也有可能。都不理的多。
以前也碰到过TI的DSP产品的BUG,即某个寄存器读会出错,后来厂家给的解决方案是,读3~5次,按重复次数多的那次最为结果。这个虽然不是很爽,但毕竟厂家还是承认了BUG,解决了问题。当然一般美国厂,是不会轻易承认的,能赖则赖,除非是大厂压着。以前INTEL的产品也出现过一次问题,就是在总线在某个特定的场合下,访问的数据会严重堵塞,比如10MBps(一个用来做网关的产品,如果这个吞吐量,可以称得上是个BUG了)。也是死活不承认错,有个老外用逻辑分析仪采集信号,图文并茂指出这个缺陷,英特尔的技术人员,在追了一周以后,才支支吾吾承认,给我们看了他们内部的测试数据,效果就是那么差。这个测试结果其实就已经做成PPT了,技术支持不承认,我并不认为他本来是不知情的,个人认为显然是恶意的。
所以,老外的东西,也不要捧上天。 |