问:我现在已经发现了我的软件中的问题和一些解决方法,使问题有所改善。当改变输 入电压时,ADC输出的数据也发生变化,但是转换结果好像不可识别,这是怎么回事? 答:可能产生的误差源仍然很多。ADC的转换结果或者直接用二进制数据形式表示,或者 用2的补码形式表示(BCD码用得不太多)。为了使微处理器接受合适的数据格式,应该检查它 的配置。如果微处理器的配置不能直接接受2的补码,你应该将转换数据与100…00二进制数 进行异或操作,将其转换成二进制数。 通常利用串行时钟的前沿(上升或下降沿)选通ADC的数据输出并且进入数据总线。然后 利用时钟的后沿使数据进入微处理器。应该保证微处理器与ADC在同一转换条件下正常工作 ,保证所有准备时间和保持时间都满足要求。如果串行ADC的转换结果恰好是期望值的一半 或二 倍时,这是一个告警信号,它说明这个数字结果(尤其是MSB)是由于受错误的时钟边沿作用 。同样一个问题,对于串行DAC则表现为其输出电压恰好为期望值的一半或二倍。 驱动转换器的数字信号应该干净。过冲或欠冲除对器件可能引起长期损坏以外,还能产 生转换误差和通信误差。图108示出了用来驱动单电源转换器的时钟输入 具 有很大过冲的尖脉冲信号。在这种情况下,时钟输入驱动PNP晶体管的基极。按照惯例,将 器件的P型衬底内部连接到最负的电位,这里为地。在SCLK线上大于地电位以下03V的幅度 完 全能使N型晶体管的基极和P型衬底之间的寄生二极管开始导通。如果经常出现这种情况,而 且作用时间很长,可能会导致器件损坏。
图108 过冲或欠冲波形及其损坏器件的机理 如果作用时间很短,虽然不会损坏器件,但是会增强器件中通常不起作用的衬底对其它 晶体管的影响,从而导致将每个作用脉冲检测为多个时钟脉冲。这种脉冲抖动对串行式转换 器影响很厉害,而对并行式转换器则差一些。因为读周期和写周期通常都取决于所施加的 第一 个脉冲,而后边的脉冲无关紧要。但是,如果在转换期间出现这种干扰信号,无论是串行还 是并行式转换器都要受到噪声的影响。 图109示出了如何很容易地减小过冲。在出现问
图109 用来减小过冲的低通滤波器
题的数字输入信号线上串联一个小电阻。这个电阻与数字输入端的寄生电容 C par 结合起来可构成一个低通滤波器,从而可 以消除接受信号的任何振荡。一般推荐使用50Ω的电阻,但是做一些实验可能是必要的。如 果数字输入端的内部电容不够大,还可在这个输入端加一个外接电容。这时实验是必要的, 但开始最好选10pF左右的电容。
|