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.

[参考译文] LMP90100:配置和操作

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/686931/lmp90100-configuration-and-operation

器件型号:LMP90100

我已阅读“LMP90100和 LMP9009x 传感器 AFE 系统:具有真正连续后台校准功能的多通道、低功耗、24位传感器 AFE–数据表”(SNAS510S–2011年1月–2016年1月修订版)。 这对我来说是一份非常有趣和有用的数据表。 我必须为体重秤应用设计传感器。 在该传感器中、负载单元电阻元件连接在惠斯通电桥中、该电桥具有4个电阻器。 每个电阻器的值为350欧姆。

当我阅读本数据表时、我发现文本中有一些错误和拼写错误、我在下面将其列出。 如果我错了,请你通知我,如果我对,请更正案文。 正确理解文本对我来说非常重要、因为这是我在该领域的第一项工作。

此外、我还有关于 LMP90xxx 芯片的描述、编程、配置和操作的问题。 如果您能提供反馈、我将不胜感激。 非常感谢。

 

问题。

  1. 1.8.5                   电气特性。 第7页。 VA (模拟电源电压)和 VIO (数字电源电压)。 最好通过电源(使用公共接地)相互隔离。 尽管可以为 VA 和 VIO 使用相同的电源。 我是否理解正确?
  2. 2.8.5                   电气特性。 第7页。 VREFN (负基准)。 VREFN 是否可以小于0 (即负电压、例如-3V)、或者其最小值可以仅为0 (GND)? 如果 VREFNmin=0 (GND)、是否可以为 VREFP 和 VA 使用相同的电源? 或者、如果它们通过电源(使用公共接地)相互隔离、是否会更好?
  3. 3.8.5                   电气特性。 第8页。 模拟输入。 VINP 正输入。 VINN 负输入。

参数

测试条件

最小

典型值

最大

和功能

VINP 正输入

增益= 16 - 128、缓冲器打开

GND +0.4

 

VA - 1.5

VINN 负输入

增益= 16 - 128、缓冲器打开

GND +0.4

 

VA - 1.5

VIN 差分输入

VIN = VINP - VINN

±VREF/PGA

 

我使用一个应变仪、其应变仪连接到惠斯通电桥。 来自电桥的输出信号(VIN - LMP90XXX 的输入信号)约为10mV、即 VINP = 20mV、VIN = 10mV。 这明显低于表中指定的最小值(GND +0.4)。 这是否意味着 LMP90XXX 不能用于放大和转换此类输入模拟电压? 这是否还意味着无法使用内部电流 IB1和 IB2源为电桥供电?

4.8.5        电气特性。 第9页。 CLKIN -内部时钟频率(893kHz)与 CLKEXT -外部时钟频率(3.5717MHz)与 SCLK -串行时钟(10MHz)之间有何关系? 例如、如果 CLKEXT = 2MHz、SCLK =?

5.9.3.7.1.1        背景校准类型。 9.3.7.1.2使用后台校准。 和9.3.7.2系统校准。 在传感器运行期间使用类型1。 类型2通常在开始设置传感器之前使用、以便设置零标量条件。 这种情况意味着对于这个特定的传感器加载、应设置零输出代码(0x00_0000)。 要设置系统参考量程条件(通常是传感器负载为100%的系统满量程条件),所需的系统校准输出代码应为0x80_0000。 也就是说、在开始运行之前、最好选择 Bgalmode mode3、并且在传感器运行期间、最好切换到 Bgalmode2模式。 我是否正确解释了此信息?

6.9.3.7.2.1        系统校准偏移系数确定模式。 我无法理解在哪种情况下需要应用后台校准、在哪种情况下需要应用系统校准。 数据表中没有建议。 或者、在传感器开始工作之前使用系统校准、以及在工作期间使用后台校准? 但是、在确定偏移的系统校准系数时、应向传感器施加哪个负载?

7.9.3.7.2.2        系统校准增益系数确定模式。 步骤4表示:“通过在 SCALCN 寄存器中编程0x3进入系统校准增益系数确定模式”。 但这似乎不正确。 在 SCALCN 寄存器的描述(表22)中、表明有必要编程到 SCALCN 寄存器0x2中、而0x3是保留。 此外、在确定系统校准增益时、未指定应向传感器施加的负载。

8.         9.3.7.2.3后校准缩放。 为什么 LMP90XXX 会引入此操作? 校准后为什么需要缩放? 它是如何工作的? 对我来说并不是很清楚。

9.4.2.1         ScanMode0:单通道连续转换。 如果增益为≥16且 LMP90XXX 在背景校准模式 BgcalMode1或 BgcalMode2下运行、为何无法在此模式下进行扫描?

10.9.5.9       DRDYB 级联1:将 SDO/DRDYB 与 SDO_DRDYB_DRIVER 组合= 0x00。 9.5.10 DRDYB CASE2:将 SDO/DRDYB 与 SDO_DRDYB_DRIVER 组合= 0x03。 和9.5.11 DRDYB 案例3:将 DRDYB 路由到 D6。 数据表 LMP90XXX 不包含在实际应用开发中选择选项(Case1、CASE2或 Case3)的建议。 这些选项在硬件和软件实施的准确性、简易性方面有何不同? 提及这三个选项(Case1、CASE2或 Case3)的主要原因是什么? 它们中是否有任何一个具有特定优势?

11.9.5.12      数据只读事务。 指示 μ«要使用仅数据传输、必须将器件置于数据优先模式。 下表列出了将器件置于数据优先模式和从数据优先模式中取出以及读取模式状态»的事务格式。 什么是数据优先模式? 该模式对应于哪些寄存器的设置? 到目前为止、在数据表 LMP90XXX 中、对此模式没有任何反应。 下表是什么意思? 哪个寄存器? 哪些位? 整个第9.5.12节并不完全清楚。 没有关于允许执行此模式的操作和事务的说明、也没有关于模式本身的说明。

12.9.5.13      循环冗余校验(CRC)。 为什么需要执行此操作? 应将多项式 CRC 值与什么进行比较?

13.9.5.14.2      读取寄存器示例。 在事务1中、在大写的情况下、为什么写入操作(0x10)、而不是读取操作(0x90)、尽管从寄存器中读取已完成? 这是错误吗?

14.9.5.15.2      受控流示例。 在这里也执行一个读取操作、但是、第一个和第二个事务都指定了写入操作。 为什么? 这是错误吗?

15.9.5.15.2      读取寄存器示例。 在事务1 (图76)中、在大写的情况下、为什么写入操作(0x10)而不是读取(0x90)、尽管从寄存器中读取已完成? 这是错误吗?

 

现在就到这里。 也许对其中一些问题的回答将帮助我更好地了解 LMP90XXX 芯片的特性、其结构和操作。 很抱歉我的英语。 非常感谢您的反馈。 此致。 Semyon Negovelov。 莫斯科。 2018年4月15日。

 

 

 

错误和拼写错误。

  1. 9.3.7.2.2系统校准增益系数确定模式。 步骤4表示:“通过在 SCALCN 寄存器中编程0x3进入系统校准增益系数确定模式”。 但它不正确。 在 SCALCN 寄存器的描述(表22)中、表明为此目的、有必要将0x2编程到 SCALCN 寄存器中、而0x3是保留寄存器。
  2.  9.5.14.2读取寄存器示例。 在事务1中、在大写的情况下、为什么写入操作(0x10)、而不是读取操作(0x90)、尽管从寄存器中读取已完成? 这是错误吗?
  3.  9.5.15.2受控流示例。 在这种情况下、读取操作也会执行、但是、第一个和第二个事务都指定了写入操作。 为什么? 这是错误吗?

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


    感谢您关注 LMP90100。 这个帖子有很多内容、我花的时间比我想象的要长很多。 但是、我将尽力回答这些问题。 我将使用与您的问题相同的编号来回答问题。

    1、模拟部分(VA)和数字部分(VIO)使用相同电源的情况并不少见。 如果您查看 LMP90100评估板的原理图、可以通过跳线设置将 VA 和 VIO 连接到同一电源。

    2. VREFN 通常不应设置为低于0V。 如果您查看数据表第5页的绝对最大值表、则基准电压引脚不应设置为-0.3V 和 VA+0.3V 以上。 超过这些限值的设置可能会损坏器件、-3V 远超出此范围。

    是的、正基准电压和模拟电源电压可能相同。 这在桥接应用中很常见。

    3.这取决于您是如何连接应变仪的,但我认为您不理解应变仪的工作台和输出。 该表表示任一输入(VINP 和 VINN)必须在 GND+0.4V 和 VA-1.5V 范围内。 假设 VA=5V、这意味着 VINP 和 VINN 必须介于0.4V 和3.5V 之间。 查看应变仪、假设这是在0至5V 的满电源下偏置的、输出为+10mV。 对于许多电桥、这意味着 OUTP 约为2.505V、而 OUTN 为2.495V。 两个值都介于0.4V 和3.5V 之间、因此 ADC 的输入处于具有更高增益的缓冲器范围内。

    也可以使用电流源为电桥供电。 但是、我不确定您的电桥的规格。 您只需确保电桥的每个输出处于器件的 VINP/VINN 范围内即可。

    在我们的许多器件中、SCLK 被锁存在主时钟域中、因此 SCLK 需要慢于主时钟。 但是、我不熟悉该器件的内部设计。 虽然 SCLK 可以继续在10MHz 下运行、但我将使用主时钟频率调整 SCLK 要求、并使用5.6MHz 作为最高 SCLK 频率。 在某些时候、SCLK 和主时钟之间必须有某种接口、而调节时钟会更安全。

    5.有一份说明背景校准的文档。 您可以在此处找到它:

    www.ti.com/.../snaa074b.pdf

    6.校准尝试调整偏移和增益误差。 如果您运行校准、则会尝试在该时间尽量减小偏移和增益误差。 问题是失调电压和增益误差可能会发生变化、尤其是在温度变化时。

    当系统处于不同温度时、后台校准更有用。 如果您希望系统在温度发生变化时更加精确(例如20°C 左右)、则可能需要后台校准。 如果您不希望在整个操作过程中条件发生很大变化、最好运行一次校准、然后使用这些值运行(而不是持续估算校准值)。

    您可以查看典型特性曲线、了解失调电压和增益误差随温度变化的程度。 如果您的工作温度变化不大、那么单次校准可能是您的最佳解决方案。

    7.我相信你是对的。 对于系统校准增益系数确定模式、SCALCN 应设置为0x2。 0x3被保留。 当这个被置位时、输入应该是基准量程条件。 第27页对此进行了说明、通常是系统满量程条件。 基本而言、这将是基准电压。 当您的输入是基准电压并且您根据基准电压测量它时、这将相当于满量程。

    8.可使用后校准缩放将输出缩放到特定值。 有时、这在处理输出数据时很有用、但也可以通过使用任何微处理器的简单乘法来轻松完成。

    9.我并不完全确定为什么在增益大于16时不应该使用 BgcalMode1或 BgcalMode2。 我猜、由于噪声、每次都能很好地估算偏移、因此包括 FGA 在内的大增益可能会降低偏移的可靠性。

    10.这三种通信模式之间的主要区别在于如何提醒您收到新数据以及使用的通信线路数。 在这种情况下、1 SDO 可用作中断、但它还需要 CSB 来启用数据就绪指示。 在第2种情况下、SDO 可用作中断、但不需要启用 CSB。 对于多个器件、每个器件可能需要单独的 SDO 线路。 对于案例3、您有一条单独的 DRDYB 线来指示数据就绪。 无论如何、这些都相当相似。

    11。数据优先模式设置 LMP90100的 SDO、以便在发送 SCLK 时、数据在 CSB 有效时随时钟移出。 数据输出时无需发送和指令字节。

    12、CRC 不是必需的、但您只需使用它来验证输出数据是否已正确读取。 有一个 MSP430接口、此接口有一个 LMP90100库、其中显示了代码执行:

    www.ti.com/.../snaa134a.pdf

    您还可以选择忽略 CRC 字节、甚至不将其超时。

    13-15. 我认为这个例子是正确的、INST1应该是一个用于写入和读取操作的写入。 您可以在此帖子中找到有关以下内容的更多信息:

    e2e.ti.com/.../1350144

    在该帖子的稍后部分、它引用了 MSP430的一些示例代码。 我之前列出了应用手册链接、但实际代码压缩在这里:

    www.ti.com/.../snac029

    希望我已经回答了您的问题。 我仍需要了解有关数据优先模式传输的更多信息。 但是、压缩的 MSP430代码中可能会有更多有关这一点的信息。 无论如何、这应该有助于您的发展。



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


    就问题11采取后续行动:

    表6用于设置数据优先模式的命令。 这些位将是用于数据优先模式事务的 INST2命令、从而允许数据在读取中首先输出。 发出命令后、您应该能够直接读取数据、最多可读取8个连续寄存器。

    不幸的是、回到我身边的应用工程师从未使用过这种操作模式。 但是、正如我之前提到的、MSP430示例代码中应该有更多有关此模式如何读回数据的信息。


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

    LMP90100。

    感谢您的回答。 但我有新的问题。

    9.3.7.2系统校准。

    "系统基准量程条件通常是系统输入(或)所处的系统满量程条件
    传感器的负载)为满量程、所需的系统校准输出代码为0x80_0000
    (无符号24位二进制文件)。"

    什么是数字- 0x80_0000? 它与编号-0x800000有何不同? 和0x000000起的0x00_0000?

    10.1.1快速入门

    "ADC_DOUT 采用24−位二进制补码二进制格式。 最大正值为0x7F_FFFF、而
    最大负值为0x80_0000。 如果超出范围、该值会自动钳位到其中一个
    两个值。"

    什么是数字- 0x7F_FFFF? 它与0x7FFFFF 数字有何不同? 和0x800000处的0x80_0000?

    谢谢你。

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

    您好!


    正如0x7F_FFFF 和0x7FFFFF 之间没有差异一样、0x80_0000和0x800000之间没有差异。

    我认为这些数字在数据表中的写入方式是意外的不同的。 我认为这种变化源于寄存器映射中使用的坏情况、其中大多数寄存器是一个字节。 几个三个字节寄存器被写入一个格式为0x00_0000的格式、它有时会被载入数据表文本、而其他时候没有被载入。


    吴约瑟