先对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的驱动代码的时候,一般情况下只需考虑三个寄存器,分别是
| 寄存器 | 映射地址 | 读/写 | 描述 | 复位值 |
| TSADCCON0 | 0xE170_0000 | R/W | TS0/ADC控制寄存器 | 0x0000_3FC4 |
| TSDLY0 | 0xE170_0008 | R/W | TS0/ADC延时寄存器 | 0x0000_00FF |
| TSDATX0 | 0xE170_000C | R | TS0/ADC转换数据X寄存器 | --- |
上面表格即是操作AIN[0]时需要用到的三个寄存器,对于上面的映射地址,在编写驱动代码的时候可使用ioremap的形式进行映射,然后强制转为(volatile unsigned long *)指针形式,接下来就可以直接操作寄存器了(具体使用方式见前面博客adc的驱动代码里面有具体操作)。
操作AIN[1],在编写ADC的驱动代码的时候,一般情况下只需考虑三个寄存器,分别是
| 寄存器 | 映射地址 | 读/写 | 描述 | 复位值 |
| TSADCCON1 | 0xE170_1000 | R/W | TS1/ADC控制寄存器 | 0x0000_3FC4 |
| TSDLY1 | 0xE170_1008 | R/W | TS1/ADC延时寄存器 | 0x0000_00FF |
| TSDATY1 | 0xE170_100C | R | TS1/ADC转换数据Y寄存器 | --- |
对于AIN[1]的使用方式与AIN[0]的使用完全一样,需要修改的只是映射地址而已。
最后介绍一下ADC的操作流程,其实熟悉S3C2440或者S3C6410的人来看S5PV210的ADC,就会发觉很简单,其实他们的操作流程基本上是一样的
主要分三步:
1.使用clk_get获取adc时钟,接着使用clk_enable使能adc时钟
2.设置ADCCON的工作方式,预分频比之类的
3.当开始读取数据值时,开启ADC转换,判断是否开始转换,判断是否转换完成,最终读取数据,返回给用户空间
对于熟悉S3C2440的人,会发觉一点,S5PV210的控制寄存器,是没有通道选择的,因为在使用之前,直接用ioremap进行地址的映射时,就相当于选择了不同的通道,所以无需通道选择了。
以上只是对S5PV210的ADC做了个简单介绍,详细信息请参看S5PV210_UM手册。
上一篇:X210串口配置与stdio移植
下一篇:S5PV210之SPI和linux 内核3.0.8之SPI解析
推荐阅读最新更新时间:2026-03-19 11:25
- 基于 Blackfin 数字信号处理器 (DSP) 的 ADZS-BF518F-EZLITE、ADSP-BF518F EZ-Kit Lite 评估系统
- 使用 ON Semiconductor 的 CAT3200Z 的参考设计
- LTC2162 演示板,16 位 65Msps ADC,LVDS 输出,5-140MHz
- 使用 Analog Devices 的 LTC3526BEDC-2 的参考设计
- LT3091HT7 在极低输出电压下低压降操作的典型应用
- 蓝牙协议分析工具nRF52840 MDK USB Dongle
- NCV2902DR2G 维恩桥振荡器运算放大器的典型应用
- LTC4100EGN 演示板,智能电池充电器 DCIN = 15V-20V / 3.5V
- TC78H620FNG 双桥直流有刷电机驱动器评估板
- 带有 DRP w/Try.SRC 和 Type-C 插座的 PTN5110 USB PD 的典型应用

Follow me第三季第4期任务汇总代码
Follow me第三季第3期源代码
现代雷达系统的信号设计
NJM5532S
BFR340T






京公网安备 11010802033920号