文章目录
【AM263x】ADC - DMA
1. 前言
无
2. 原理
模块框图:
3. 配置介绍
**以下配置是从TI-SDK的接口去看寄存器的配置**
3.1 ADC 硬件单元配置
3.1.1 预分频
ADC_setPrescaler(CONFIG_ADC3_BASE_ADDR, ADC_CLK_DIV_4_0);
3.1.3 信号模式和分辨率
- 单端输入:采集一个IO口
- 差分输入:暂时用不到
ADC_setMode(CONFIG_ADC3_BASE_ADDR, ADC_RESOLUTION_12BIT, ADC_MODE_SINGLE_ENDED);
3.1.4 转换优先级模式
- 轮询模式
- 优先级模式
ADC_setSOCPriority(CONFIG_ADC3_BASE_ADDR, ADC_PRI_ALL_ROUND_ROBIN);
轮询模式
优先级模式
3.2 SOC 转换器配置
3.2.1 触发源 / 通道(引脚)映射 / 采样窗口
ADC_setupSOC(CONFIG_ADC3_BASE_ADDR, 0, ADC_TRIGGER_SW_ONLY, ADC_CH_ADCIN2, 16);
软件触发:
ADC_forceSOC(CONFIG_ADC3_BASE_ADDR, ADC_SOC_NUMBER0 | ADC_SOC_NUMBER1);
如下图所示:设置对应序号Bit即可触发通道转换。
3.2.2 中断源触发
配置中断触发SOC,仅支持INT1或INT2,这个功能能够更好实现连续转换。(但是这样触发频率太快)
ADC_setInterruptSOCTrigger(CONFIG_ADC3_BASE_ADDR, 0, ADC_INT_SOC_TRIGGER_NONE);
3.2.3 中断触发时机配置
ADC_setInterruptPulseMode(CONFIG_ADC3_BASE_ADDR, ADC_PULSE_END_OF_CONV);
3.3 中断配置
3.3.1 中断使能
ADC_enableInterrupt(CONFIG_ADC3_BASE_ADDR, 0);
3.3.2 通道映射
配置能够触发该中断的SOC通道。通道转换完成后生成对应的EOCx(转换完成标志),然后通过以下配置决定是否触发INTx。
3.3.3 连续转换模式
开启连续模式后,即使中断标志位没有被清除,通道转换完成后依旧可以发出脉冲信号。
ADC_enableContinuousMode(CONFIG_ADC3_BASE_ADDR, 0);
3.4 ADC转换开启 / 中断触发时机配置
3.4.1 开启ADC转换
- ADCPWDNZ:控制ADC硬件单元供电,使能了ADC才能转换。
ADC_enableConverter(CONFIG_ADC3_BASE_ADDR);
3.4.2 中断触发时机
- INPULSEPOS:配置中断触发时机
- ADC_PULSE_END_OF_ACQ_WIN:Occurs at the end of the acquisition window
- ADC_PULSE_END_OF_CONV:Occurs at the end of the conversion(一般选择这个转换完成后触发)
ADC_setInterruptPulseMode(CONFIG_ADC3_BASE_ADDR, ADC_PULSE_END_OF_CONV);