精华内容
下载资源
问答
  • 27、STM8 ADC工作原理
    2021-11-03 19:09:36

    1、ADC概述

      模数转换器即A/D转换器,或简称ADC,是指将一个模拟信号转变为数字信号的电子元器件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。

      A/D转换的作用是将时间连续、幅值也连续的模拟量转换为时间离散、幅值也离散的数字信号。因此,A/D转换一般要经过取样、保持、量化及编码4个过程。

    2、STM8 ADC 主要功能

    ADC1 和 ADC2 的功能如下:

    • 10 位的分辨率
    • 有多达 16个外部输入通道。实际外部通道的数量取决于 MCU 封装大小。
    • 单次和连续的转换模式
    • 可编程的(转换频率的)预分频:f MASTER 可以被分频 2 到18
    • 可以选择 ADC 专用外部中断(ADC_ETR)或者定时器触发信号(TRGO)来作为外部触发信号
    • 模拟放大,带外部参考引脚(VREF+和 VREF-)的产品支持模拟能,在模拟放大中࿰
    更多相关内容
  • Sigma-Delta ADC工作原理

    2012-08-16 10:32:06
    主要是介绍Sigma-Delta ADC工作原理,对新手很有帮助
  • ADC工作原理

    2012-07-20 10:17:08
    ADC工作原理,欢迎下载!仅供浏览,观后请删除!
  • STM32ADC的基本原理

    2021-01-20 03:07:37
    ADC的特点ADC的位数决定了ADC的精度,有8位的,12位的,16位的等。还有一个很重要的参数就是转换时间。STM32f103RBT6有2个ADC控制器。128KFlash,20KRAM每一个ADC控制器都有多个通道,例如ADC1的外部通道有16个,...
  • STM32 ADC工作原理

    千次阅读 2019-08-01 15:55:34
    ADC介绍 12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器...

    ADC介绍

    12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。ADC 的输入时钟不得超过14MHz,它是由PCLK2经分频产生。

    ADC主要特征

    ●  12位分辨率

    ●  转换结束、注入转换结束和发生模拟看门狗事件时产生中断

    ●  单次和连续转换模式

    ●  从通道0到通道n的自动扫描模式

    ●  间断模式执行

    ●  自校准

    ●  带内嵌数据一致性的数据对齐

    ●  采样间隔可以按通道分别编程

    ●  规则转换和注入转换均有外部触发选项

    ●  双重模式(带2个或以上ADC 的器件)

    ●  ADC转换时间:

       ─  STM32F103xx增强型产品:时钟为56MHz时为1μs

             (时钟为72MHz为1.17μs)

       ─  STM32F101xx基本型产品:时钟为28MHz时为1μs

             (时钟为36MHz为1.55μs)

       ─  STM32F102xxUSB型产品:时钟为48MHz 时为1.2μs

       ─  STM32F105xx和STM32F107xx产品:时钟为56MHz时为1μs

             (时钟为72MHz为1.17μs)

    ●  ADC供电要求:2.4V到3.6V

    ●  ADC输入范围:VREF-  ≤ VIN  ≤ VREF+

    ●  规则通道转换期间有DMA请求产生。

     

    通道选择

    有16个多路通道。可以把转换组织成两组:规则组和注入组。在任意多个通道上以任意顺序进行的一系列转换构成成组转换。例如,可以如下顺序完成转换:通道3 、通道8 、通道2 、通道2、通道0、通道2、通道2、通道15。

        ●  规则组由多达16个转换组成。规则通道和它们的转换顺序在ADC_SQRx寄存器中选择。规则组中转换的总数应写入ADC_SQR1寄存器的L[3:0]位中。

        ●  注入组由多达4个转换组成。注入通道和它们的转换顺序在ADC_JSQR寄存器中选择。注入组里的转换总数目应写入ADC_JSQR寄存器的L[1:0]位中。

        如果ADC_SQRx或ADC_JSQR寄存器在转换期间被更改,当前的转换被清除,一个新的启动脉冲将发送到ADC 以转换新选择的组。

        温度传感器和通道ADC1_IN16相连接,内部参照电压VREFINT和ADC1_IN17相连接。可以按注入或规则通道对这两个内部通道进行转换。

     

    注意:  温度传感器和VREFINT只能出现在主ADC1 中。

    单次转换模式

    单次转换模式下,ADC只执行一次转换。该模式既可通过设置ADC_CR2 寄存器的ADON位(只适用于规则通道)启动也可通过外部触发启动(适用于规则通道或注入通道),这时CONT位为0 。

     

        一旦选择通道的转换完成:

     

        ●  如果一个规则通道被转换:

            ─ 转换数据被储存在16位ADC_DR寄存器中

            ─ EOC(转换结束)标志被设置

            ─ 如果设置了EOCIE,则产生中断。

     

        ●  如果一个注入通道被转换:

            ─ 转换数据被储存在16位的ADC_DRJ1寄存器中

            ─ JEOC(注入转换结束)标志被设置

            ─ 如果设置了JEOCIE位,则产生中断。然后ADC停止。

    连续转换模式

        在连续转换模式中,当前面ADC转换一结束马上就启动另一次转换。此模式可通过外部触发启动或通过设置ADC_CR2寄存器上的ADON位启动,此时CONT位是1。

     

        每个转换后:

     

        ●  如果一个规则通道被转换:

            ─ 转换数据被储存在16位的ADC_DR寄存器中

            ─  EOC(转换结束)标志被设置

            ─ 如果设置了EOCIE,则产生中断。

     

        ●  如果一个注入通道被转换:

            ─ 转换数据被储存在16位的ADC_DRJ1寄存器中

            ─  JEOC(注入转换结束)标志被设置

            ─ 如果设置了JEOCIE位,则产生中断。

    扫描模式

    此模式用来扫描一组模拟通道。

        扫描模式可通过设置ADC_CR1寄存器的SCAN位来选择。一旦这个位被设置,ADC扫描所有被ADC_SQRX 寄存器(对规则通道)或ADC_JSQR(对注入通道)选中的所有通道。在每个组的每个通道上执行单次转换。在每个转换结束时,同一组的下一个通道被自动转换。如果设置了CONT位,转换不会在选择组的最后一个通道上停止,而是再次从选择组的第一个通道继续转换。

        如果设置了DMA位,在每次EOC后,DMA控制器把规则组通道的转换数据传输到SRAM 中。而注入通道转换的数据总是存储在ADC_JDRx寄存器中。

    间断模式

    规则组

        此模式通过设置ADC_CR1 寄存器上的DISCEN位激活。它可以用来执行一个短序列的n次转换(n<=8),此转换是ADC_SQRx寄存器所选择的转换序列的一部分。数值n由ADC_CR1寄存器的DISCNUM[2:0]位给出。

        一个外部触发信号可以启动ADC_SQRx 寄存器中描述的下一轮n次转换,直到此序列所有的转换完成为止。总的序列长度由ADC_SQR1寄存器的L[3:0]定义。

     

        举例: n=3,被转换的通道 = 0 、1、2、3、6、7、9、10

        第一次触发:转换的序列为 0 、1、2

        第二次触发:转换的序列为 3 、6、7

        第三次触发:转换的序列为 9 、10,并产生EOC事件

        第四次触发:转换的序列 0 、1、2

    注意:   

        当以间断模式转换一个规则组时,转换序列结束后不自动从头开始。

        当所有子组被转换完成,下一次触发启动第一个子组的转换。在上面的例子中,第四次触发重新转换第一子组的通道 0 、1和2。

    注入组

        此模式通过设置ADC_CR1 寄存器的JDISCEN位激活。在一个外部触发事件后,该模式按通道顺序逐个转换ADC_JSQR寄存器中选择的序列。

        一个外部触发信号可以启动ADC_JSQR寄存器选择的下一个通道序列的转换,直到序列中所有的转换完成为止。总的序列长度由ADC_JSQR寄存器的JL[1:0]位定义。

     

        例子: n=1,被转换的通道 = 1 、2、3

        第一次触发:通道1被转换

        第二次触发:通道2被转换

        第三次触发:通道3被转换,并且产生EOC和JEOC事件

        第四次触发:通道1被转换

     

    注意:  

        1 当完成所有注入通道转换,下个触发启动第1个注入通道的转换。   

          在上述例子中,第四个触发重新转换第1个注入通道1。

        2 不能同时使用自动注入和间断模式。

        3 必须避免同时为规则和注入组设置间断模式。间断模式只能作用

          于一组转换。

    ADC时钟配置

    void RCC_ADCCLKConfig(uint32_t RCC_PCLK2)

    输入参数范围:

    #define RCC_PCLK2_Div2    ((uint32_t)0x00000000)

    #define RCC_PCLK2_Div4    ((uint32_t)0x00004000)

    #define RCC_PCLK2_Div6    ((uint32_t)0x00008000)

    #define RCC_PCLK2_Div8    ((uint32_t)0x0000C000)

     

    STM32的ADC最大的转换速率为1Mhz,也就是转换时间为1us(在ADCCLK=14M,采样周期为1.5个ADC时钟下得到),不要让ADC的时钟超过14M,否则将导致结果准确度下降。

     

    ADC的采样时间

    可编程的通道采样时间

        ADC 使用若干个ADC_CLK 周期对输入电压采样,采样周期数目可以通过ADC_SMPR1 和ADC_SMPR2寄存器中的SMP[2:0]位更改。每个通道可以分别用不同的时间采样。

        总转换时间如下计算: TCONV = 采样时间+ 12.5个周期

    例如:当ADCCLK=14MHz ,采样时间为1.5周期

          TCONV = 1.5 + 12.5 = 14周期 = 1μs

    常见的周期有:

        1.5周期、7.5周期、13.5周期、28.5周期、41.5周期、55.5周期、71.5周期、239.5周期。

    数据对齐

    ADC_CR2寄存器中的ALIGN位选择转换后数据储存的对齐方式。数据可以左对齐或右对齐,如图29和图30所示。

        注入组通道转换的数据值已经减去了在ADC_JOFRx寄存器中定义的偏移量,因此结果可以是一个负值。SEXT位是扩展的符号值。

        对于规则组通道,不需减去偏移值,因此只有12个位有效。

    校准

    ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的准精度误差。在校准期间,在每个电容器上都会计算出一个误差修正码(数字值),这个码用于消除在随后的转换中每个电容器上产生的误差。

     

        通过设置ADC_CR2寄存器的CAL位启动校准。一旦校准结束,CAL位被硬件复位,可以开始正常转换。建议在上电时执行一次ADC校准。校准阶段结束后,校准码储存在ADC_DR 中。

     

    注意:  

         1 建议在每次上电后执行一次校准。

         2 启动校准前,ADC必须处于关电状态(ADON=’0’)超过至少两个ADC时钟周期。

     

     

    展开全文
  • 本文主要讲了ADC和DAC基本原理及特点,希望对你的学习有所帮助。
  • 逐次比较型SAR ADC工作原理

    千次阅读 2021-03-13 18:54:33
    逐次比较型ADC工作原理 1. 转换方式 ​ 直接转换ADC 2. 电路结构 ​ 逐次逼近ADC包括n位逐次比较型A/D转换器如图1所示。它由控制逻辑电路、时序产生器、移位寄存器、D/A转换器及电压比较器组成。 3. 工作原理 ​ ...

    逐次比较型ADC工作原理

    1. 转换方式

    ​ 直接转换ADC

    2. 电路结构

    ​ 逐次逼近ADC包括n位逐次比较型A/D转换器如图1所示。它由控制逻辑电路、时序产生器、移位寄存器、D/A转换器及电压比较器组成。

    图1 逐次比较型AD转换器框图

    图1 逐次比较型AD转换器框图

    3. 工作原理

    ​ 逐次逼近转换过程和用天平称物重非常相似。天平称重物过程是,从最重的砝码开始试放,与被称物体进行比较,若物体重于砝码,则该砝码保留,否则移去。再加上第二个次重砝码,由物体的重量是否大于砝码的重量决定第二个砝码是留下还是移去。照此一直加到最小一个砝码为止。将所有留下的砝码重量相加,就得此物体的重量。仿照这一思路,逐次比较型A/D转换器,就是将输入模拟信号与不同的参考电压作多次比较,使转换所得的数字量在数值上逐次逼近输入模拟量对应值。

    对图1的电路,它由启动脉冲启动后,在第一个时钟脉冲作用下,控制电路使时序产生器的最高位置1,其他位置0,其输出经数据寄存器将1000……0,送入D/A转换器。输入电压首先与D/A转换器输出电压(VREF/2)相比较,如输入电压VI≥VREF/2,比较器输出为1,若输入电压VI< VREF/2,则为0。比较结果存于数据寄存器的Dn-1位。然后在CP的第二个时钟脉冲作用下,移位寄存器的次高位置1,其他低位置0。如最高位已存1,则此时 VO’=(3/4)VREF。于是VI再与(3/4)VREF相比较,如VI≥(3/4)VREF,则次高位Dn-2=1,否则Dn-2=0;如最高位为0,则VO’=VREF/4,输入电压VI与VO’比较,如输入电压VI≥VREF/4,则 Dn-2位存1,否则存0……。以此类推,逐次比较得到输出数字量。

    ​ 为了进一步理解逐次比较A/D转换器的工作原理及转换过程。下面用实例加以说明。
    ​ 设图1电路为8位A/D转换器,输入模拟量VA=6.84 V,D/A转换器基准电压VREF=10 V。 根据逐次比较D/A转换器的工作原理,可画出在转换过程中时钟CP、启动脉冲、D7~D0及D/A转换器输出电压VO’的波形,如图2所示。

    ​ 由图2可见,当启动脉冲低电平到来后转换开始,在第一个时钟脉冲CP作用下,数据寄存器将D7~D0=10000000送入D/A转换器,其输出电压 VO’= 5 V,VA与VO’比较,VA>VO’存1;第二个CP到来时,寄存器输出D7~D0=11000000,VO’为7.5 V,VA再与7.5 V比较,因VA<7.5 V,所以D6存0;输入第三个CP时,D7~D0=10100000,VO’= 6.25 V;VA再与VO’比较,……如此重复比较下去,经8个时钟周期,转换结束。由图中VO’的波形可见,在逐次比较过程中,与输出数字量对应的模拟电压VO’逐渐逼近VA值,最后得到A/D转换器转换结果D7~D0为10101111。该数字量所对应的模拟电压为 6.8359375 V,与实际输入的模拟电压 6.84 V的相对误差仅为0.06%。

    图2 8位逐次比较型AD转换器波形图

    图2 8位逐次比较型AD转换器波形图

    4. 特点

    ​ (1)转换速度:(n+1)Tcp . 速度快。
    ​ (2)调整VREF,可改变其动态范围。

    5. 转换器电路举例

    ​ 常用的集成逐次比较型A/D转换器有 ADC0808/0809系列(8位)、AD575(10位)、AD574A(12位)等。

    例1 4位逐次比较型A/D转换器的逻辑电路如图3所示。图中5个移位寄存器可进行并入/并出或串入/串出操作,其F为并行置数端,高电平有效,S为高位串行输入。数据寄存器由D边沿触发器组成,数字量从Q4~Q1输出,试分析电路的工作原理。

    图3 4位逐次比较型AD转换器的逻辑电路

    图3 4位逐次比较型AD转换器的逻辑电路

    解:

    电路工作过程如下:
    当启动脉冲上升沿到来后,FF0~FF4被清零,Q5置1,Q5的高电平开启G2门,时钟CP脉冲进入移位寄存器。在第一个CP脉冲作用下,由于移位寄存器的置数使能端F已有0变为1,并行输入数据 ABCDE=01111置入,QAQBQCQDQE=01111。QA的低电平使数据寄存器的最高位置1,即Q4Q3Q2Q1=1000。D/A转换将数字量1000转换为模拟电压VO’,送入比较器C与输入模拟电压VI比较,若输入电压VI> VO’,则比较器C输出VC为1,否则为0。比较结果送D4~D1
    第二个CP脉冲到来后,移位寄存器的串行输入端S为高电平,QA由0变1,同是最高位QA的0移至次高位QB。于是数据寄存器的Q3由0变1,这个正跳变作为有效触发信号加到FF4的CP端使VC的电平得以在Q4保存下来。此时,由于其他触发器无正跳变脉冲,VC的信号对它们不起作用。Q3变为1后建立了新的D/A转换器的数据,输入电压在与其输出电压VO’相比较,比较结果在第三个时钟脉冲作用下存于Q3……。如此进行,直到QE由1变0,使Q5由1变0后将G2封锁,转换完毕。于是电路的输出端D3D2D1D0得到与输入电压VI成正比的数字量。

    下表为移位寄存器的状态转换表

    移位寄存器状态QEQDQCQBQA
    将输入数据ABCDE=01111置入11110
    第一次移位11101
    第二次移位11011
    第三次移位10111
    第四次移位01111

    ​ 由以上分析可见,逐次比较型A/D转换器完成一次转换所需的时间与其位数和时钟脉冲频率有关,位数愈少,时钟频率愈高,转换所需时间越短。这种A/D转换器具有转换速度较快,精度高的特点。

    欢迎评论,一起交流!


    从 “21ic.com中国电子网” 转载文章《什么是逐次比较型ADC》,作者:chenrj

    展开全文
  • Designing SAR ADC Drive Circuitry by Rick Downs, Applications Engineering Manager and Miro Oljaca, Systems Engineer Data Acquisition Products, Texas Instruments, Incorporated Part I: A Detailed Look a
  • CC2530的ADC工作原理与应用

    千次阅读 2021-06-15 10:52:52
    目录1.A/D转换的基本工作原理 1.A/D转换的基本工作原理 数字化: 将时间上连续变化的模拟量转化为脉冲有无的数字量(ADCADC: 数模转换器,将时间和幅值连续的模拟量转化为时间和幅值离散的数字量 过程: 采样...

    1.A/D转换的基本工作原理

    在这里插入图片描述

    1. 数字化: 将时间上连续变化的模拟量转化为脉冲有无的数字量(ADC)
    2. ADC: 数模转换器,将时间和幅值连续的模拟量转化为时间和幅值离散的数字量
    3. 过程: 采样、保持、量化、编码

    常用ADC: 逐次逼近型、双积分型、∑-△型
    在这里插入图片描述
    A/D转换器的几个技术指标:

    1. 量程: ADC所能输入模拟信号的类型和电压范围(参考电压),信号类型包括单极性和双极性
    2. 转换位数: 量化过程中的量化位数n,A/D转换后的输出结果用n位二进制数表示
    3. 分辨率: ADC能够分辨的模拟信号最小变化量,分辨率 = 量程 / 2^n
    4. 转换时间: ADC完成一次完整的A/D转换所用时间,包括采样、保持、量化、编码的全过程

    ADC的四个基本过程
    采样、保持、量化、编码
    在这里插入图片描述
    在这里插入图片描述


    例: 有一个温度测控系统,已知温度传感器在0到100度之间为线性输出,参考电压为5V,采用8为的A/D转换器,0度的时候,测的电压为1.8伏,100度的时候,测的电压为4.3伏。

    问: 系统的分辨率是多少?采集到数据10010001,表示多大电压?温度是多少?

    由于采用的是8位ADC,参考电压为5V,所以分辨率为:
    5* 1/2^8= 5/256 = 0.0195V= 1.95mV (最小能分辨的电压,分辨率)
    0.0195 * 40= 0.78度(最小能分辨的温度)
    由于温度是线性变化,先求得斜率k,得到温度和电压的关系表达式:
    k= (100- 0)/(4.3-1.8)=40,y = 40*(x-1.8) (x为采样得到的电压)
    因为10010001B=91H= 145,所以0.0195* 145= 2.83V
    温度: (2.83V- 1.8V)* 40= 41.2℃

    2.CC2530的A/D转换模块

    在这里插入图片描述

    此ADC模块的主要特征:

    1. 可选取的抽取率,设置分辨率(7~12位)
    2. 8个独立的输入通道,可接收单端或差分信号
    3. 参考电压可选为内部单端、外部单端、外部差分或AVDD5
    4. 单通道转换结束可产生中断请求
    5. 序列转换结束可发出DMA触发
    6. 可将片内温度传感器作为输入
    7. 电池电压测量功能

    3.ADC模块的信号输入

    端口0引脚可以配置为ADC输入端,依次为AINO~AIN7

    1. 输入端可配置为单端输入差分输入
    2. 差分输入对: AIN0~AIN1、AIN2 ~ AIN3、AIN4 ~ AIN5 、AIN6 ~ AIN7
    3. 片上温度传感器的输出也可以作为ADC的输入用于测量芯片的温度
    4. 可以将一个对应AVDD5/3的电压作为ADC的输入,实现电池电压检测
    5. 负电压大于VDD的电压不能用于P0这些引脚
    6. 单端电压输入AINO~ AIN7,以通道号码0~7表示
    7. 四个差分输入对则以通道号码8~11表示
    8. 温度传感器的通道号码为14
    9. AVDD5/3电压输入的通道号码为15

    4.ADC相关的几个概念

    1. 序列ADC转换: 可以按序列进行多通道的ADC转换,并把结果通过DMA传送到存储器,而不需要CPU任何参与。
    2. 单通道ADC转换: 通过写ADCCON3寄存器触发单通道ADC转换,一旦寄存器被写入,转换立即开始
    3. 参考电压: 内部生成的电压、AVDD5引脚、适用于AIN7输入引脚的外部电压,或者适用于AIN6~ AIN7输入引脚的差分电压
    4. 转换结果:
      4.1. 数字转换结果以二进制的补码形式表示
      4.2. 对于单端,结果总是
      4.3. 对于差分配置,两个引脚之间的差分被转换,可以是负数
      4.4. 当ADCCON1.EOC设置为1时,数字转换结果可以读取
      4.5. 转换结果总是驻留ADCHADCL寄存器组合的MSB段中
    5. 中断请求:
      5.1. 通过写ADCCON3触发一个单通道转换完成时,将产生一个中断
      5.2. 完成一个序列转换时,ADC将产 生一个DMA触发,而不产生中断
    6. 三个控制寄存器: ADCCON1、ADCCON2、ADCCON3,用来配置ADC
    7. 两个数据寄存器: ADCL和ADCH,用来返回转换结果

    5.1.案例——定时采集电压数据发送到上位机

    要求:

    将光照度传感器接到的Zigbee小模块上,每隔1秒以单通道的式采样一次该传 感器的电压值,并按照指定的格式将数据传送到上位机。上位机与CC2530的 串口0相连,系统时钟为16MHz,波特率为9600BPS, 发送数据采用查询的方式。数据帧有4个字节,格式如下:
    0xFA (帧头)    ADCH    ADCL    0xAF (帧尾)
    在这里插入图片描述

    设计思路:

    1. 初始化定时器1,实现0.1秒定时
    2. 在定时中断函数中实现1秒定时
    3. 按照参数要求初始化串口0
    4. 设计字节数组发送函数
    5. 初始化ADC (单通道采集)
    6. 实现数据采集并发送到上位机

    配置APCFG寄存器

    1. 当使用ADC时,端口0的引脚必须配置为ADC模拟输入
    2. 要配置一个端口0引脚为一个ADC输入,APCFG寄 存器中相应的位必须设置为1。这个寄存器的默认值是0,选择端口0为非模拟输入,即作为数字I/O端口
    3. 注意: APCFG寄存器的设置将覆盖POSEL的设置
    4. APCFG模拟I/O配置寄存器:
      在这里插入图片描述

    配置ADCCON3寄存器

    1. 单通道的ADC转换,只需要将控制字写入ADCCON3寄存器即可
    2. ADCCON3控制寄存器(单通道相关):
      在这里插入图片描述

    ADC初始化

    1. 对端口的功能进行选择
    2. 设置其传输方向
    3. 将端口设为模拟输入

    ADC数据采集

    1. 将ADCIF标志位清0
    2. 配置ADCCON3寄存器,该寄存器一旦被写入,转换立即开始
    3. 等待ADCIF置1,标示转换完成
    4. 读取数据

    代码:

    #include "ioCC2530.h"
    
    /*=============================定时器1初始化函数==============================*/
    void Init_Timer1(){
      T1CC0L = 0xd4;               //设置最大计数值的低8位
      T1CC0H = 0x30;               //设置最大计数值的高8位
      T1CCTL0 |= 0x04;             //开启通道0的输出比较模式
      T1IE = 1;                    //使能定时器1中断
      T1OVFIM = 1;                 //使能定时器1溢出中断
      EA = 1;                      //使能总中断
      T1CTL = 0x0e;                //分频系数是128,模模式
    }
    
    
    unsigned char count = 0;
    unsigned char F_time = 0;
    /*=============================定时器1服务函数================================*/
    #pragma vector = T1_VECTOR
    __interrupt void Timer1_Sevice(){
      T1STAT &= ~0x01;             //清除定时器1通道0中断标志
      count++ ;
      if(count == 10){             //定时1秒到
        F_time = 1;
        count = 0;
      }      
    }
    
    /*=============================UR0初始化函数==================================*/
    void Init_Uart0(){
      PERCFG = 0x00;              //串口0的引脚映射到位置1,即PO_2和P0_3
      P0SEL = 0x0C;               //将PO_ 2和PO_ _3端口设置成外设功能
      U0BAUD = 59;                //16MHz的 系统时钟产生9600BPS的波特率
      U0GCR = 9;
      U0UCR |= 0x80;              //禁止流控, 8位数据,清除缓冲器
      U0CSR |= 0xCe;              //选择UART模式,使能接收器
      UTX0IF = 0;                 //清除TX发送中断标志
      URX0IF = 0;                 //清除RX接收中断标志
      URX0IE = 1;                 //使能URAT0的接收中断
      EA = 1;                     //使能总中断
    }
    
    /*=============================UR0发送字符串函数==============================*/
    void UR0SendString(unsigned char *str, unsigned char count){
      while (count--){
        U0DBUF = *str++;          //将要发送的1字节数据写入U0DBUF
        while(!UTX0IF);           //等待TX中断怺志,即数据爰送完成
        UTX0IF = 0;
      }
    }
    
    /*=============================ADC初始化函数==================================*/
    void Init_ADC0(){
      P0SEL |= 0x01;              //P0_0端口设置为外设功能
      P0DIR &= ~0x01;             //P0_0端口设置为输入端口
      APCFG |= 0x01;              //P0_0作为模拟I/0使用
    }
    
    unsigned char dat[4];
    /*===========================读取ADC的数据====================================*/
    void Get_ADC0_Value(){
      ADCIF = 0;
      //参考电圧迭拝AVDD5引脚,256抽取率,AIN0通道0
      ADCCON3 = (0x80| 0x10| 0x00);
      while(!ADCIF);              //等待A/D装換完成
      dat[0] = 0xaf;
      dat[1] = ADCH;              //读取ADC数据低位寄存器
      dat[2] = ADCL;              //读取ADC数据高位寄存器
      dat[3] = 0xfa;
    }
    
    /*===========================main函数=========================================*/
    void main(){
      Init_Uart0();
      Init_Timer1();
      Init_ADC0();
      
      while(1){
        if(F_time == 1){          //定时1秒时间到
          Get_ADC0_Value();      //进行A/D转换并读取数据
          UR0SendString(dat,4);  //向上位机发送数据
          F_time = 0;            //定时1秒标志清0
        }
      }
    }
    

    展开全文
  • Designing SAR ADC Drive Circuitry by Rick Downs, Applications Engineering Manager and Miro Oljaca, Systems Engineer Data Acquisition Products, Texas Instruments, Incorporated Part I: A Detailed Look
  • ADC引脚 查找开发板上的ADC
  • 源自电子发烧友论坛的直播课程 视频讲解内容 可以看这个链接  http://t.elecfans.com/live/522.html ADC就是 创造101 说的一点都没错啊!!!   ...
  • ADC模块原理

    2018-07-17 17:29:00
    adc原理图的描述,由于现在的ADC数模转换越来越普遍,所以认识ADC的数转化是一件很有必要的事情
  • ADC工作原理及应用

    千次阅读 2020-07-12 20:25:45
    逐次逼近型 离散化 自然界的模型信号一般都是连续的
  • 缘起   最近项目中用到了终端在仅有电流的情况下启动并正常工作的需要。此时需要先给系统充电,...国内基本找不到太有效的讲解 ADC 原理的资料(至少我是没找到),在 TI、ADI 等公司官网倒是有不少资料可供参考!
  • 流水线ADC原理

    2014-04-20 22:34:13
    详细讲解ADC原理 流水线型 逐次逼近型 闪存型等
  • 揭秘Σ-Δ ADC工作原理pdf,揭秘Σ-Δ ADC工作原理
  • ADC的基本工作原理

    万次阅读 多人点赞 2020-08-03 17:06:47
    ADC的基本转换原理分为四个过程: ①抗混叠滤波(Anti-aliasing),可以理解为一个低通滤波器 ②采样保持电路(Sample and hold) ③量化(Quantizer) ④编码(Coder) 采样保持 所谓采样就是将一个时间上连续变化...
  • 一、A/D转换的基本工作原理https://www.cnblogs.com/ALittleBee/p/7102690.html 将时间上连续变化的模拟量转化为脉冲有无的数字量,这一过程就叫做数字化,实现数字化的关键设备是ADCADC:数模转换器,将时间...
  • ADC基本原理

    千次阅读 2020-05-31 17:40:39
    ADC基本原理 1、ADC即为典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。 2、对于32: (1)ADC转换时间:最大转换速率 1us。(最大转换速度为1MHz,在ADCCLK=14M,采样周期为1.5个ADC时钟下...
  • ∑-△ADC工作原理

    千次阅读 2017-05-27 16:25:52
    一、∑-△ADC工作原理  要理解∑-△ADC工作原理,首先应对以下概念有所了解:过采样、噪声成形、数字滤波和抽取。  1.过采样  首先,考虑一个传统ADC的频域传输特性。输入一个正弦信号,然后以频率fs采样-...
  • CS1237差分ADC模块-教程资料-技小新-24位差分ADC模块-CS1237-原理图.pdf
  • 本文给大家介绍了STM8单片机ADC应用(IAR)。
  • 本文深入介绍模/数转换器(ADC)的工作原理,重点关注难以理解的数字概念:过采样、噪声整形和抽样滤波等。同时包括Σ-Δ转换器的多种应用。
  • ADC基本原理.ppt

    2020-01-31 00:54:51
    详细讲述了ADC基本原理,实用资料,听课记录 Analog-to-Digital Converter的缩写。指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。
  • 浅谈常用ADC工作原理与选型!

    万次阅读 多人点赞 2018-09-09 13:07:50
    现在的软件、无线电、数字图像...A/D转换器发展了30多年,经历了多次的技术革新,从Flash、SAR、积分型ADC,到近年来新发展起来的 ∑-Δ型 和 Pipeline ADC,它们各有其优缺点,能满足不同的应用场合的使用。 ...
  • ADC0808工作时序图

    2020-07-12 07:34:53
    ADC0808的工作时序如图11.21所示。当通道选择地址有效时,ALE信号一出现,地址便马上被锁存,这时转换启动信号紧随ALE之后(或与ALE同时)出现。 START的上升沿将逐次逼近寄存器SAR复位,在该上升沿之后的2μs加8个...
  • STM32------ADC基本原理

    2022-05-07 16:02:22
    一、ADC 1.ADC简介 2.stm32f10x ADC特点 3.stm32f10x 大容量芯片带3个ADC控制器 4. ADC通道和引脚对应关系 5.ADC引脚
  • STM32 ADC基本原理

    2021-02-22 20:52:32
    1. ADC Analog-to-Digital Converter的缩写。指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。 典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。 2. ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,684
精华内容 8,673
关键字:

adc工作原理

友情链接: wx_sample.zip