This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ADC3663:断电后再加电后的 ADC 输出问题

Guru**** 2529560 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1125519/adc3663-adc-output-problem-after-power-down-and-then-up

器件型号:ADC3663

我正在使用 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);

 

几天以来、我一直在努力弄清问题是什么。 已分配帮助。

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 John:  

    我将对此进行检查、并将很快返回给您。

    此致、Amy

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 John:

    我仍在检查此内容。 同时、尝试 在馈送 clk 后提供至少一个复位脉冲。

    此致、Amy

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Amy:
       如前所述、没有连接到 ADC 的"reset"引脚、因此我当前只通过发送 SPI reset 命令使用"software reset"。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、John、  

    您是否测试过以低得多的速度运行 SPI? SPI 的工作频率是多少? 此外,vTaskDelay()的单元是什么? 如果以 µs μ s 为单位、这可能是初始复位后的问题、因为器件初始化在任何后续寄存器写入之前显示大约200000个时钟周期的延迟。 如果单位以 ms 为单位、则计时正常。

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    vTaskDelay 单元是 MS。 SPI 由 GPIO 引脚生成、速度非常低、我还尝试在每个时钟之间延迟1ms。 没有区别。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我还在写入后读回寄存器、它们的读取值与写入值相匹配。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、John、请看我的评论以红色显示:

    测试2:为电路板加电,然后为“ADC 加电”,再为“ADC 复位”,然后为每次采集,在每次采集开始时为“ADC 加电”和“ADC 复位”,在每次采集结束时为“ADC 断电”; 在数百次采集中,误差约为40%(发生误差时, 该采集中的所有数据都不正确);如果我只执行“ADC 加电”和“ADC 复位”,而不执行“ADC 断电”,则误差率约为1%,但误差仍然存在; 如果我只执行“ADC 加电”和“ADC 加电”,一旦错误开始,即使 在多次“断电”和“加电”之后,它也永远不会从错误中恢复。

    您能否解释并展示在上述情况下错误数据的外观?

    从上面的测试中可以看出,断电后,ADC 在上电后甚至在“ADC 复位”时都无法正常工作,或者可能与我如何执行“ADC 复位”有关的问题? 以下是我的复位代码。 另一种可能是、由于 ADC 的 RESET 引脚具有内部下拉电阻器、因此我没有连接到该引脚、这是否会成为问题? 或者、我是否必须切换硬件"复位"引脚以使 ADC 正常工作?

    不需要硬件复位-仅执行软件复位不是问题。 在复位前、是否在任何时候从 ADC 中移除/禁用时钟信号? 我想知道在某些实例的软件复位期间是否不存在时钟。 在通过硬件或软件复位切换复位之前、时钟存在是强制性的。 这对于器件复位所有内部功能至关重要。

    此致、Chase

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Chase:

       在我发现 AD 值不正确后、我一直在使用步长为1的斜升模式进行测试。 当错误发生时、接收到的 AD 值不在步骤1的序列中、并且这些值在跳转。 当它工作时、AD 值会以1的阶跃不断上升。  

       由于振荡器被连接至+3.3V 电源、到 ADC 的主时钟在加电后一直存在。  

       您是否有评估板也可以执行软件复位和斜升测试、以查看您是否有相同的症状?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    3.3V 振荡器时钟通过1.8V I/O 传递到 FPGA 和 FPGA、输出与 AD 相同的50MHz 时钟。 加电后、它将一直运行。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 John:

    是的、我们的实验室中有可用于验证这一点的硬件。 您能否压缩 SPI 序列并在此处上传、以便我们实验室中的人员可以查看使用50MSPS 采样率的情况? 此外、我特别感兴趣的是查看错误发生时的数据、您的描述"跳转"不够清楚、无法让我们确切了解正在发生的情况、它可能会跳转2个代码、也可能会跳转20k 个代码。 您是否也可以附加原始数据?

    此致、Chase