【AM263x】ADC

【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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值