历史上的今天
今天是:2024年12月10日(星期二)
2021年12月10日 | Exynos4412裸机开发 —— A/D转换器
2021-12-10 来源:eefocus
一、Exynos4412 A/D转换器概述
1、简述
10位或12位CMOS再循环式模拟数字转换器,它具有10通道输入,并可将模拟量转换至10位或12位二进制数。5Mhz A/D 转换时钟时,最大1Msps的转换速度。A/D转换具备片上采样保持功能,同时也支持待机工作模式。
2、特性
ADC接口包括如下特性。
1)10bit/12bit输出位可选。
2)微分误差 1.0LSB。
3)积分误差 2.0LSB。
4)最大转换速率5Msps.
5) 功耗少,电压输入1.8V。
6)电压输入范围 0~1.8V。
7)支持偏上样本保持功能。
8)通用转换模式。
3、模块图
4412A/D转换器的控制器接口框图如下:

二、Exynos4412 A/D 控制器寄存器
1、A/D控制寄存器ADCCON

2、A/D转换数据寄存器ADCDAT0

3、A/D转换的转换时间计算
例如: PCLK为100MHz,PRESCALER = 65 ;所有10位转换时间为
100MHz/(99+1) = 1MHz
转化时间为1/(1MHz/5 cycles) = 5us。
完成一次A/D转换需要5个时钟周期。A/D转换器的最大工作时钟为5MHz,所以最大采样率可以达到1Mit/s.
三、A/D转换器实例
1、电路连接如下:
利用一个电位计输出电压到4412的AIN3管脚。输入的电压范围为0~1.8V。

2、程序编写
1、相关寄存器定义
/*********************** ADC ******************************************/
#define ADC_CFG __REG(0x10010118)
#define ADCCON __REG(0x126C0000)
#define ADCDLY __REG(0x126C0008)
#define ADCDAT __REG(0x126C000C)
#define CLRINTADC __REG(0x126C0018)
#define ADCMUX __REG(0x126C001C)
2、具体代码如下:
注:这里使用读-启动模式
#include "exynos_4412.h"
#include "pwm.h"
#include "uart.h"
unsigned char table[10] = {'0','1','2','3','4','5','6','7','8','9'};
void mydelay_ms(int time)
{
int i, j;
while(time--)
{
for (i = 0; i < 5; i++)
for (j = 0; j < 514; j++);
}
}
adc_init(int temp)
{
ADCCON = (1 << 16 | 1 << 14 | 99 <<6 | 1 << 1);
ADCMUX = 3;
temp = ADCDAT & 0xfff;
}
/*
* 裸机代码,不同于LINUX 应用层, 一定加循环控制
*/
int main (void)
{
unsigned char bit4,bit3,bit2,bit1;
uart_init();
unsigned int temp = 0;
adc_init(temp);
puts("开始转换n");
while(1)
{
while(!(ADCCON & 0x8000));
temp = ADCDAT & 0xfff;
printf("U = %dn",temp);
temp = 1.8 * 1000 * temp/0xfff;
bit4 = temp /1000;
putc(table[bit4]);
bit3 = (temp % 1000)/100;
putc(table[bit3]);
bit2 = ((temp % 1000)%100)/10;
putc(table[bit2]);
bit1 = ((temp % 1000)%100)%10;
putc(table[bit1]);
puts("mV");
putc('n');
mydelay_ms(1000);
}
return 0;
}
史海拾趣
|
虽然早先有关“分立元件运算放大器产品将与其它产品进行更高级别的集成或其市场将有所收缩”这一预言令人忧心忡忡,但这类产品仍旧保持着勃勃生机。 事实上,目前运算放大器显示着前所未有的良好势头。而且,在未来几年内,分立元件运算放大器 ...… 查看全部问答> |
|
一、安检门原理由晶振产生3.5-4.95M的正弦振荡,由分频器分频为7.8K左右正弦波,经三极管与线圈进行功率放大后输入门板(7区)大线圈进行电磁波发射,由门内1-6区线圈分别进行接收。接收后,将接收到的信号与基准信号进行了比较,发现变化后,改变采 ...… 查看全部问答> |
|
各位前辈好! 目前我在练习的一些CE的程式 是套用我PB所建立的SDK所写! 这SDK的project是使用厂商的BSP所创 请问这样我程序撰写出来可用的平台是所有CE平台都可用吗? 还是会有所限制! 因为我目前 有一个对话盒的程序,在别块母板上执行会出现 ...… 查看全部问答> |
|
【关注】《ARM嵌入式常用模块与综合系统设计实例精讲》练习题与答案 本文转引自 广告,被过滤 ARM技术讨论版 广告,被过滤 非常详细的问题集锦,相信朋友们看过之后会对整个嵌入式ARM有一个更高远更深刻的认识。 第1章: 填空题 1.ARM内核有四个功能模块,即______、______、______、______,可供生产厂商根据不 ...… 查看全部问答> |
|
pxa255+wce4.2系统,nand flash一共8192个block,开机检测坏块时,前面1000个左右非常慢,后面的非常快,不知道什么原因?我把FMD_GetBlockStatus设置为固定值还是同样的结果...是不是FAL层对不同的block处理过程不一样,导致检测时 ...… 查看全部问答> |
|
ST代理商招马达控制应用FAE 一人。如有兴趣的可将简历发到我的邮箱(grant_jx@163.com),会帮忙推荐的。简历需注明薪资要求。 要求: 1、熟悉电机控制应用(PMSM、BLDC...); 2、至少使用过一种MCU、DSP开发过电机控制应用的产品, ...… 查看全部问答> |
|
从去年接触fpga到现在,也有近一年的时间了,虽然这一年中乱七八糟的事很分心,真正拿来学习fpga的时间也不是很多,但是,还是收获不小……也不记得当初为什么选择fpga了,反正现在的感觉就是,我喜欢这东西,虽然我很笨,但是,我就是想学好这东西 ...… 查看全部问答> |




