A/D转换器CS5550与单片机的接口程序设计

发布者:boczsy2018最新更新时间:2011-11-29 关键字:AD转换器  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所示。

[page]

 

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

[page]

    从图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的工业测温仪表中,取得较好效果。

 

 

关键字:AD转换器  CS5550 引用地址:A/D转换器CS5550与单片机的接口程序设计

上一篇:基于AVR型单片机智能双电源开关的研制
下一篇:利用ATmega8L单片机为主控的臭氧治疗仪设计方案

推荐阅读最新更新时间:2024-03-16 12:47

12位AD转换器MAX197及其在谐波分析仪中的应用
1 引 言   MAX197是MAXIM公司出品的12位8通道AD转换芯片,其主要特点如下: 12位分辨率; 单+5V工作电源;   可软件选择模拟量输入范围: 10V, 5V,0V~10V,0V~5V; 8个模拟输入通道; 6 s转换时间,100ksps采样速率; 可采用内部或外部采集控制模式; 两种电源关断模式; 内部或外部时钟; 内部4.096V参考电源或外界参考电源。 2 内部结构和引脚说明   图1所示为MAX197的内部结构框图,其核心部分是一个采用逐次逼近方式的DAC,前端包括一个用来切换模拟输入通道的多路复用器以及输入信号调理和过压保护电路。其内部
[测试测量]
12位<font color='red'>AD转换器</font>MAX197及其在谐波分析仪中的应用
8位逐次逼近AD转换器电路图
8位逐次逼近A,D转换器电路图
[模拟电子]
8位逐次逼近<font color='red'>AD转换器</font>电路图
AD转换器LTC1286围电路原理图
AD转换器LTC1286围电路原理图 应考虑LTC1286的输入特性以及外接传感器调理电路的输出特性,其取值一般为33~100 kl-/,且应R。:尺2。二极管Dl和D2构成输入双向限幅电路。三只4.7 V稳压管D3、D4、D5和两只限流电阻R3、R4组成LTC1286与DSP的直接连接电路。
[模拟电子]
<font color='red'>AD转换器</font>LTC1286围电路原理图
采样率为192kHz的24位AD转换器CS5361原理及应用
摘要:CS5361是CRYSTAL公司推出的192kHz采样率、多位(24位)音频Δ-ΣA/D转换器,它具有双通道输入、采样率高、动态范围大等特点,非常适合于高端音响或其它领域的应用。文中介绍了CS5361的主要特点、工作原理,并给出了它的典型应用实例。 关键词:AD转换器;CS5361;采样 1 CS5361的主要特性 CS5361是CRYSTAL公司推出的114dB、192kHz数据输出率的24位Δ-Σ结构音频AD转换器,其主要特性如下: ●采用多位Δ-Σ结构; ●具有24位转换精度; ●114 dB动态范围; ●总谐波失真+噪声优于-105 dB; ●系统采样率高达192kHz; ●功耗小于150mW
[模拟电子]
一种电力监控与数据采集系统设计
随着电力系统及其自动化的发展,越来越多的电力系统设备需要采用实时监控以及数据采集,从而保证电力系统设备可以安全、可靠地运行。因此,对电力监控与数据采集系统的研究,具有重要的现实意义。 本文设计了一种电力监控与数据采集系统,该系统采用USB接口作为通信方式,同时利用AD9238完成电力监控与数据采集,采集后的数据直接送到FPGA中。其中USB接口直接与FPGA相连,采集后的数据既可以暂存到FPGA中,也可直接经过USB接口发送到PC中,同时对于采集后的数据也可以在FPGA内部做相应的预处理后上报给PC机。因此,该电力监控与数据采集系统具有更广泛的适用性。 1 电力监控与数据采集系统总体设计 电力监控与数据采集系统总体设计框
[测试测量]
一种电力监控与数据采集系统设计
AD转换器的保真度测试检验纯度
引言   对正弦波进行精确数字化的能力是高分辨率 AD 转换器保真度的一项敏感度测试。该测试需要一个具接近 1ppm 残留失真分量的正弦波发生器。此外,还需要一个基于计算机的 AD 输出监视器,用于读取和显示转换器输出频谱成分。若想以合理的成本和复杂程度来实施此项测试,就必需进行其元件的设计并在使用之前完成性能验证。   概要   图 1 给出了系统的示意图。一个低失真振荡器通过一个放大器来驱动 AD。AD 输出接口对转换器输出进行格式化,并与负责执行频谱分析软件和显示结果数据的计算机进行通信。      振荡器电路   振荡器是系统中难度最大的电路设计部分。为了对 18 位 AD 进行有意义的测试,振荡器的不纯度必
[模拟电子]
<font color='red'>AD转换器</font>的保真度测试检验纯度
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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