如何在dsPIC33CH128MP205上配置ADC与DMA同步I2S采样?
dsPIC33CH128MP205 模拟麦克风同步采样与双缓冲DMA配置问题
我需要对模拟麦克风进行采样,采样必须与I2S主时钟同步。后续要做DSP处理,因此得实现双缓冲机制——即一块缓冲区采样时,另一块缓冲区进行DSP处理。我的MCU型号是dsPIC33CH128MP205。
我已经尝试用MPLAB搭配MCC工具完成了ADC、DMA及引脚的配置(附配置截图),并编写了初始化代码,但配置始终未成功,希望有人能帮忙排查问题或给出优化建议。
初始化代码如下:
uint16_t mic_in[64*2]; void DMA_Channel2_CallBack(void) { if (DMA_IsOperationHalfComplete(DMA_CHANNEL_2)) { } if (DMA_IsOperationDone(DMA_CHANNEL_2)) { } } void adc_init(void) { // ADC1_IndividualChannelInterruptEnable(channel_AN8); // channel 2 -> ADC channel 8 (RB3) + ADC trigger RB4 -> mic.mic_in DMA_ChannelDisable(DMA_CHANNEL_2); DMA_DestinationAddressSet(DMA_CHANNEL_2, (uint16_t) &mic_in[0]); DMA_SourceAddressSet(DMA_CHANNEL_2, (uint16_t) &ADCBUF8); DMA_TransferCountSet(DMA_CHANNEL_2, sizeof(mic_in)/sizeof(uint16_t)); DMA_ChannelEnable(DMA_CHANNEL_2); //DMA_SoftwareTriggerEnable(DMA_CHANNEL_2); // ADC1_SoftwareTriggerEnable(); ADC1_InterruptFlagClear(); ADC1_Enable(); //ADC1_SharedCorePowerEnable(); }
内容的提问来源于stack exchange,提问作者Stefan Jaritz
相关产品推荐
相关产品推荐

