A/D转换器

  A/D转换器,又称模/数转换器,顾名思义,就是把模拟信号数字化。

  由于系统的实际处理对象往往都是一些模拟量(如温度、压力、位移、图像等),要使计算机或数字仪表能识别和处理这些信号,必须首先将这些模拟信号转换成数字信号,这就必须用到A/D转换器。


A/D转换器的一般步骤

  模拟信号进行A/D转换的时候,从启动转换到转换结束输出数字量,需要一定的转换时间,在这个转换时间内,模拟信号要基本保持不变。否则转换精度没有保证,特别当输入信号频率较高时,会赞成很大的转换误差。要防止这种误差的产生,必须在A/D转换开始时将输入信号的电平保持住,而在A/D转换结束后,又能跟踪输入信号的变化。因此,一般的A/D转换过程是通过取样、保持、量化和编码这4个步骤完成的。一般取样和保持主要由采样保持器来完成,而量化编码就由A/D转换器完成。


实例

 //main.c

 #include "2410lib.h"

 externvoid adc_test(void);

 int main(int argc,char **argv)

 {

    sys_init();        // Initial s3c2410's Clock, MMU, Interrupt,Port and UART

    uart_printf("\n\n Embest S3CEB2410 Evaluation Board\n");    

 while()

    {

                adc_test();

    }    

 }

 //adc.c

 #include "2410lib.h"

 #define REQCNT 100                          

 #define ADC_FREQ 2500000

 #define LOOP 10000

 volatile UINT8T unPreScaler;

 volatilechar nEndTest;

 void adc_test(void)

 {

 int j;

    UINT16T usConData;

 float usEndData;

    uart_printf("\n Adc Conversion Test Example \n");    

    uart_printf(" ADC_IN Test,channel 2\n");

    uart_printf(" ADC conv. freq. = %dHz\n",ADC_FREQ);

    unPreScaler = PCLK/ADC_FREQ -;  

    rADCCON=(<<)|(unPreScaler<<)|(<<)|(<<)|(<<);//enable prescaler,ain2,normal,start by read

    uart_printf(" Please adjust AIN2 value!\n");

    uart_printf(" The results of ADC are:\n");

    usConData=rADCDAT0&0x3FF;

 for(j=;j<;j++)                               // sample and show data both by UART and leds

    {

 while(!(rADCCON & 0x8000));

        usConData=rADCDAT0&0x3FF;

        usEndData=usConData*3.3000/0x3FF;

        uart_printf(" %0.4f ",usEndData);

        delay();

    }

    uart_printf(" end.\n");

 }

 //sys_init.c主要代码

 void sys_init()

 {

    change_clock_divider(,);                  // 1:2:4

    change_value_MPLL(M_MDIV,M_PDIV,M_SDIV);    // Fin=12MHz FCLK=202.8MHz

    delay();                                   // adjust the delay count

    port_init();

    beep();

    interrupts_init();

    uart_init(PCLK, , UART0);

    uart_init(PCLK, , UART1);

 #ifdef CLK124_200M

    change_value_MPLL(,,);                  // Fin=12MHz FCLK=192MHz

    uart_init(/, , UART0);

    uart_init(/, , UART1);

 #endif

    uart_select(UART0);

    uart_printf ("\n boot success...\n\n");

    delay();

    beep();

 }//sys_init

【ARM】AD转换器的更多相关文章

  1. AD转换器的主要指标

    AD转换器的主要指标如下: (1)分辨率(Resolution).指数字量变化一个最小量时模拟信号的变化量,定义为满刻度与2n的比值.分辨率又称精度,通常以数字信号的位数来表示.定义满刻度于2^n的比 ...

  2. AD转换器的主要技术指标

    1)分辩率(Resolution) 指数字量变化一个最小量时模拟信号的变化量,定义为满刻度与2n的比值.分辩率又称精度,通常以数字信号的位数来表示.     2) 转换速率(Conversion Ra ...

  3. AD转换器的参数介绍

    分辨率.参考电压这些地球人都知道的就不说了. 当“参考电压”和“分辨率”被确定后,每两个数值间的差值,即“步进量”. 上面的“步进量”在AD中称为1LSB(最低有效位,Least Significan ...

  4. 电赛总结(二)——AD芯片总结之AD7715

    一.特性参数 1.16位无失真AD转换器 2.增益可调,在1,2,32,128可切换. 3.数字地和模拟地分开,可以减少噪声. 4.具有较大的输出电流,有比较好的带载能力. 二.管脚排列 三.引脚功能 ...

  5. 目前常用AD/DA芯片简介

    目前生产AD/DA的主要厂家有ADI.TI.BB.PHILIP.MOTOROLA等,武汉力源公司拥有多年从事电子产品的经验和雄厚的技术力量支持,已取得排名世界前列的模拟IC生产厂家ADI.TI公司代理 ...

  6. 如何来看单片机外设A/D转换器ADC0804时序图

    如图,为单片机AD转换器的一种: ADC0804单片集成A/D转换器.它采用CMOS工艺20引脚集成芯片,分辩率为8位,转换时间为100µs,输入电压范围为0-5V.芯片内具有三态输出数据锁存器,可直 ...

  7. 学习AD、DA的体会

    AD转换器的转换是指模拟信号输入转化为数字信号输出,而DA转换器是把数字信号转换为模拟信号,在ADC0832.TLC549和TLC5615程序设计中,通过使用中断服务函数每0.5s对ADC0832进行 ...

  8. AD模块电压采集电路

    之前一直没搞明白模拟电压转换电路,不知道应该怎么计算转换电压,最近一个项目中用到几处模拟电压的采集,硬件是由其他同事设计的,转换公式也是他给的,记录一下: 24V电压采集: 公式:Vout = Vin ...

  9. AD转化器分类及特点和选用

    1. AD转换器的分类 下面简要介绍常用的几种类型的基本原理及特点:积分型.逐次逼近型.并行比较型/串并行型.∑-Δ调制型.电容阵列逐次比较型及压频变换型. 1)积分型(如TLC7135)积分型AD工 ...

随机推荐

  1. javascript中的复制

    github 深度复制这个问题看似简单,实际上要想完美实现需要很多知识. 需要考虑Set,Map,Promise等类型的对象 这个库简洁明了,是一个小巧玲珑的JS库 Promise简单例子 funct ...

  2. suricata 命令行解释【转】

    suricata命令行 转载地址:http://blog.sina.com.cn/s/blog_6f8edcde0101gcha.html suricata命令行选项说明 你能两种方式使用命令行选项, ...

  3. POJ 1815 Friendship (Dinic 最小割)

    Friendship Time Limit: 2000MS   Memory Limit: 20000K Total Submissions: 8025   Accepted: 2224 Descri ...

  4. Entity Framework 无法加载指定的元数据资源。

    ADO.NET Entity Framework发布以来,本人也一直在用,深感好用,忍不住地要感谢微软啊!由于项目结构创建完成后,没怎么改动过,所以一直没出题过问题,可最近由于改动了下命名空间,问题来 ...

  5. 【SqlServer】在SqlServer中把数据导入导出为Excel文件

    这里笔者介绍利用SqlServer数据库操作EXECEL文件. 1.将Excel表中的数据导入为SqlServer数据库 把Excel表中的数据导入为SqlServer数据库中的数据. 新建一个Exc ...

  6. 【Servlet】web.xml中url-pattern的用法

    目录结构: contents structure [+] url-pattern的三种写法 servlet匹配原则 filter匹配原则 语法错误的后果 参考文章 一.url-pattern的三种写法 ...

  7. 【MySQL】MySQL支持的数据类型

    1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节 范围(-128~127) smallint(m) 2个字节 范围(-32768~32767) mediumint(m) 3 ...

  8. int和Integer之间的区别和联系

          在工作中使用==埋下的坑这篇博文中,我们看到当使用基本类型的时候==是完全没有问题的,部分或者混合使用基本类型和装箱基本类型的时候,就可能出现问题了,那么我们可能会想基本类型和装箱基本类型 ...

  9. Linux共享内存使用常见陷阱与分析

    所谓共享内存就是使得多个进程可以访问同一块内存空间,是最快的可用IPC形式.是针对其他通信机制运行效率较低而设计的.往往与其它通信机制,如 信号量结合使用,来达到进程间的同步及互斥.其他进程能把同一段 ...

  10. 凡人视角C++之string(上)

    好久没有更新博客了,这段时间一直在忙图像处理的项目,近期空了下来.也是时候整合C++的相关内容,静心感受下编程语言的魅力.和大家共同探讨学习.我将以头文件的形式展开学习,且仅仅讲述相关接口的应用,至于 ...