请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:DRV8301-69M-KIT 工具/软件:Code Composer Studio
您好!
我正在尝试使用卡上的 ADC 从 A 相和 B 相读取电流值。 但是、我只能获得 A 相(ADC 组 A)的电流。 ADC 组 B 的输出值都等于零。 我还使用示波器检查每个相位中是否有电流、情况就是这样。
#ifndef __F2806XILG_VDC_H__
#define __F2806XILG_VDC_H__
#include "f2806xbmsk.h"
/*-------------------------------------------------------
ADC 初始化宏定义-------------------------------------------------------
*/
#define CPU_CLOCK_SPEED 12.500L// 12.5nS
#define ADC_usDELAY 10000L
#define DELAY_US (a) DSP28x_usDelay ((( long double) a * 1000.0L)/(long double) cpu_clock_speed)- 9.0L)/5.0L)
extern void DSP28x_usDelay (unsigned long Count);
#define ADC_MACRO ()\
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.ADCSO0CTL.bit.CHSEL
= 1;/* 1选择:ADC A1->相位 U 电流*/\
AdcRegs.ADCOC0CTL.bit.TRIGSEL= 5;//设置 SOC0在 EPWM1A 上启动触发器,因为在 SOC0中循环
;然后将 ADC0转换为 ADC0位6。* ADCCOL/*将 SOC0 S/H 窗口设置为7个 ADC 时钟周期,(6个 ACQPS 加1)*/\
\\
AdcRegs.ADCSO1CTL.bit.CHSEL= 9;// 9选择:ADC B1->相位 V Current*/\
AdcRegs.ADCSOC1CTL.bit.TRIGSEL = 5;* ADCSOC1CL.ADC10
= 6位;ADCSOC10选择* ADC1CL.ADCSRC.ADC1CL.ADC1CL=6位 ADC B2->DC 总线电压*/\
AdcRegs.ADCSOC2CTL.bit.TRIGSEL = 5;\
AdcRegs.ADCSO2CTL.bit.ACQPS= 6;\
AdcRegs.ADCOC3CTL.bit.CHSEL
= 15;// ChChSelect:ADC B7->V Regs.ADCSRC.6*= ADCSOC.TCL.ADC3CTS.ADCSRP.ADC=6
;ADCC.ADCC.TCCS.bit.ADCTRS.ADCTRL
= 6;ADCSRC.ADCC.E= ADC32.ADC32.ADCC.TCL.ADCSRC.ADCC.E= ADC32.ADCC.E= ADC32.ADCC.TCL.ADCTI.ADCC.TC.
ADC A7->V 相位 B */\
AdcRegs.ADCSO4CTL.bit.TRIGSEL = 5;\
AdcRegs.ADCSO4CTL.bit.ACQPS= 6;\
AdcRegs.ADCOC5CTL.bit.CHSEL
= 12;// ChSelect:ADC B4->V Regs.ADCSRC.6*
= ADCCO5CTL.ADCMCTRS.C=6;ADCCOM.ADCCOCL.ADC5CTRS.bit.ADCMCTRS=6;ADCMCTL.ADCTRS.CMCTRS.CL.CTRS=ADCTRS.ADCTRS.CTRS=6
ADC A2->低侧直流总线返回电流*/\
AdcRegs.ADCSOC6CTL.bit.TRIGSEL= 5;\
AdcRegs.ADCSOC6CTL.bit.ACQPS= 6;\
\
EDIS;\
\\\
/*为 EPWM1的时基设置启用 CNT_ZERO 的事件触发器*/\
EPwm1Regs.ETSEL.bit.SOCAEN = 1; /*启用 SOCA */\
EPwm1Regs.ETSEL.bit.SOCASEL = 1;/*为 SOCA 启用 CNT_ZERO 事件*/\
EPwm1Regs.ETPS.bit.SOCAPRD = 1; /*在发生第一个事件时生成 SOCA */\
EPwm1Regs.ETCLR.bit.SOCA = 1; //清除 SOCA 标志*/
#endif //__F2806XILG_VDC_H__