Exynos4412裸机开发 —— A/D转换器
来源:互联网 发布:java框架是什么 编辑:程序博客网 时间:2024/05/20 01:39
一、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)#defineADCCON__REG(0x126C0000)#defineADCDLY__REG(0x126C0008)#defineADCDAT__REG(0x126C000C)#defineCLRINTADC__REG(0x126C0018)#defineADCMUX__REG(0x126C001C)
注:这里使用读-启动模式
#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 = %d\n",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;}
0 1
- Exynos4412裸机开发 —— A/D转换器
- Exynos4412裸机开发 —— A/D转换器
- Exynos4412 裸机开发—— 流水灯
- Exynos4412裸机开发——PWM定时器
- Exynos4412裸机开发——中断处理
- Exynos4412裸机开发 —— 看门狗定时器
- Exynos4412裸机开发 —— UART
- Exynos4412 裸机开发 —— IIC总线
- Exynos4412 裸机开发 —— IIC总线
- Exynos4412裸机开发 —— UART
- Exynos4412裸机开发 —— 看门狗定时器
- Exynos4412裸机开发——中断处理
- Exynos4412裸机开发——PWM定时器
- Exynos4412 裸机开发—— 流水灯
- Exynos4412裸机开发——中断处理
- Exynos4412裸机开发——中断处理
- Exynos4412 裸机开发 —— IIC总线
- Exynos4412裸机开发 —— RTC 实时时钟单元
- POJ 2135_Farm Tour
- 中国计算机学会CCF推荐国际学术会议和期刊目录-网络与信息安全
- mysql 更改root账户密码 - mysql-5.7.11-osx10.10
- 解决System进程占用80端口
- Android 图片缓存之内存缓存技术LruCache
- Exynos4412裸机开发 —— A/D转换器
- 中国计算机学会CCF推荐国际学术会议和期刊目录-软件工程/系统软件/程序设计语言
- Grub2引导Grub4dos菜单写法
- DFS算法初探
- 中国计算机学会CCF推荐国际学术会议和期刊目录-计算机科学理论
- PHP的工作原理以及lamp四者之间的关系
- Objective-C ,KVC研究,几种属性赋值的方法
- 反汇编一个简单的C程序
- 中国计算机学会CCF推荐国际学术会议和期刊目录-人机交互与普适计算