第018课 ADC和触摸屏

来自百问网嵌入式Linux wiki
Baiwen root讨论 | 贡献2018年1月19日 (五) 15:49的版本

第001节_ADC硬件原理

模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。
通常的模数转换器是把经过与标准量比较处理后的模拟量转换成以二进制数值表示的离散信号的转换器。
故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。
而输出的数字量则表示输入信号相对于参考信号的大小。如图,是把可变电阻上的电压值变换的模拟信号通过ADC转换,输出数字信号。

tu1


对于数字信号我们需要得到它的几个属性

  • 用多少位来存储这个数据(假设10bit)。
  • 最大值0b111111111 它对应的电压是多少伏(模拟信号输入的最大值是多少)我们就可以根据模拟信号(电压)的最大值,来计算出对应的数值。
  • 采样/转换速度。


对于程序员,我们不关心ADC的内部机制,我们只关心:

  • 怎么启动ADC
  • 启动之后怎么得到数据,

总之:我们都是通过寄存器操作的。

tu2

从图1-1-1可以看出ADC有8个多路选择器,显然,以后我们写程序的时候,我们可以8个多路选择之一, 下面是编写程序要做的步骤:

  1. 确定是哪一路信号:设置8:1MUX,选择要测量哪一个引脚,(看原理图选择要测量的引脚)
  2. 设置工作时钟(从工作室中,可以算出转换一次,需要多长时间)
  3. 启动
  4. 读状态,判断ADC转换是否成功。
  5. 读数据


第002节_ADC寄存器介绍

1,ADC 控制寄存器(ADCCON) ADCCON控制寄存器,用于标志转换是否完成,控制是否使能预分频器,输入通道选择,工作模式,ADC是否启动。它的各位含义如下图所示。

pdf 表格1

2,ADC 启动延时寄存器(ADCDLY) ADCDLY 启动延时寄存器用于启动或初始化延时寄存器。它的各位含义如下图所示

pdf 表格2


3,ADC 转换数据寄存器(ADCDAT0) ADCDAT0转换数据寄存器,本节中只用到该寄存器的前10位(用于保存转换后的结果)。

pdf 表格3