程序项目代做,有需求私信(小程序、网站、爬虫、电路板设计、驱动、应用程序开发、毕设疑难问题处理等)

Mini2440裸机开发之模数转换开发

一、硬件介绍

1.1 S3C2440 ADC概述

模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。S3C2440集成了8通道10位CMOS A/D转换器,最大转换率为2.5MHz A/D转换器时钟下的500KSPS。A/D转换器支持片上采样-保持功能和掉电模式的操作。

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

  • 转换精度:用多少位来存储这个数据;
  • 采样/转换速度;

S3C2440 ADC具有以下特性:

  • 分辨率:10 位
  • 差分线性误差:± 1.0 LSB
  • 积分线性误差:± 2.0 LSB
  • 最大转换率:500 KSPS,KSPS,全称kilo Samples per Second,即采样千次每秒,是转化速率的单位
  • 功耗低
  • 供电电压:3.3V
  • 模拟输入范围:0 至3.3V
  • 片上采样-保持功能
  • 普通转换模式
  • 分离的X/Y方向转换模式 
  • 自动(顺序)X/Y方向转换模式
  • 等待中断触发

从上图可以看出AD converter前有一个多路选择器,用来选择模拟输入源,这里选择A[3:0]作为模拟输入源。这里的XP、XM、YP、YM引脚是适用于电阻屏的触摸屏触摸检测。

1.2 A/D转换时间

当PCLK 频率在50MHz 并且预分频器的值为49 时,共10 位的转换时间如下:

$$A/D转换器速率=\frac{50MHZ}{(49+1)}=1MHZ$$

$$转换时间=\frac{1}{1MHZ/5周期}=\frac{1}{200kHz}=5us$$

注释: 此A/D 转换器被设计为最高工作在2.5MHz 时钟下,因此转换率可以达到500KSPS。

1.3 Mini2440 ADC电路

Mini2440开发板引出4路A/D(模数转换)转换通道,它们位于板上的CON4-GPIO接口。为了方便测试, AIN0连接到了开发板上的可调电阻W1,原理图如下所示:

如图,是把可变电阻上的电压值变换的模拟信号通过ADC转换,输出数字信号。

二、寄存器

2.1 ADC控制寄存器(ADCCON)

寄存器信息:

寄存器 地址 R/W 描述 复位值
ADCCON 0x5800000 R/W ADC 控制寄存器 0x3FC4

寄存器位信息:

ADCCON 描述 初始状态
ECFLG [15]

转换结束标志位(只读)

0 = A/D 正在转换  1 = A/D 转换已结束

0
PRSCEN [14]

A/D 转换器预分频器使能

0 = 禁止 1 = 使能

0
PRSCVL [13:6]

A/D 转换器预分频值

数值范围: 0 至255

注意:ADC 频率应该设置为低于PCLK 的1/5。(例如PCLK=10MHz,
则ADC 频率<2MHz)

0xFF
SEL_MUX [5:3]

模拟输入通道选择

000 = AIN0  001 = AIN1   010 = AIN2   011 = AIN3
100 = YM    101 = YP       110 = XM     111 = XP

0
STDBM [2]

待机模式选择

0 = 正常工作模式 1 = 待机模式

1
READ_ START [1]

读启动A/D 转换

0 = 禁止读启动操作 1 = 使能读启动操作

0

ENABLE_START

[0]

使能A/D 转换启动。如果READ_START 为使能,则此值无效

0 = 无操作   1 = A/D 转换启动且此位在启动后被清零

0

注意:

  • 当触摸屏引脚(YM、YP、XM 和XP)为禁止时,这些端口可以被用于ADC 的模拟输入端口(AIN4、AIN5、AIN6 和AIN7)。
  • 当从待机模式中变换到正常工作模式时,ADC 的预分频器必须在最后的3 个ADC 时钟前使能。
  • 注意位[1]这一位, 这说明转换完成读取的时候还可以触发转换,也就是相当于连续转换。

这里我们设置预分频器使能,PCLCK=50MHZ,设置预分频器值为49:

$$A/D转换器速率=\frac{50MHZ}{(49+1)}=1MHZ$$

模拟输入通道选择AIN0:

ADCCON = (1<<14) | (49<<6) | (0<<3); //设置输入源AIN0, ADC时钟为1Mhz

位0用来使能A/D转换功能,A/D转换成功后ECFLG会设置为1。

2.2 ADC 启动延时寄存器(ADCDLY)

寄存器信息:

寄存器 地址 R/W 描述 复位值
ADCDLY 0x5800008 R/W ADC 启动或初始化延时寄存器 0x00ff

寄存器位信息:

ADCDLY 描述 初始状态
DELAY [15:0]

正常转换模式、XY 方向模式、自动方向模式
→ADC 转换启动延时值。
注意:不要使用0 这个值(0x0000)

0x00ff

2.3 ADC 转换数据寄存器(ADCDAT0)

寄存器信息:

寄存器 地址 R/W 描述 复位值
ADCDAT0 0x580000C R/W ADC 转换数据寄存器 -

寄存器位信息:

ADCDAT0 描述 初始状态
UPDOWN [15]

等待中断模式中笔尖的起落状态

0 = 笔尖落下态 1 = 笔尖抬起态

-
AUTO_PST [14]

自动顺序X 方向和Y 方向转换

0 = 正常ADC转换  1 = 顺序X 方向、Y 方向测量

-
XY_PST [13:12]

手动X 方向或Y 方向测量

00 = 无操作模式 01 = X方向测量
10 = Y 方向测量 11 = 等待中断模式

-
保留 [11:10]

保留

-

XPDATA
(正常ADC)

[9:0]

X 方向转换数值(包括正常ADC转换数值)
数值范围:0 至3FF

-

亲爱的读者和支持者们,自动博客加入了打赏功能,陆陆续续收到了各位老铁的打赏。在此,我想由衷地感谢每一位对我们博客的支持和打赏。你们的慷慨与支持,是我们前行的动力与源泉。

日期姓名金额
2023-09-06*源19
2023-09-11*朝科88
2023-09-21*号5
2023-09-16*真60
2023-10-26*通9.9
2023-11-04*慎0.66
2023-11-24*恩0.01
2023-12-30I*B1
2024-01-28*兴20
2024-02-01QYing20
2024-02-11*督6
2024-02-18一*x1
2024-02-20c*l18.88
2024-01-01*I5
2024-04-08*程150
2024-04-18*超20
2024-04-26.*V30
2024-05-08D*W5
2024-05-29*辉20
2024-05-30*雄10
2024-06-08*:10
2024-06-23小狮子666
2024-06-28*s6.66
2024-06-29*炼1
2024-06-30*!1
2024-07-08*方20
2024-07-18A*16.66
2024-07-31*北12
2024-08-13*基1
2024-08-23n*s2
2024-09-02*源50
2024-09-04*J2
2024-09-06*强8.8
2024-09-09*波1
2024-09-10*口1
2024-09-10*波1
2024-09-12*波10
2024-09-18*明1.68
2024-09-26B*h10
2024-09-3010
2024-10-02M*i1
2024-10-14*朋10
2024-10-22*海10
2024-10-23*南10
2024-10-26*节6.66
2024-10-27*o5
2024-10-28W*F6.66
2024-10-29R*n6.66
2024-11-02*球6
2024-11-021*鑫6.66
2024-11-25*沙5
2024-11-29C*n2.88
posted @   大奥特曼打小怪兽  阅读(366)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2018-10-18 第二十节、基于传统图像处理的目标检测与识别(词袋模型BOW+SVM附代码)
如果有任何技术小问题,欢迎大家交流沟通,共同进步

公告 & 打赏

>>

欢迎打赏支持我 ^_^

最新公告

程序项目代做,有需求私信(小程序、网站、爬虫、电路板设计、驱动、应用程序开发、毕设疑难问题处理等)。

了解更多

点击右上角即可分享
微信分享提示