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.

[参考译文] TMS320F2.8377万D:ADC设置与控制逻辑等

Guru**** 2526340 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/657491/tms320f28377d-adc-setting-vs-control-logic-etc

部件号:TMS320F2.8377万D
主题:controlSUITE中讨论的其他部件

您好,

有人能帮我理解这一点吗? 谢谢。

多个ePWM事件触发ADC转换,请参阅问题1)-4下面的代码。

ePWM 2,3,4分别是A0,B0,B1的触发源。 ePWM2的相位为零。ePWM3的相位为120。  ePWM4的相位为240。

1)   对于ADC设置,ePWM2是A0的触发源,ePWM3是B0的触发源,即使ePWM3是相移,A0和B0是否同时转换? 或者B0转换开始前有2/3的时间?

2)    EPwm1Regs.TBCTL.bit.PHSEN = 120;是否所有PWM都只有一个时基计数器? 如果是,这是否意味着只有PWM会相移,计数器保持不变?

3)    EPwm1Regs.ETSEL.bit.SOCAEN =1; ePWM1的相位为零。 ADC转换将在计数器=0处开始,并在相移值计数器=处完成?

4)    如果相移为240,则只剩下1/6个周期来完成最后一次ADC转换并在ADC ISR中执行控制部分。 它是如何工作的?

void SetupADCEpwm (void)

  EALLOW;

  //ADCA

  AdcaRegs.ADCSOC0CTL.bit.CHSEL = 0;//SOC0将转换引脚A0

  AdcaRegs.ADCSOC0CTL.bit.ACQPS = 14;

  ADcbRegs.ADCSOC0CTL.bit.TRIGSEL = 7;//带phones=0的ePWM2SOCA

 

  //ADCB

  AdcbRegs.ADCSOC0CTL.bit.CHSEL = 0;//SOC0将转换引脚B0

  AdcbRegs.ADCSOC0CTL.bit.ACQPS =14;

  ADcbRegs.ADCSOC0CTL.bit.TRIGSEL = 9;// ePWM3SOCA,相位=120

 

  ADcbRegs.ADCSOC1CTL.bit.CHSEL = 1;//SOC1将转换引脚B1

  AdcbRegs.ADCSOC1CTL.bit.ACQPS = 14;

  ADcbRegs.ADCSOC1CTL.bit.TRIGSEL = 11;//带相位=240的ePWM4SOCA

  

  ADcbRegs.ADCINTSEL1N2.bit.INT1SEL = 1;  // EOC1是ADCINT1的触发器

  AdcbRegs.ADCINTSEL1N2.bit.INT1E =1;    //启用INT1标志

  AdcbRegs.ADCINTFLGCLL.bit.ADCINT1 =1;  //确保INT1标志已清除

  EDIS;

}

void InitEPwm1 (void)

      EALLOW;

      EPwm1Regs.TBCTL.bit.CTRMODE = 3;             

      EPwm1Regs.TBPRD = SW_PRD;                           

      EPwm1Regs.TBCTL.bit.PHSEN = 1;                   

      EPwm1Regs.TBPHS.bit.TBPHS = 0;                           

      EPwm1Regs.TBCTR = 0x0000;                   

      EPwm1Regs.TBCTL.bit.HSPCLKDIV = 0;     

      EPwm1Regs.TBCTL.bit.CLKDIV = 0;                      

      EPwm1Regs.TBCTL.bit.SYNCOSEL = 0;

 

      EPwm1Regs.ETSEL.bit.SOCAEN = 0;

      EPwm1Regs.ETSEL.bit.SOCASEL = 1;     

      EPwm1Regs.ETPS.bit.SOCAPRD = 1;         

      EDIS;

 

      //启动ePWM 1以开始ADC采样和中断

      EPwm1Regs.ETSEL.bit.SOCAEN = 1;                            

      EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UDOWN;             

}

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

    对于单独的ADC,单独的触发器将导致ADC在不同的时间开始转换;体系结构中没有任何内容强制一个在另一个ADC进行转换时开始转换。

    对于同一ADC,一次只能转换一个信号。 如果到达触发器且ADC处于空闲状态,则ADC将立即开始转换该通道。 如果另一个触发器在仍处于活动状态的同一ADC上开始转换,则SOC将根据优先级方案排队并解决。

    请注意,如果ADC同时进行转换,但不完全处于锁定阶段,则可能存在性能考虑因素。 性能在数据表(www.ti.com/.../specifications)的ENOB和ADC至ADC隔离规范中指定。 TRM中还有一个部分可以帮助您确定ADC是否会在锁定步骤之外结束操作: www.ti.com/.../spruhm8g.pdf (“10.3 Tm技术支持服务指南第1节确保同步操作”)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢,Devin。
    我需要一些时间才能理解。
    请告诉我,controlSUITE中的3相降压转换器代码示例位于何处? 我找了很久,还是没找到。
    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Hongmei,

    我不确定我们是否有3 pH值的示例,但请查看以下示例:

    processors.wiki.ti.com/.../C2000_DPSWorkshop

    www.ti.com/.../BOOSTXL-BUCKCONV