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.

[参考译文] ADC08DJ5200RF:在单通道模式下对单个组进行精细增益调节

Guru**** 2479615 points
Other Parts Discussed in Thread: ADC08DJ5200RF

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1316589/adc08dj5200rf-fine-gain-adjusting-of-individual-banks-in-single-channel-mode

器件型号:ADC08DJ5200RF

您好!

我在 单通道模式下运行 ADC08DJ5200RF、并在初始化期间执行前台校准。 当我抓取一个包含 ADC 输出的存储器导出时、我注意到输出中的高 SNR。 如果我抓取这个输出并将其拆分为四个交错的数组、那么应该会 有四个数组、其中每个内核组的输出为 A 和 B、对吗? 下面是实现这一点的伪代码:

ArrayIterator = 0;
for (u8 i = STARTING_POINT; i <= (END_POINT-4); i+=4)
{
    stADCCoresInfo.ADCABank0[ArrayIterator] = SingleFrame[i];
    stADCCoresInfo.ADCBBank0[ArrayIterator] = SingleFrame[i+1];
    stADCCoresInfo.ADCABank1[ArrayIterator] = SingleFrame[i+2];
    stADCCoresInfo.ADCBBank1[ArrayIterator] = SingleFrame[i+3];
    ArrayIterator++;
}

这种方式拆分 ADC 输出的做法是否正确、我可以得到内核 A 和 B 中各组的输出?

当我绘制这些数组中的值时、得到如下所示的结果:

如果我正确分离数据、此图中的每种颜色都代表每个内核的单个组。 鉴于此、我需要微调每个存储体的增益、以便它们尽可能接近所选数据段的平均值。 对于这一特定的信号、应以使最高正边沿始终位于同一位置的方式进行编程、因此我将在之后立即对段进行分析。

我尝试通过更改 GAIN_A0_FGDES、GAIN_A1_FGDES 、GAIN_B0_FGDES 和 GAIN_B1_FGDES 的值来调整增 益。 我假设这些寄存器的默认值是0x10 (因为数据表中没有提到它)、这是0x00和0x1F 之间的中间点、因此我将根据所分析的数据从该值上升或下降。 不过、我在更改寄存器时没有注意到任何差异、如果我回读这些寄存器、我每次都会得到0x10、无论我在写入寄存器之前或之后读取它们。 数据表未提及在写入这些寄存器之前是否需要其他情况、因此我只是在执行前台校准后"动态"进行此操作。

我能否更清楚地说明确切地如何执行微调增益?

提前感谢

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

    您好、Juan:

    您正在执行正确的步骤来实现这一点。 ADC 架构是固有的交错(每个 ADC 内核)、在单通道模式下、ADC 内核都是交错的。  因此、单通道 DES 模式 ADC 组采样顺序类似于 A0、A1、B0、B1。 以上所有内容都是指您准确地解包了数据。

    您会注意到、有两条线彼此非常紧密地跟随。 蓝色和绿色迹线表示一个 ADC 内核、而红色和橙色迹线表示另一个 ADC 内核。 在每个内核内部、在器件创建过程中会修整两个通道以彼此匹配、并将它们融合在 ROM 中、这样一来、默认情况下、两个子 ADC 通道彼此匹配。

    要覆盖 ROM 修整值并手动调整这些组的精细增益、在修改寄存器0x354到0x357中的值之前、没有特殊步骤或之前的要求。 但是、我建议在前台校准后(以及在 JESD EN 之前)立即执行此操作。

    我刚刚在实验室的硬件上对此进行了测试、可以回读而不会出现任何问题。 请参见下方的。  在我的电路板上、A0和 A1的默认值都是0x10、B0和 B1的默认值都是0x01。

    不修改0x354、0x355:

    修改0x354 = 0x1F、0x355=0x1F:结果是来自 ADC 内核 A 和 ADC 内核 B 的轻微纹波未匹配(因为默认值是在 IC 测试/修整期间"最佳"匹配时)。

    修改0x354 = 0x1F、0x355=0x00后:结果是来自 ADC 内核 A 和 ADC 内核 B 的波纹更差、但该波纹也不匹配、但 ADC 内核 A 中的组0和1也不匹配。

    这些测试的结果只是为了显示这些寄存器的确修改了此运行状态。  您在读取其他寄存器值时是否遇到任何问题?

    谢谢,Chase

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

    尊敬的 Chase:

    非常感谢您的详细答复。 在我尝试任何事情之前,有一件事引起我的注意:

    但是我建议在前台校准后(以及在 JESD EN 之前)立即执行此操作

    我肯定没有这样做、因为我在数据表中没有看到类似的东西。 我已经在前景校准后写入修整值、但这是在我将 JESD_EN 设置为高电平后完成的。 数据表指示按以下顺序执行这些步骤:

    这里的前景校准由 CAL_SOFT_TRIG 触发、对吗? 如果可以、如果此时未进行校准、如何在前景校准后和设置 JESD_EN 之前写入修整值? 希望问题合理。

    此致、

    胡安

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

    您好、Juan:

    建立链路后、可以执行以下操作:

    • 0x200 0x00 (JESD_EN 无效)
    • 0x6C 0x00 (使 CAL_SOFT_TRIG 失效)
    • 0x6C 0x01 (将 CAL_SOFT_TRIG 置位以执行前台校准)
    • 对寄存器0x354-0x357执行写入操作
    • 0x200 0x01 (置位 JESD_EN)

    谢谢,Chase

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

    太棒了、非常感谢。 明天早上会尝试这第一件事,因为现在是晚上的时候了。

    此致、

    胡安

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

    没问题。

    另外、我仅建议使用该顺序/序列、因为这是软件在实验中的工作方式。 而且、由于我在使用该软件修改精细增益可调节寄存器时没有问题、因此值得一试、看看时序控制是否会对您的终端产生影响。

    谢谢,Chase