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.

[参考译文] MSP430FR5969:通过 I2C 配置 PGA302

Guru**** 2468460 points
Other Parts Discussed in Thread: PGA302, MSP430FR5969, ENERGIA, USB2ANY, PGA305, INA128

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1332951/msp430fr5969-configuring-pga302-through-i2c

器件型号:MSP430FR5969
主题中讨论的其他器件:PGA302ENERGIAUSB2ANYPGA305、INA128

我正在尝试通过 I2C 协议使用 MSP430FR5969 (主站) Launchpad 配置 PGA302 (从站)。 我需要设置 P 增益、以便根据增益放大输入电压。 我将向 VINPP 和 VINPN 引脚提供输入电压并检查 Vout 端子上的输出。 我已将 P1.6 (SDA)连接到引脚13、将 P1.7 (SCL)连接到引脚14。 我将为 PGA302提供5V 的 VDD。 我已经将 VINTP 和 VINTn 接地。 我已将公共接地连接到这两个器件。

在 CCS 代码中、我通过向从器件地址0x40的寄存器地址0x0C 发送0x03、将 PGA302置于复位模式。 然后、我通过发送0x01 (增益为2V/V)来设置 P 增益。 最后、我向从器件地址0x40的寄存器地址0x0C 发送0x00、从而使从器件退出复位模式。 我正在使用轮询模式(检查是否清除标志以使 Tx 缓冲器准备就绪)。

我无法在示波器中查看 SDA 和 SCL 的波形。 改变 P 增益值不会改变 Vout 值。 我可以看到 TXBUF 正在获取我发送的值、因此我假设从器件正在响应。

我没有执行某些步骤、或者连接有问题吗? 如果可能、请提供 MSP430FR5969的 I2C 通信示例代码以设置 PGA302的 P 增益。

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

    抱歉、我将这些寄存器与系数寄存器相混淆。 是的、它们是0x3FFF。 最低输出为21mV。 但应变电压将在1到3mV 的范围内、这将是我的电路的输入。 那么、这是否意味着它无法放大? 如果器件能够在更高的增益下工作、而目前没有、那么这个问题就可以解决。 即使忽略这些问题、对于给定的增益、输出-输入比也应保持恒定。 此时、此设置没有任何用处。

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

    https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/826293/pga302-pga302-for-piezoelectric-pressure-sensing

    本主题中提到输入电压应介于0.02V 到4.38V 之间。 这可能就是输入= 0V 时输出没有低于20mV 的原因。 该偏移可能是不可拆卸的、因此 PGA302无法检测到1至3mV 的电压。  

    我当时想 TC 和 NL 校正是否能够帮助解决这个问题、但是数据表中没有详细描述该部分。 如果您知道这是如何工作的、请告诉我。  

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

    我没有这些设备、所以我所能做的只是猜测。

    该电压范围[0.02,4.38]出现在第7.12节"注(1)"中。 我想它是他们选择的运算放大器的工件。

    SEC 7.18提到在0时 DAC 输出可以高达250mV。 即使使用 P_GAIN=200、1mV 也转换为200mV、而这(假设是 DAC 的直通)似乎无法与0区分开来。

    由于您的输入来自函数发生器、因此将其设置为相对较高的值(例如0.5V)、然后将其降低以查看其下降的位置可能会很有用。

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

    嗨、

    我使用了 INA128来放大电压。 它可以(多少?) 检测1到3mV 范围内的小电压。 尽管 PGA302和 INA128的输出仍然存在一些非线性、但如今、我将重点介绍不同的 IC。  

    Maxim 集成式 MAX5134的16位 DAC。 可以使用 SPI 协议对其进行编程、同样、我将使用 MSP430FR5969 Launchpad。 但问题是没有显式寄存器地址。 根据需要的操作,必须发送24位字(控制字+数据)。 但无论我发送何种命令、输出电压均未发生变化。 没有寄存器地址、因此无法回读。 我应用的方法是否正常? 或者我缺少什么吗?  

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

    您如何处理/ldac 函数? 您似乎可以通过以下方式驱动输出:

    1)晃动/LDAC 引脚(在写入代码寄存器之后)[请参阅 数据表(修订版4)第12页]

    2) 2)通过 SPI 使用 LDAC 命令[请参阅表1]

    3)使用 WriteThrough 命令,该命令绕过/LDAC 函数[以及表1]。

    更笼统地说:如何连接 DAC? 您是否正在将 REFI 连接到 REFO?

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

    目前、连接如下:

    MISO 准备就绪

    DIN 至 MOSI

    CS 接地

    Launchpad 的 AVDD 为5V;Launchpad 的 DVDD 为3.3V

    LDAC 接地(根据第18页上的典型工作电路)

    我不是以任何方式控制 LDAC ... 如何使用 SPI 代码来控制它?

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

    我正在使用 AVDD 作为 基准、因此 REFI 连接到 AVDD、而 REFO 未连接。

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

    第18页的原理图似乎显示/LDAC 连接到 DVDD (高电平)。 您需要将其设为低电平才能将其激活。 因此您可能无法使用它。

    此时最简单的步骤可能是使用 WriteThrough (Opcode 0x3X)而非 Write (0x1X)加载 DAC 通道。 这将绕过 LDAC 机制。

    较长期而言、您可能需要先使用 Write、然后再使用 LDAC (操作码0x01)、从而使通道保持协调。

    [编辑:你似乎有切换的主题,这个主题变得有点难以操作。 也许是时候发布新主题了吗?]

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

    感谢您的帮助。
    这个线程是我所有其他线程中反应最快的,所以我认为这可能是解决我所有问题的最佳地方:)...我不会有任何疑问,因为我的实习,我一直面临着这些技术问题。 即将结束。 我不得不说、在您的帮助下、我完成了项目的一大部分工作。 再次感谢您的参与。