写点什么

CC2530 ADC 配置步骤

作者:DS小龙哥
  • 2022 年 5 月 31 日
  • 本文字数:1290 字

    阅读完需:约 4 分钟

第一章 A/D 转换的基本工作原理​

将时间上连续变化的模拟量转化为脉冲有无的数字量,这一过程就叫做数字化,实现数字化的关键设备是 ADC。

ADC:数模转换器,将时间和幅值连续的模拟量转化为时间和幅值离散的数字量,A/D 转换一般要经过采样、保持、量化和编码 4 个过程。



第二章 CC2530 的 A/D 转换模块​

CC2530 的 ADC 模块支持最高 14 位二进制的模拟数字转换,具有 12 位的有效数据位,它包括一个模拟多路转换器,具有 8 个各自可配置的通道,以及一个参考电压发生器。



该 ADC 模块有如下主要特征:

<1> 可选取的抽取率,设置分辨率(7~12 位)。

<2> 8 个独立的输入通道,可接收单端或差分信号。

<3> 参考电压可选为内部单端、外部单端、外部差分或 AVDD5。

<4> 单通道转换结束可产生中断请求。

<5> 序列转换结束可发出 DMA 触发。

<6> 可将片内温度传感器作为输入。

<7> 电池电压测量功能。


第三章 ADC 模块的信号输入​

端口 0 引脚可以配置为 ADC 输入端,依次为 AIN0~AIN7:

<1> 可以把输入配置为单端输入或差分输入。

<2> 差分输入对:AIN0~AIN1、AIN2~AIN3、AIN4~AIN5、AIN6~AIN7。

<3> 片上温度传感器的输出也可以作为 ADC 的输入用于测量芯片的温度。

<4> 可以将一个对应 AVDD5/3 的电压作为 ADC 输入,实现电池电压监测。

<5> 负电压和大于 VDD 的电压都不能用于这些引脚。

<6> 单端电压输入 AIN0~AIN7,以通道号码 0~7 表示;四个差分输入对则以 通道号码 8~11 表示;温度传感器的通道号码为 14;AVDD5/3 电压输入的通道号码为 15。

第四章 ADC 相关的几个概念​

<1> 序列 ADC 转换:可以按序列进行多通道的 ADC 转换,并把结果通过 DMA 传送到存储器,而不需要 CPU 任何参与。

<2> 单通道 ADC 转换:在程序设计中,通过写 ADCCON3 寄存器触发单通道 ADC 转换,一旦寄存器被写入,转换立即开始。

<3> 参考电压:内部生成的电压、AVDD5 引脚、适用于 AIN7 输入引脚的外部电压,或者 适用于 AIN6~AIN7 输入引脚的差分电压。

<4> 转换结果:数字转换结果以 2 的补码形式表示。对于单端,结果总是正的。对于差分配置,两个引脚之间的差分被转换,可以是负数。 当 ADCCON1.EOC 设置为 1 时,数字转换结果可以获得,且结果总是驻留在 ADCH 和 ADCL 寄存器组合的 MSB 段中。

<5> 中断请求:通过写 ADCCON3 触发一个单通道转换完成时,将产生一个中断,而完成 一个序列转换时,是不产生中断的。当每完成一个序列转换,ADC 将产生 一个 DMA 触发。

<6> 寄存器:ADC 有两个数据寄存器:ADCL 和 ADCH;三个控制寄存器:ADCCON1、ADCCON2、ADCCON3;分别用来配置 ADC 并返回转换结果。


第五章 ADC 配置步骤​

【1】配置 APCFG 寄存器

当使用 ADC 时,端口 0 的引脚必须配置为 ADC 模拟输入。要配置一个端口 0 引脚为一个 ADC 输入,APCFG 寄存器中相应的位必须设置为 1。这个寄存器的默认值是 0,选择端口 0 为非模拟输入,即作为数字 I/O 端口。

注意:寄存器的设置将覆盖 P0SEL 的设置。



【2】配置 ADCCON3 寄存器

单通道的 ADC 转换,只需将控制字写入 ADCCON3 寄存器即可。




【3】ADC 初始化

主要对端口的功能进行选择,设置其传输方向,并将端口设置为模拟输入。

【4】ADC 数据采集

首先将 ADCIF 标志位清 0,接着对 ADCCON3 寄存器设置,该寄存器一旦被写入,转换立即开启;然后等待 ADCIF 置 1,这时候转换完成,读取数据即可。

【5】源代码


发布于: 刚刚阅读数: 3
用户头像

DS小龙哥

关注

之所以觉得累,是因为说的比做的多。 2022.01.06 加入

熟悉C/C++、51单片机、STM32、Linux应用开发、Linux驱动开发、音视频开发、QT开发. 目前已经完成的项目涉及音视频、物联网、智能家居、工业控制领域

评论

发布
暂无评论
CC2530 ADC配置步骤_5月月更_DS小龙哥_InfoQ写作社区