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.

[参考译文] LAUNCHXL-F28069M:请、任何人都可以批准此代码吗? 谢谢。 什么是错误的?

Guru**** 2607985 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/670624/launchxl-f28069m-please-any-one-can-approve-this-code-thanks-what-is-wrong-and-right

器件型号:LAUNCHXL-F28069M
主题中讨论的其他器件:C2000WARE

无效
AdcConversion_run (int * conv)

EALLOW;
AdcRegs.INTSEL1N2.bit.INT1E = 1;


AdcRegs.INTSEL1N2.bit.INT1CONT = 0;


AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1;


AdcRegs.INTSEL1N2.bit.INT1SEL = 5;// EOC5触发 ADCINT1

//强制启动 SOC0-5以开始乒乓采样
//
AdcRegs.ADCSOCFRC1.ALL = 0x003F;

//
//等待 ADCINT1触发,然后将 ADCRESULT0-5寄存器相加
//
while (AdcRegs.ADCINTFlG.bit.ADCINT1 = 0)

//
//必须清除 ADCINT1标志,因为 INT1CONT = 0
//
AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;
conv[0]=(int) AdcResult.ADCRESULT0;
conv[1]=(int) AdcResult.ADCRESULT1;
conv[2]=(int) AdcResult.ADCRESULT2;
conv[3]=(int)AdcResult.ADCRESULT3;
conv[4]=(int) AdcResult.ADCRESULT4;
Conv[5]=(int) AdcResult.ADCRESULT5;

//
//禁用 ADCINT1 以停止  
//
AdcRegs.INTSEL1N2.bit.INT1E = 0;

AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;


AdcRegs.ADCINTOVFCLR.bit.ADCINT1 = 1;

//
//将 RR 指针重置为32,以便下一个 SOC 为 SOC0
//
AdcRegs.SOCPRICTL.bit.SOCPRIORITY = 1;

while (AdcRegs.SOCPRICTL.bit.SOCPRIORITY!= 1);
AdcRegs.SOCPRICTL.bit.SOCPRIORITY = 0;

while (AdcRegs.SOCPRICTL.bit.SOCPRIORITY!= 0);
EDIS;

无效
AdcChanSelect_run()

EALLOW;
AdcRegs.ADCSOC0CTL.bit.CHSEL=3;
AdcRegs.ADCSOC1CTL.bit.CHSEL=11;
AdcRegs.ADCSOC2CTL.bit.CHSEL=4;
AdcRegs.ADCSOC3CTL.bit.CHSEL=12;
AdcRegs.ADCSOC4CTL.bit.CHSEL=5;
AdcRegs.ADCSOC5CTL.bit.CHSEL=13;
uint16 ACQPS_value = 50;
AdcRegs.ADCSOC0CTL.bit.ACQPS = ACQPS_VALUE;
AdcRegs.ADCSOC1CTL.bit.ACQPS = ACQPS_VALUE;
AdcRegs.ADCSOC2CTL.bit.ACQPS = ACQPS_VALUE;
AdcRegs.ADCSOC3CTL.bit.ACQPS = ACQPS_VALUE;
AdcRegs.ADCSOC4CTL.bit.ACQPS = ACQPS_VALUE;
AdcRegs.ADCSOC5CTL.bit.ACQPS = ACQPS_VALUE;

AdcRegs.INTSEL1N2.bit.INT1E = 1;
// AdcRegs.INTSEL1N2.bit.INT2E = 1;

//
//禁用 ADCINT1和 ADCINT2的连续采样
//
AdcRegs.INTSEL1N2.bit.INT1CONT = 0;
// AdcRegs.INTSEL1N2.bit.INT2CONT = 0;

//
//在转换结束时触发 ADCINT
//
AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1;

//
//设置 ADCINT1和 ADCINT2触发源
//
AdcRegs.INTSEL1N2.bit.INT1SEL = 5;// EOC6触发 ADCINT1
// AdcRegs.INTSEL1N2.bit.INT2SEL = 14;// EOC14触发 ADCINT2

//
//设置每个 SOC 的 ADCINT 触发源
//
AdcRegs.ADCINTSOCSEL1.bit.SOC0 = 0;// ADCINT2启动 SOC0-7
AdcRegs.ADCINTSOCSEL1.bit.SOC1 = 0;
AdcRegs.ADCINTSOCSEL1.bit.SOC2 = 0;
AdcRegs.ADCINTSOCSEL1.bit.SOC3 = 0;
AdcRegs.ADCINTSOCSEL1.bit.SOC4 = 0;
AdcRegs.ADCINTSOCSEL1.bit.SOC5 = 0;
AdcRegs.ADCINTSOCSEL1.bit.SOC6 = 0;
AdcRegs.ADCINTSOCSEL1.bit.SOC7 = 0;
AdcRegs.ADCINTSOCSEL2.bit.SOC8 = 0;// ADCINT1启动 SOC8-15
AdcRegs.ADCINTSOCSEL2.bit.SOC9 = 0;
AdcRegs.ADCINTSOCSEL2.bit.SOC10 = 0;
AdcRegs.ADCINTSOCSEL2.bit.SOC11 = 0;
AdcRegs.ADCINTSOCSEL2.bit.SOC12 = 0;
AdcRegs.ADCINTSOCSEL2.bit.SOC13 = 0;
AdcRegs.ADCINTSOCSEL2.bit.SOC14 = 0;
AdcRegs.ADCINTSOCSEL2.bit.SOC15 = 0;

DELAY_US (ADC_USDELAY);//转换 ADC 通道之前的延迟

EDIS;

无效
main (空)

int conv[6];

//
//*重要*
// Device_cal 函数、此函数复制 TI 的 ADC 校准值
//将 OTP 保留到 ADCREFSEL 和 ADCOFFTRIM 寄存器中、发生
//自动存储在引导 ROM 中。 如果引导 ROM 代码在期间被绕过
//在调试过程中,必须为 ADC 调用以下函数
//功能。 ADC 的时钟必须为
//在调用此函数之前启用。
//请参阅器件数据手册和/或 ADC 参考
//手册以了解更多信息。
//
EALLOW;
SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1;
(*Device_cal)();
EDIS;
EALLOW;


//
//要给 ADC 加电,应首先设置 ADCENCLK 位以启用
//时钟、然后加电带隙、参考电路、
//和 ADC 内核。 在执行第一次转换之前、必须有5ms 的延迟
//在加电后观察以给所有模拟电路加电时间
//并趋稳
//

//
//请注意,要使以下延迟功能正常运行,请执行
// F2806x_Examples.h 文件中的 cpu_rate define 语句必须
//包含正确的 CPU 时钟周期(以纳秒为单位)。
//
EALLOW;
AdcRegs.ADCCTL1.bit.ADCBGPWD = 1;//电源 ADC BG
AdcRegs.ADCCTL1.bit.ADCREFPWD = 1;//电源基准
AdcRegs.ADCCTL1.bit.ADCPWDN = 1;//电源 ADC
AdcRegs.ADCCTL1.bit.ADCENABLE = 1;//启用 ADC
AdcRegs.ADCCTL1.bit.ADCREFSEL = 0;//选择内部 BG
EDIS;

DELAY_US (ADC_USDELAY);//转换 ADC 通道之前的延迟

EALLOW;
AdcRegs.ADCCTL2.bit.CLKDIV2EN = 1;
EDIS;

DELAY_US (ADC_USDELAY);//转换 ADC 通道之前的延迟
InitAdcAio();//由 C2000ware 提供
AdcOffsetSelfCal();//provided C2000ware
AdcChanSelect_run();//只运行一次

AdcConversion_run (conv);
Phase1_CURRENT=((float)(conv[0]-conv[1])/4096.0f)* new_param.target_Nominal _pase_gain;// AN0、AN1的结果
Phase3_current=((float)(conv[2]-conv[3])/4096.0f)* new_param.target_Nominal _pase_gain;// AN2、AN3的结果:错误地是 Phase2
Phase2_current=((float)(conv[4]-conv[5])/4096.0f)* new_param.target_Nominal _pase_gain;// AN4、AN5的结果:错误地是 Phase3

AdcConversion_run (conv);
Phase1_CURRENT=((float)(conv[0]-conv[1])/4096.0f)* new_param.target_Nominal _pase_gain;// AN0、AN1的结果
Phase3_current=((float)(conv[2]-conv[3])/4096.0f)* new_param.target_Nominal _pase_gain;// AN2、AN3的结果:错误地是 Phase2
Phase2_current=((float)(conv[4]-conv[5])/4096.0f)* new_param.target_Nominal _pase_gain;// AN4、AN5的结果:错误地是 Phase3

AdcConversion_run (conv);
Phase1_CURRENT=((float)(conv[0]-conv[1])/4096.0f)* new_param.target_Nominal _pase_gain;// AN0、AN1的结果
Phase3_current=((float)(conv[2]-conv[3])/4096.0f)* new_param.target_Nominal _pase_gain;// AN2、AN3的结果:错误地是 Phase2
Phase2_current=((float)(conv[4]-conv[5])/4096.0f)* new_param.target_Nominal _pase_gain;// AN4、AN5的结果:错误地是 Phase3

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

    您好!

    您能给我一些关于您对此代码有何顾虑的更多信息吗? 您看到了哪种故障?

    惠特尼

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

    第一个读取正交解码器。 然后、ADC 读取三相电流、然后调整(计算后)三相 PWM 以跟随正弦信号。 然后再次开始读取正交解码器

    有时工作正常。 其他则是正弦在电机测试过程中急剧跳相

    我们不会在哪个器件配置了错误或错误

    此外、该 ADC 代码可能具有一些可被取出的冗余
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否看到意外的 ADC 结果? 这就是您发布 ADC 代码的原因吗?

    就冗余而言,AdcConversion_run()中有一些不必要的东西--除非在 AdcChanSelect_run()中配置了 INT1CONT、INTPULSEPOS 或 INT1SEL 后更改了它们的值,否则您不必重新配置 INT1CONT、INTPULSEPOS 或 INT1SEL。 您还可以清除 ADCINT1标志两次、就我所能知、使用 ADC 时无需重置 RR 指针。 不过,这些都不是主要问题。

    惠特尼
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在同一主题下、您能否验证以下 init 函数?



    void PWM_init_run_motor (void)

    EALLOW;
    SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=0;
    EDIS;

    //EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;
    //EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;
    //EPwm3Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;


    EPwm4Regs.TBPRD = 4500; //设置计时器周期
    EPwm4Regs.TBPHS.Half.TBPHS = 0x0000; //相位为0
    EPwm4Regs.TBCTR = 0x0000; //清除计数器

    //
    //设置 TBCLK
    //
    EPwm4Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;//向上计数
    EPwm4Regs.TBCTL.bit.PHSEN = TB_DISABLE; //禁用相位加载

    EPwm4Regs.TBCTL.bit.PRDLD = TB_SHADOW;


    EPwm4Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;

    EPwm4Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; //时钟与 SYSCLKOUT 的比率
    EPwm4Regs.TBCTL.bit.CLKDIV = TB_DIV1;

    EPwm4Regs.CMPCTL.bit.SHDWAMODE = CC_SHADODE;//每0加载一次寄存器
    EPwm4Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
    EPwm4Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
    EPwm4Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

    //
    //设置比较
    //
    EPwm4Regs.CMPA.half.CMPA = 0;

    //
    //设置操作
    //

    EPwm4Regs.AQCTLA.bit.ZRO = AQ_SET;
    EPwm4Regs.AQCTLA.bit.CAU = AQ_CLEAR;
    EPwm4Regs.AQCTLB.bit.ZRO = AQ_CLEAR;
    EPwm4Regs.AQCTLB.bit.CAU = AQ_SET;


    //
    //有源互补高 PWM -设置死区
    //
    EPwm4Regs.DBCTL.bit.OUT_MODE = DB_FUL_ENABLE;
    EPwm4Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
    EPwm4Regs.DBCTL.bit.IN_MODE = DBA_ALL;
    EPwm4Regs.DBRED = 60;
    EPwm4Regs.DBFED = 60;





    EPwm5Regs.TBPRD = 4500; //设置计时器周期
    EPwm5Regs.TBPHS.Half.TBPHS = 0x0000; //相位为0
    EPwm5Regs.TBCTR = 0x0000; //清除计数器

    //
    //设置 TBCLK
    //
    EPwm5Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;//向上计数
    EPwm5Regs.TBCTL.bit.PHSEN = TB_ENABLE;

    EPwm5Regs.TBCTL.bit.PRDLD = TB_SHADOW;



    EPwm5Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;

    EPwm5Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; //时钟与 SYSCLKOUT 的比率
    EPwm5Regs.TBCTL.bit.CLKDIV = TB_DIV1;

    EPwm5Regs.CMPCTL.bit.SHDWAMODE = CC_SHADODE;//每0加载一次寄存器
    EPwm5Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
    EPwm5Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
    EPwm5Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

    //
    //设置比较
    //
    EPwm5Regs.CMPA.half.CMPA = 0;

    //
    //设置操作
    //
    EPwm5Regs.AQCTLA.bit.ZRO = AQ_SET;
    EPwm5Regs.AQCTLA.bit.CAU = AQ_CLEAR;
    EPwm5Regs.AQCTLB.bit.ZRO = AQ_CLEAR;
    EPwm5Regs.AQCTLB.bit.CAU = AQ_SET;




    //
    //高电平有效 PWM -设置死区
    //
    EPwm5Regs.DBCTL.bit.OUT_MODE = DB_FUL_ENABLE;
    EPwm5Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
    EPwm5Regs.DBCTL.bit.IN_MODE = DBA_ALL;
    EPwm5Regs.DBRED = 60;
    EPwm5Regs.DBFED = 60;

    EPwm6Regs.TBPRD = 4500; //设置计时器周期
    EPwm6Regs.TBPHS.Half.TBPHS = 0x0000; //相位为0
    EPwm6Regs.TBCTR = 0x0000; //清除计数器

    //
    //设置 TBCLK
    //
    EPwm6Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;//向上计数
    EPwm6Regs.TBCTL.bit.PHSEN = TB_ENABLE;

    EPwm6Regs.TBCTL.bit.PRDLD = TB_SHADOW;



    EPwm6Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;

    EPwm6Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; //时钟与 SYSCLKOUT 的比率
    EPwm6Regs.TBCTL.bit.CLKDIV = TB_DIV1;

    EPwm6Regs.CMPCTL.bit.SHDWAMODE = CC_SHADODE;//每0加载一次寄存器
    EPwm6Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
    EPwm6Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
    EPwm6Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

    //
    //设置比较
    //
    EPwm6Regs.CMPA.half.CMPA = 0;

    //
    //设置操作
    //

    EPwm6Regs.AQCTLA.bit.ZRO = AQ_SET;
    EPwm6Regs.AQCTLA.bit.CAU = AQ_CLEAR;
    EPwm6Regs.AQCTLB.bit.ZRO = AQ_CLEAR;
    EPwm6Regs.AQCTLB.bit.CAU = AQ_SET;


    //
    //高电平有效 PWM -设置死区
    //
    EPwm6Regs.DBCTL.bit.OUT_MODE = DB_FUL_ENABLE;
    EPwm6Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
    EPwm6Regs.DBCTL.bit.IN_MODE = DBA_ALL;
    EPwm6Regs.DBRED = 60;
    EPwm6Regs.DBFED = 60;

    EALLOW;
    SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1;
    EDIS;




    正交编码器使用3个引脚、一个是索引、另两个是两个正交输入


    空解码器(空)



    EQep1Regs.QDECCTL.bit.QSRC=00; // QEP 正交计数模式

    EQep1Regs.QEPCTL.bit.FREE_SOFT=2;



    EQep1Regs.QEPCTL.bit.PCRM=00;
    EQep1Regs.QEPCTL.bit.UTE=0; //禁用设备超时
    EQep1Regs.QEPCTL.bit.QCLM=0; //锁存装置超时
    EQep1Regs.QEPCTL.bit.IEL=0b10;
    EQep1Regs.QPOSMAX = 0xffffffff;
    EQep1Regs.QPOSCNT=0;
    EQep1Regs.QEPCTL.bit.QPEN=1; // QEP 使能


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

    我建议您编写一些测试、以确保这些模块正常工作。 我只是简单地在没有上下文的情况下查看您的代码并不足以确保没有错误。 如果您可以运行一些测试并尝试识别您看到的特定问题或询问有关代码的一些特定问题、我很乐意帮助您回答这些问题。

    惠特尼
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    已成功离线完成测试。 但是在线测试可能会出现我无法看到的问题。 它提供了上面已经报告的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是很好的了解。 您是否看到意外的 ADC 结果? 您认为这是导致同相跳变的原因吗? 您发现此问题的频率如何?

    惠特尼
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    问题是跳转可以位于链中的任何位置。 我们不知道它从哪里开始。 启动后、它会传播到链中。 该解决方案正在从采用摩托罗拉板的旧解决方案中移植
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉、这种情况经常发生。 比如在30个正弦周期中、一个相位发生变化
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否有任何示波器截图可以分享该问题?

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

    左图-高格图

    右图-具有两个尖锐相移的图片

    蓝色波形-扭矩波形(右刻度)

    黄线-电机测试速度(左刻度)

    白波、红波、绿波-三相电流

    4极对电机-每张图片代表电机的全机械旋转

    问题:

    正交编码器是否初始化良好? (请参阅上一个帖子中的代码)

    您是否认为编码器复位的索引正在执行?

    编码器通道 A - 5000个位置、通道 B 5000个位置-每转总共20000个位置   

    波形的剪切仅随机发生、在10次测试中一次。 并且每次波的断点都不同

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能帮我初始化正交编码器、使其范围从-19999-0-19999、索引为0 (第一个转弯后)吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的耐心等待。 您在这个问题上是否取得了任何进展?

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

    是的、解码器代码被改变为从0到 MAX 的范围、而不是-MAX 0 MAX。 但它没有解决这个问题

    它是一个程序、用于检测哪个器件首先具有波形中断(来自解码器 ADC 和 PWM)

    发现它是 ADC。 它是使用示波器测量的、并在 ADC 输入中出现尖峰

    我们不知道它们是来自 TMS 内部、接地不良还是来自外部。 我们正在从一个旧的实现中移植代码、它没有这个问题。 下次我们将尝试在 ADC 的输入端放置1uF 的电容(信号源50欧姆和低频正弦输入、7Hz)、旧的实现方案采用"铁氧体"线圈来分隔数字和模拟电源。 我想该板没有

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的更新。 很高兴听到您能够将其缩小到 ADC 信号范围。 如果您将问题追溯到 F2806x 并需要帮助、请告诉我。

    惠特尼
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于我没有听到您的反馈、我将假定问题在您的系统中的其他位置、并将此主题标记为已解决。 如果情况并非如此、请随时发表评论并重新打开主题帖。

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

    请稍等更多时间

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

    1uF 塑料电容器解决了该问题。 我们还介绍了并联的1uF 10uF 钽电容器。

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

    抱歉、此问题再次出现。 我认为尖峰的频率非常高、这些1uF 塑料和10uF 钽组件在这些频率下没有响应。

    我们正在考虑引入一个铁氧体(EXC3BB102H)、该铁氧体(在输入 ADC 之前)与一个串联1KOhm 电阻器(我认为 SMD 的响应必须高于100MHz)和与输入并联的 SMD 电容器100nF+100pF。 我认为1KOhm 将增加 ADC 的采样时间   

    我们可以看到尖峰叠加在半整流正弦波(ADC 输入)中。 我们还不知道问题是来自 TI 内部还是外部

    也许稍后、我需要问 TI、我们可以在哪里中断电路板中的一个轨道来引入铁氧体 EXC3BB102H 等组件。

    我是一名自由职业者、是现场人员的可靠选择。 我经常去这个领域。 这就是为什么我对该线程的响应间隔如此长的原因。 我要求耐心   

    请对此提供一些支持。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我看到 sprui11.pdf、并且电路板都受到电源中线圈的保护。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    相关的问题。 CLA 的低通滤波器(连续域中的二阶或三阶)是否有 FIR / IIR 实现? 带宽为300-350Hz 时的首选项。

    谢谢

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

    路易斯、

    对于最近的问题、没有100%的本机 CLA 实现、但在 FPU 库中、我们有 FI/IIR 函数:

    C:\ti\c2000Ware_1_00_04_00\libraries\dsp\FPU\c28\

    http://processors.wiki.ti.com/index.php/C2000_FFT:_VCU,_FPU_or_FixedPoint 提到了使用 CLA 处理 FFT 的相位和幅度部分来减轻主 CPU 的某些 MIP 负载。

    对于之前关于 ADC 引脚上的电容器之后仍然存在噪声的声明:  

    我怀疑 ADC 采样接近 FET (或 FET)开关以控制电机时会产生噪声?  这表明 PCB 存在一个更通用的噪声问题、即电源平面或(更有可能)接地平面受到 FET 开关的影响。  一种解决方案是将 ADC 采样推至超出此持续时间、另一种解决方案是尝试更好地将高功率域与模拟平面隔离。  如果您认为这是正确的方向、请告诉我。

    最棒的

    Matthew