Other Parts Discussed in Thread: CONTROLSUITE
器件型号:DRV8302-HC-C2-KIT
大家好、
我一直在使用 ti\controlSUITE\development_kits\DRV830x-HC-C2-KIT_V105\InstaSPIN_BLDC 项目来开发 DRV8302-HC-C2-KIT_V105\InstaSPIN_BLDC。 我的主要目标是对 BLDC 电机进行无传感器梯形控制。
虽然使用示例代码可以正常工作、但当我尝试从 ADC 通道获取有意义的值时、我失败了、我是指直流总线电流。
在该项目中、直流总线电流通过 ADC-A2进行读取、如下所示。
我还使用示例代码 ADC_MACROL_INIT()初始化了 ADC、如下所示。
#define ADC_MACROL_INIT ()\
\
DELAY_US (ADC_USDELAY);\
AdcRegs.ADCCTL1.all=ADC_RESET_FLAG;\
asm (" NOP ");\
asm (" NOP ");\
EALLOW;\
AdcRegs.ADCCTL1.bit.ADCBGPWD= 1;//加电带隙*\
DELA_US (ADC_USDELAREGL.ADCCTL1.bit.ADCBGPWD = 1;\ ADCLA.ADCR0.ADCR1.ADCR1.ADCR1.ADCR0.ADCR1.ADCR0.RIST0= 1;\ ADCR0.ADCR1.ADCR1.ADCR0.ADCR1.ADCR0.ADCR1.ADCR1.ADCR1.ADCR1.ADCR0.ADCR0.ADCR0.ADCR0.ADCR
/*上电基准*/\
AdcRegs.ADCCTL1.bit.ADCPWDN= 1;/*为 ADC 的其余部分加电*/\
AdcRegs.ADCCTL1.bit.ADCENABLE= 1;//启用 ADC */\
\ asm (" RPT#100 || NOP");\AdcRegs.ADCLA.1=ADCCTL1.ADCCEST.ADC.E1.ADAPS.ADAPS.E1.DEPS.ADCMP0
;\ADCMP0
信道选择***** /\
\\\\ AdcRegs.ADCSOC0CTL.bit.CHSEL
= 15;/*虚拟内存。 避免出现第1个采样问题 Rev0 Picolo*/\
AdcRegs.ADCSO0CTL.bit.TRIGSEL = 5;\
AdcRegs.ADCSO0CTL.bit.ACQPS= 6;\
AdcRegs.ADCOC1CTL.bit.CHSEL= 15;// ChSelect:ADC B7->ADCSOC1*
= 6、ADCSOC1RMC1.C0 = 1、ADCSOC1RMCTR0 *、ADC1CTRL = 6、ADCSOC1CTR0 = 1、ADCTR0 * 1。
/*将 SOC0 S/H 窗口设置为7个 ADC 时钟周期、(6个 ACQPS 加1)*/\
\\ AdcRegs.ADCSOC2CTL.bit.CHSEL
= 7;//选择:ADC A7->V 相位 B */\
AdcRegs.ADCOC2CTL.bit.TRIGSEL = 5;
ADCSOC32.ADC32.ChCCL
= 6位 ADC32.ADCCPL.ADCTIGSEL = 6;ADC32.ADCCL.ADC32.ADCTIGCCRC.ADCL.ADCTIGSEL = 6位 ADC B4->V 相位 C */\
AdcRegs.ADCSOC3CTL.bit.TRIGSEL = 5;\
AdcRegs.ADCSO3CTL.bit.ACQPS= 6;\
AdcRegs.ADCOC4CTL.bit.CHSEL
= 2;// ChSelect:ADC A2->低侧
寄存器= 6;\ ADCCOM.CC1RC.ECCS.bit.ADCTI.ADCTRS.CTI.RC.ECC6;\ ADCTI.ADCTI.ADCTRS.RC.RC.ECC6 * = 1;//启用 ADCINT1 */\
AdcRegs.INTSEL1N2.bit.INT1CONT = 0;//禁用 ADCINT1连续模式*/\
AdcRegs.INTSEL1N2.bit.INT1SEL= 4;//设置 EOC4以触发 ADCINT1触发*/\
EDIS;\
。\
/*为 EPWM1的时基设置启用 CNT_ZERO 的事件触发器*/\
EPwm1Regs.ETSEL.bit.SOCAEN = 1; /*启用 SOCA */\
EPwm1Regs.ETSEL.bit.SOCASEL = 2;//启用 TTBCNTR = SOCA 的 PRD 事件*/\
EPwm1Regs.ETPS.bit.SOCAPRD = 1; /*在发生第一个事件时生成 SOCA */\
EPwm1Regs.ETCLR.bit.SOCA = 1; /*清除 SOCA 标志*/\
/*为电流采样设置 SOCB 脉冲*/\
EPwm1Regs.ETSEL.bit.SOCBEN = 1; /*启用 SOCB */\
EPwm1Regs.ETSEL.bit.SOCBSEL = 6;//启用 TBCNTR = CMPB 递增事件*/\
EPwm1Regs.ETPS.bit.SOCBPRD = 1; /*在发生第一个事件时生成 SOCB */\
EPwm1Regs.ETCLR.bit.SOCB = 1; /*清除 SOCB 标志*/
#endif //__F2803XIDC_VEMF_H__
但是、我在 ADC 结果中看不到任何有意义的关系。
此外、我在 TP23上测量了总线电流(如上所示)、并且测得的电压与总线电流之间具有某种线性关系。
我将测量结果列出如下:
| ADC 值 | 总线电流 |
| 2060. | 0.1. |
| 2060. | 0.1. |
| 2061 | 0.1. |
| 2060. | 0.13 |
| 2060. | 0.16. |
| 2060. | 0.18. |
| 2060. | 0.22. |
| 1855 | 0.26. |
| 1811. | 0.31. |
| 1850 | 0.36. |
| 1915. | 0.43. |
| 1963年 | 0.49. |
| 1980年 | 0.56. |
| 1975年 | 0.64 |
| 1931年 | 1.11. |
| 1900年 | 1.65 |
| 1870 | 2.34. |
| 总线电流 | TP23的测量电压 |
| 0.1. | 1.65 |
| 0.31. | 1.647 |
| 1.15. | 1.632 |
| 2.45 | 1.605 |
我对不同的 ACQPS 值进行了一些改进、但仍然没有在 ADC 输入和寄存器值之间获得有意义的关系。
感谢您抽出宝贵时间提出任何建议。
此致、
亚辛
