TX2440裸机程序-AD

发布者:梅花居士最新更新时间:2019-11-25 来源: eefocus关键字:TX2440  裸机程序 手机看文章 扫描二维码
随时随地手机看文章

一、基本概念


ADC:模/数转换器。



一种将模拟信号转换成数字信号的装置;


DAC:数/模转换器。


一种将数字信号转换成模拟信号的装置。


模拟信号转换为数值信号的步骤:


1.取值;


2.量化;


3.编码;


二、硬件电路


S3C2440ADC


S3C2440芯片内部共有8路A/D转换通道AIN0~AIN7,但是转换器只有一个。转换精度为10位,故转换后的值最小时会接近0,最大时会接近1024.

最大的转换率在2.5MHZ转换时钟下能达到500KSPS(每秒采样5000千次)


在常见的设计中,如TX2440开发板,一般AIN4、AIN5、AIN6、AIN7被用作了四线电阻触摸的YM、YP、XM、XP通道;剩余的AIN0~3被引出,其中AIN0、AIN1连接采样电路。

三、程序


ADC驱动流程


1.初始化 2.启动 3.转换结束 4.读取转换值;

寄存器说明

      

读取转换值:

       

源码

//======================================================================

 

//========================================================

// 函数名称: main

// 功能描述: 通过串口,显示AD值

// 维护记录: 2009-08-14 v1.0        

//========================================================

 

#include "2440addr.h"

#include "2440lib.h"

#include "option.h"

#include "uart.h"

#include "ADC.h"

 

void Main()

SetSysFclk(FCLK_400M);  //设置系统时钟 400M     

ChangeClockDivider(2, 1);      //设置分频 1:8:16

CalcBusClk();           //计算总线

 

Uart_Select(0);

    Uart_Init(0, 115200);

Uart_Printf("n ---ADC测试程序---n"); 

while(1)

{

Test_ADC();

}

 }

//====================================================================

// 文件名  : ADC.c

// 功  能  : ADC测试程序 

//====================================================================

#include "def.h"

#include "2440addr.h"

#include "2440lib.h"

#include "uart.h"

#include "ADC.h"

 

void Test_ADC(void)

{

    U8 ch, mode;

Uart_Printf("Select ADC Chanel: 0 or 1");

ch=Uart_Getch();

Uart_Printf("n%cnn", ch);

if (ch!='0' && ch !='1')

{

Uart_Printf("you select wrong chanel!n");

return;

}

    rADCDLY = 100; //ADC转换延时

//    rADCTSC = 0; //设置ADC为普通模式

    /* 进行ADC模块设置,其中x<    rADCCON = (0 << 0)     | // ADC转换设置 未设置

              (0 << 1)     |    // 读AD数据触发AD转换 未使用

              (0 << 2)     |    // StandBy模式选择 为普通操作模式

              (ch << 3)    |    // ADC通道选择 ch

              (49 << 6)    | // CLKDIV = Fpclk /49+1/5 ,即转换时钟为1MHz  Fpclk = 10M   ADC转换频率400K

              (1 << 14)   ;    // 使能软件预设值

    

Uart_Printf("Select ADC Mode: 1.Enable  2.Read");

mode=Uart_Getch();

Uart_Printf("n%cnn", mode);

if (mode!='1' && mode !='2')

{

Uart_Printf("you select wrong model!n");

return;

}

switch(mode)

{

case '1':

Uart_Printf("ADC Enable-Convert Moden");

while(Uart_GetKey() != ESC_KEY)

{

AD_ENABLE();

}

break;

case '2':

Uart_Printf("ADC Read-Convert Moden");

while(Uart_GetKey() != ESC_KEY)

{

AD_READ();

}

break;

// default:

// break;

}

}

 

//=======================================================================

//名称:AD_ENABLE()

//功能:采用置位使能方式启动AD转换

//参数: 无

//返回值: 无

//=======================================================================

 

void AD_ENABLE (void) 

 {

    int i,j;

    int val;

  val = 0;

    for(i=0;i<16;i++)

    {

rADCCON |= 0x1;         //使能ADC 转换

       

while(rADCCON&0x1);     //判断是否使能ADC转换

       

while(!rADCCON&0x8000); //判断ADC转换是否结束

       

val += (rADCDAT0 &0x03ff);    //取出ADC转换值

for(j=0;j<500;j++);       

    }

    val = val/16;                   //计算ADC平均转换值

    Delay(500);

    Uart_Printf("ADC val = %dn", val);  //发送到串口显示

 

 }

 

 

//=======================================================================

//名称:AD_READ()

//功能:采用读控制器的方式启动AD转换

//参数: 无

//返回值: 无

//=======================================================================

 void AD_READ (void) 

 {

    int i,j;

    int val,aa;

  val = 0;

  rADCCON |= 0x2;         //ADC转换通过读操作来启动

  aa = rADCDAT0 &0x03ff; //启动ADC转换

 

    for(i=0;i<16;i++)

    {

while(!rADCCON&0x8000); //判断ADC转换是否结束

       

val += (rADCDAT0 &0x03ff);    //取出ADC转换值

for(j=0;j<500;j++);       

    }

    val = val/16;                   //计算ADC平均转换值

    Delay(500);

    Uart_Printf("ADC val = %dn", val);  //发送到串口显示

 

 }


关键字:TX2440  裸机程序 引用地址:TX2440裸机程序-AD

上一篇:S3C2440时钟和电源管理
下一篇:TX2440裸机程序-uart

推荐阅读最新更新时间:2024-11-05 15:34

数字正交上变频器AD9856的原理及其应用
    摘要: 介绍了数字正交上变频器AD9856的工作原理及使用方法,并给出了其在数字音频广播(DAB)发射系统中的具体应用。     关键词: 数字正交调制  上变频  DAB     正交调制是一种常用的调制技术。在以往的通信系统中,一般都由模拟电路实现,由于很难保证两路载波的正交性,调制的效果往往不太理想,因而逐渐被数字调制所取代。AD9856是AD公司生产的一种通用、高性能的数字正交上变频器件,具有集成度高、性能好、体积小、功耗低等特点,使用该器件很容易实现信号的数字正交调制。 1 AD9856的结构和工作原理     AD9856内部电路结构如图1所示。主要分为数据复合、过
[网络通信]
基于STM8S的AD采集系统
STM8S系列最多有16路AD,据封装大小而不同。许多引脚多有复用功能,其功能类似于普通的51,及对于有复用功能的IO口,可以直接使用而不需要什么复用设置。此外复用功能还可以引脚重映射,这就需要在选项字节中进行映射配置。对于要配置为AD采集口的引脚,一定要设置为浮空输入模式,而不是其他什么输出模式,这样会严重干扰输入电压的测量。由于使用的是小封装,因此没有专门的参考电压,内部是直接连到电源端,因此电源端的不稳就是参考电压的不稳,会直接导致转换值的不稳及跳动,一开始设计中就有一个闪烁灯,造成电源的小幅波动,影响到了转换值,在取消闪烁灯后,转换值稳定下来。由于采用的是分压电阻进行的大电压的测量,因此由分压电阻的误差造成的转换值不精确在所
[单片机]
基于AD608芯片的对数中频低功耗接收机设计
在移动通信系统中,由于信号传输过程存在多径衰落和传输衰减等因数,使得系统中的移动终端接收信号的动态范围较大。而且当移动终端距离基站较近时,由于当输入端信号过强或伴有较大的干扰电压输入时,会出现“过载”现象。为了解决此问题,需要将较宽输入动态范围压缩成较窄的输出动态范围,并保留输入信号的幅度、频率和相位信息,常采用的方法是自动增益控制电路(Automatically GainControlled)和对数放大器(Logarithmic Amplifier)。由于对数放大器的动态范围比AGC电路动态范围宽,而且对数放大器的输出信号失真较小,可以准确反映输入信号的频率和相位信息。因此,在大多数的无线通信、雷达系统中,采用对数放大器来实现
[模拟电子]
AD7705/06及其应用
    摘要: 本文介绍了一种基于Σ―Δ转换技术的16位无误码模数转换芯片AD7705/06,并给出了实用的硬件接口电路和软件程序。     关键词: Σ-Δ A/D  无误码  模数转换芯片 1.引言     在智能仪器仪表的应用中,由于传统的传感器信号是模拟信号,所以对于智能化的仪器,肯定需要A/D转换器以实现单片机的控制。在许多应用场合需要16位以上的高精度测量,而传统的积分型和逐次比较型A/D实现起来难度较大,且成本很高。近年来兴起的Σ―ΔA/D转换技术却能以较低的成本获取极高的分辨率。AD公司的AD7705/06以及AD7707为比较典型的一种16位A/D转换芯片。 2.AD770
[应用]
ADI推出高性能数模转换器AD9128简化FPGA接口
Analog Devices, Inc. (NASDAQ: ADI)数据转换器市场份额领先者*和47年来的数据转换及信号处理技术创新者,最近推出一款性能领先的16位、1.25 GSPS发射DAC AD9128,该器件内置复数数字调制功能,并采用JESD204A兼容型串行输入。AD9128的高速串行接口大大简化并改善了典型系统实施方案中DAC与FPGA之间的数据连接。   高性能FPGA在以数据为中心的无线和有线通信、雷达、航空电子和医疗成像应用中日益广泛地用作处理器。FPGA广受青睐源于其先天优势:系统开发更简单、上市时间更短、处理速度更快以及具备即时可编程能力。不过对于更高分辨率、1 GSPS以上的数据转换器应用,由于接口
[模拟电子]
ADI推出高性能数模转换器<font color='red'>AD</font>9128简化FPGA接口
AD82584F兼容替代TAS5707/TAS5711,用于智能音箱语音辨识的2x25W立体声数字音频功放
AD82584F是一种数字音频放大器,能够将一对8Ω负载扬声器驱动到25W(BTL)和将4Ω负载扬声器驱动到50W(PBTL),播放音乐不需要外部散热器或风扇。AD82584F提供先进的音频处理功能,如音量控制、30 EQ频带、音频混音、3D环绕声和动态范围控制(DRC)。这些是完全可通过一个简单的I2C控制接口来编程。提供了强大的保护电路,以保护AD82584F免受意外错误操作条件造成的损坏。 AD82584F的全数字电路设计比通过模拟电路设计实现的模拟ab类或d类音频放大器更能容忍噪声和PVT(过程、电压和温度)的变化。AD82584F在瞬时电源打开/关闭或静音/关闭开关时,没有啵啵声,因为它强大的内置防啵啵电路。
[嵌入式]
<font color='red'>AD</font>82584F兼容替代TAS5707/TAS5711,用于智能音箱语音辨识的2x25W立体声数字音频功放
基于AD9850构成的DDS正弦波信号发生器设计与实现
  论文设计开发了基于AD9850构成的DDS正弦波信号发生器的硬件系统,其频率范围为0~30MHz,根据软件设计的总体构想并结合硬件电路,给出了总体以及子模块的流程图,并用C语言编制相应程序.系统调试和测试结果表明,所设计的系统能够产成正弦波形,信号的频率.相位.幅度的调节精度和抗干扰性等技术性能指标基本达到设计目标.   1.引言   随着数字大规模 集成电路 技术的发展,采用数字电路的直接数字频率合成技术(DDS)具有频率转换速度快.频率分辨率高.相位可控.频率稳定度高等优点.频率转换速度快.频率分辨率高的信号源在现代电子通讯.航空航天.自动控制等领域中是必不可少的,因此DDS信号源在上述领域获得广泛的应用.   AD98
[单片机]
基于<font color='red'>AD</font>9850构成的DDS正弦波信号发生器设计与实现
国芯思辰 | 24位ADC SC1644(可替换AD7173-8)用于液体流量计
液体流量计主要应用于检测流体流速,通过检测累计流量可以做到控制流体体积的功能。液体流量计用于测量各种流体的流量,例如测量密封管道中液体、气体、蒸汽流量等;随着人们消耗的的水会越来越大,流量计既能监测生活废水,也是污水处理厂过程控制系统不可或缺的一部分。由于液体流量计是工业领域中非常精密的测量仪器,对ADC模块需要更高的性能要求来达到更高速度和精度的监测。本文重点提到国产芯炽ADC SC164的应用性能。 芯炽SC1644是一款快速建立、高度精确、低功耗、8/16通道、多路复用的 ADC,芯片内部集成了精密模拟输入缓冲器和参考输入缓冲器,采用了2.5 V精密基准电压。目前大多液体流量计一般要求ADC的数据速率在20KSPS以上,
[测试测量]
国芯思辰 | 24位ADC SC1644(可替换<font color='red'>AD</font>7173-8)用于液体流量计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved