主题中讨论的其他器件:controlSUITE、 AMC1306E25、 TMDSDOCK28379D、 AMC1306EVM、 C2000WARE、 AMC1306M25
工具/软件:Code Composer Studio
我正在尝试掌握 TI F28377D 芯片的 SDFM、暂时运行单核应用(未使用内核2)。 我的当前设置基于 controlSUITE 提供的 sdfm_PWM_SYNC_cpu01示例、并进行了以下调整:
- 仅连接了 SD1_D1、SD1_D2、SD1_C1和 SD1_C2 (GPIO 16至19)。 滤波器2和
- 数据采用曼彻斯特编码,因此 Sdfm_configureInputCtrl()接收 mode_2作为输入。
- 时钟、即使曼彻斯特编码不需要时钟、也由其中一个 eCAP 模块提供。
我已将电压源连接到设置、以模拟 SD 的某种输入、我在相应的 DSP 桥臂上看到了一些曼彻斯特编码数据。 但是、在运行此示例(或者、对于任何 sdfm 示例)时、我完成 Sdfm1_ISR 例程中第一个结果的读取、并进入以下陷阱:
_interrupt void Sdfm1_ISR (void) { uint32_t sdfmReadFlagRegister = 0; 静态 uint16_t loopCounter1 = 0; // //读取 SDFM 标志寄存器(SDIFLG) // sdfmReadFlagRegister = Sdfm_readFlagRegister (gPeripheralNumber); if (loopCounter1 <= MAX_SAples) { // //读取每个 SDFM 滤波器输出并将其存储在相应的滤波器中 //结果数组 // filter1_Result[loopCounter1]= SDFM1_READ_filter1_DATA_16BIT; Filter2_Result[loopCounter1]= SDFM1_READ_Filter2_DATA_16BIT; Filter3_Result[loopCounter1]= SDFM1_READ_FILTER3_DATA_16BIT; Filter4_Result [loopCounter1++]= SDFM1_READ_FILTER4_DATA_16BIT; // //清除 SDFM 标志寄存器 // Sdfm_clearFlagRegister (gPeripheralNumber、sdfmReadFlagRegister); sdfmReadFlagRegister = Sdfm_readFlagRegister (gPeripheralNumber);
⇐此处 sdfmReadFlagRegister 为2147484416
if (sdfmReadFlagRegister!= 0x0) { ESTOP0;
⇐当然、我在这里结束了
}
我尝试禁用 fiters 2、3和4、但没有成功。 从这里继续的方法是什么。