AD转换器CS50与单片机的接口程序设计.docVIP

AD转换器CS50与单片机的接口程序设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AD转换器CS50与单片机的接口程序设计

A/D转换器CS5550与单片机的接口程序设计 辛晓宁,吴子旭(沈阳工业大学信息科学与工程学院,辽宁沈阳 110178) 摘要:分析双通道低成本A/D转换器CS5550的接口特点,以 ATmega16单片机为例设计CS5550与单片机的接口电路。经过对ATmega16单片机SPI口的分析,详细讨论使用硬件SPI接口和软件模拟SPI两种方式的程序设计,并给出相应的软件流程图。最后对CS5550的两种接口方式进行比较。 关键词 :模数转换器;CS5550;单片机;接口程序 现代智能化仪器仪表中A/D转换器和单片机是重要组成部分。串行A/D转换器的串口信号线数目较少,在数据采样速率较低的系统中有利于降低硬件间连线的复杂度,节省单片机的接口资源。在CS5550的性能特点及其片上串行接口的基础上,给出CS5550与单片机的接口程序设计方案。 1 CS5550的主要性能及接口特点[1] CS5550是Cirrus Logic公司推出的一款双通道低成本Δ-Σ型A/D转换器,内部集成有2个Δ-Σ A/D转换器、2个放大器、1个串行接口以及1个温漂为25 ppm/℃的2.5 V参考电压源。CS5550在两个通道上都具有24位寄存器,其中通道1具有13位有效位,通道2具有10位有效位 [2]。 CS5550片上集成有1个双向数字串行接口,包括CS(片选信号)、SDI(数据输入)、SDO(数据输出)和SCLK(串行时钟)4条控制线。该串口与标准SPI接口协议兼容,可与带有SPI接口的单片机传输数据。另外,CS5550还有一个中断输出引脚INT,可通过配置其屏蔽寄存器(Mask Register)来设定中断,并可通过软件修改配置寄存器中的“IMODE IINV”位来决定中断的产生方式(高/低电平或上升/下降沿有效)。 2单片机的SPI接口与CS5550连接 SPI接口是由Motorola公司最先推出的,目前很多型号的单片机都集成有 SPI接口,如ATMEL公司的ATmega8[3]、PIC公司的PIC16F877[4]、Analog Devices公司的ADuC812[5]等。用户可使用单片机所提供的SPI接口与CS5550直接连接。这里以ATmega16单片机为例讨论使用单片机的SPI接口实现读写CS5550的操作。 2.1 ATmega16的SPI接口及其与CS5550的连接 ATmega16单片机内部的SPI接口可完成全双工、3线同步数据传输。它支持主/从机操作模式,作为主机时具有倍速模式(CK/2);具有写碰撞标志检测、传输结束中断标志、7种可编程的比特率,并可设置LSB或MSB首先发送[6]。在实际使用该SPI接口时,需要将MOSI(主机输出从机输入)、MISO(主机输入从机输出)、SCK(串行时钟)、SS(从机选择)引脚依次与CS5550的SDI、SDO、SCLK、CS引脚相连,如图1所示。 ATmega16单片机中与SPI接口相关的寄存器有3个:SPCR(SPI控制寄存器)、SPSR(SPI状态寄存器)、SPDR(SPI 数据寄存器)。其中,SPCR寄存器设置SPI接口的中断、数据顺序、主/从模式及串行时钟的相关特性;而SPSR寄存器中包 括有SPI中断标志位(SPIF)、写碰撞标志位和倍速模式选择位,SPSR中的SPIF位将在SPI接口串行数据发送完成时置“1”,若此时用户已使能SPI接口中断且全局中断被打开,则会产生SPI接口中断。应该指出的是,在SPI接口数据接收完成时该SPIF位不会被置“1”,即没有接收结束标志位[7]。串行时钟的产生由硬件自动完成:每当有新数据写入SPDR寄存器中,SPI接口会自动产生SCK信号将SPDR中的数据发送出去,同时将读取的数据存入SPDR的缓冲寄存器中。 2.2软件设计 对CS5550的所有操作都是通过读写 ATmega16单片机的内部寄存器来完成的。在使用单片机的SPI接口之前,要对其进行初始化。这里采用查询方式来发送数据,故将SPCR中的最高位SPIE置“0”,禁止中断。使能SPI接口(SPE=1)。 因CS5550的数据传输为MSB首先发送,故使DORD=0。将ATmega16选择为主机模式(MSTR=1)。选择SPI工作模式0(CPOL=0,CPHA=0)。配置串行时钟设置为单片机晶振频率的1/16(SPR1=0,SPR0=1)。综合以上对SPCR各位的分析,应配置 SPCR=0x51。另外还要对SPI接口相应的引脚方向进行配置:定义MOSI为输出、MISO为输入(SPI主机模式下由硬件自动配置为输入),SCLK为输出、SS为输出。SPI接口初始化后就可以与CS5550通信。 由于直接采用单片机的SPI接

文档评论(0)

yaoyaoba + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档