1.13裸机ADC部分

1.13.1、ADC的引入

1.13.1.1、什么是ADC

  • (1)ADC:analog digital converter ,AD转换,模数转换(也就是模拟转数字)
  • (2)CPU本身是数数字的,而外部世界变量(如电压、温度、高度、压力)都是模拟的,所以需要用CPU来处理这些外部的模拟量的时候就需要做AD转换

1.13.1.2、为什么需要ADC

  • (1)为了用数字技术来处理外部的模拟量

1.13.1.3、关于模拟量和数字量

  • (1)模拟的就是连续的,显示生活中的时间、电压、高度等都是模拟的(连续分布的,划分的话可以无限划分)。模拟量反应在数学里面就是无限多个小数位从0到1之间有无数个数。
  • (2)数字的就是离散的,离散的就是不连续的。这种离散处理实际上是数学上对现实中的模拟量的一种精度的描述,数字化就是离散化,就是把连续分布的模拟量按照一定精度采样变成多个不连续分布的数字值,就叫数字量
  • (3)数字化的意义就在于可以用(离散)数字来简化模拟量,这东西是计算机的基础
  • (4)计算机处理参量的时候都是数字化的,计算机也需要数字化的值来参与运算,如果系统输入的模拟量就需要外加一个AD转换器,将这个模拟量转成数字量,再给CPU

1.13.1.4、有AD自然就有DA

  • (1)AD是analog to digital   而DA是digital to analog
  • (2)纯粹用CPU 不可能实现数字转模拟,因为CPU本身就是数字的。使用一些(具有积分和微分效果的)物理器件,就可以实现数字转模拟。
  • (3)数字转模拟的作用。譬如用来做波形发生器

1.13.2、ADC的主要相关概念

1.13.2.1量程(模拟量的输入范围)

  • (1)AD转换器是一个电子器件,所以只能输入电压信号,其他种类的模拟信号必须经过传感器(sensor)的转换器转换成模拟的电压信号,然后才能给AD
  • (2)AD输入端的模拟电压要求有一个范围,一般是0~3.3V或0~5V或者是0~12V等等。模拟电压的范围是AD芯片本身的一个参数,实际工作时AD的电压信号不能超过这个电压范围

1.13.2.3、精度(分辨率resolution)

  • (1)AD转换输出的数字值是有一定的位数的(譬如说十位,就是说输出的数字值的位数是用十位二进制表示的,这种就叫10位AD)。这个位数就表示了转换精度
  • (2)10位AD就相当于把整个范围分成了1024个格子,每个格子的间隔就是电压的精度,譬如说,加入AD芯片的量程是0~3.3V,则每一个格子的代表的电压值是3.3V,则每个格子代表的电压值是3.3V/1024=0.0032265,如果此时AD转换后得到的数字是447,则这个数字代表的模拟量是447*0.0032265 = 1.44V
  • (3)AD位数越多,则每个格子表示的电压值越小,将来的算出来的值就越小,就越精确。
  • (4)AD的模拟来那个城一样的情况下,AD精度位数越多精度越高,测出来的值越准。但是如果AD的量程不一样。譬如2个AD,A的量程是0~50V,B是0~0.5V,A是12位的,B是10位的,实际上B的精度比A的还要高。(A的精度50/1024 = 0.04883,0.5/4096 =  0.000122)

1.13.2.3、转换速率(MSPS与convert clock不同)

  • (1)首先要明白:AD芯片进行AD转换是耗费时间的。这个时间需要多久,不同的芯片是不一样的,同一颗芯片在配置不一样的(譬如说精度为10位时时间比精度配置为12位时小,譬如说有些AD可以分配转换时钟,时钟频率高则转换时间短)时转换时间也不一样。
  • (2)详细的需要时间可以参考数据手册。一般数据手册中描述转换速率用的单位是MSPS(第一个M是兆,第二个S是sample,,就是采样,后面的PS是每秒,每秒钟转出来多少M个数字值)
  • (3)AD工作都需要一个时钟,这个时钟有一个范围,我们实际给他配置时不要超过这个范围就可以了。AD转换是在这个时钟下进行的,时钟的频率控制着AD转换的速率。注意:时钟频率和MSPS不是一回事,只是成正比不是完全相等。譬如S5PV210中的AD转换器,MSPS = 时钟频率/5

1.13.2.4、通道数

  • (1)AD有多少路analog input通道代表了将来可以同时进行多少路模拟信号的输入

1.13.3、S5PV210的ADC控制器

1.13.3.1、ADC和(电阻式)触摸屏的关系

  • (1)ADC在210的数据手册的section10.7
  • (2)电阻式触摸屏工作时依赖AD转换,所以在210SOC中电阻触摸屏接口本身和ADC接口是合二为一的。或者说电阻触摸屏接口使用了(复用了ADC的接口)

1.13.3.2、ADC的工作时钟框图

  • ADCCLK是ADC控制器工作的时钟,也就是1.13.2.3节中讲到的convertor clock。从时钟框图可以看出,他是PCLK(当然是PCLK_PSYS)经过了一次分频后得到的,所以将来初始化ADC控制器时一定有一个步骤是初始化这里的分频器

1.13.3.3、210的10个ADC通道(注意ADC引脚和GPIO的区别)

  • (1)210一共支持10个ADC通道,分别叫AIN[0]~AIN[9]。理论上可以同时做10路AD转换
  • (2)SoC的引脚至少分2中:digit数字引脚和analog模拟引脚。我们以前接触的GPIO都属于数字引脚,ADCchannel通道引脚属于模拟引脚。数字引脚和模拟引脚一般不复用

1.13.2.4、ADC控制器的主要寄存器

  • TSADCCON0
  • TSDATX0  TSDATY0  转出来的AD值存在这里,我们读也是在这里读
  • CLRINTADC0     清中断
  • ADCMUX            选择当前正在操作的AD通道

(1)等待触摸屏转换完毕的方法有2种:一种是检查标志位,第二种是中断。第一种方式下我们先开启一次转换后循环不同检查标志位直到标志位为1为1表明已经转化好了。可以去读了,第二种方式下就是设置好中断,写好中断isr来读取AD转换数据,然后开启中断后CPU就不用管了,等AD转换完就会生成一个中断给CPU,就会进入中断处理流程,第一种方法是同步的,第二种方式是异步的。

(2)AD转换都是需要反复进行的,那么转完一次一般立即开启下一次转换,所以需要一种机制能够在一次转完时自动开启下一次,这个机制就叫做start by read。这个机制的原理是:当我们读取本次AD转换的AD值后,硬件自动开启下一次转换。

1.13.4转换的变成实战1

时间: 2024-08-11 03:36:36

1.13裸机ADC部分的相关文章

Intel系列CPU指令速查手册

指令名称 指令形式 机器码 标志位 (设置/测试) 说明 应用举例 ES: ES: 26 ES段跨越前缀 CS: CS: 2E CS段跨越前缀 SS: SS: 36 SS段跨越前缀 DS: DS: 3E DS段跨越前缀 FS: FS: 64 FS段跨越前缀 GS: GS: 65 GS段跨越前缀 Opsize: Opsize: 66 操作数类型跨越前缀 Address: Address: 67 地址类型跨越前缀 AAA 37 设置 AF CF 加法后的ASCII码调整AL AAA AAD AAD

递归的调用

递归的表现形式(此列不是递归只是说明递归的表现形式) 1 #递归的表现形式(此列不是递归只是说明递归的表现形式) 2 def f1(): 3 return "递归的表现形式" #f1函数里的功能,返回"递归的表现形式"字符串 4 def f2(): 5 r = f1() #执行f1函数 6 return r #返回f1函数的结果 7 def f3(): 8 r = f2() #执行f2函数 9 return r #返回f2函数的结果 10 def f4(): 11

python 各模块

01 关于本书 02 代码约定 03 关于例子 04 如何联系我们 1 核心模块 11 介绍 111 内建函数和异常 112 操作系统接口模块 113 类型支持模块 114 正则表达式 115 语言支持模块 12 _ _builtin_ _ 模块 121 使用元组或字典中的参数调用函数 1211 Example 1-1 使用 apply 函数 1212 Example 1-2 使用 apply 函数传递关键字参数 1213 Example 1-3 使用 apply 函数调用基类的构造函数 122

转:Python标准库(非常经典的各种模块介绍)

Python Standard Library 翻译: Python 江湖群 10/06/07 20:10:08 编译 0.1. 关于本书 0.2. 代码约定 0.3. 关于例子 0.4. 如何联系我们 核心模块 1.1. 介绍 1.2. _ _builtin_ _ 模块 1.3. exceptions 模块 1.4. os 模块 1.5. os.path 模块 1.6. stat 模块 1.7. string 模块 1.8. re 模块 1.9. math 模块 1.10. cmath 模块

嵌入式Linux裸机开发(十四)——ADC

嵌入式Linux裸机开发(十四)--ADC 一.AD转换简介 AD转换就是模数转换,就是把模拟信号转换成数字信号.A/D转换器是用来通过一定的电路将模拟量转变为数字量.模拟量可以是电压.电流等电信号,也可以是压力.温度.湿度.位移.声音等非电信号.在A/D转换前,输入到A/D转换器的输入信号必须经各种传感器把各种物理量转换成电压信号.A/D转换后,输出的数字信号可以有8位.10位.12位.14位和16位等. 二.ADC控制器 ADC控制器时钟: 时钟源为PCLK_PSYS,经过一次分频后得到AD

TQ210裸机编程(13)——NAND FLASH读写

参考<韦东山毕业班视频>第1课第1.1节_自己写bootloader之编写第1阶段 参考<韦东山6410裸板视频>第7章nand flash实验 K9K8G08U0B : (1G + 32M) x 8bit Data Register : (2K + 64) x 8bit Page Program : (2K + 64)Byte Block Erase : (128K + 4K)Byte Page Read: (2K + 64)Byte The K9K8G08U0B has a 8

mini2440裸机音乐播放器(很久以前的笔记)

[这是好久以前写的,有点乱,没时间整理,当做记录用的.] 图片粘贴失效,没上传图,想要的直接下载文档吧. 项目目的:通过IIS,触摸屏,LCD模块实现音乐播放器功能(按钮上一首.下一首.播放.暂停的音频控制功能,并实现播放歌曲时显示相应的歌曲图片,不播放时显示hello music图片) 项目设备:windows7(32位),mini2440,uboot(nandflash),ADS1.2开发环境,jlink v8,耳机: 功能模块LCD.触摸屏.IIS 分别介绍: Main函数中主频设置: U

u-boot-2014.10移植第3天----LED裸机程序

硬件平台:tq2440 开发环境:Ubuntu-3.11 u-boot版本:2014.10 本文允许转载,请注明出处:http://blog.csdn.net/fulinus 在移植u-boot之前我们先熟悉一下硬件,以及如何控制硬件: 情况一: 这个情况是你的开发板中有了可以运行的u-boot.因为裸机程序能运行的前提条件是系统初始化了. 下面led.S是一位高人写的代码,完全是用ARM汇编编写的,短小精悍,主要是实现跑马灯的功能: /*****************************

mini2440裸机试炼之IIS——音乐播放器

IIS 信号频率设置 IIS(Inter-IC Sound)由飞利浦公司开发,是一种常用的音频设备接口,主要用于CD.MD.MP3等设备. s3c2440一共有5个引脚用于IIS:IISDO.IISDI.IISSCLK.IISLRCK和CDCLK.前两个引脚用于数字音频信号的输出和输入,另外三个引脚都与音频信号的频率有关,可见要用好IIS,就要把信号频率设置正确. IISSCLK为串行时钟,每一个时钟信号传送一位音频信号.因此IISSCLK的频率=声道数×采样频率×采样位数,如采样频率fs为44