一、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、相关寄存器定义

[cpp] view plaincopy
  1. /***********************  ADC ******************************************/
  2. #define     ADC_CFG     __REG(0x10010118)
  3. #define     ADCCON      __REG(0x126C0000)
  4. #define     ADCDLY      __REG(0x126C0008)
  5. #define     ADCDAT      __REG(0x126C000C)
  6. #define     CLRINTADC   __REG(0x126C0018)
  7. #define     ADCMUX      __REG(0x126C001C)

2、具体代码如下:

注:这里使用读-启动模式

[cpp] view plaincopy
  1. #include "exynos_4412.h"
  2. #include "pwm.h"
  3. #include "uart.h"
  4. unsigned char table[10] = {'0','1','2','3','4','5','6','7','8','9'};
  5. void mydelay_ms(int time)
  6. {
  7. int i, j;
  8. while(time--)
  9. {
  10. for (i = 0; i < 5; i++)
  11. for (j = 0; j < 514; j++);
  12. }
  13. }
  14. adc_init(int temp)
  15. {
  16. ADCCON = (1 << 16 | 1 << 14 | 99 <<6 | 1 << 1);
  17. ADCMUX = 3;
  18. temp = ADCDAT & 0xfff;
  19. }
  20. /*
  21. *  裸机代码,不同于LINUX 应用层, 一定加循环控制
  22. */
  23. int main (void)
  24. {
  25. unsigned char bit4,bit3,bit2,bit1;
  26. uart_init();
  27. unsigned int temp = 0;
  28. adc_init(temp);
  29. puts("开始转换\n");
  30. while(1)
  31. {
  32. while(!(ADCCON & 0x8000));
  33. temp = ADCDAT & 0xfff;
  34. printf("U = %d\n",temp);
  35. temp = 1.8 * 1000 * temp/0xfff;
  36. bit4 = temp /1000;
  37. putc(table[bit4]);
  38. bit3 = (temp % 1000)/100;
  39. putc(table[bit3]);
  40. bit2 = ((temp % 1000)%100)/10;
  41. putc(table[bit2]);
  42. bit1 = ((temp % 1000)%100)%10;
  43. putc(table[bit1]);
  44. puts("mV");
  45. putc('\n');
  46. mydelay_ms(1000);
  47. }
  48. return 0;
  49. }

Exynos4412裸机开发 —— A/D转换器相关推荐

  1. Exynos4412 裸机开发—— 流水灯

    这里我们使用的开发板是4412,开发板4412上有4个LED灯,我们这里可以利用其来做流水灯实验.下面是4个LED的原理图: 查看原理图,4412开发板的LED由CPX2_7 CPX1_0 GPF3_ ...

  2. Exynos4412裸机开发——中断处理

    以KEY2控制LED3亮灭为例: 一.轮询方式 [0]检测按键k2,按键k2按下一次,灯LED2闪一次. [1]查看原理图,连接引脚和控制逻辑 (1)按键k2 连接在GPX1_1引脚 (2)控制逻辑 ...

  3. Exynos4412 裸机开发 —— IIC总线

    前言: I2C(Inter-Integrated Circuit)总线(也称 IIC 或 I2C) 是有PHILIPS公司开发的两线式串行总线,用于连接微控制器及外围设备,是微电子通信控制领域广泛采用 ...

  4. Exynos4412裸机开发 —— UART

    一.Exynos4412 UART 的特性 Exynos4412 中UART,有4 个独立的通道,每个通道都可以工作于中断模式或DMA 模式,即 UART 可以发出中断或 DMA 请求以便在UART ...

  5. Exynos4412裸机开发综合练习

    下面是一个案例需求: 1.编写一段程序,该程序的主要功能是监控电路板上的电压值,若电压值超过当前的电压限制则通过蜂鸣器报警,通过按键解除报警; 2.其具体要求如下; a) 程序下载20s后,进入电压采 ...

  6. Exynos4412裸机开发 —— RTC 实时时钟单元

    RTC(Real-Time Clock) 实时时钟.RTC是集成电路,通常称为时钟芯片.在一个嵌入式系统中,通常采用RTC来提供可靠的系统时间,包括时分秒和年月日等,而且要求在系统处于关机状态下它也能 ...

  7. 利用汇编和C语言实现Exynos4412裸机开发系列之实现LED跑马灯(含源码)

    一.前言 本篇使用华清远见的FS4412开发板,对开发板的LED进行操作,来实现流水灯的效果,知识包含GPIO寄存器介绍.与ubuntu下linux操作系统通过进行交叉编译生成开发板可执行代码,通过本 ...

  8. Exynos4412裸机开发 —— 看门狗定时器

    http://blog.csdn.net/zqixiao_09/article/details/50755286 转载于:https://www.cnblogs.com/tureno/articles ...

  9. 从51到ARM裸机开发实验(006)Exynos4412 GPIO实验

    本次实验基于Tiny4412开发板,开发板上有四个可编程控制的LED.四个按键.来实现这样一种场景:每个按键控制一盏LED,每按一次则对应的LED状态发生改变,按一次开灯,再按一次关灯.核心控制为三星 ...

最新文章

  1. 一作解读Microbiome:所谓的“富集培养”获得的微生物真的都是被“富集”出来的吗?
  2. Verilog hdl与VHDL混用详解
  3. html溢出自动滚动,html – 溢出-y:使用overflow-x滚动:可见
  4. 桌面制作——Wallpaper Engine+Rainmeter
  5. 细说Golang的JSON解析
  6. springcloud集成sleuth
  7. 关于suitescript 无法读取Item Number Field
  8. Android MQTT客户端
  9. kali2018安装教程_Kali更新安装firefox教程
  10. APK安装流程:点击下载应用了解安装的全过程
  11. python图片加透明通道并将背景设为透明
  12. 来自2022年的Python 网络爬虫补充知识,HTML+JSON+爬虫场景
  13. k2-fsa differentiable Finite State Acceptor(Dan 的 toturial总结)
  14. Again! There are tons of wrong answers!
  15. Flash控件使用参考手册
  16. [解疑][TI]TI毫米波雷达系列(三):调频连续波雷达回波信号3DFFT处理原理(测距、测速、测角)
  17. latex如何设置页面边框
  18. 支付宝支付接口开发———在线扫码支付
  19. 大数据笔记--SparkSQL(第一篇)
  20. 【高并发】多线程之无锁队列

热门文章

  1. kerberos 主从安装
  2. Linux下查看文件和文件夹大小的df和du命令(链接)
  3. symantec backup exec 2010 基本错误总结
  4. 管道过滤模式 大数据_大数据管道配方
  5. spotify 数据分析_我的Spotify流历史分析
  6. 服务器虚拟化网口,服务器安装虚拟网口
  7. 条件概率分布_条件概率
  8. chrome恐龙游戏_如何玩没有互联网的Google Chrome恐龙游戏-在线和离线
  9. C#通过SSH连接MySql
  10. electron打包