微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > ADS8363已读出数据,可是新问题又来了,求帮助。。。

ADS8363已读出数据,可是新问题又来了,求帮助。。。

时间:10-02 整理:3721RD 点击:

        我采用的是MCU的GPIO口软件时序来读写ADS8363的,CONVST和RD信号共用一个引脚(CONVST&RD信号),ModeI模式读数,Half-Clock模式,只采集CHA0和CHB0通道。

        由于CLOCK信号和CONVST&RD信号都是油GPIO口给出的,因此CONVST&RD信号的下降沿很难和CLOCK的上升沿做到完全同步,实际程序中CLOCK的上升比CONVST&RD信号的下降晚了约500ns。

        从数据手册中读到:通过SDI引脚向ADS8363写入数据时,RD信号的下降沿会触发ADS8363向SDOx引脚送出数据的MSB(28页第1段),同时CONVST信号的上升沿会触发AD转换器进行采样保持(29页第2段)。也就是说,CONVST&RD信号的上升沿和下降沿会触发ADS8363进行不同的工作。

        起初,如 http://www.deyisupport.com/question_answer/analog/data_converters/f/58/t/59937.aspx 中的时序图,如果CONVST&RD信号为高电平期间,CLOCK不跳变的话,SDOx上总是没有输出。现在时序已经更改,在CONVST&RD的上升沿和下降沿之间给一个CLOCK高电平脉冲,SDOx上就会有数据,而且读写CONFIG寄存器的时序也都有效。但问题来了:每个CONVST&RD信号上升沿间会有21个CLOCK脉冲,从CONVST&RD信号下降沿后的1个时钟周期开始读书,通过SDOx引脚读出的数据是对的,可是写CONFIG寄存器再读出的数据也是一样的,可是就是通过CONFIG寄存器Bit 6 PDE 位设置伪差分模式总是无效,短接CHx0和CHx1引脚输出的数据才会变成0。

      这个问题很纠结,我又折腾了一天了。不知道是不是和讨厌的CONVST&RD信号与CLOCK信号的同步问题导致的21个时钟周期有关。求帮助~~~

      最后,ADS8363这款芯片真的不适合用MCU操作,太麻烦了,小伙伴们做设计时一定要多加小心啊。。。

Hi

    顶一下。

       我的问题已经解决。最后发现问题不是出在时序上,两个CONVST&RD脉冲之间有21个时钟也没问题,因为没有CONVST&RD的上升沿和下降沿,最后一个时钟周期就是没有意义的。

       最后发现问题竟然是出在寄存器的配置顺序上。我在初始化AD运行参数的时候按照Datasheet上介绍寄存器的先后顺序,想当然的先配了CONFIG寄存器,然后再配置其他寄存器;随后在配置REFDACx和REFCM寄存器的时候需要通过CONFIG寄存器先写这两个寄存器的地址,这一步的时候CONFIG的值就会被改变。把CONFIG寄存器的配置放在最后一步就好了。

      关于寄存器配置顺序,以及通过CONFIG寄存器进行其他寄存器配置的时候是否会有Mask,Datasheet中并没有明确说明,这个的确很郁闷。通过这两天的测试,这款AD转换器的性能还是不错的,同时我也阅读了ADS8361的数据手册,ADS8363应该是在当时BB公司的ADS8361上改进而来的,加了些很实用的功能,但是关于数据接口和配置的部分实在写的不够明确,调试的时候很费劲。希望TI能够修订ADS8363的数据手册,让大家的设计和应用更容易。

谢谢您的分享!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top