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.

[参考译文] TMDSSOLARUINVKIT:支持两个 PV 面板

Guru**** 2578945 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1267333/tmdssolaruinvkit-support-for-two-pv-panels

器件型号:TMDSSOLARUINVKIT

您好、TI 团队。

由于 TMDSSOLARUINVKIT 是目前的太阳能微型逆变器解决方案这一事实、我有一个问题、它能否处理两个 PV 面板? 有足够的 ADC 和 PWM、MIPS 怎么样呢?

如果它处理两个 PV 面板、那么我应该注意的是、在软件中有两个带有两个反激式(每个面板一个反激式)的 PV 面板、并且每个 PV 面板具有 MPPT 镇流器。

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

    它具有两个反激式 MPPT 直流/直流转换器。 每个转换器输入用于1个面板。 因此、总共可以有2个面板。 所有这些都已有记录。 有关详细信息、请阅读 UG

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

    我知道原理图上有两个反激式 MPPT 直流/直流转换器、但从软件方面来看呢?

    PWM4来控制第二个反激式 MPPT 直流/直流转换器、而 IPV_2_SEN (ADC-A3)来测量第二个面板的电流? 我对吗?

    换言之... 您的意思是、在 TMDSSOLARUINVKIT 软件中有任何东西可以完全支持两个 PV 面板?

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

    是的、软件适用于两种反激式转换器

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

    好的、那么、我将尝试它并让您知道。 谢谢

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

    大家好、  我检查了软件是否支持两个 PV 面板。 不幸的是,我没有找到他们的支持的任何条目,所以我开始创建对第二个 PV 面板的支持。
    请检查我的配置以初始化 PWM、ADC、COMP 和保护机制。
    我仍在研究逻辑问题、因此、我们将感谢您提出的任何建议。

    这是我用于处理第二个 PV 面板的配置。 测量 ADC_B4上发生的 IPV2、而 VPV2在 ADC_B3上发生。 PWM4用于控制第二个反激式转换器。 COMP2用于 PWM4保护机制。

     SolarMicroInv-DevInit_F2803x.c 文件中的 GPIO 设置:

    GpioCtrlRegs.GPAMUX1.bit.GPIO7   = 1;        // 0=GPIO, 1=EPWM4B, 2=SCIRX-A, 3=Resv

    初始化

    // PWM4 init.
    PWM_1ch_UpDwnCnt_CNF(4, (CPU_FREQ / (FLYBACK_FREQ)), 0, (CPU_FREQ / (FLYBACK_FREQ * 2)) - 2);
    
    // Add the dead band configuration for PWM4.
    EALLOW;
    EPwm4Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;  // rising delay on 1A & falling delay on 1B
    EPwm4Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;       // active high complementary mode (EPWMxA is inverted)
    EPwm4Regs.DBCTL.bit.IN_MODE = DBA_ALL;          // 1A for rising & falling
    EPwm4Regs.DBRED = FLYBACK_DEADBAND_RED;         // delay at rising edge
    EPwm4Regs.DBFED = FLYBACK_DEADBAND_FED;         // delay at falling edge
    EDIS;
    
    // ADC config.
    #define IPV2_FB     AdcResult.ADCRESULT10
    #define VPV2_FB     AdcResult.ADCRESULT11
    	
    // EPWM 4 SOC signals.
    ChSel[10] = 12;             // B4 - IPV2
    ChSel[11] = 10;             // B3 - VPV2
    
    // Select Trigger Event.
    // EPWM 4.
    TrigSel[10] = ADCTRIG_EPWM4_SOCA;
    TrigSel[11] = ADCTRIG_EPWM4_SOCA;
    
    // Configure the PWM to issue appropriate start of conversion for the ADC.
    // DC-DC Flyback.
    EPwm4Regs.ETSEL.bit.SOCAEN = 1;             // enable SOC on A group.
    EPwm4Regs.ETSEL.bit.SOCASEL = ET_CTRD_CMPB; // select SOC from counter at ctr = 0
    EPwm4Regs.ETPS.bit.SOCAPRD = ET_1ST;        // generate pulse on 1st even
    EPwm4Regs.ETSEL.bit.SOCAEN = 1;             // enable SOC on A group
    EPwm4Regs.CMPB = 12;

    保护机制:

    // Cycle by cycle interrupt for CPU halt trip.
    EPwm4Regs.TZSEL.bit.CBC6    = 0x1;
    
    // Adding one shot trip for over current of the flyback2 stage but avoid the <1% duty condition using blanking.
    //------------------------------------------------
    // First enable the COMP2.
    Comp2Regs.COMPCTL.bit.COMPDACEN             = 0x1;
    Comp2Regs.COMPCTL.bit.SYNCSEL               = 0x0;  // asynchronous version of the COMP signal is passed to the EPWM/GPIO module
    Comp2Regs.COMPCTL.bit.CMPINV                = 0x0;  // output of the comparator is passed directly
    Comp2Regs.COMPCTL.bit.COMPSOURCE            = 0x0;  // inverting input of the comparator is connected to the internal DAC
    Comp2Regs.DACVAL.bit.DACVAL                 = 700;  // set DAC input to peak trip point ~10 Amps, full scale is 15Amps
    AdcRegs.COMPHYSTCTL.bit.COMP2_HYST_DISABLE  = 0x1;
    
    // Select COMP2 as one shot trip.
    EPwm4Regs.DCTRIPSEL.bit.DCAHCOMPSEL         = DC_COMP2OUT;
    EPwm4Regs.TZDCSEL.bit.DCAEVT1               = TZ_DCAH_HI;
    EPwm4Regs.DCACTL.bit.EVT1SRCSEL             = DC_EVT_FLT;
    EPwm4Regs.DCACTL.bit.EVT1FRCSYNCSEL         = DC_EVT_ASYNC;
    EPwm4Regs.TZSEL.bit.DCAEVT1                 = 0x1;
    //------------------------------------------------
    
    // Add blanking to avoid conditions where the over current trip generates <1% duty cycle.
    //------------------------------------------------
    EPwm4Regs.DCFCTL.bit.BLANKE     = DC_BLANK_ENABLE;  // blanking window is enabled
    EPwm4Regs.DCFCTL.bit.BLANKINV   = DC_BLANK_NOTINV;  // blanking window is not inverted
    EPwm4Regs.DCFCTL.bit.SRCSEL     = DC_SRC_DCAEVT1;   // DCAEVT1
    EPwm4Regs.DCFCTL.bit.PULSESEL   = DC_PULSESEL_PRD;  // apply offset from TBCTR=TBPRD
    EPwm4Regs.DCFOFFSET             = 59;
    EPwm4Regs.DCFWINDOW             = 255;
    //------------------------------------------------
    
    // What do we want the OST/CBC events to do?
    // TZA events can force EPWMxA.
    // TZB events can force EPWMxB.
    //------------------------------------------------
    EPwm4Regs.TZCTL.bit.TZA         = TZ_FORCE_LO;      // EPWMxA will go low
    EPwm4Regs.TZCTL.bit.TZB         = TZ_FORCE_LO;      // EPWMxB will go low
    
    // Clear any spurious trips.
    EPwm4Regs.TZCLR.bit.OST         = 1;
    
    // Force a trip event on all the PWM modules for safety.
    EPwm4Regs.TZFRC.bit.OST         = 0x1;

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

    请查看 PWM3的代码。 这用于第一个 PV 电池板。

    然后、第二个 PV 的 PWM4代码将是类似的、只不过它将使用 PWM3有半个 PWM 周期相移。

    该代码是在很久以前在我们的旧 MCU 系列上编写的。 此外、编写代码的人员不再在 TI 工作。 因此、您需要遵循 PWM3的代码并测试 PWM4的代码。

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

    您好、 。 是的、我现在处理逻辑产品。 我的 PWM4基于 PWM3设置、但我有一个问题。

    您说:

    那么您的第二个 PV 的 PWM4代码将相似,但它将使用 PWM3产生半个 PWM 周期相移。

    为什么? 因为第二个 PV 电池板被连接至第二个反激式 DC-DC 转换器?

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

    好的、在这种情况下不需要交错。 我当时正在考虑交错 PWM (相移为180度)以减少输入电流纹波。 但在这里、输入源是不同的面板。 因此没有必要。 无论哪种方式都很好、180度相移或没有相移

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

     我想在 EPWM4B 中使用的 GPIO07设置期间的 Shamim Choudhury。 我找到以下设置:

    //  GPIO-07 - PIN FUNCTION = OPRLY
    	GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 0;		// 0=GPIO,  1=EPWM4B,  2=SCIRX-A,  3=Resv
    	GpioCtrlRegs.GPADIR.bit.GPIO7 = 1;		// 1=OUTput,  0=INput
    	GpioDataRegs.GPACLEAR.bit.GPIO7 = 1;	// uncomment if --> Set Low initially
    //	GpioDataRegs.GPASET.bit.GPIO7 = 1;		// uncomment if --> Set High initially

    并想知道在代码中使用 GPIO07作为什么用途。

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

    GPIO7用于输出继电器控制。

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

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

    感谢您解码此快捷方式、但继电器未连接到 GPIO07、但 GPIO22。 我找不到我想用于 PWM 的 GPIO07的用途、但当我看到"OPRLY"想问我。

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

    好的。 我看过了原理图。 该图显示、通过使用适当的跳线 J10和 J11、GPIO7可用于两个功能(PWM4B 或 UART/RX)中的任何一个