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.

[参考译文] CCS/LAUNCHXL-F28027:BOOSTXL-C2KLED 可将反馈引脚从输出电流源更改为输出分压器

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/684782/ccs-launchxl-f28027-boostxl-c2kled-to-change-feedback-pin-from-output-current-source-to-output-voltage-divider

器件型号:LAUNCHXL-F28027
主题中讨论的其他器件:BOOSTXL-C2KLEDTMS320F28027TIDA-00282controlSUITE

工具/软件:Code Composer Studio

大家好、我尝试将 BOOSTXL-C2KLED 的其中一个升压转换器的反馈从恒定电流更改为输出分压器。

增压器1-2 (GRN 和 Blu)仍在 A2和 A1使用旧反馈。 当升压器3 (红色)时、我计划使用 B4处的分压器。

我已按如下方式更改连接:

长 IrefNetBus3=0; //用作 Iref3
long VrefNetBus3=0的地址; //用作 Vref3 (新)
long UoutNetBus3=0的地址; //用作 Uout3
#pragma DATA_SECTION (CNTL_2P2Z_CoefStruct3、"CNTL_2P2Z_Coef")的地址;
struct CNTL_2P2Z_CoefStruct3;

//转换控制
long Iset1=0; //控制循环1目标
long Iset2=0; //控制循环2目标
long Iset3=0; //控制循环3目标
long Vset3=0; //控制循环3目标(新)

长整型 Itarget1=0; //针对压摆率
long Itarget2=0调整的控制环路1目标; //针对压摆率
long Itarget3=0调整的控制环路2目标; //针对压摆率
long Vtarget3=0调整了控制环路3目标; //针对压摆率调整的控制环路3目标(新)

//为方便"人"使用
int16 Gui_Vin=0的变量; //Q09
Int16 Gui_Vout1=0;//Q08
Int16 Gui_Vout2=0;//Q08
Int16 Gui_Vout3=0;//Q08
Int16 Gui_Vout8=0;//Q08
Int16 Gui_Iset1=0; //Q15
Int16 Gui_Iset2=0;//Q15
Int16 Gui_Iset3=0;//Q15
Int16 Gui_Vset3=0;//Q08 (新)
Int16 Gui_Iout1=0;//Q15
Int16 Gui_Iout2=0;//Q15
Int16 Gui_Iout3=0;

//升压连接/ Q15
ADCDRV_1ch_Rlt11 =&AdcNetBus[11]; //(之前在下面、刚刚移到这里)
CNTL_2P2Z_REF3 =&VrefNetBus3; //指向 Vref3 (编辑)
CNTL_2P2Z_Fdbk3 =&AdcNetBus[11]; //指向 Vout3 (编辑)
CNTL_2P2Z_Coef3 =&CNTL_2P2Z_CoefStruct3.B2;//指向第一个循环的第一个系数
CNTL_2P2Z_Out3 =&UoutNetBus3; //指向2P2Z Uout3
PWMDRV_1ch_UpDwnCnt_Duty2 =&UoutNetBus3;

//电压连接
ADCDRV_1ch_Rlt3 =&AdcNetBus[3]; //(已在上面,只是移动到这里)
ADCDRV_1ch_Rlt9 =&AdcNetBus[9];
ADCDRV_1ch_Rlt10 =&AdcNetBus[10];
ADCDRV_1ch_Rlt12 =&AdcNetBus[12];

//所有通道关断控制(无定序)
if (StopAll = 1)
{
IrefNetBus1 = 0;
IrefNetBus2 = 0;
IrefNetBus3 = 0;
VrefNetBus3 = 0;
ChannelEnable1 = 0;
ChannelEnable2=0;
ChannelEnable3 = 0;
Gui_Iset1 = 0;
Gui_Iset2 = 0;
Gui_Iset3 = 0;
Gui_Vset3 = 0;//(新)
MergeLEDs = 0;
AutoColor = 0;
SetColor1 = 0;
SetColor2=0;
StopAll = 0;
}

//通道3开/关控制
if (ChannelEnable3 = 1)
//Idtarget3 = Iset3;//(以前)
Vtarget3 = Vset3;//(IS)
其他
//IdTarget3 = 0;//(以前)
Vtarget3 = 0;//(is)


/*(以前)
SlewError =(IrefNetBus3 - Itarget3);
IF (SlewError > SlewStep3)
IrefNetBus3 = IrefNetBus3 - SlewStep3;
否则(SlewError <(-SlewStep3))
IrefNetBus3 = IrefNetBus3 + SlewStep3;
其他
IrefNetBus3 = Itarget3;*

//(IS)
SlewError =(VrefNetBus3 - Vtarget3);
IF (SlewError > SlewStep3)
VrefNetBus3 = VrefNetBus3 - SlewStep3;
否则(SlewError <(-SlewStep3))
VrefNetBus3 = VrefNetBus3 + SlewStep3;
其他
VrefNetBus3 = Vtarget3;

//与 longs 相乘以获得正确的结果,然后移动14以将其转换回 Int16
Iset1 =((long) Gui_Iset1*(long) Ik_ISET)>> 5;
Iset2 =((long) Gui_Iset2*(long) Ik_ISET)>> 5;
Iset3 =((long) Gui_Iset3*(long) Ik_Iset)>> 5;
Vset3 =((long) Gui_Vset3*(long) K_Vout)>> 16;//(新的、可能错误、但对于实验、可以在调试中看到原始数据)


/*(以前)
if ((Gui_Iset3 = 0)&&(AdcNetBus[3]= 0)&&(UoutNetBus3 >=_iQ24 (0.001))){
AdcNetBus[3]= 40960;
}
*
//(IS)
if ((Gui_Vset3 = 0)&&(AdcNetBus[11]= 0)&&(UoutNetBus3 >=_iQ24 (0.001))){
AdcNetBus[11]= 40960;
}

在调试时、结果如下:

Duty2. 0.0 (Q 值(24)) 0x00008850@数据
Gui_Iout2 内部 0.00494385 (Q 值(15)) 0x0000881E@数据
Gui_Vout2 内部 23.8633 (Q 值(8)) 0x00008822@数据
Gui_Iset2 内部 0.00497437 (Q 值(15)) 0x00008816@数据
IrefNetBus2 126447 0x00008864@数据
UoutNetBus2 0.2317534685 (Q-Value (24)) 0x00008860@数据
Hist_Vout2 长[8] [1223、1219、1224、1222、1220...] 0x00008950@数据
荷兰3. 0.0 (Q 值(24)) 0x0000884C@数据
Gui_Iout3 内部 0.0 (Q 值(15)) 0x00008821@数据
Gui_Vout3 内部 11.3047 (Q 值(8)) 0x00008823@数据
Gui_Iset3 内部 0.0 (Q 值(15)) 0x00008819@数据
Hist_Vout3 长[8] [572,588,579,582,588.58...] 0x000088E0@数据
目标3. 1198 0x00008828@数据
Vset3 1198 0x00008836@数据
Gui_Vset3 内部 15.0 (Q 值(8)) 0x00008818@数据
VrefNetBus3 1198 0x00008852@数据
UoutNetBus3 0.0 (Q 值(24)) 0x00008854@数据
AdcNetBus 长[16] [0、0、135168、0、0...] 0x00008980@数据
CNTL_2P2Z_CoefStruct3.B2 327680 0x00008A4E@数据
AdcNetBus[11]>12. 571
AdcNetBus[10]>12. 1224.

是否可以更改反馈引脚或我的代码中缺少的内容?

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

    维克多

    您是否正在尝试将控制方案从电流模式控制更改为电压模式控制? 我不建议使用 TI 套件执行此操作、因为这可能不是现有硬件和软件的目的 请确保您遵循此套件的用户指南。  

    如果我在这里遗漏了一些东西、请告诉我。

    Hrishi  

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

    Hrishi、您好!  

    我正在制作类似的硬件(升压转换器)。

    我计划使用与 PWM2A 相同的 F/W 和 H/W。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否有其他用于升压转换器的示例项目/代码?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Victor:

    您可以参考此 TI 设计。 www.ti.com/.../TIDA-00282
    但愿这对您有所帮助。
    Hrishi
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    它基于 TMS320F28030-Q、可能很难移植到 TMS320F28027 (LAUNCHXL-F28027)。
    此外、我只需要与 BOOSTXL-C2KLED 类似的电压模式。
    唯一的区别是反馈的点来自哪里。
    www.ti.com/.../TIDA-00282 是峰值电流模式、在该模式下、FET 电流的每个脉冲都与输出电压一起受到监控。
    而 BOOSTXL-C2KLED 仅监控输出电压。 当然、流经 LED 的电流会转换为电压。

    因此、如果可能、只需使用 BOOSTXL-C2KLED 中使用的软件更改反馈引脚。

    此致、

    维克多

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

    TIDA-00282使用电压模式控制。

    您能否解释一下您在更改 ADC 反馈引脚时看到的行为? 预期行为是什么? 请确保在代码中选择了正确的 ADC 通道。

    您可以尝试先以开环方式运行转换器、然后查看 ADC 反馈。 让我知道您在开环测试中发现了什么。

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

    Hrishi、您好!

    我没有硬件 TMS320F28030-Q、我只有 TMS320F28027。

    电压反馈在 ADC_B1 (通过 R64和 R68)处测量并处于电压模式。

    TIDA-00282正在使用 Boost3PhIL_PwmCnf、我在较新的 DPLib.pdf (C:\ti\controlSUITE\libs\app_libs\digit_powers\F2802x_v3.5\Doc)中找不到该文件、因此可能很难移植到 F2802x。

    查看用于 TIDA-00282的 ControlLaw2P2Z 的连接

    // ControlLaw2P2Z 连接
    CNTL_2P2Z_Ref1 =&VoutSetSlewed;//指向 Vref
    CNTL_2P2Z_Fdbk1 =&ADC_Vout;//指向 Vout
    CNTL_2P2Z_Coef1 =&CNTL_2P2Z_CoefStruct1.p2B2
    =第一个 CNTL_2P2Z;//指向第一个 CNTL_OutDuty;//指向2P2Z Uout 

    我使其类似于 LAUNCHXL-F28027

    ADCDRV_1ch_Rlt11 =&AdcNetBus[11]; //(之前在下面、刚刚移动)
    CNTL_2P2Z_REF3 =&VrefNetBus3; //指向 Vref3 (已编辑)
    CNTL_2P2Z_Fdbk3 =&AdcNetBus[11]; //指向 Vout3 (已编辑)
    CNTL_2P2Z_Coef3 =&CNTL_2P2Z_CoefStruct3.B2;//指向第一个循环的第一个系数
    CNTL_2P2Z_Out3 =&UoutNetBus3; //指向2P2Z Uout3
    PWMDRV_1ch_UpDwnCnt_Duty2 =&UoutNetBus3; 

    调试输出显示在上一帖子中。  e2e.ti.com/.../684782