文档库 最新最全的文档下载
当前位置:文档库 › Σ-Δ型ADC上的PGA

Σ-Δ型ADC上的PGA

One Technology Way ? P .O. Box 9106 ? Norwood, MA 02062-9106 ? Tel: 781/329-4700 ? Fax: 781/326-8703 ? www.analog.co m

REV. 0

简介

AD7708/AD7718、AD7709、AD7719、AD7782/AD7783高分

辨率Σ-Δ型ADC 全部在Σ-Δ调制器输入端集成了可编程增益放大器(PGA),如图1所示。

-58

"5&

0'!

3 $

-/$5,!4/2

3 $ !$# WITH 0'!

s 6 图1.采用PGA 的Σ-Δ型ADC 本应用笔记将讨论该PGA 的用处和优点。输入范围

AD7708/AD7709/AD7718/AD7719上的可编程增益放大器(PGA)为ADC 提供八种输入范围。2.5 V 基准电压下,八种差分范围标称为±2.56 V 、±1.28 V 、±640 mV 、±320 mV 、±160 mV 、±80 mV 、±40 mV 和±20 mV 。单极性模式下,范围为0 V 至2.56 V ,依此类推。如果基准电压增倍至5 V ,则每种范围的最大满量程输入翻倍,同样,如果基准电压减半,则满量程范围也减半。因此,任何PGA 设定的实际信号范围为:

-58"5&0'!

3 $-/$5,!4/2

p

s 62%&

其中RN 为3位信号RN[2:0]的值。现在对于RNRN ,假定基

准电压为2.5 V ,则RN[2:0] = 111时的范围等于±2.56 V ,也

称为1增益范围。AD7782/AD7783上提供两种范围,±2.56 V 和±160 mV 。

超量程能力

当RN[2:0] = 111时,2.5 V 基准电压下的输入范围为±2.56 V ,即最大满量程输入为基准电压输入的1.024倍。这充分说明ADC 具有2.4%的超量程能力,因此可将信号转换至稍高于基准电压。如果执行系统满量程校准则需考虑此点,因为施加

+V 的满量程输入和启动系统满量程校准会将+2.5 V 基准电压下的输入范围改变为±V REF ,即±2.5 V 。内部满量程校准会将V REF 从内部连接至ADC 输入端以便进行校准,但校准程序将补偿2.4%的超量程,使校准后的范围变为±2.56 V 。噪声和分辨率

具备PGA 的主要好处是在增益增加时可减少噪声(μV)。实际上,输入信号在施加于ADC 前已放大,但噪声贡献不会同样放大,这使得信噪比得以改善。噪声在移至下一最高增益时不会减半,因此选择较高增益时分辨率(单位为位)会减小(高增益设置下的LSB 小于低增益设置下的LSB )。不过,给定输入范围的分辨率在高增益设置下确实有所改善。例如,20 mV 满量程输入信号可在20 mV 范围内以0.52 μV 均方根噪声进行转换,如果在2.56 V 范围内转换同一信号,噪声将变为2 μV 。因此,在高增益范围内可实现20 mV 的150 ppm 峰峰值噪声分辨率,但在2.56 V 范围内只能实现20 mV 信号的600 ppm 峰峰值分辨率。

表I 显示的是AD7719在给定更新速率下相对于所有范围的典型噪声。

表I . A D 7719在19.79 Hz 更新速率下的非缓冲模式均方根噪声

±2.56 V

±1.28 V ±640 mV ±320 mV ±160 mV ±80 mV ±40 mV ±20 mV 均方根噪声峰峰值分辨率

2.0 μV 18.5位

1.21 μV 18位

0.82 μV 17.5位

0.56 μV 17位

0.56 μV 16位

0.56 μV 15位

0.56 μV 14位

0.52 μV 13位

Σ-Δ型A DC 上的P G A

作者:Adr ian She rr y

AN-610应用笔记

AN-610

Rev. 0

–2–失调误差

许多其他ADC 均具有PGA ,改变范围时会出现一个问题,即ADC 失调会随范围变化,因此改变增益后一般需要进行失调校准。不过,对于该系列的斩波ADC ,ADC 失调误差微不足道,因此改变范围时ADC 失调没有明显变化。如果在禁用斩波的情况下使用AD7708或AD7718,改变范围时应执行失调校准。范围匹配

以前的PGA 实现方案部分依赖二进制加权电路单元等技术,这些元件在增益改变时会选择性地接通或切断。由于这些元件间存在制造不匹配,范围改变时,增益不会准确地放大两倍,也就是说模拟输入将根据选择的增益转换为不同值。ADI 公司的该ADC 系列使用专有开关方案,利用按比例调整的采样速率实现PGA 。这样可以获得不同范围间的出色匹配,也就是给定模拟输入在不同范围内转换为很相近的值。范围匹配规格的典型值为±2μV ,这表示所有八个范围内固定输入转换结果间通常仅有±2μV 的差异。(请注意,2.56 V 范围内的峰峰值噪声大于该2 μV 数值,所以本文讨论的是多次转换的平均直流结果而非单个读数。)

极小的失调误差和精确的增益匹配相结合,使用ADC 自动转换范围的过程大大简化。如果输入信号为低电平,可在高增益设置下以最大分辨率进行转换,而如果信号超出ADC 量程,则可以选择并立即使用下一较低增益设置,而无需重新校准ADC 。

图2显示的是在所有八个范围内进行转换的19.92 mV 信号。范围改变时,未执行失调或增益校准。可以看出,在八个范围内,平均代码差异仅为2 μV 至3 μV 。

2.

M6

图2.所有范围内的范围匹配

校准

精确增益跟踪的主要优势是在一个增益设置下执行的ADC 校准在其他增益设置下也有效。以前,每当增益改变,大多数具有PGA 的ADC 必须重新校准,这降低了ADC 吞吐量;而现在,执行一次ADC 增益校准便足够。这样ADC 只需在工厂执行2.56 V 范围上的校准,便可用于任何其他范围,无需重新校准。

AD7708/AD7718/AD7719虽然提供了内部ADC 校准模式,但仅适用于ADC 工作条件与数据手册内提供的工厂校准条件存在巨大差异的情况。根据数据手册内提供的PSR 、增益漂移与温度规格的关系,可以确定预期增益变化。如果最大预期增益变化高于应用的误差预算,则可定期执行重新校准。失调寄存器

对于AD7708/AD7718/AD7719,有一种情况可使ADC 在不同范围内产生明显不同的转换结果:失调寄存器含有默认8000(00)H 以外的值,这是系统失调校准或对失调寄存器进行写入导致的。失调寄存器LSB 加权取决于选定范围,因此8001(00)H 值在2.56 V 范围内移除的失调量是1.28 V 范围的两倍。如果在ADC 接收非零模拟输入时针对一个范围执行系统失调校准,一旦需要将相同输入转换至另一范围,则会得到非零ADC 结果。因此,如果失调寄存器含有默认8000(00)H 以外的值,改变范围时必须十分小心。

AN-610

Rev. 0–3–

输入电流

在实现各种增益时,PGA 会更改输入和基准电压采样速率,从而改变开关电容电路的动态负载。这可能因外部源阻抗带来增益和/或线性误差。

不过,由于PGA 之前的ADC 输入端具有缓冲器,模拟输入仅吸收极少电流,且该电流不会随输入范围变化。AD7719可绕过缓冲器工作,在此情况下只需注意外部电阻和电容组合。引脚处的基准采样速率固定于524 kHz ,同时基准采样电容也固定,因此不同范围内的基准电流并无变化。因此,由基准输入处的电阻引起的任何增益误差在所有范围内保持不变。如果和其他Σ-Δ型ADC 一样,基准电流随范围变化,则外部电阻/基准源电容引起的任何增益误差也将随范围变化,具有出色范围匹配的ADC 的优点便无从体现。

2%&). 2%&). n

F 2%& K(Z

#2%&

"5&#).

F ). K(Z n K(Z

N! -!8!).

!). n

图3.输入和基准电压模型

小结

该ADC 系列上的PGA 具有高增益下高分辨率/低噪声的优点,且无需在每次改变范围时进行定期校准。缓冲输入和新的基准电压采样方案避免了前代多范围ADC 上存在的许多问题。

% n n

02).4%$ ). 5 3 ! n ú !NALOG $EVICES )NC !LL RIGHTS RESERVED 4RADEMARKS AND REGISTERED TRADEMARKS ARE THE PROPERTY OF THEIR RESPECTIVE COMPANIES

–4–

数模转换(ADC)的应用笔记

数模转换(ADC)的应用笔记 2015/4/17 enrich_you@https://www.wendangku.net/doc/6b18963165.html, 智能时代,数字信号已体现在我们生活的方方面面,A/D,D/A是重要的基础。智能手机触摸信号需要转换为数字信号才能分辨触摸位置、数字去抖;打电话或者麦克风需要将模拟声信号转换为数字信号以便存储回放、语音识别;移动通信到4G时代,速率已经达到了300Mbps,手机和基站之间的通信是模拟电磁信号,同样需要高性能的ADC将其转化为数字信号,才能变成各位看到的电影、微博(当然没这么简单)。上述三个例子是典型的三种应用场景,对应ADC的不同指标。其中速度(采样率)和精度(bit位)是选取ADC的基础指标。各种监测可能需要实时性不高,能转换就行了;大部分医疗电子可能要求精度高,动态高,能分辨大信号下隐藏的小信号,同时速度较快;对于移动通信,您可能要求速度快,同时信号好,那对速度和精度就都有要求了,速度可能几百Msps,精度可能12、14位;更高大上的,针对卫星通讯、软件无线电(SDR),带宽可达数GHz,同时灵敏度要求更高,这种ADC就是核心科技了,只有为数不多的几家美国厂商掌握。 关键词:ADC SDR 抗混叠滤波器无线通讯高精度采样 本文主要介绍ADC的模拟前端匹配技术,并分享笔者的几个设计作业,随着认识的不断深入,也会不断更新。关于ADC的互连、中频方案选择等在系列文档中细说。 ADC的前端匹配其实是抗混叠滤波器(anti-aliasing filter)的设计问题,为什么叫抗混叠滤波器,那得从ADC的采样原理说起。ADC的采样遵循Nyquist定理,假设被采样信号的最高频率为Fh,则要使在数字域能完全恢复该信号的最小采样频率为2*Fh;另外还有一个Nyquist带通采样原理,也称为欠采样。即对于带通信号而言,如TDD-LTE的2575MHz—2615MHz,通带50M,需要最小的采样频率为2*BW(50M) = 100Msps。

实验5 STC单片机ADC转换实验-V20170317

实验5 STC单片机ADC转换实验-V20170317 1.实验目的 学习STC12C5A单片机ADC知识; 2.实验设备 硬件:12号节点,串口线; 软件:Keil u Vision4编译软件,STC下载软件STC_ISP; 芯片手册:配套光盘\附件\芯片手册\STC单片机手册 源码路径:配套光盘\源代码\单片机原理与技术\实验 5 STC单片机ADC转换实验-V20170317 hex路径:配套光盘\源代码\单片机原理与技术\实验 5 STC单片机ADC转换实验-V20170317\out\ADC.hex 3.实验原理 3.1 A/D相关寄存器介绍 与A/D转换有关的寄存器如表3.1所示: 表3.1 A/D相关寄存器 P1ASF:P1口的模拟功能控制器。STC12C5A16S2系列单片机的A/D转换口,在P1口(P1.7-P1.0),上电复位后P1口默认为弱上拉型I/O口,用户可以通过软件设置将8路中的任何一路设置为A/D转换,不需作为A/D使用的P1口可继续作为I/O口使用(建议只作为输入)。需作为A/D使用的口需先将P1ASF特殊功能寄存器中的相应位置为‘1’,将相应的口设置为模拟功能。P1ASF寄存器的定义如表3.2所示: 表3.2 P1ASF寄存器定义 ADC_CONTR:ADC控制寄存器。该寄存器的描述如表3.3所示: 表3.3 ADC_CONTR寄存器定义

对ADC_CONTR寄存器的操作建议使用直接赋值语句,不要使用“与”和“或”语句。 ADC_POWER: ADC电源控制位。 0:关闭A/D转换器电源 1:打开A/D转换器电源 建议进入空闲模式时,将ADC电源关闭,即ADC_POWER =0。启动A/D转换前一定要确认A/D电源已打开,A/D转换结束后关闭A/D电源可降低功耗,也可不关闭。初次打开内部A/D转换模拟电源,需适当延时,等内部模拟电源稳定后,再启动A/D转换。 建议启动A/D转换后,在A/D转换结束之前,不改变任何I/O口的状态,有利于高精度A/D 转换,若能将定时器/串行口/中断系统关闭更好。 SPEED1,SPEED0:模数转换器转换速度控制位,其描述如表3.4所示: 表3.4 SPEED1、SPEED0描述 ADC_FLAG:模数转换器转换结束标志位,当A/D转换完成后,ADC_FLAG=1,要由软件清0。不管是A/D转换完成后由该位申请产生中断,还是由软件查询该标志位A/D转换是否结束,当A/D转换完成后,ADC_FLAG = 1,一定要软件清0。 ADC_START:模数转换器(ADC)转换启动控制位,设置为“1”时,开始转换,转换结束后为0。 CHS2/CHS /CHS0:模拟输入通道选择,CHS2/CHS1/CH0描述如表3.5所示: 图3.5 CHS2/CHS1/CH0定义 ADC_RES、ADC_RESL:ADC结果寄存器。该寄存器用于存A/D转换结果,其定义如表3.6所示: 表3.6 ADC_RES、ADC_RESL寄存器定义

adc转换程序

// TI File $Revision: /main/1 $ // Checkin $Date: May 27, 2009 13:04:17 $ //########################################################################### // // FILE: Example_2823xAdcSeq_ovdTest.c // // TITLE: DSP2823x ADC Seq Override mode Test. // // ASSUMPTIONS: // // This program requires the DSP2823x header files. // // Make sure the CPU clock speed is properly defined in // DSP2833x_examples.h before compiling this example. // // Connect the signal to be converted to Channel A0. // // As supplied, this project is configured for "boot to SARAM" // operation. The 2823x Boot Mode table is shown below. // For information on configuring the boot mode of an eZdsp, // please refer to the documentation included with the eZdsp, // // $Boot_Table: // // GPIO87 GPIO86 GPIO85 GPIO84 // XA15 XA14 XA13 XA12 // PU PU PU PU // ========================================== // 1 1 1 1 Jump to Flash // 1 1 1 0 SCI-A boot // 1 1 0 1 SPI-A boot // 1 1 0 0 I2C-A boot // 1 0 1 1 eCAN-A boot // 1 0 1 0 McBSP-A boot // 1 0 0 1 Jump to XINTF x16 // 1 0 0 0 Jump to XINTF x32 // 0 1 1 1 Jump to OTP // 0 1 1 0 Parallel GPIO I/O boot // 0 1 0 1 Parallel XINTF boot // 0 1 0 0 Jump to SARAM <- "boot to SARAM" // 0 0 1 1 Branch to check boot mode // 0 0 1 0 Boot to flash, bypass ADC cal // 0 0 0 1 Boot to SARAM, bypass ADC cal // 0 0 0 0 Boot to SCI-A, bypass ADC cal // Boot_Table_End$ //

一路adc转换

#include #include sfr ADC_CONTR = 0xBC; //ADC控制寄存器 sfr ADC_RES = 0xBD; //ADC高八位结果存放寄存器 sfr ADC_LOW2 = 0xBE; //ADC低两位结果存放寄存器 sfr P1ASF = 0x9D; //P1口模拟功能控制寄存器P1ASF sfr IPH=0xb7; sbit EADC=IE^5; sbit led=P3^1; sbit led1=P3^2; #define ADC_POWER 0x80 //ADC电源控制位 #define ADC_FLAG 0x10 //模数转换器转换结束标志位 #define ADC_START 0x08 //模数转换器(ADC)转换启动控制位 #define ADC_SPEED 0x20//180个时钟周期转换一次 #define PADCH 0x40 #define PADC 0x40 unsigned char ch=0;// unsigned char temp[3];//用于存放6个通道的最终处理结果 unsigned char xdata ADi[5][25];//用于存放6各通道的采样值 unsigned char code dianyashuzi[10]={"0123456789"};//用于1602显示数字字符 sbit rs = P2^4; //定义1602个端口 sbit rw = P2^5; sbit en = P2^6; /*-------------------------------------------- 延时函数 ---------------------------------------------*/ void delay(unsigned char t) { unsigned char x,y; for(x=t;x>0;x--) for(y=110;y>0;y--); } /*------------------------------------------------ 1602 判忙函数 ------------------------------------------------*/ bit lcd_busy(void)

数模转换ADC0831中文资料

ADC0831数模转换器(0-5V数码显示) 第一部分:实物及管脚定义 1、CS:片选 2、正输入端 3、Vref:负输入端 4、GND:地 5、参考电压输入端 6、DO:串行数据输出端 7、CLK:时钟输入脚 8、VCC:电源 产品种类ADC0831(模数转换器) 转换器数量1 ADC 输入端数量1 分辨率8 bit 输入类型Voltage(电压) 接口类型Serial(串行输出) 电压参考5 V 电源电压(最大值)6.3 V 电源电压(最小值)4.5 V 最大功率耗散0.8 W 最大工作温度+ 70 C 输入电压5 V 第二部分:时序图

第三部分:仿真图 第四部分:C语言程序 /* 程序效果:数码管显示0.00-5.00U电压,调节电位器,得到 ADC0831的2脚电压值。 注:测量时先把电位器调节到中间,也就是2.5U,但切记 所测的引脚的电压值不能超过5U,否则会烧坏ADC0831 芯片和单片机。 */ #include #include #define uchar unsigned char #define uint unsigned int sbit CS=P1^0; sbit CLK=P1^1; sbit DO=P1^2; uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,//共阴数码0-9 0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,//共阴带小数0-9 0x40,0x3e,0x00}; //"-"、"U"、数码管全灭 uchar code du[]={0xfe,0xfd,0xfb,0xf7};//动态扫描时控制各个数码管亮与灭

ADC转换程序

二,ADC0808/0809與8031單片機的介面設計 ADC0808/0809與8031單片機的硬體介面有三種方式,查詢方式,中斷方式和等待延時方式.究竟採用何種方式,應視具體情況,按總體要求而選擇. 1.延時方式 ADC0809編程模式 在軟體編寫時,應令p2.7=A15=0;A0,A1,A2給出被選擇的模擬通道的地址; 執行一條輸出指令,啟動A/D轉換; 執行一條輸入指令,讀取A/D轉換結果. 通道地址:7FF8H~7FFFH 下麵的程式是採用延時的方法,分別對8路模擬信號輪流採樣一次,並依次把結果轉存到數據存儲區的採樣轉換程式. START: MOV R1, #50H ;置數據區首地址 MOV DPTR, #7FF8H ;P2.7=0且指向通道0 MOV R7, #08H ;置通道數 NEXT: MOVX @DPTR,A ;啟動A/D轉換 MOV R6, #0AH ;軟體延時 DLAY: NOP NOP NOP DJNZ R6, DLAY MOVX A, @DPTR ;讀取轉換結果 MOV @ R1, A ;存儲數據 INC DPTR ;指向下一個通道 INC R1 ;修改數據區指針 DJNZ R7, NEXT ;8個通道全採樣完了嗎 ........ 2.中斷方式 將ADC0808/0809作為一個外部擴展的並行I/O口,直接由8031的P2.0和脈衝進行啟動.通道地址為FEF8H~FEFFH 用中斷方式讀取轉換結果的數字量,模擬量輸入通路選擇端A,B,C分別與8031的P0.0,P0.1,P0.2(經74LS373)相連, CLK由8031的ALE提供. INTADC:SETB IT1 ;選擇為邊沿觸發方式 SETB EA ;開中斷 SETB EX1 ; MOV DPTR, #0FEF8H ;通道地址送DPTR MOVX @DPTR,A ;啟動A/D轉換 …… PINT1: …… MOV DPTR, #0FEF8H ; 通道地址送DPTR MOVX A, @ DPTR;讀取從IN0輸入的轉換結果存入 MOV 50H, A ;50H單元 MOVX @DPTR,A ;啟動A/D轉換 RETI ;中斷返回

模数转换器(ADC)的几种主要类型

模数转换器(ADC)的几种主要类型 现在的软件无线电、数字图像采集都需要有高速的A/D采样保证有效性和精度,一般的测控系统也希望在精度上有所突破,人类数字化的浪潮推动了A/D转换器不断变革,而A/D转换器是人类实现数字化的先锋。A/D转换器发展了30多年,经历了多次的技术革新,从并行、逐次逼近型、积分型ADC,到近年来新发展起来的∑-Δ型和流水线型ADC,它们各有其优缺点,能满足不同的应用场合的使用。 逐次逼近型、积分型、压频变换型等,主要应用于中速或较低速、中等精度的数据采集和智能仪器中。分级型和流水线型ADC主要应用于高速情况下的瞬态信号处理、快速波形存储与记录、高速数据采集、视频信号量化及高速数字通讯技术等领域。此外,采用脉动型和折叠型等结构的高速ADC,可应用于广播卫星中的基带解调等方面。∑-Δ型ADC主应用于高精度数据采集特别是数字音响系统、多媒体、地震勘探仪器、声纳等电子测量领域。下面对各种类型的ADC作简要介绍。 1.逐次逼近型 逐次逼近型ADC是应用非常广泛的模/数转换方法,它包括1个比较器、1个数模转换器、1个逐次逼近寄存器(SAR)和1个逻辑控制单元。它是将采样输入信号与已知电压不断进行比较,1个时钟周期完成1位转换,N位转换需要N个时钟周期,转换完成,输出二进制数。这一类型ADC的分辨率和采样速率是相

互矛盾的,分辨率低时采样速率较高,要提高分辨率,采样速率就会受到限制。 优点:分辨率低于12位时,价格较低,采样速率可达1MSPS;与其它ADC相比,功耗相当低。 缺点:在高于14位分辨率情况下,价格较高;传感器产生的信号在进行模/数转换之前需要进行调理,包括增益级和滤波,这样会明显增加成本。 2.积分型ADC 积分型ADC又称为双斜率或多斜率ADC,它的应用也比较广泛。它由1个带有输入切换开关的模拟积分器、1个比较器和1个计数单元构成,通过两次积分将输入的模拟电压转换成与其平均值成正比的时间间隔。与此同时,在此时间间隔内利用计数器对时钟脉冲进行计数,从而实现A/D转换。 积分型ADC两次积分的时间都是利用同一个时钟发生器和计数器来确定,因此所得到的D表达式与时钟频率无关,其转换精度只取决于参考电压VR。此外,由于输入端采用了积分器,所以对交流噪声的干扰有很强的抑制能力。能够抑制高频噪声和固定的低频干扰(如50Hz或60Hz),适合在嘈杂的工业环境中使用。这类ADC主要应用于低速、精密测量等领域,如数字电压表。 优点:分辨率高,可达22位;功耗低、成本低。

ATMEGA16_ADC转换_模数转换

2012.8.9 /*************************************************** 2012.6.7 功能:ATMEGA16内部集成模数转换的实现 说明:光照采集程序,基于光敏电阻 开发环境:iccavr 控制芯片:ATMEGA16 ***************************************************/ #include #include"LCD_12864_chuankou.c" #define uint unsigned int #define uchar unsigned char uint ADData; void port_init_G() { //PORTA = 0X00; //ADC转化端口就是A口的第二功能 //DDRA = 0x00; //ADC通道设置为输入口,高阻态 PORTA=~(1<

ADC转换电压转化成温度

#include "msp430x14x.h" #define uint unsigned int #define uchar unsigned char #define ulong unsigned long //共阳数码管编码表 uchar Code[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//段选 uchar seg[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; // uchar Bit[4]={0x01,0x02,0x04,0x08};//位选 uchar BitCode=0x80; //数码管位码初值 uint ADCBuf[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//保存采集到的数据 ulong Sum=0;//20个数据的和 double TBuf=0; uchar Count=0; int a=0,b=0,c=0,d=0; //时钟初始化函数 void InitClock(void){ BCSCTL1=RSEL2+RSEL1+RSEL0;//XT2开启LFXT1工作在低频模式ACLK不分频最高的标称频率 DCOCTL=DCO2+DCO1+DCO0;//DCO为最高频率 do{ IFG1&=~OFIFG;//清除振荡器失效标志 for(uint i=255;i>0;i--); }while(IFG1&OFIFG);//判断XT2是否起振 BCSCTL2=SELM1+SELS;//MCLK SMCLK时钟源为TX2CLK不分频 } //ms级延时子程序 void DelayMs(uint ms){ while(ms--){ for(uint i=0;i<800;i++); } } //数码管扫描显示程序 void Display(void){ P4OUT=Code[a]; P5OUT=Bit[0]; for(uint i=0;i<100;i++); P4OUT=seg[b]; P5OUT=Bit[1]; for(uint i=0;i<100;i++); P4OUT=Code[c]; P5OUT=Bit[2]; for(uint i=0;i<100;i++);

stm8教程实验11adc模数转换

例程十一 ADC及其应用 在计算机过程控制的数据采集等系统中,经常要对一些过程参数进行测量和控制,这些参数往往是连续变化的物理量,如温度,压力,流量和速度等。这里所指的连续变化即数值是随着时间连续可变的,通常称这些物理量为模拟量,然而计算机本身所能识别和处理的都是数字量。这些模拟量在进入计算机之前必须转换成二进制数码表示的数字信号。能够把模拟量变成数字量的器件称之为模数转换器。 15.1 STM8S207ADC模块概述 (注STM8S207系列高性能产品包括了一个10位连续渐进式模数转换器ADC2,意STM8S2XX都没有ADC1)提供了多达16个多功能的输入通道。主要性能有: 转换时间为14个时钟周期,带有参考电压引脚,可设置为单次或联系的转换模式,可设置转换结束产生中断。 15.2 ATD模块接口组成和特点 STM8S207单片机内置的ADC模块如下图所示: ADC模块可以通过ADC_CR1寄存器来开启或者关闭。然后ADC的时钟是有f_master时钟经过预分频后提供的。STM8S207高达16个输入通道,支持多种转换模式 15.3 ADC模块寄存器设置 STM8S207的ADC模块共有8个寄存器。分为4个设置寄存器,2个数据寄存

器和2个施密特触发禁止寄存器。 15.3.1 ADC控制/状态寄存器ADC_CSR EOC:转换结束。此位在AD转换结束后由硬件置位。由软件写“0”来清零 0:转换未结束 1:转换结束 AWD:因为STM8S207没有ADC1,所以此位无效 EOCIE:转换结束EOC的中断使能 0:禁止转换结束中断 1:使能转换结束中断 AWDIE:在STM8S207中无效位 CH:选择转换通道,分别选择0到15共16个通道 15.3.2 ADC配置寄存器1 ADC_CR1 SPSEL:预分频选择位 000:f_adc = f_master/2 001:f_adc = f_master/3 010:f_adc = f_master/4 011:f_adc = f_master/6 100:f_adc = f_master/8 101:f_adc = f_master/10 110:f_adc = f_master/12 111:f_adc = f_master/18 CONT:连续转换 0:单次转换模式 1:连续转换模式 ADON:AD转换开关 0:禁止ADC转换,进入低功耗模式 1:使能ADC并开始转换

基于ADC0834的AD转换

/*---------------------------------------------------------- 功能介绍: -----------------------------------------------------------*/ #include #include #include #define uchar unsigned char #define uint unsigned int #define ucode unsigned code /*-------------------------------------------- 包含函数 ---------------------------------------------*/ void DISP(void); //数码管显示函数 void key(void);//矩阵键盘函数 void _nop_(void); void ad_buf(); //模拟量转化为数字函数 uchar ADC0834(uchar tds); //AD转换函数 /*------------------------------------------- 参数定义 -------------------------------------------*/ uchar bdata ekey1; //键前沿提取 uchar bdata ekey2; uchar data key2; uchar data key1; uchar bdata lastkey1; uchar bdata lastkey2; uchar disp_a;//数码管显示指针 sbit cs0=P2^0; sbit cs1=P2^1; sbit cs2=P2^2; sbit cs3=P2^3; sbit cs4=P2^4; sbit esw0=ekey2^6; //独立按键键沿标志 sbit esw1=ekey2^7; // sbit ek0=ekey1^0; //矩阵按键键沿标志 sbit ek1=ekey1^1; sbit ek2=ekey1^2; sbit ek3=ekey1^3; sbit ek4=ekey1^4; sbit ek5=ekey1^5; sbit ek6=ekey1^6; sbit ek7=ekey1^7; sbit ek8=ekey2^0; sbit ek9=ekey2^1;

单片机和ADC0832的AD模数转换

单片机和ADC0832的AD模数转换 在工业控制和智能化仪表中,通常由微型计算机进行实时控制及实时数据处理。计算机所加工的信息总是数字量,而被控制或被测量的有关参量往往是连续变化的模拟量,如温度、速度、压力等等,与此对应的电信号是模拟信号。模拟量的存储和处理比较困难,不适合作为远距离传输且易受干扰。在一般的工业应用系统中传感器把非电量的模拟信号变成与之对应的模拟信号,然后经模拟(Analog)到数字(Digital)转换电路将模拟信号转成对应的数字信号送微机处理。这就是一个完整的信号链,模拟到数字的转换过程就是我们经常接触到的ADC(Analog to Digital Convert)电路。 模-数转换(ADC)简介 模-数转换原理 ADC的转换原理根据ADC的电路形式有所不同。ADC电路通常由两部分组成,它们是:采样、保持电路和量化、编码电路。其中量化、编码电路是最核心的部件,任何ADC转换电路都必须包含这种电路。ADC电路的形式很多,通常可以并为两类:间接法:它是将采样-保持的模拟信号先转换成与模拟量成正比的时间或频率,然后再把它转换为数字量。这种通常是采用时钟脉冲计数器,它又被称为计数器式。它的工作特点是:工作速度低,转换精度高,抗干扰能力强。 直接法:通过基准电压与采样-保持信号进行比较,从而转换为数字量。它的工作特点是:工作速度高,转换精度容易保证。 模—数转换的过程有四个阶段,即采样、保持、量化和编码。 采样是将连续时间信号变成离散时间信号的过程。经过采样,时间连续、数 值连续的模拟信号就变成了时间离散、数值连续的信号,称为采样信号。采样电路相当于一个模拟开关,模拟开关周期性地工作。理论上,每个周期内,模拟开关的闭合时间趋近于0。在模拟开关闭合的时刻(采样时刻),我们就“采”到模拟信号的一个“样本”。 量化是将连续数值信号变成离散数值信号的过程。理论上,经过量化,我们 就可以将时间离散、数值连续的采样信号变成时间离散、数值离散的数字信号。 我们知道,在电路中,数字量通常用二进制代码表示。因此,量化电路的后 面有一个编码电路,将数字信号的数值转换成二进制代码。 然而,量化和编码总是需要一定时间才能完成,所以,量化电路的前面还要 有一个保持电路。保持是将时间离散、数值连续的信号变成时间连续、数值离散信号的过程。在量化和编码期间,保持电路相当于一个恒压源,它将采样时刻的信号电压“保持”在量化器的输入端。虽然逻辑上保持器是一个独立的单元,但是,工程上保持器总是与采样器做在一起。两者合称采样保持器。 八位串行A/D转换器ADC0832简介 — ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。ADC083X是市面上常见的串行模—数转换器件系列。ADC0831、ADC0832、ADC0834、ADC0838是具有多路转换开关的8位串行I/O模—数转换器,转换速度较高(转换时间32uS),单电源供电,功耗低(15mW),适用于各种便携式智能仪表。本章以ADC0832为例,介绍其使用方法。

STC15的ADC转换

STC15的ADC转换 和ADC转换有关的寄存器 一、P1ASF //设置P1口做普通IO口还是ADC输入口,0--普通IO口,1--ADC入口 二、P1M0 P1M1、这两个寄存器的相同位状态决定P1口的输入状态,00 01 10 11,期中11为ADC转换常采用的状态 三、ADC_CONTR不能位寻址,最好赋值 D7是开关ADC电源开关,0关,1开;D6D5为转换速度,00最慢,11最快,D4转换标志位,当转换完成后自动为1,未完成就为0,D3为转换开始位,1开始,0等待,D2D1D0为输入选择,由于是8路可转换,选择那一路有着三位确定。000---111分别P10---P17。 四、CLK_DIV,这个寄存器主要是分频用,但是它的D5位用来设置转换结果的存储方式,0时CLK_DIV的D5位为0,转换结果高8位存ADC_RES,低2位存ADC_RESL的低两位,1时转换结果低8位存ADC_RESL,高2位存ADC_RES的低两位; #include"stc15.h" #include"intrins.h" #define uchar unsigned char #define uint unsigned int uint ADC_DATA; void delay(uchar ms) { uchar i; while(ms--) for(i=0;i<120;i++); } void ADC_init(void) { P1=0xff; P1ASF=0x08; //P1ASF的哪一位为1,对于的P1脚位ADC输入模式,为0 是普通IO模式 CLK_DIV | = 0x20; //CLK_DIV的D5位为0,转换结果高8位存ADC_RES,低2 位存ADC_RESL的低两位; //CLK_DIV的D5位为1,转换结果低8位存ADC_RESL,高2位存ADC_RES的低两位; ADC_CONTR |=0x80; //开AD转换电源 1000 0000 delay(80); P1M0=0x04; //0000 0100 P1M1=0x04; //0000 0100 //设置P1.3为AD转换输入模式 }

ADC转换

MC9S12XS128之ADC模数转换 模数转换的原理在模电和数电,还有其他一些相关课程有都有讲解,可是在单片机上编程来控制模数转换却一直没搞过。因为接下来的一些项目需要用到,所以,现在就来看一下XS128的模数转换了。 AD转换里面的寄存器挺多的,要全面了解,还真挺费劲,因为有好多细节的东西不好理解。不过写程序时,好多都可以不用,所以,也可以偷一下懒。 接下来就看看AD模块里面的寄存,看一下是怎么费劲的。有些东西我也没理解好,想和大家一起探讨一下其中的因果缘由。 一、ATDCTL0控制寄存器0,在多通道AD转换方式下才有效。 WRAP [ 3 : 0 ]:回旋通道选择位。这些选择位只有在多通道转换方式下才有效,即ATDCTL5的MULT位为1。如下表对应的通道,在多通道转换模式下,当完成对第x个模拟输入通道ANx的ATD转换后,下一个ATD转换通道将回绕到第0个通道AN0,而不是ANx+1通道。 二、ATDCTL1控制寄存器1 SRES1和SRES0用于设置AD转换的精度,相应精度设置如下表:

SMP_DIS:采样前放电控制位。1时对模拟信号采样前,释放ATD模块内部采样电容中的电荷。 当ETRIGSEL=0时,ETRIGCH[3:0]用于选择相应的AD转换通道。对于112引脚封装的芯片,就对16个AD转换通道与之相对应。但对于80引脚封装的芯片,就只有0~7八个通道了。当ETRIGSEL=1时,ETRIGCH[3:0]用于选择ETRIG0、ETRIG1、ETRIG2、ETRIG3。可是在芯片上找不到这些引脚,论坛上有些高手说这是出厂测试用的,不用管。所以用时,只要考虑ETRIGSEL=0这种情况即可。 三、ATDCTL2控制寄存器2 AFFC是快速清零位。置1时,CMPE[n]=0时,读转换结果寄存器,会使标志位CCF[n]自动清零;CMPE[n]=1时,写转换结果寄存器,会使标志位CCF[n]自动清零。置0时,则需要向CCF[n]写1来清除标志位。 ICLKSTP是停止模式内部时钟使能位。置1时,在停止模式下,ATD模块可以继续使用模块内部时钟ICLK进行ATD转换。置0时,在停止模式下,ATD模块停止当前的转换,退出停止模式后,ATD转换自动重新开始。 ETRIGLE:外部触发电平/边沿控制位。ETRIGP:外部触发极性控制位。这两位一起控制外部触发条件。对应触发条件如下表: ETRIGE:外部触发信号使能位。 ASCIE:ATD转换序列结束中断使能位。置1,则使能ATD转换序列结束中断。使能后,当SCF=1时,将引发中断。 ACMPIE:ATD比较中断使能位。 四、ATDCTL3控制寄存器3 DJM是结果寄存器数据对齐位。置1,则结果寄存器中的数据位右对齐,置0,则结果寄存器中的数据结果为左对齐。由于转换精度有8位,10位,12位,而结果寄存器是16位的,所以就有必要选择对齐方式了。不同的对齐方式,看下图,就一目了然了:

adc转换芯片

MAX1385EVC16 MAX1385EVKIT MAX1385EVC16 MAX1385EVKIT:MAX1385评估板 MAX1385 MAX1386 MAX1385 MAX1386:双通道RF LDMOS偏置控制器,提供I2C/SPI接口 MAXQ7670 MAXQ7670:带有10位ADC、PGA、64kB闪存和CAN总线接口的微控制器 MAX1379EVKIT MAX1379EVKIT:MAX1379评估板 MAX1329 MAX1329:12/16位DAS,具有ADC、DAC、DPIO、APIO、基准、电压监测器和温度传感器MAX11043 MAX11043:4通道、16位、同时采样ADC,带有PGA、滤波器和8/12位两级DAC MAX1377 MAX1379 MAX1383 MAX1377 MAX1379 MAX1383:双通道、12位、1.25Msps、同时采样ADC,采用串行接口 MAX9856EVKIT MAX9856EVKIT:MAX9856评估板MAX9856 MAX9856:低功耗音频CODEC,提供DirectDrive耳机放大器MAX11014EVKIT MAX11014EVKIT:MAX11014评估板 MAXQ7665EVKIT MAXQ7665EVKIT:MAXQ7665评估板 MAXQ7665A MAXQ7665B MAXQ7665C MAXQ7665D MAXQ7665A MAXQ7665B MAXQ7665C MAXQ7665D:基于16位RISC微控制器的智能数据采集系统 MAX1493EVKIT MAX1493EVKIT:MAX1493和MAX1495评估板 MAX1366EVKIT MAX1366EVSYS MAX1366EVKIT MAX1366EVSYS:MAX1365、MAX1366、MAX1367、MAX1368评估板/评估系统 USBTO232 USBTO232:USB至COM口适配器用户指南 MAX1391 MAX1394 MAX1391 MAX1394:1.5V至3.6V、416ksps、单通道真差分/双通道单端、8位SAR ADC MAX1300 MAX1301 MAX1300 MAX1301:8/4通道、±12V多量程输入、串行16位ADC DS1863 DS1863:DS1863突发模式PON控制器,集成监控器 MAX9851EVCMODU MAX9851EVKIT MAX9851EVCMODU MAX9851EVKIT:MAX9851评估板/评估系统 MAX1032 MAX1033 MAX1032 MAX1033:8/4通道、±12V多量程输入、串行14位ADC MAX11014 MAX11015 MAX11014 MAX11015:RF MESFET放大器漏极电流自动控制器 MAX1221 MAX1223 MAX1221 MAX1223

ADC转换

我是这样理解ADC转换精度的! 前一段时间自己设计一个低频示波器,看了有关数字信号处理的有关书籍,特别是看了模拟信号是如何转换的论述,现在我是这样理解ADC的精度的:所谓8位精度(2的8次幂为256),就是在ADC的输入端的模拟信号以GND-->参考电压之间的电压差可以分成256份来表示,例如(以m16为例):ADC是使用了内部参考电压2.56V,也就是ADC的有效输入信号范围为0~2.56V,电压差也就是2.56V,将该值分成256份后,每等分就是0.01V(10mV),也就是说,每隔0.01V就可以用一个0~255之间的一个具体整数数字来表示。0~0.01V(不含0.01V)用数字0来表示,0.01~0.02V(不含0.02V)用整数数字1来表示,....2.55V~2.56V 用整数数字255来表示。 同理,10位精度(2的10次幂为1024)就是将电压差分成1024等分,如果电压差同样是2.56V,1024等分后就是2.56/1024=0.0025V(2.5mV),也就是每隔0.0025V就可以用一个0~1023之间的一个具体的整数数字表示。 可见,精度(也就是分辨率)不同,ADC转换后的序列值的范围也是不同的。 你要看看ADC转换的精度 你看看MCU的ADC功能的精度,假如是10bits,那么2的10次方0x4FF对应参考电压(3.3V); 0x4FF --> 0x3.3V 0x260 --> 0x1.96V --> key6 0x1B7 --> 0x1.59V --> key5 0x18A --> 0x1.27V --> key4 0x127 --> 0x0.95V --> key3 0x0C4 --> 0x0.63V --> key2 0x064 --> 0x0.32V --> key1 0x000 --> 0x0.00V --> key0 设定的电压除参考电压乘精度值(1024)就是输出的ADC转换后的值(为16进制),

模-数转换(ADC)

模-数转换(ADC)简介 模-数转换原理 ADC的转换原理根据ADC的电路形式有所不同。 ADC电路通常由两部分组成,它们是:采样、保持电路和量化、编码电路。其中量化、编码电路是最核心的部件,任何ADC转换电路都必须包含这种电路。 ADC电路的形式很多,通常可以并为两类: 间接法:它是将采样-保持的模拟信号先转换成与模拟量成正比的时间或频率,然后再把它转换为数字量。这种通常是采用时钟脉冲计数器,它又被称为计数器式。它的工作特点是:工作速度低,转换精度高,抗干扰能力强。 直接法:通过基准电压与采样-保持信号进行比较,从而转换为数字量。它的工作特点是:工作速度高,转换精度容易保证。 模—数转换的过程有四个阶段,即采样、保持、量化和编码。 采样是将连续时间信号变成离散时间信号的过程。经过采样,时间连续、数值连续的模拟信号就变成了时间离散、数值连续的信号,称为采样信号。采样电路相当于一个模拟开关,模拟开关周期性地工作。理论上,每个周期内,模拟开关的闭合时间趋近于0。在模拟开关闭合的时刻(采样时刻),我们就“采”到模拟信号的一个“样本”。 量化是将连续数值信号变成离散数值信号的过程。理论上,经过量化,我们就可以将时间离散、数值连续的采样信号变成时间离散、数值离散的数字信号。 我们知道,在电路中,数字量通常用二进制代码表示。因此,量化电路的后面有一个编码电路,将数字信号的数值转换成二进制代码。 然而,量化和编码总是需要一定时间才能完成,所以,量化电路的前面还要有一个保持电路。保持是将时间离散、数值连续的信号变成时间连续、数值离散信号的过程。在量化和编码期间,保持电路相当于一个恒压源,它将采样时刻的信号电压“保持”在量化器的输入端。虽然逻辑上保持器是一个独立的单元,但是,工程上保持器总是与采样器做在一起。两者合称采样保持器。 八位串行A/D转换器ADC0832简介 ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。ADC083X是市面上常见的串行模—数转换器件系列。ADC0831、ADC0832、ADC0834、ADC0838是具有多路转换开关的8位串行I/O模—数转换器,转换速度较高(转换时间32uS),单电源供电,功耗低(15mW),适用于各种便携式智能仪表。本章以ADC0832为例,介绍其使用方法。 ADC0832是8脚双列直插式双通道A/D转换器,能分别对两路模拟信号实现模—数转换,可以用在单端输入方式和差分方式下工作。ADC0832采用串行通信方式,通过DI 数据输入端进行通道选择、数据采集及数据传送。8位的分辨率(最高分辨可达256级),可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。 ADC0832 具有以下特点: · 8位分辨率; ·双通道A/D转换; ·输入输出电平与TTL/CMOS相兼容; · 5V电源供电时输入电压在0~5V之间; ·工作频率为250KHZ,转换时间为32μS; ·一般功耗仅为15mW; · 8P、14P—DIP(双列直插)、PICC 多种封装; ·商用级芯片温宽为0°C to +70°C,工业级芯片温宽为-40°C to +85°C;

相关文档