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.

[参考译文] ADS1220:ADC 设置的定期复位

Guru**** 2393725 points
Other Parts Discussed in Thread: ADS1220

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/799254/ads1220-periodic-reset-of-adc-settings

器件型号:ADS1220

你好。 我在项目 ADC ADS1220中使用的电压。 在程序启动时、我只初始化 ADC 设置1次。 在程序运行时、我切换多路复用器的通道并设置增益。 我注意到、当程序运行时、数据速率被重置。 它设置为默认值。 我无法确定是否所有 ADC 寄存器都已复位、但该参数已完全复位。 这种情况不规律地发生。 该程序可能会正常运行几天、然后可能会发生寄存器复位、但可能会在几个小时后发生复位。  请告诉我、原因可能是什么?

电源设置:

AVDD = 5V
DVDD = 5V
AVSS = GND
REF = 2.5V

ADC 初始化函数:

void init_adc (void)
{
long in_adc = 0x0000A0E0;

//重置设置
SPI_Send_BYTE (0x07);

//延迟最小值50us + 32 * tclk
del_50 ();
Delay10TCYx (4);

wrreg (0、4、in_adc); //从配置寄存器0开始,4个字节,值0x0000A0E0

//启动
SPI_Send_BYTE (0x08);
} 

程序启动时的 ADC 设置:

输入多路复用器配置= AINP 和 AINN 短接至(AVDD + AVSS)/ 2.
增益= 1
正常模式
单次模式
数据速率~ 440SPS (DR 位设置= 101)

Fosc = 3.686400MHz
SCLC = Fosc/16

在程序运行时、我使用以下函数(我选择通道并设置增益):

unsigned char Kuu[8]={0x00、0x02、0x04、0x06、0x08、 0x0A、0x0C、0x0E};

void set_u (void){
wrreg (0、1、(0x70 | Kuu[i]));
}

void set_uC (void){
wrreg (0、1、(0xE0 | Kuu[i]));
}

void set_ic (void){
wrreg (0、1


、0x02)、0x02 (void
)|(void)(void)、0x02 (i)、0x02 (void)(void)、0x02 (void)、0x02 (void)、0x02 (i)、0x02 (void)

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

    如果只有配置寄存器1更改为默认值、则结果应该相似、只有数据速率发生变化。 如果整个器件复位、那么配置寄存器2中的电压基准也会发生变化(从外部到内部)、转换结果也会受到影响。

    导致配置复位的最常见问题是瞬态事件。 这些瞬变通常可通过对解决方案进行原型设计来发生。 这些瞬变可能来自 EMI/RFI、例如电机打开/关闭或手机活动。 瞬态通常在暴露的接线中拾取、并可能影响模拟输入以及基准或电源。 只需接触器件或接线、ESD 就会导致另一个瞬态事件。

    使用 ADS1220时、如果 DVDD 或 AVDD 电源应该下降或欠压、则会发生复位。

    我还注意到、在您的初始配置中、前2个寄存器保留为默认设置、而寄存器2设置为 A0 (外部基准和寄存器3设置为 E0。 寄存器3的 E0无效、因为它使用保留设置。 我假设数据按照所示的顺序传输。

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

    [引用用户="Bob Benjamin ]Hi Anton、

    我还注意到、在您的初始配置中、前2个寄存器保留为默认设置、而寄存器2设置为 A0 (外部基准和寄存器3设置为 E0。 寄存器3的 E0无效、因为它使用保留设置。 我假设数据按照所示的顺序传输。

    [/报价]
    感谢您的回答。 只有您不能正确地了解我的 ADC 的配置方式。
    寄存器0 设置为 E0  
    寄存器1设置为 A0
    寄存器2和3 - 默认设置。
    我无法检测到 ADC 设置的复位、因为我不断地重新配置多路复用器中的通道(设置增益)。 因此、我获得了正确的转换结果、但我可以看到数据速率发生了变化。  但我无法及时注意到、因为器件可以正常工作几天、然后会进行复位。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Anton:

    好的、现在我了解了寄存器的写入方式。  我想到的是从左向右移动的数组中的数据、但您实际上是从右向左传输数据。  

    为了完全验证 ADS1220是否正在复位或者寄存器是否仅因其他原因发生变化、我建议向配置寄存器2写入一个非默认值、例如0x07。  这将设置 IDAC 输出、但由于您不使用 IDAC、因此这不会成为问题。  如果整个 ADS1220进入复位状态、该寄存器也将进入默认值0x00。  这将使器件更确切地判断是否存在 SPI 通信问题、或者是否会进入完全复位状态。

    此致、

    Bob B

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

    尊敬的 Anton:

    以下帖子存在类似的问题、器件将定期复位。  您可能会发现此帖子中的信息很有用。

    https://e2e.ti.com/support/data-converters/f/73/p/795175/2959058#2959058

    此致、

    Bob B

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

    你(们)好 Bob。 非常感谢您的建议。 我将尝试在 ADC 电力线上添加电容器、并检查是否所有 ADC 寄存器都已复位。

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

    你(们)好 Bob。 我们升级了项目的程序代码并添加了一个分析器、有助于捕捉数据传输速率发生变化的时刻。 我的测量周期与从 ADC 接收数据的频率(600SPS)相关联。 因此、我知道在给定的 ADC 设置下整个测量周期持续多长时间。 分析仪可帮助我了解1个测量周期的时间何时增加了20倍以上。 此时我读取寄存器1的值-我得到 A0的值。 也就是说、ADC 配置正确、但我得到的结果不正确。  您能就此问题提出其他建议吗?

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

    尊敬的 Anton:

    让我确保我理解您告诉我的内容。  转换从 START/SYNC 命令开始、但转换所需的时间可能会比编程设置的时间长、具体取决于用于检查转换速率是否异常的计时器。  如果转换周期比预期的时间长、则读取配置寄存器、但它显示预期(或先前编程的)设置。  我的理解是否正确?  您是否查看了所有寄存器或仅查看了寄存器1?

    获得错误结果意味着什么?  期望值是多少(以及施加了什么输入电压)、返回什么代码值?

    我怀疑有一个瞬态导致器件处于奇状态。  如果您正在进行原型设计、并且有任何暴露的接线、您可以轻松地拾取瞬态。   该瞬态可能不足以完全复位器件、但会导致一些内部电路欠压。  如果通信仍然正常、RESET 命令应允许器件恢复。  

    瞬态也可能是由接线或走线电感导致的。  电源接线(源极和接地端)应具有低电感、以便所需的电流不会在短时间内从 ADS1220中扼流、而是在快速电流需求期间。  出于同样的原因、不建议在电源线上使用电感器或铁氧体。

    您对自己的设计和设置非常熟悉、但我不熟悉。  如果能看到您的原理图和测试设置的一些图片、将会非常有帮助。  如果没有更多信息、我只能猜测可能发生的情况。  ADS1220器件非常可靠、因此很可能会出现一些外部事件或接线问题、从而导致您看到的结果。  我们需要更多的信息来缩小造成这种情况的可能性。  

    我在前面一篇文章中提供的链接有一些相似之处、发现问题与电源接线电感有关、而不是与 ADS1220有关。  在这种情况下、电源电压降至工作阈值以下、因为接线电感限制了电流需求。  在 ADS1220电源输入附近添加一个较大值的电容器解决了在需要短时充电时电容器充当电荷储能器的问题。

    此致、

    Bob B

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

    您好、Bob。 现在、我有机会向 ADC 的输入端添加电容器。 请告诉我、是否需要添加低 ESR 电容器? 这些电容器的容量(范围)应该是多少? 是否需要100 µF?

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

    这是很难回答的,因为我们没有清楚地确定问题。 如果您仔细阅读我提到的主题、您将看到用户首先发现了问题、然后解决了问题。 此时、我认为问题未被明确识别、因此很难说出如何最好地处理问题。 电容放置最有可能比值或 ESR 更重要。

    如果能看到您的测试设置的原理图和图片、以便我们更清楚地识别可能发生的情况、我将不胜感激。 我强烈建议在电源线上使用示波器并监控电源、以查看问题是否在发生。 它可能来自不良接地或其他信号线路。

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

    您好、Bob。 这是器件的图。 看看,请告诉我,改善这个计划的方案有哪些选择?

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

    我对原理图有点困惑。 您似乎正在尝试捕获交流输入信号。 信号通过 INA 进行放大、在 INA 输出端具有较大的容性负载以阻止直流和低频(我不确定 INA 希望看到这么多容性负载的效果如何)。 根本不清楚为什么需要第二组直流阻断电容器、因为在 INA 中基本上有一个带通滤波器。 不清楚 DA21和相关组件的用途。 应该可以添加一个简单的低通滤波器、而无需添加额外的电路来设置共模 R11和 C11、因为 INA 已经以'f'为基准。

    下面是一些与 ADS1220直接相关的注意事项。 AVSS 和 DGND 之间的连接应是尽可能靠近器件的低阻抗连接。 这些连接似乎在"b"处通过几个跳线连接在一起。 最后、最好使用单个接地层。 可能也只需要一个5V LDO。 使用单独的电源可能不会获得太多好处。

    我看到的第二个问题是 Vcon 连接。 当开关 DA5闭合时、将向 AIN1输入施加12V 电压、该电压超出器件的绝对最大额定值。 尽管有一个串联电阻将输入电流限制在10mA 以下、但 ADS1220在设计上无法在建议的工作条件之外正常运行。 如果目的是测量源极电压、则应使用分压器、使模拟输入不超过 ADS1220的模拟电源电压。

    我看到另一个与 ADS1220上的 CLK 引脚相关的问题区域。 通常、该引脚将接地以开启 ADS1220的内部振荡器。 相反、您将此引脚连接到 PIC 的晶体振荡器。 改变内部振荡器的频率将改变 ADS1220的数字滤波器特性和输出数据速率。 也许这就是你的意图。 但是、使用微振荡器电路不是最佳方法、因为振荡器电路不喜欢额外的负载、并且可能会使频率偏移并导致启动问题。 相反、如果 PIC 允许从 GPIO 发送内部时钟、则最好使用来自微控制器的输出引脚直接驱动 ADS1220的 CLK 引脚。 如果这是不可能的、我建议使用 ADS1220的内部振荡器、或者使用所需频率的外部振荡器、而不是 PIC 的晶体电路。

    如果此原理图与您测试的原理图相同、则需要关注的领域包括 Vcon 连接、时钟源、接地连接以及与输入信号路径关联的电容、这些电容可在 EMI/RFI 事件期间存储能量。

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

    你(们)好 Bob。 非常感谢您的详细回答。 我们将在一个团队中讨论您的建议、我一定会向您报告工作结果。

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

    您好、Bob。

    我们尝试执行您建议的操作-使用内部发生器 ADS1220。 我必须选择模式-单次触发。 根据数据表中的表11:在 f (clk)= 4.096MHz 频率下、单次模式的转换时间= 6994 t (clk)。

    (1/4096000)* 6994 =~ 0.0017s
    1S/0.0017s =~ 585SPS。
    但我们在示波器上看到的不是0.0017s、而是~ 0.002s、对应于~ 500SPS (在屏幕截图中)。 请告诉我、是否有任何我未看到的功能?

    [引用用户="Bob Benjamin ]Hi Anton、
    我看到的第二个问题是 Vcon 连接。 当开关 DA5闭合时、将向 AIN1输入施加12V 电压、该电压超出器件的绝对最大额定值。 尽管有一个串联电阻将输入电流限制在10mA 以下、 但 ADS1220 在设计上无法在建议的工作条件之外正常运行。 如果目的是测量源极电压、则应使用分压器、使模拟输入不超过 ADS1220的模拟电源电压
    [/报价]

    我想更详细地介绍这部分电路:不会向 AIN1输入施加12V 电压。 这里的电压受到分压器的限制:一个1Ω Ω 电阻器和一个36Ω Ω 线圈电阻。 因此、AIN1的输入将施加~ 0.3-0.35V 电压。 我们认识到、由于负载是电感的、因此电路的该部分中可能存在来自 EMF 的浪涌。 Bob、您能不能提出一些建议、您能如何限制这些突发? 我们的想法是在 Vcon 之前插入一个肖特基二极管(图中为粗体)。 这会有帮助吗?

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

    内部振荡器的时序可能比标称值大2%。 此外、在使用内部振荡器时、您需要在振荡器启动所需的时间内添加50us。 但是、这不会增加您看到的差异。 我们无法从示波器图中看到 SCLK。 发出 START/SYNC 命令时、启动操作将在该命令的 SCLK 的第7个下降沿之前进行。 因此、您不能将 DRDY 的上升沿与 DRDY 的下降沿用作测量值。 必须使用 START 命令的 SCLK 的第7个下降沿作为转换开始的开始。

    就线圈的 EMF 而言、如果看不到响应、就很难知道最好的治疗方法是什么。 您建议的方法可能会有所帮助、但 BAT54是一个泄漏器件、您可能需要考虑 BAV199。 另外还有几种选择、即在线圈上使用反向偏置二极管或在二极管阵列之外使用低泄漏双向 TVS 二极管。

    此致、
    Bob B