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.

[参考译文] PGA +输入偏置

Guru**** 2746725 points

Other Parts Discussed in Thread: INA240, BOOSTXL-DRV8320RS

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/889136/pga-in-bias

器件型号:LAUNCHXL-F280049C
主题中讨论的其他器件:INA240BOOSTXL-DRV8320RS

启用 PGA 电阻滤波器 C32、33、34、移除 R19、R22、R25并设置+1.65v BIAS J7引脚67、68、69每个 PGA2、4、6的 OUT 信号为过零、J5引脚45、46、48已断开连接。 因此、CMPSSx 期望1/2 Vs +1.65v 信号随机跳闸 ePWM 组合 TripIN。  从 PGA_GND (-IN)中删除了对线程 R27的添加、使其成为以1.65v 为中心的模拟缓冲器。 PGA (Rgnd)电阻器未连接、但稍后通过 R27 0r 重新连接。  

1.为什么 PGA 输出在启用3个滤波器后没有设置为中间电源的阈值?

2.在 PGA 输出上设置1/2 Vs (+1.65v)是否需要其他配置?

奇怪的是、如果我们将 INA240中间电源(+1.65v)输出用于 ADC 输入并禁用旁路 PGA、那么 CMPSSx 直流滤波器似乎表现出中间电源视图、随机跳变 ePWM 故障。 PGA x12增益不存在此问题、因此似乎 PGA_OUT 的中心电压小于1.65v。

注:模拟子系统 CMPSSx_lp0/HP0 (TRM 图12.4)。

//表示 Motor_1/Motor_2
for (cnt = 0;cnt < 3;cnt++)
{
//将增益设置为12到 Site1=PGA1/3/5或 Site2=PGA4/6/2
PGA_setGain (obj->pgaHandle[cnT]、PGA_GAIN_3);//12

//输出没有滤波电阻器
/*启用低通滤波器的内部电阻值
*外部电容器 C32、33、34、移除 R19、22、25 *
PGA_setFilterResistor (obj->pgaHandle[cnT]、
PGA_LOW_PASS_FILTER_ITERR_100_Ohm);

//启用 Site1=PGA1/3/5或 Site2=PGA4/6/2
PGA_ENABLE (obj->pgaHandle[cnt]);
} 

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

    尊敬的 GL:

    很抱歉、我不清楚您的问题。 PGA 滤波器对直流增益没有影响。 您为 PGA 提供什么输入?

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

    这个问题非常清楚、通过外部 DAC 引脚或者通过设置为中间电源的 INA240、+IN =+1.65v 中间电源。

    问题似乎是 PGA 将过零信号输出到 ADC (而非中间电源)、探针 J5输出滤波器引脚。 这些引脚是 PGA 放大器的输出。

    如果+IN 引脚具有+1.65V 偏置电压、PGA 输出为什么没有中间电源阈值? 假设 PGA 输出的电源阈值为中间值、则配置 CMPSSx。 否则、没有必要反转低 DAC 输出! 通过 QC 调试检查实现低侧反转的原因似乎是、该值始终低于2048个计数、因为 PGA 输出为过零! 这似乎解释了 INA240无法产生与 SDK FOC 设置中配置的 PGA 相同的 Id 电机结果的原因。 如果确实如此,就必须尽快纠正,以保护社区免受这种流行病的影响!

    以下代码在 SDK 中配置不正确、只执行1个函数、通过 TripINx 的 MUX 将 CMPSSx CTRIP-H/L 输出到 ePWM XBar。 另外两个定义不属于此函数调用。

    //配置输出信号。 CTRIPH 和 CTRIPOUTH 都将被馈送
    //由异步比较器输出。
    CMPSS_CONFIGOutputsHigh (obj->cmpssHandle[cnT]、CMPSS_TRIP_FILTER |
    CMPSS_TRIPOUT_FILTER |
    CMPSS_OR_ASYNC_OUT_W_FILT);
    
    CMPSS_CONFIGOutputsLow (obj->cmpssHandle[cnT]、CMPSS_TRIP_FILTER |
    CMPSS_TRIPOUT_FILTER |
    CMPSS_INV_INTRIP); 

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

    [引用用户="Frank Ankapong"]很抱歉,我不清楚您的问题。

    你回答了两个问题、而不是第1或第2点。

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

    我对您提出的问题仍不是100%清楚、但我将根据我当前的理解尝试回答。

    PGA 不支持电压跟随器模式。 最小增益为3倍、因此我不能确切地确定您为什么期望1.65v 输入的输出电压为1.65v。 如果您向 PGA 输入1.65v、任何增益设置都会导致输出轨到 VDDA。

    您可以应用到 PGA 的最大输入取决于我在下面的公式中列出的增益设置:

    i.如果线性度很重要、则最大 PGA 输入=(VDDA - 0.35v)/PGA_GAIN

    二 如果线性度不重要、则最大 PGA 输入= VDDA/GA_GAIN

    要直接回答您的问题、请执行以下操作:

    1.正如我在之前的回复中所说,是否使用 PGA 滤波器对直流增益没有影响。 启用 PGA 滤波器不会突然使 PGA 成为电压跟随器。

    2.见上文。 如果您需要1.65v 的输出、则需要输入1.65v/PGA_GAIN

    如果我仍然没有回答您的问题、请指出我缺少的内容、我将尽力回答。

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

    [引用用户="Frank Ankapong"] PGA 不支持电压跟随器模式。 最小增益为3倍、因此我不能确切地确定您为什么期望1.65v 输入的输出电压为1.65v。 如果您向 PGA 输入1.65v、任何增益设置都将导致输出电压轨到 VDDA。[/quot]

    无论设置了什么增益、3、6、12、24电阻滤波器输出引脚保持在 VREFLO  VDDA 上。 然后、模拟信号过零进入 ADC 模拟子系统 TRM 12-1。 SDK 软件 CCMP 的假定 PGA 输出设置为中间电源(1.65v)、这是任何人都认为用于 SPRUHJ1H–2013年1月–2019年6月修订版中所述电机相电流校准的电流标度系数的结果。

    或者、可以将 INA240设置为单向输出(0V-3V3)并将 PGA 用作接近单位增益(缓冲器 x3)。 在有无 PGA 输入缓冲器的情况下不能产生可用结果的放大器。 PGA 必须与1:1模拟输入缓冲器一样用于模拟信号源的 ADC 阻抗匹配。 PGA 对于电机控制来说无用中位电源信号的 ADC 阻抗匹配、HV 瞬变可通过非常有限的输入滤波器连接 MCU BoostXL 套件演示。 INA240具有 PGA 不存在的内置瞬态抑制和 PWM 抑制功能。 INA240展示了业界公认的 ADC 双向电流监控技术、该技术通过1.65V 中间电源输出进入 ADC 通道、TI 工程师也接受了多个 TIDA 套件。  

    否则、在不使用 PGA 输入进行相电流检测的生产系统的基础上构建 SDK 软件将无用。 我认为这不是 TI LaunchPad 和 Booster Pack 开发套件的任务声明。 行业范围内的匹配 ADC 放大器可用于缓冲模拟信号之外的其他信号!  

    [引用用户="Frank Ankapong"]2. 见上文。 如果您需要1.65v 的输出、则需要输入1.65v/PGA_GAIN

    PGA 输出结果与 SPRUHJ1H–2013年1月–2019年6月修订版文档直接冲突。

    似乎您缺少 PGA +IN 引脚通过 INA240双向输出阈值偏置+1.65v 的点、但由于 +IN 偏置1.65v、PGA 输出滤波器引脚应处于中间电源(1.65v)时仍保持在 VDDA VREFLO。 BoostXL-DRV8320rs 使用外部 DAC 偏置 PGA 的+IN (1.65v)会失真相对于所选低侧分流电阻值的 mV/A 计算和 PGA 增益电平。 在 PGA 输出 应以+1.65v 为中心的 SDK 换算系数和 ADC 公式中、INA240无法正常工作。 没有讨论 SDK 的文档进行了这种不兼容的电流监控器更改。

    //! \brief 定义 AD 转换器上的最大电流
    //! BOARD_BSXL8320RS_REVA GAIN=12、INA240 GAIN=20
    #define USER_ADC_FULL_SCALE_CURRENT_A

    同样、通过 SPRUHJ1H–2013年1月–2019年6月修订版、此 PGA 问题远未涉及任何 TI 文档。

    结果是 SDK 换算系数 ADC 公式仅适用于 BoostXL-DRV8320Rs、并通过定制直流逆变器硬件产生错误的电机 ID 计算。 看似奇怪的 PGA_OUT 行为是由于 PGA 反相输入上的 R26/R27 0r 接地所致。  

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

    [引用 user="Frank Ankapong"]如果您向 PGA 输入1.65v、任何增益设置都会导致输出达到 VDDA 轨[/引用]

    请注意上述旨在键入 VREFLO 而非 VDDA 的 POST (红色)更正。 这不会作为 VREFLO 的输出轨发生、但如果我们触摸具有+1.65v +IN 偏置的滤波器引脚 JP5 - 45、48、60Hz 信号是过零。 这似乎是因为 PGA 错误地将过零信号输出到模拟子系统和 ADC 通道中。  

    同样、与使用2048个 ADC 计数来触发 ePWM TripIN 相关的 CCMPS 低侧反相输出配置也是工程师的线索、他们希望 PGA 输出处于1/2 Vs。 这也是我的观点、它似乎适用于 INA240、但不适用于位于 VREFLO 的 PGA 或 Rfilter 输出引脚。

    也许配置文件管理器的驱动程序库调用不会将所选值置为有效、因为输出仍然为 VREFLO?   

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

    GL、

    似乎存在严重的通信错误。 我将再次尝试通过图表进行解释。

    F280049器件上的 PGA 在同相放大器配置中进行硬编码、您无法对此进行更改。 不支持单位增益模式或电压跟随器模式。

    查看 TRM 的上图、您能不能帮助我理解为什么在 PGA_IN 上使用1.65v 会在 PGA_IN 上产生1.65v?

    要回答第二个问题:如果在 PGA_of 上看到0v、则表示未启用支持的滤波器选项。 您可以在观察窗口中查看 PGACTL 寄存器的 FILTRESSEL 域。 您应该会看到一个介于1到6之间的数字。

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

    [引用 USER="Frank Ankapong"]您可以帮助我了解为什么您认为 PGA_IN 上的1.65v 应该会导致 PGA_of 上的1.65v?

    PGA_IN 偏置为1.65V、因此 PGAEN 输出必须在1.65V 附近居中、而不是在配置 FILTRESSEL 时在 PGA_OF 上显示 VREFLO。 没有其他方法可以通过 DMM 或示波器探针验证 PGA_OUT 实际上是以1.65V 为中心、移除 PGA_GND = R27。 该1.65v 中心是电机驱动器套件监测过去控制套件和其他 TIDA 套件低侧分流电流的典型方式。 作为 PGA_OUT 的点、必须在任一方向摆动超过+/-500mV、ADC 才能通过1.65V 中心至 VDDA 和165V 低至 VREFLO 以任何精度缩放更高的相电流。 我意识到 PGA 不是真正的轨到轨350mV 损耗、而 INA240轨大约为200mV < 3V3。

    重点是、SDK 应能够在没有 PGA 的情况下与 INA240A1 x20增益配合使用、但无法生成正确的 ADC 结果。 针对 PGA 行为对 SDK 进行了微调以控制 FAST 估算器、在不复制 BoostXLDRV-8320rs 的同一滤波器的情况下、SDK 似乎无法产生正确的 LC 电感。 因此、我为 PGA 的外部滤波器添加了2200pF 电容器、设置100欧姆 Rfilter、电压未按预期以1.65v 为中心。 因此、INA240将 PGA 用作 ADC 输入缓冲器、也将用作该缓冲器。 根据滤波器输出引脚上的结果、PGA_OUT 以 REFLO 为中心。 INA240论坛 Gurus 认为、ADC 的中心1.65v 输出是双极电流检测的神圣准则。

    请参阅 SPRUHJ1H–2013年1月–2019年6月修订第356页图 8-11、8-12

    为什么在使用外部放大器时使用 PGA? 一种情况是、如果许多不同额定电流的电机使用同一个逆变器供电。 可以调节电流信号的放大、以最适合受控的电机尺寸。 PGA 块的输出是比较器窗口的输入。 仍需要连接 PGA 才能使用故障检测电路。 x49c MCU 不是这样。

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

    我可能忘记了添加 PGA_GND (-IN)未连接到 VREF_LO、而 R27已移除。 因此、PGA 应作为接近1.65V 的 ADC 和 PGA_OUT 中心的缓冲级运行、因为反相输入具有 PGA_OUT 反馈迟滞、以在20kHz 时偏移相位裕度。

    查看第230页图 5-4更接近我尝试将 PGA 用作 INA240的缓冲级。

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

    问题可能是 R27 0r 需要为1k 或更大、以便 PGA_OUT 能够摆动+/-1.65v。 尚未测试、但对于 INA240 2m Ω 分流值40mV/A、ADC 换算系数设置为76A FS 我不确定 User_ADC_SF 是否甚至可以用于80A 检测、因为 SDK 似乎几乎可以用于40A SF。 至少电机 ID LAB5 50Hz 速度会进一步进入 PWM 跳变故障之前的 RatedFluxOL 时间等待。 否则、SDK BoostXL-DRV8320rs 电机 ID 会因为具有正确电感而导致20Hz 转子失速、这只是一个 wacko、但奇怪的是、它起作用了!   

     

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

    将2m Ω 分流器升级为5m Ω、并减小了 USER_ADC_FULL_SCALE_CURRENT_A =(32.7)和 IA_OFFSET_A/B/C=(-16.35)。 进入 EST_State_RatedFLUX_OL 后、INA240中间电源跳闸 CMPSSx 直流比较器 ePWM TripIN 也会出现相同的问题。 较高的5毫伏分流电阻会使差分放大器的输入驱动得比2mV 困难得多。  

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

    [引用用户="Frank Ankapong"]2. 见上文。 如果您需要1.65v 的输出、则需要输入1.65v/PGA_GAIN

    如果 PGA_IN 偏置除以 PGA_GAIN、您是否确实意味着 PGA 输出将以1.65v 为中心?

    那么、输入偏置1.65v/x12 = 0.55V 的输出中心? 您的陈述的第一部分与第二部分公式相矛盾。   

    根据图8-12、对于其他几个列出的 C2000、应获得1.65v Vadcin 中心1.65v 以获得 x3增益。  

    从 CMPSS DAC 滤波器如何跳闸 ePWM 故障(Vadcin 1.65)来看、似乎 PGA_OUT 更像是0.55v。

      

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

    boostxl-drv8320rs PGA_OUT 的 I 已确认通过 PGA 滤波器输出示波器 J5 -引脚45、46、48首先移除300pF 电容器将1.68v 居中。

    已确认用户 FS 已奇怪地设置42A、使用电位计规则计算滤波器数学运算、通过140mV/A 输入偏置似乎无法实现。 7m Ω 分流器(x12)增益提供的最佳 ADC 1/2刻度 PTP 电流略小于20安培。 从 ADC 测得、2048计数上升至 VDDA、从完美0 (1.68v)下降至-2048 VSSA (0v)。

    我注意到直流逆变器放大器上的 INA240与 BoostXL 电流检测 PGA 放大器的 INA240有直接差异。 ADC 电流换算系数设置为滤波器实际 mV/A 的两倍。 如果没有用于管理 OVC 直流跳闸的 CMPSS、则只有 BOOSTXL Tz2输出在峰值电流下跳闸、如配置的那样。 显然、SDK (FOC)没有为 ePWM 跳闸配置直流源、这可能是一个 WA、用于获取 NexFET 峰值40A 输出、但在某种程度上是含糊不清的。 否则、CMPSS DCA/B 源不会触发 ePWM 故障、因为它们现在是在为跳闸区域操作添加直流源后发生的。  

    输入滤波器数学运算:VIN *(R2/R1+R2)= 0.140286141788452797730261667273 PGA_IN BIAS x 12 = 1.68v 中央 PGA_OUT。

    用户 ADC 满量程设置为完美的0v 2048计数:1.68v/0.140mV/A = 24A 峰值而非42A。 通过 PGA_IN BIAS x12增益将7m Ω 分流器(7mV/A)考虑在内。 增加 ADC +/-半量程(2048)计数的最佳方法似乎是将分流电阻值从7m Ω 降低到3m Ω、以得出42A 峰值 FS?  当 Boostxl-drv8320rs 声称40A 峰值驱动电流时、该套件似乎限制在24A 峰值。 这似乎解释了> 10µH μ H 定子电感转子为什么会在20Hz 时停转。  

    也许 SDK 开发人员注意到这个奇怪的问题、并进一步限制了 ADC 24A 峰值?

    //! \brief 定义 AD 转换器的最大电流
    //! BOARD_BSXL8320RS_REVA GAIN=12 140mV/A、INA240 GAIN=20 40mV/A
    #define USER_ADC_FULL_SCALE_CURRENT_A ((float32_t)(42.843)) 

      

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

    我将此问题转发给该软件的开发人员。 他们的回答是该主题中的信息不清楚、我们需要一个原理图来阐明您的系统是什么、这将帮助他们了解并尝试回答您的问题。

    此致、
    Cody   

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

    2048的值确实让我感到困惑、HAL 已将直流比较器滤波器设置为中间电源2048、但它无法触发 EPWM 故障。 直到我发现稍后在 LAB5内部使用与 HAL 初始化的完全不同的滤波器值覆盖直流滤波器设置。 任何人都不会指望这种写得太多,而是在我的脑海中挫败了 HAL 的意图。 在这篇文章之后、为了发现其他 DC 值、无意中发现蜜蜂巢、这也是错误的。

    点在最后一篇文章中峰值电流设置为 ADC 满量程似乎错误、因为对于双向相电流 PTP 的+/- 40A 整数 ADC 样本、完美零除以4096/2、而不是20A PTP。 每个 SVPWM 扇区 Uout 都有2种可能性、基于通过 FAST 估算器确定旋转角度的样本值_IA_、_IV_。  

    PGA2、4、6_of 实际上以1.68v 为中心、但 DCA/B L/H 滤波器值2048设置为完美0 (1.68v 中心)、而不是通过 HAL 配置的 ePWM 跳闸点。 在 CMPSS DCA/B 中、看似7m Ω 的分流器限制了 PTP 相电流+/-20A 然而、NexFET 数据表显示40Arms 绕组电流、400A 单脉冲< 100µs μ s。 RMS 绕组电流= 0.707*峰值。 PGA_OUT 样本不是 RMS、ADC FS 值可能应为 PTP 值的两倍。 似乎应该是2*ADCFS /2*0.707,以便通过 NexFET 实现40Arms 峰值。

    否则、通过 FAST 估算器获取的旋转角度可能会导致转子振动、这与电机识别为 true 后较小转子中持续发生的情况相同。 短接(1/2 fs =2048 40A PTP)似乎不是 ADC FS 40A 峰值,因为绕组电流的每个1/2周期在完美的360°圆中出现180°异相。 在采样率中、不会同时出现一半电流(A)正弦波或功率(W)。 在20Khz PWM 下、50µs μ s 周期只捕获一个1/2周期。 至少对于 INA240的精度理念、我们的定制逆变器80A FS 窗口、使用更高的 FS 放大器更容易实现 LtoL RS 欧姆值。 在电流测量方面、NextFET 数据表如何声明 Iout=40Arms 堆叠至具有7m 分流器的 PTP RMS 电流的 SDK 示例/与之搭配?