当前位置:首页 > 单片机 > 单片机
[导读]摘要:分析双通道低成本A/D转换器CS5550的接口特点,以ATmegal6单片机为例设计CS5550与单片机的接口电路。经过对ATmegal6单片机SPI口的分析,详细讨论使用硬件SPI接口和软件模拟SPI两种方式的程序设计,并给出相应的

摘要:分析双通道低成本A/D转换器CS5550的接口特点,以ATmegal6单片机为例设计CS5550与单片机的接口电路。经过对ATmegal6单片机SPI口的分析,详细讨论使用硬件SPI接口和软件模拟SPI两种方式的程序设计,并给出相应的软件流程图。最后对CS5550的两种接口方式进行比较。
关键同:模数转换器;CS5550;单片机;接口程序

    现代智能化仪器仪表中A/D转换器和单片机是重要组成部分。串行MD转换器的串口信号线数目较少,在数据采样速率较低的系统中有利于降低硬件间连线的复杂度,节省单片机的接口资源。在CS5550的性能特点及其片上串行接口的基础上,给出CS5550与单片机的接口程序设计方案。

1 CS5550的主要性能及接口特点
    CS5550是Cirrus Logic公司推出的一款双通道低成本△-∑型A/D转换器,内部集成有2个△-∑A/D转换器、2个放大器、1个串行接口以及1个温漂为25 ppm/℃的2.5 V参考电压源。CS5550在两个通道上都具有24位寄存器,其中通道1具有13位有效位,通道2具有10位有效位口。
    CS5550片上集成有1个双向数字串行接口,包括(片选信号)、SDI(数据输入)、SDO(数据输出)和SCLK(串行时钟)4条控制线。该串口与标准SPI接口协议兼容,可与带有SPI接口的单片机传输数据。另外,CS5550还有一个中断输出引脚,可通过配置其屏蔽寄存器(Mask Register)来设定中断,并可通过软件修改配置寄存器中的“IMODE IINV”位来决定中断的产生方式(高/低电平或上升/下降沿有效)。

2 单片机的SPI接口与CS5550连接
    SPI接口是由Motorola公司最先推出的,目前很多型号的单片机都集成有SPI接口,如ATMEL公司的ATmega8、PIC公司的PICl6F877、Analog Devices公司的ADuC812等。用户可使用单片机所提供的SPI接口与CS5550直接连接。这里以ATmegal6单片机为例讨论使用单片机的SPI接口实现读写CS5550的操作。
2.1 ATmegal6的SPI接口及其与CS5550的连接
    ATmegal6单片机内部的SPI接口可完成全双工、3线同步数据传输。它支持主/从机操作模式,作为主机时具有倍速模式(CK/2);具有写碰撞标志检测、传输结束中断标志、7种可编程的比特率,并可设置LSB或MSB首先发送。在实际使用该SPI接口时,需要将MOSI(主机输出从机输入)、MISO(主机输入从机输出)、SCK(串行时钟)、(从机选择)引脚依次与CS5550的SDI、SDO、SCLK、引脚相连,如图1所示。


    ATmegal6单片机中与SPI接口相关的寄存器有3个: SPCR(SPI控制寄存器)、SPSR(SPI状态寄存器)、SPDR(SPI数据寄存器)。其中,SPCR寄存器设置SPI接口的中断、数据顺序、主/从模式及串行时钟的相关特性;而SPSR寄存器中包括有SPI中断标志位(SPIF)、写碰撞标志位和倍速模式选择位,SPSR中的SPIF位将在SPI接口串行数据发送完成时置“l”,若此时用户已使能SPI接口中断且全局中断被打开。则会产生SPI接口中断。应该指出的是,在SPI接口数据接收完成时该SPIF位不会被置“1”,即没有接收结束标志位。串行时钟的产生由硬件自动完成;每当有新数据写入SPDR寄存器中,SPI接口会自动产生SCK信号将SPDR中的数据发送出去,同时将读取的数据存入SPDR的缓冲寄存器中。
2.2软件设计
    对CS5550的所有操作都是通过读写ATmegal6单片机的内部寄存器来完成的。在使用单片机的SPI接口之前,要对其进行初始化。这里采用查询方式来发送数据,故将SPCR中的最高位SPIE置“0”,禁止中断。使能SPI接口(SPE=1)。因CS5550的数据传输为MSB首先发送,故使DORD=O。将ATmegal6选择为主机模式(MSTR=1)。选择SPI工作模式0(CPOL=0,CPHA=0)。配置串行时钟设置为单片机晶振频率的1/16(SPRl=0,SPR0=1)。综合以上对SPCR各位的分析,应配置SPCR=Ox5l。另外还要对SPI接口相应的引脚方向进行配置:定义MOSI为输出、MISO为输入(SPI主机模式下由硬件自动配置为输入),SCLK为输出、为输出,SPI接口初始化后就可以与CS5550通信。
    由于直接采用单片机的SPI接口读写CS5550,字节中每一位的发送/接收均由硬件完成,这样可简化控制和数据采集程序:向CS5550发送命令字节时只需将其直接写入SPDR寄存器即可;而读取返回数据时只需读取SPDR寄存器即可。为使SPI通信能够可靠、稳定地运行,这里有两个问题需要注意:一个问题是在向SPDR寄存器写数据之前,应首先查询SPSR寄存器中的SPIF位,以确保发送中的数据不会被新写入的数据所破坏。用C语言编写程序时可以使用类似的“while(!SPSR_SPIF):”的形式等待数据发送结束;另一个问题是,由于ATmegal6单片机的SPI接口无接收结束标志位,在读取SPDR寄存器之前应插入延时程序以确保读回数据的完整性和准确性。该程序流程如图2所示。

3 使用软件模拟SPI接口
    在实际应用中,可能会出现所选用的单片机没有集成SPI接口或是SPI接口被其他功能所占用而又仍然需要使用SPI协议与外围器件通信的情况,这时就必须采用软件模拟的方式来实现SPI通信。一般来说,可以使用单片机的任何4个I/O接口与CS5550连接。但为便于与前一种方法(使用硬件SPI接口)进行比较,这里仍采用图1所示的电路连接方式。在编写SPI接口程序前,要对使用到的I/O端口进行配置:PB5为输出(MOSI),PB6为输入(MISO),PB7为输出(SCK),PB4为输出()。其中PB7端口初值为“0”,PB4端口初值为“l”。为了模拟SPI数据寄存器,这里定义3个unsigned char型变量SPI_transmit_buffer、SPI_receive_buffer和trans-mit_counter分别用来存放需要发送的数据、接收到的数据和已发送数据的位数。每一位数据的发送接收必须严格按照CS5550数据手册上的时序要求来编写,否则会造成数据传输错误。CS5550的读写时序如图3所示。


    从图3及其数据手册中的相关说明可知。CS5550读取SDI线上的命令发生在SCK的上升沿,而其会在SCK下降沿发生后20 ns(典型值)之内将下一位数据发送到SDO线上。根据以上分析,可以得到图4所示的SPI接口函数编写流程。


    若仍以实现CS5550单次转换、单片机读取其数据寄存器为例,则CS5550的采集函数编写流程图与第3部分中的图2相同,只需要利用这个软件模拟的SPI接口函数替换前面流程中对SPDR寄存器的读写即可。

4 硬件设计与软件模拟SPI接口的比较
    从上述讨论看出,硬件SPI接口的工作独立于CPU内核,这使得SPI数据的收发与CPU内核运算并行执行,提高单片机的工作效率。由于数据的收发完全由硬件完成,软件的编写不涉及具体收发细节,程序简单、速度快。而采用软件模拟实现SPI接口的方法则具有端口定义灵活、使用方便的特点。可以在不增加硬件成本的情况下,给不含SPI接口的单片机增加SPI通信功能。但软件模拟SPI需要占用CPU处理时间,故一般只在通信数据量不太大的情况下使用。

5 结束语
    模数转换器和单片机在智能化仪表的应用广泛,本文讨论的CS5550与单片机的两种接口方式具有普遍意义,对其他类似的设计提供参考。目前,以上两种方法均已被应用到某基于CS5550的工业测温仪表中,取得较好效果。

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

美国纽约州阿蒙克2022年10月20日 /美通社/ -- IBM(NYSE: IBM)发布 2022 年第三季度业绩报告。 IBM 董事长兼首席执行官 Arvind Kri...

关键字: IBM 软件 BSP 云平台

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

串口作为单片机开发的一个常用的外设,应用范围非常广。大部分时候,串口需要接收处理的数据长度是不定的。那么怎么才能判断一帧数据是否结束呢,今天就以STM32单片机为例,介绍几种接收不定长数据的方法。

关键字: 单片机 串口 STM32

单片机

21600 篇文章

关注

发布文章

编辑精选

技术子站

关闭