You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 08:25:23