Part Number: TMS320F28379D
Other Parts Discussed in Thread: MOTORWARE, LAUNCHXL-F28379D, DRV8305-Q1EVM, BOOSTXL-DRV8305EVM, C2000WARE
Hi,Ti工程师
在使用TMS320F28379D这颗DSP的CLA时,发现无法在Cla1Task1 中访问GPIO / EMIF /ADC /EPWM 需要您的帮助。
Cla1Task1 代码如下:
__interrupt void Cla1Task1 ( void )
{
GPIO_writePin(27U,1); //设置GPIO高电平
adc0 = ADC_readResult(ADCARESULT_BASE, ADC_SOC_NUMBER0);// 读取A0
adc1 = ADC_readResult(ADCARESULT_BASE, ADC_SOC_NUMBER1);//读取A1
g_MCtrl_M1.cel_fbk +=1;//测试
fCoeffs+=0.01;//测试
if(fCoeffs>5000){
fCoeffs=0;
}
//PWM测试
EPWM_setCounterCompareValue(EPWM1_BASE, EPWM_COUNTER_COMPARE_A, (uint16_t)fCoeffs);
EPWM_setCounterCompareValue(EPWM2_BASE, EPWM_COUNTER_COMPARE_A, (uint16_t)fCoeffs);
EPWM_setCounterCompareValue(EPWM3_BASE, EPWM_COUNTER_COMPARE_A, (uint16_t)fCoeffs);
GPIO_writePin(27U,0);//设置GPIO低电平
}
GPIO在初始化时已经将归属设置成CLA,代码如下:
GPIO_setPinConfig(GPIO_27_GPIO27); //设置引脚配置
GPIO_setMasterCore(27U, GPIO_CORE_CPU1_CLA1);//用于CLA
GPIO_setPadConfig(27U, GPIO_PIN_TYPE_STD);//推挽
GPIO_setDirectionMode(27U, GPIO_DIR_MODE_OUT);//输出模式
对于EMIF的归属,我依旧选择的EMIF_MASTER_CPU1_G,代码如下:
EMIF_selectMaster(EMIF1CONFIG_BASE, EMIF_MASTER_CPU1_G);
因为EMIF和EPWM我准备完全放到CLA中执行,请问是否将这些引脚的归属也设定成GPIO_CORE_CPU1_CLA1 ??
另外,在本次实例中,无法读取ADC的值。代码: adc0 = ADC_readResult(ADCARESULT_BASE, ADC_SOC_NUMBER0); adc0应该实时进行刷新,但实际情况adc0=0。截图如下:
寄存器截图如下:

可以看到,A0 A1寄存器时读取到值的。所以问题点在adc0和adc1上,对这两个值的定义如下: #pragma DATA_SECTION(adc0,"CLADataLS0");
int16_t adc0 = 0;
#pragma DATA_SECTION(adc1,"CLADataLS0");
int16_t adc1 = 0;
谢谢。

