AD7888与S3C2410的SPI接口及Linux下嵌入式驱动的实现

发布者:平凡的梦想最新更新时间:2007-12-06 来源: 工业仪表与自动化装置关键字:控制  采样  单端  基准 手机看文章 扫描二维码
随时随地手机看文章
串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口,它允许CPU与TTL移位寄存器、A/D或D/A转换器、实时时钟(RTO)、存储器以及LCD和LED显示驱动器等外围接口器件以串行方式进行通讯。

SPI总线只需3~4根数据线和控制线即可扩展具有SPI接口的各种I/O器件,其硬件功能很强,实现软件相当简单。串行A/D转换器具有电路简单、工作可靠的特点,而ARM芯片被设计用于手持设备以及普通的嵌人式应用的集成系统,将上述两种实用的芯片和SPI总线技术相结合以实现数据采集十分有效。

1 AD7888的功能与使用

AD7888是美国模拟器件公司推出的一款高速低功耗12位A/D转换器,采用2.7~5.25 V单电源供电,最大通过率可达到125 kSPS。AD7888的输入采样/保持电路在500 ns内获取一个信号,采用单端采样模式,包含8个单端模拟输入,模拟输入电压从0到VREF。AD7888有2.5 V的片内基准电压,也可以使用外部基准电压,范围从1.2 V到VDD。CMOS制造工艺确保了低功耗,正常工作时为2 mW,掉电状态下为3uW。可以选择多种电源管理模式(包括数据转换后自动处于掉电模式),与多种串行接口兼容(SPI/QSPI/MICOWIRE/DSP)。AD7888可广泛应用于电池供电系统(个人数字助理、医疗仪器、移动通信)、仪表控制系统和高速调制/解调器等领域。该器件采用16脚SOIC和TSSOP外形封装,外形及引脚定义见图1和表1。

图1 AD7888的引脚图

AD7888的控制寄存器是8位只写寄存器。数据在SCLK的上升沿从DIN引脚载人,同时获取外部模拟量转换的结果。每次数据的传输需要准备16个连续时钟信号。只有在片选信号下降之后的前8个时钟脉冲的上升沿提供的信息装入控制寄存器。

图2显示了详细的串行接口时序图,串行时钟提供了转换时序,且控制AD7888转换信息的输入输出。CS初始化数据传送和转换处理。在其下降沿之后的1.5个时钟周期开始采样输入信号,这段时间表示为tACQ(获取时间)。整个转换过程还需要14.5个时钟周期来完成,这段时间表示为tCONVERT(转换时间)。

从AD7888获取数据的整个转换过程需要16个时钟周期。CS上升沿之后,总线返回高阻状态。如果CS继续保持低电平,则准备新一轮的转换。进行采样的输入通道的选择是提前写入控制寄存器的,因此在转换时,用户必须提前写入以备通道的转换。也就是说,在进行当前转换时,用户就必须提前写入通道的地址以备下次转换使用。

图2串行接口时序图

2 S3C2410的主要功能

S3C2410是三星公司推出的采用RISC结构的16/32位微处理器。它基于ARM920T内核,采用五级流水线和哈佛结构,最高频率可达203 MHz,是高性能和低功耗的硬宏单元。ARM920T具有增强ARM体系的MMU(支持WinCE,EPOC 32和Linux)、16kB的指令和数据高速缓存以及高速AMBA总线接口。

S3C2410被设计用于手持设备以及普通的嵌入式应用的集成系统,为了降低整个系统的成本,S3C2410还包括下面的部分:LCD控制器(STN&TFT)、NAND Flash引导装入程序、系统管理(片选逻辑和SDRAM控制器)、3通道UART,4通道DMA、4通道PWM时钟、I/O口、RTC、8通道10位ADC及触摸屏接口、IIC总线接口、IIS总线接口、USB主口和USB设备口、SD主口和多媒体卡接口、2通道SPI和2通道PLL。

S3C2410有2个SPI口,可以实现串行数据的传输。每个SPI接口各有2个移位寄存器分别负责接收和发送数据。在传送数据期间,发送数据和接收数据是同步进行的,传送的频率可由相应的控制寄存器设定。如果只想发送数据,则接收数据为哑元;如果只想接收数据。则需发送哑元“0xff”。SPI接口共有4个引脚信号:串行时钟SCK(SPICLK0,1)、主入从出MISO(SPICLK0,1)和主出从入MOSI(SPIMOSI0,1)数据线、低电平有效引脚/SS(nSSO,1)。

S3C2410的SPI接口具有如下特点

(1)兼容SPI协议(ver.2.11);

(2)有分别用于发送和接收的8位移位寄存器;

(3)有设定传送频率的8位寄存器;

(4)有轮询、中断和DMA三种传送模式。

3 接口与驱动

根据S3C2410的SPI特点及AD7888的工作原理确定其接口如图3所示。

图3 AD7888与S3C2410的连接图

为了实现S3C2410和AD7888在嵌入式Linux下的高速A/D转换,还编写了两者接口的驱动程序,该驱动程序功能的实现主要由以下几个函数完成。

(1)Init_SPI()完成SPI的初始化

   void Init_SPI(void)
{
  int i;
  rSPPRE0=0x32;
  rSPCON0=0x1e;
  for(i=0;i<10;i++)
  rSPTDAT0=0xff;
  rGPECON |=0x0a800000;
  rGPECON&=(~0x05400000);
  rGPEUP |=0x3800;
  //GPH5----->CS
  rGPHCON |=0x0400;
  rGPHCON&=(~0x0800);
  rGPHUP&=(~0x20);
  rGPHDAT |=0x20;
}

(2)ad_wr()写入要求A/D转换的通道

  static ssize_t ad_wr(struCt file *file,const char *bur,size_t count,loft_t *offset)
{
  int ret="0";
  int i="0";
  dbuf="kmalloc"(count *sizeof(unsigned char),GFP_KERNEL);
  copy_from_user(dbuf,bur,count);
  for(i=0;i ADTXdata[i]=dbuf[i];
  kfree(dbuf);
  return ret;
}

(3)ad_rd()得到A/D转换的结果

   statie ssize_t ad_rd(struet file *file,char *bur,size_t count,loft t *offset)
{
  int ret="0";
  int i="0";
  ad_convert();
  ad_convert();
  dbuf="kmalloc"(count *sizeof(unsigned char),GFP KERNEL);
  for(i=0;i dbuf[i]=ADRXdata[i];
  copy_to_user(bur,dbuf,count);
  kfree(dbuf);
  return ret;
}

(4)ad_convert()实际完成A/D转换

  void ad_convert(void)
{
  rGPHDAT&=(~0x20);
  udelay(100000);
  spi_tx_data(ADTXdata[0]);
  ADRXdata[0]=rSPRDATO;
  spi_tx_data(0xff);
  ADRXdata [1 ]=rSPRDATO;
  rGPHDAT |=0x20;
}

(5)spi_tx_data()完成发送数据

  void spi_tx_data(unsigned char data)
{
  spi_poll_done();
  rSPTDAT0=data;
  spi_poll_done();
}

(6)spi_poll_done()轮询SPI状态

  static void spi_poll_done(void)
{
  while(!(rSPSTA0&0x01));
}

说明:1)ADTXdata和ADRXdata是unsigned char的全局数组变量,分别负责存放AD7888的控制寄存器数据和A/D转换的结果。2)ad_rd()中ad_convert()调用了2次,第1次调用用于通知要采某通道的数据,第2次调用用于得到该通道A/D转换的结果。这样虽然牺牲了一些转换的速度,但可使应用程序编程更加直观。

4 结论

应用带SPI接口的串行A/D转换器占用较少的微处理器I/O资源,硬件联接简单、软件易于实现,程序运行效率高。带有SPI接口的串行A/D转换器和ARM微处理器的结合可广泛应用于实现数据采集功能的掌上设备及其他嵌入式的系统,如:医疗仪器、通信设备、抄表设备等领域。

关键字:控制  采样  单端  基准 引用地址:AD7888与S3C2410的SPI接口及Linux下嵌入式驱动的实现

上一篇:AD7888与S3C2410的SPI接口及Linux下嵌入式驱动的实现
下一篇:嵌入式系统的LCD人机交互菜单设计

推荐阅读最新更新时间:2024-05-02 20:39

使用安捷伦4端口Tachyon光纤通道控制器和PCI Express系统总线实现RAID架构
本文将向您介绍一款采用光纤通道协议实现RAID控制器的系统设计方案。我们将重点讨论如何使用安捷伦Tachyon 4 Gb/s 4端口光纤通道协议IC,把多个磁盘通道加入在一个提供RAID应用的计算系统中,并对使用RAID存储技术的整个系统进行简单介绍(包括光纤通道拓扑及选项、FC终端、磁盘通道和处理器功能)。 RAID系统架构概述 数据存储的应用越来越广泛。过去的单一设备现在容纳或产生大量的数字信息。海量数据时代的到来加速了人们对信息安全存储的需求。光阴荏苒,人们保存了大量的数据,但是重新获得丢失的数据却要耗资巨大。为此,人们部署了可靠的数据存取系统来保存或存储数据。随着保护数据安全呼声的高涨,对RAID解决方案的需求也日益增加
[应用]
基于电流预测的SVPWM控制的研究
1.前 言   三相PWM整流器的直接电流控制具有电流响应快速性,直接电流控制的方式有:滞环电流控制【1】、固定开关频率控制【2】、空间矢量电流控制【3】等。然而由于电流采样周期及PWM控制延时的存在,使三相交流电流控制存在滞后,这将影响电流跟踪控制的动态性能。本文提出了基于电流预测直接控制的方法,控制PWM整流器的开关,可实现电流的无差拍控制。 2.预测电流直接控制原理   基于数字控制的三相VSR PWM电流控制器,因电流采样周期及PWM控制延时的存在,使三相VSR交流电流控制存在滞后,这将影响电流跟踪控制的动态性能。三相VSR PWM控制器,其电流控制的最小延时至少需要一个PWM开关周期,而预测电流直接控制的思想就是要求只经
[电源管理]
基于电流预测的SVPWM<font color='red'>控制</font>的研究
ADI公司16通道、12/16位数模转换器瞄准电信光模块控制应用
Analog Devices, Inc. (ADI),全球领先的高性能信号处理解决方案供应商,近日宣布推出一对高集成度16通道数模(D/A)转换器AD5767和AD5766。利用这两款器件,有线电信系统尺寸可大幅缩减,且性能不受影响。12位AD5767和16位AD5766均为全集成式器件,可提供中程到远程光纤电信部署的相干光系统所需的偏置范围。两款IC集成了广泛的分立元件以提供所需的电压范围和其他系统功能,其面积非常小。这些数模转换器非常适合实现光模块和光电转换功能,例如偏置控制,包括Mach-Zehnder调制器偏置控制。 这些转换器提供节省空间的4 x 4 mm WLCSP和6 x 6 mm LFCSP两种封装。利用用户供应的
[模拟电子]
一种基于IA思想的现场总线控制系统在水产业中的应用
0、引言  现场总线的出现促进了现场设备的数字化和网络化,并且使现场控制的功能功咿大。它基本上可以很好地解决DCS所存在的题目。基于现场总线产品的控制系统(FCS)将是产业现场控制系统的发展方向。不过目前同一的总线通讯协议尚未形成,固然现场总线在其它领域应用较多,如:智能建筑,但是在现场控制系统中应用的并不是十分广泛。  针对目前控制系统中存在的题目,考虑到长远发展趋势和实际情况,国内已经提出现场总线和DCS网络集成的现场控制系统。同时,很多生产厂家推出了远程智能I/O装置,作为DCS向FCS发展的中间过度产品。       但不管怎样改进,其控制系统的可靠性都是通过单个设备的可靠性和关键部件的冗余来实现的。有鉴于此,我们鉴戒了
[嵌入式]
Microchip推出集成PHY的新型EtherCAT®从属控制
LAN9252为系统设计人员带来了备有多个接口的EtherCAT控制器, 便于其灵活选择具有成本效益的单片机产品。 全球领先的整合单片机、混合信号、模拟器件和闪存专利解决方案的供应商 Microchip Technology Inc.(美国微芯科技公司)今日宣布推出集成了两个10/100 PHY的分立EtherCAT 从属控制器LAN9252。这款高度集成的器件配有两个10/100以太网收发器,同时支持光纤和铜线,并具备电缆诊断功能。LAN9252支持传统的主机总线和SPI/SQI 通信以及独立的数字I/O接口,令系统设计人员在执行实时EtherCAT通信标准时可以从多种单片机型号中灵活选择。此外,对于在工厂自
[物联网]
Atmel maXTouch S控制器应用于三星 Galaxy S4 Mini
爱特梅尔公司(Atmel® Corporation) 宣布三星已经选择爱特梅尔的maXTouch® mXT336S器件,助力其新近发布的Galaxy S4 Mini 智能手机之触摸屏。 三星Galaxy S4 Mini智能手机使用1.7GHz双核处理器,并且运行于Android 4.2.2操作系统,采用4.3英寸高清晰度超级AMOLED显示屏和使用爱特梅尔maXTouch解决方案助力的触摸屏。mXT336S控制器通过功能丰富的解决方案,提供终极人机触摸界面,实现了更薄的手写笔和更厚的手套支持、更高的触摸精度和较少的无意触摸,以及更低的功耗,从而达到更长的电池寿命、更明亮的显示屏和更快的响应速度。 爱特梅尔公司触摸产品营销总
[单片机]
永磁电机矢量控制算法合集
导读:本期文章主要介绍永磁同步电机矢量控制,两种控制策略(id=0和MPTA)。在相同工况条件下,比较两种控制策略各自的控制性能。 一、永磁同步电机矢量控制(FOC) 1.1永磁同步电机矢量控制策略 本文主要介绍前两种控制,后面的后期再单独介绍。 小结: 1.2工作原理 矢量控制也称为磁场定向控制。由于在永磁同步电机输入交流电时会在电机内部产生电磁转矩和耦合磁场,这会影响电机的运行并给永磁同步电机的控制带来新的问题。而矢量控制技术能够利用两次坐标变换将控制简单化。矢量控制要经过 Clark 变化和 Park 变化,先通过 Clark 变换将电机被控量从三相静止坐标系转换到两相静止坐标系,然后通过 Park 变换将
[嵌入式]
永磁电机矢量<font color='red'>控制</font>算法合集
e2v 日前计划发布高可靠性控制器版本
全球领先的高可靠性半导体解决方案供应商 e2v 日前宣布,计划发布高可靠性控制器版本,为 Qorivva™ 微控制器提供支持。PC5674F 是该系列新增的首款产品,将提供下一代航空电子处理单元、高速计算性能和最低的功耗。 机载平台分布式电子系统开始引起航空航天和国防行业极大的兴趣。直接嵌入到喷气发动机中或安装在飞机机翼上的电子控制装置可以节省大量的缆线重量,并增强整个系统的性能(包括提高燃油效率)。这些电子控制器必须能在高温和酷寒环境中保持运行,同时又能处理数据和执行复杂的计算任务。新型 e2v PC5674F 可满足这些要求,内置的存储器和模拟功能可大大节省电路板空间。可靠性更高的 PC5674F 型控制器的推出,还
[工业控制]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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