我正在使用 ADC3663IRSBT 以50MHz 的频率同时采集两个通道。 从 DFT 结果中、我注意到20%的时间、 2MHz 正弦波的相位差变化约为5度。 为了解决这个问题、我用步骤1将 ADC 设置为斜升模式、这样我就可以知道我将得到的确切数字。 经过多次测试、我发现原因与断电后再加电后 ADC 的不稳定行为有关。 以下是我的测试结果:
“ADC 断电”:使用 PDN/SNC 引脚或 SPI 命令为 ADC 断电,使其不会消耗功率
“ADC 加电”:使用 PDN/SNC 引脚或 SPI 命令为 ADC 加电以进行采集
“ADC 复位”:使用 SPI 命令将 ADC 复位为默认寄存器状态,然后将寄存器初始化为16位2线加速模式,步骤为1
测试1:为电路板加电,然后为“ADC 加电”,再为“ADC 复位”,再也不要为“ADC 断电”或“ADC 复位”;在这种情况下,在数百次开始采集后没有错误并正确地斜升 ADC 编号;每次采集都将开始,然后停止 FPGA 同步/采集接口; 这证明问题并非来自 FPGA
测试2:为电路板加电,然后为“ADC 加电”,再为“ADC 复位”,然后为每次采集,在每次采集开始时为“ADC 加电”和“ADC 复位”,在每次采集结束时为“ADC 断电”; 在数百次采集中,误差约为40%(发生误差时, 该采集中的所有数据都不正确);如果我只执行“ADC 加电”和“ADC 复位”,而不执行“ADC 断电”,则误差率约为1%,但误差仍然存在; 如果我只执行“ADC 加电”和“ADC 加电”,一旦错误开始,即使 在多次“断电”和“加电”之后,它也永远不会从错误中恢复。
从上面的测试中可以看出,断电后,ADC 在上电后甚至在“ADC 复位”时都无法正常工作,或者可能与我如何执行“ADC 复位”有关的问题? 以下是我的复位代码。 另一种可能是、由于 ADC 的 RESET 引脚具有内部下拉电阻器、因此我没有连接到该引脚、这是否会成为问题? 或者、我是否必须切换硬件"复位"引脚以使 ADC 正常工作?
//复位 ADC
AD_WRITE_reg (0、 0x01);
vTaskDelay (100);
//2线配置---
AD_WRITE_reg (0x07、 0x4B);//16位、2线
vTaskDelay (2);
AD_WRITE_reg (0x13、 0x01);
vTaskDelay (2);
AD_WRITE_reg (0x13、 0x00);
vTaskDelay (2);
AD_WRITE_REG (0x0E、0x08);//选择具有 SPI 的内部 REF
vTaskDelay (2);
AD_WRITE_reg (0x19、0x10);//Config FCLK 频率 2线抽取旁路、 D7:0;D4:1;D0:0
vTaskDelay (2);
AD_WRITE_REG (0x1B、0x88);//Config FCLK 频率旁路抽取、16位、D7:1;D5-3:001
vTaskDelay (2);
AD_WRITE_reg (0x8F、0x02);//ch0将输出格式更改为偏移二进制
vTaskDelay (2);
AD_WRITE_reg (0x92、0x02);//CH1将输出格式更改为偏移二进制
vTaskDelay (10);
几天以来、我一直在努力弄清问题是什么。 已分配帮助。
