当前位置:首页 > 单片机 > 单片机
[导读]串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口,它允许CPU与TTL移位寄存器、A/D或D/A转换器、实时时钟 (RTO)、存储器以及LCD和LED显示驱动器等外围接口器件以

串行外围设备接口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。

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

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

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所示。

 

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

为了实现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微处理器的结合可广泛应用于实现数据采集功能的掌上设备及其他嵌入式的系统,如:医疗仪器、通信设备、抄表设备等领域。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

通常情况下,任务的优先级是根据其重要性和紧急性来设定的。但是,在并发系统或多任务环境中,确实存在一种被称为“优先级反转”的现象。

关键字: 嵌入式 实时操作系统 操作系统

一直以来,嵌入式四轴运动控制器的设计都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来嵌入式四轴运动控制器系统硬件设计的相关介绍,详细内容请看下文。

关键字: 嵌入式 控制器 运动控制器

【2024 年 6 月 6 日美国德州普拉诺讯】Diodes 公司 (Nasdaq:DIOD) 宣布扩展广受欢迎的 DML30xx 智能负载开关系列。此次推出四款新产品:DML3008LFDS、DML3010ALFDS、...

关键字: 负载开关 固态硬盘 嵌入式

2024年6月4日 – 专注于引入新品并提供海量库存™的电子元器件代理商贸泽电子 (Mouser Electronics)宣布将于6月12-14日亮相2024上海国际嵌入式展(展位号:3号馆 436号展位)。届时,贸泽电...

关键字: 嵌入式 机器视觉 RFID

台湾新竹-2024 年 5 月 30 日 - 全球嵌入式控制器Embedded Controller及secure IC解决方案领导者新唐科技股份有限公司(Nuvoton Technology Corporation)宣...

关键字: 嵌入式 控制器 安全芯片

空中下载技术(Over-the-Air Technology, OTA)是通过移动通信的空中接口实现对移动终端设备及SIM卡数据进行远程管理的技术。本文采用了swupdate的方式进行ota升级,swupdate是一个基...

关键字: 核心板 嵌入式 Linux平台

新增 IEEE®1588 标准配置文件,满足电源和 5G专用网络同步要求

关键字: 嵌入式 5G 电源

加利福尼亚州圣克拉拉市—2024年4月30日―AMD(NASDAQ: AMD)今日公布2024年第一季度营业额达55亿美元,毛利率为47%,经营收入3600万美元,净收入1.23亿美元,摊薄后每股收益为0.07美元。基于...

关键字: 嵌入式 PC 人工智能

这款全新的中端MCU系列为设计人员提供了更高水平的安全性和灵活性

关键字: 嵌入式 单片机

为了满足日益增长的数据处理需求,铁威马NAS推出了全新的性能巅峰2024年旗舰之作F4-424 Pro,并搭载了最新的操作系统--TOS 6。这款高效办公神器的问世,无疑将为企业和专业人士带来前所未有的便捷与效率。

关键字: 存储 Linux 服务器
关闭
关闭