S5PV210之ADC
来源:互联网 发布:java面试算法编程题 编辑:程序博客网 时间:2024/06/06 01:45
这篇博客里面的很多东西都是基于S5PV210_UM的英文手册,当然也加入了一些自己的理解。
先对S5PV210的ADC的主要特征做个简单介绍:
1.分辨率(输出离散值的个数)可以是10位或者12位(可以通过TSADCCON0/TSADCCON1的第16位RES进行设定,将RES设为0表示10位,设为1表示12位)
2.10通道的模拟输入(AIN[9]---AIN[0])
3.输入电压为0--3.3V
4.最大转换速率:1MSPS
对于转换速率的计算:
S5PV210_UM手册上是这样介绍的:
当PCLK=66MHz时,预分频比P=65时,12位分辨率的转换时间如下:
A/D转换频率=66MHz/(65+1)=1MHz
A/D转换时间=1/(1MHz/5cycles)=1/200kHz=5us
注意:A/D的转换频率最大可达5MHz,所以A/D转换时间最大可达1MSPS
对于官方手册上,所说的A/D转换时间的计算,可能我们第一次看的时候会不太理解,会什么要1MHz/5cycles?
原因是这样的,因为A/D转换时间包括A/D建立时间,1位1位转换时间,保存数据时间等等,加起来一共是5个时钟周期,所以会是1MHz/5cycles
其实对于 A/D转换时间=1/(1MHz/5cycles) 可以换种写法 A/D转换时间=1/1MHz *5=5us 也是一样的
所以当最大转换频率达到5MHz时,A/D转换时间可达1MSPS(SPS为每秒的采样率)
5.具有采样保持功能
接着就是介绍涉及ADC操作的一些寄存器
虽然ADC有10通道的模拟输入,但是只有AIN[0],AIN[1]没有复用,像AIN[2]--AIN[9]是复用为触摸屏的两路控制信号(XM,XP)
所以这里只介绍涉及AIN[0],AIN[1]的相关寄存器
操作AIN[0],在编写ADC的驱动代码的时候,一般情况下只需考虑三个寄存器,分别是
操作AIN[1],在编写ADC的驱动代码的时候,一般情况下只需考虑三个寄存器,分别是
最后介绍一下ADC的操作流程,其实熟悉S3C2440或者S3C6410的人来看S5PV210的ADC,就会发觉很简单,其实他们的操作流程基本上是一样的
主要分三步:
1.使用clk_get获取adc时钟,接着使用clk_enable使能adc时钟
2.设置ADCCON的工作方式,预分频比之类的
3.当开始读取数据值时,开启ADC转换,判断是否开始转换,判断是否转换完成,最终读取数据,返回给用户空间
对于熟悉S3C2440的人,会发觉一点,S5PV210的控制寄存器,是没有通道选择的,因为在使用之前,直接用ioremap进行地址的映射时,就相当于选择了不同的通道,所以无需通道选择了。以上只是对S5PV210的ADC做了个简单介绍,详细信息请参看S5PV210_UM手册。
- S5PV210之ADC
- S5PV210-ADC
- S5PV210系列 (裸机十七) 之 ADC
- S5PV210的ADC控制器
- S5PV210 ADC驱动分析
- Android linux adc驱动(s5pv210)
- 关于S5PV210 的ADC和触摸屏控制器
- S5PV210芯片ADC&触摸屏接口学习
- 2440 test 之ADC
- [转]MSP430之ADC
- 学习笔记之ADC
- S3C2440之ADC
- STM32之ADC学习
- STM32F407之ADC简介
- OK6410之ADC驱动程序
- TMS320F28027之ADC
- NUC140之ADC
- STM32之ADC学习
- 软件测试关注一 :异常操作
- 代码破窗
- UNIX环境高级编程——文件I/O
- Ubuntu 12.04中文输入法的安装
- view 位置
- S5PV210之ADC
- C#单纯的字母数字ASCII码转换
- 期刊论文列表
- Tabular Model下的ADOMD.NET
- 从一个男人身上看出他的修养和抱负
- 数学积分求面积的 HDU1071The area
- Tomcat启动异常:Error starting static Resources
- 想法
- 块修改跟踪 (Block Change Tracking)