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.

[参考译文] TIDM-HV-1PH-DCAC:LAUNCHXL-F28379D 更改了 ADC_A2/COMP1+

Guru**** 2539500 points
Other Parts Discussed in Thread: LAUNCHXL-F28379D, POWERSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/608597/tidm-hv-1ph-dcac-launchxl-f28379d-changing-adc_a2-comp1

器件型号:TIDM-HV-1PH-DCAC
主题中讨论的其他器件:LAUNCHXL-F28379DpowerSUITE

您好!

 我想将 voltageSourceInverterLCMfltr 项目移植到 LAUNCHXL-F28379D。

我注意到、在 powerSUITE 中、从 ADC_A2/COMP1+更改 Iinv 引脚的功能已灰显、我无法从 GUI 更改它。

这是很不幸的、因为我购买的 Launchpad 在 ADC_A2引脚上存在缺陷"对 Vref 短路或严重短路"、此问题已在本论坛中得到了详细讨论。

出于好奇、我想知道为什么我无法通过 GUI 更改引脚。

此外、如果我想手动更改引脚、我希望获得有关选择哪个引脚的任何建议、就像留在"A"列中一样、ADCINB4是否是可行的选择?

提前感谢您的任何反馈。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于没有人回答、我想我会尝试将 ADC_A2/CMPIN1P 功能移至 ADC_A4/CMPIN2P、直到新的 LAUNCHXL-F28379D 电路板发布时 ADC_A2/CMPIN1P 引脚上纠正的缺陷。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    发出该选项的原因是、ADC 的选择会对系统中的许多事物产生影响、并且需要在代码中的多个点进行更改。

    对于该项目、我建议坚持使用 ADC A。 对于 ADC A4的更改、CMP2代码中的几个位置必须手动更改、您仍无法更改 powerSUITE 页面上显示的内容。 以下是这些位置:

    1.以下例程使用 ADC_PIN_IL,并且它与 ADC A2绑定,您可能必须将下面的行硬编码为4,才能将其移动到 ADC A4

    //在 ADCA 上设置逆变器电流和电压的转换
    setupADCaConversion (ADC_TRIG_SOURCE、ACQPS_SYS_CLKS、ADC_PIN_IL、ADC_PIN_VIN、ADC_PIN_VOUT、3);

    2、这里我们设置了 CMPSS1来为 PWM 发出跳闸、您需要在 CMPSS2的相关位置进行修改、包括 X-Bar 寄存器更改

    //TODO setupBoardProtection()
    void setupBoardProtection (uint16_t CURRENT_SENSE、float CURRENT_LIMIT、float CURRENT_MAX_SENSE)

    PS:我们正在为该项目进行软件更新,这将使这些类型的更改在将来更加顺畅,版本将在2017年第4季度末发布

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

    您提到的更改似乎有效。

    ----------------------------------------

    伏尔塔格斯乌尔斯夫图尔.c

    //在 ADCA 上设置逆变器电流和电压的转换
    //xxx setupADCaConversion (ADC_TRIG_SOURCE、ACQPS_SYS_CLKS、ADC_PIN_IL、ADC_PIN_VIN、ADC_PIN_VOUT、3);
    setupADCaConversion (ADC_TRIG_SOURCE、ACQPS_SYS_CLKS、4、ADC_PIN_VIN、ADC_PIN_VOUT、5);

    ----------------------------------------

    hv1phdcac_board.c

    // xxx LEM 电流流入 ADC A2/CMPSS 1
    // xxx 启用 CMPSS1
    // LEM 电流流入 ADC A4/CMPSS 2.
    //启用 CMPSS2
    // xxx Cmpss1Regs.COMPCTL.bit.COMPDACE=1;
    Cmpss2Regs.COMPCTL.bit.COMPDACE=1;
    // NEG 信号来自低比较器的 DAC
    // xxx Cmpss1Regs.COMPCTL.bit.COMPLSOURCE=NEGIN_DAC;
    Cmpss2Regs.COMPCTL.bit.COMPLSOURCE=NEGIN_DAC;
    //NEG 信号来自高比较器的 DAC
    // xxx Cmpss1Regs.COMPCTL.bit.COMPHSOURCE=NEGIN_DAC;
    Cmpss2Regs.COMPCTL.bit.COMPHSOURCE=NEGIN_DAC;
    //使用 VDDA 作为比较器 DAC 的基准
    // xxx Cmpss1Regs.COMPDACCTL.bit.SELREF= reference_VDDA;
    Cmpss2Regs.COMPDACCTL.bit.SELREF= reference_VDDA;
    //将 DAC 设置为 H~75%和 L ~25%值
    // xxx Cmpss1Regs.DACHVALS .bit.DACVAL = 2048+(Int16_t)((float) Current_Limit *(float) 2048.0/(float) Current_max_sense);
    Cmpss2Regs.DACHVALS.bit.DACVAL=2048+(Int16_t)((float) Current_Limit *(float) 2048.0/(float) Current_max_sense);
    // xxx Cmpss1Regs.DACLVALS .bit.DACVAL = 2048-(Int16_t)((float) Current_Limit *(float) 2048.0/(float) Current_max_sense);
    cmps2Regs.DACLVALS bit.DACVAL = 2048-(Int16_t)((float) Current_Limit *(float) 2048.0/(float) Current_max_sense);
    //比较器输出"不"反相、以实现高比较事件
    // xxx Cmpss1Regs.COMPCTL.bit.COMPHINV=0;
    Cmpss2Regs.COMPCTL.bit.COMPHINV=0;
    //比较器输出针对低比较事件被反转
    // xxx Cmpss1Regs.COMPCTL.bit.COMPLINV=1;
    Cmpss2Regs.COMPCTL.bit.COMPLINV=1;
    //配置数字过滤器
    //最大 CLKPRESCALE 值可在两次采样之间提供最多的时间
    // xxx Cmpss1Regs.CTRIPHFILCLKCTL.bit.CLKPRESCALE = 0x1;
    Cmpss2Regs.CTRIPHFILCLKCTL.bit.CLKPRESCALE = 0x1;
    //最大 SAMPWIN 值可提供最大数量的样本
    // xxx Cmpss1Regs.CTRIPHFILCTL.bit.SAMPWIN = 0x1F;
    Cmpss2Regs.CTRIPHFILCTL.bit.SAMPWIN = 0x1F;
    //最大阈值要求整个窗口的静态值
    // THRESH 应该大于 SAMPWIN 的一半
    // xxx Cmpss1Regs.CTRIPHFILCTL.bit.THRESH = 0x1F;
    cmps2Regs.CTRIPHFILCTL.bit.THRESH = 0x1F;
    //复位滤波器逻辑&开始滤波
    // xxx Cmpss1Regs.CTRIPHFILCTL.bit.FILINIT = 1;
    cmps2Regs.CTRIPHFILCTL.bit.FILINIT = 1;
    //配置 CTRIPOUT 路径
    //数字滤波器输出馈送 CTRIPH 和 CTRIPOUTH
    // xxx Cmpss1Regs.COMPCTL.bit.CTRIPHSEL = Clrip_filter;
    Cmpss2Regs.COMPCTL.bit.CTRIPHSEL = CTRIP_FILTER;
    // xxx Cmpss1Regs.COMPCTL.bit.CTRIPOUTHSEL = Clrip_filter;
    Cmpss2Regs.COMPCTL.bit.CTRIPOUTHSEL = CTRIP_FILTER;
    //确保异步路径比较高事件和低事件
    //不会进入带有锁存数字滤波器输出的或门
    // xxx Cmpss1Regs.COMPCTL.bit.ASYNCHEN=0;
    Cmpss2Regs.COMPCTL.bit.ASYNCHEN=0;
    // xxx Cmpss1Regs.COMPCTL.bit.ASYNCLEN=0;
    Cmpss2Regs.COMPCTL.bit.ASYNCLEN=0;
    //比较器迟滞控制,设置为2个典型值
    // xxx Cmpss1Regs.COMPHYSCTL.bit.COMPHYS=2;
    Cmpss2Regs.COMPHYSCTL.bit.COMPHYS=2;
    // DAC 值在 sysclock 上更新
    // xxx Cmpss1Regs.COMPDACCTL.bit.SWLOADSEL=0;
    Cmpss2Regs.COMPDACCTL.bit.SWLOADSEL=0;
    //斜坡被绕过
    // xxx Cmpss1Regs.COMPDACCTL.bit.DACSOURCE=0;
    Cmpss2Regs.COMPDACCTL.bit.DACSOURCE=0;
    //清除锁存的比较器事件
    // xxx Cmpss1Regs.COMPSTSCLR.bit.HLATCHCLR=1;
    Cmpss2Regs.COMPSTSCLR.bit.HLATCHCLR=1;
    // xxx Cmpss1Regs.COMPSTSCLR.bit.LLATCHCLR=1;
    Cmpss2Regs.COMPSTSCLR.bit.LLATCHCLR=1;

    //为 CMPSS1H 和1L 的有源输入启用多路复用器、
    // xxx EPwmXbarRegs.TRIP4MUX0TO15CFG.bit.MUX0=1;
    EPwmXbarRegs.TRIP4MUX0TO15CFG.bit.MUX2=1;
    EPwmXbarRegs.TRIP4MUXENABLE.ALL=0x0000;
    //启用 Mux 0、选项2 CMPSS1.CTRIPH_OR_CTRIPL 以生成 TRIP4
    // xxx EPwmXbarRegs.TRIP4MUXENABLE.bit.MUX0=1;
    EPwmXbarRegs.TRIP4MUXENABLE.bit.MUX2=1;

    --------------------------------------------------

    再次感谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、很高兴知道它对我们有所帮助。

    -Manish