首页 理论教育 单片机与MCP3202串行A-D转换器的接口:实用指南

单片机与MCP3202串行A-D转换器的接口:实用指南

时间:2023-11-02 理论教育 版权反馈
【摘要】:本节以12位MCP320x系列芯片为例介绍串行A-D转换器的接口使用。MCP3202的输入配置位功能说明见表14-2。单片机与MCP3202接口电路比较简单,如图14-7所示是一种典型数据采集电路。

单片机与MCP3202串行A-D转换器的接口:实用指南

前面介绍的AD574是并行接口的A-D转换器,需要占用单片机很多I/O口线,连接线复杂,成本高,不利于设计便携式产品。如果系统性能允许,可以选择单片机片内集成A-D转换器或扩展片外串行A-D转换器,这样既节省成本,也可以减少挤占I/O口,从而使系统电路设计简单、灵活、方便。串行接口的A-D转换器优势明显,已成为设计智能数据采集系统的首选。本节以12位MCP320x系列芯片为例介绍串行A-D转换器的接口使用。

1.MCP3202的主要特性

MCP320x是12位分辨率、多通道、逐次逼近型、SPI串行接口的A-D转换器(其MCP3202/4/8分别是2、4、8个通道模拟输入),差分非线性和积分非线性失真最大值均为±1 LSB。MCP3202的特性是:MCP3202模拟输入可以编程为单端输入或伪差分输入对;片上包含采样和保持电路,在VCC=5V时的最大采样速率为100kS/s,在VCC=2.7V时的最大采样速率为50kS/s;采用低功耗CMOS技术,单电源供电,电压范围为2.7~5.5V,静态电流为0.5μA,工作电流为400μA,待机电流小于5μA;工业级温度范围为-40℃~+85℃;具有高采样速率、低电压、低功耗、宽温度范围、低线性误差及SPI总线接口等特点,可广泛应用于手写输入板触摸屏(如PDA)、数字化仪表(如测量仪表)、医疗电子产品(如心率计、血糖仪血压计)和现场数据采集(如现场巡检设备、环境监测设备)等领域

2.MCP3202引脚功能

MCP3202采用8引脚MSOP、PDIP、SOIC和TSSOP封装,内部结构及引脚如图14-4所示。

978-7-111-51881-5-Chapter14-25.jpg

图14-4 MCP3202内部结构与引脚图

MCP3202引脚功能说明如下:

CH0/CH1:通道0和通道1的模拟输入端。可通过编程将这两个通道用作单端模式下的两个独立通道或伪差分输入对。

CLK:SPI串行时钟输入端。引脚时钟用于启动转换,并在转换发生时为输出转换结果提供时钟。

DIN:SPI串行数据输入端,用于移入输入通道的配置数据。

DOUT:SPI串行数据输出端,用于移出A-D转换的结果。A-D转换输出时,数据总是在每个时钟的下降沿发生改变。

CS:片选/关断信号输入端,将其拉为低电平时可启动与器件的通信;将其拉为高电平时,可终止转换并使器件进入低功耗待机模式。在两次转换之间,必须将该引脚拉为高电平。

3.工作原理

MCP3202串行A-D转换器使用传统的SAR架构。在此架构下,当接收到启动位后,在串行时钟的第2个上升沿开始,由内部采样保持电容对信号采集1.5个时钟周期。采样结束后,打开转换器的输入开关,器件使用内部采样保持电容收集的电荷产生一个12位的串行数字输出编码,其转换速率可达100kS/s。MCP3202使用3线SPI兼容接口实现串行数据通信

MCP3202有两种工作模式,可通过编程将模拟输入通道配置为2个单端输入或1个伪差分输入对。当用作伪差分模式时,将CH0和CH1通道分别配置为IN+和IN-输入端,IN+输入的变化范围从IN-至(VDD+IN-),IN-输入被限定在Vss满幅值±100mV的范围内。IN-输入可用于消除IN+和IN-输入端存在的小信号共模噪声。

在伪差分模式工作时,如果IN+端的电压≤IN-端的电压,则结果编码为000H。如果IN+的电压≥{[VDD+(IN-)]-1LSB},则输出编码为FFFH。如果IN-端的电压比Vss电压低1个LSB以上,则IN+端的输入电压必须小于Vss,才能输出000H编码。反之,如果IN-比Vss电压高1个LSB以上,则IN+输入电压必须高于VCC电平,才能输出FFFH编码。信号源阻抗应尽量小,以减小转换的失调误差、增益误差和积分线性误差。

由A-D转换器产生的数字输出编码是输入信号VIN和参考电压的函数(假设用VCC作参考电压)。随着VCC电压的减小,LSB的大小也会相应地减小。理论上12位A-D转换器产生的数字输出编码为

978-7-111-51881-5-Chapter14-26.jpg

4.器件工作时序(www.xing528.com)

MCP3202按SPI协议的串行接口传输数据,CS=0时,启动与器件串行通信。如果在引脚CS为低电平时需要给器件上电,则必须首先将此引脚拉高,然后再拉低才能启动通信。MCP3202的SPI串行通信时序如图14-5所示。

根据图14-5时序,在CS=0,且DIN=1时,A-D接收到的第一个时钟构成启动位。启动位后面的SGL/DIFF位和ODD/SIGN位(用于选择输入通道配置),其中SGL/DIFF位用来选择单端输入或伪差分输入模式。ODD/SIGN位在单端模式下,用来选择使用的通道;而在伪差分模式下,用来确定通道的极性。MCP3202的输入配置位功能说明见表14-2。器件将在接收到启动位后的第2个时钟上升沿开始对模拟输入信号进行采样。采样周期在启动位后的第3个时钟下降沿结束。

978-7-111-51881-5-Chapter14-27.jpg

图14-5 按MSB格式输出的通信时序(MSBF=1)

表14-2 MCP3202的输入配置位功能说明

978-7-111-51881-5-Chapter14-28.jpg

在进行SPI串行通信时,CS=0,依次发送启动位、SGL/DIFF位和ODD/SIGN,在ODD/SIGN位后发送MSBF位。MSBF位用于选择发送数据的格式。如果MSBF位为高电平,则首先以MSB的格式从器件输出数据,数据发送完成后只要CS引脚仍为低电平,接下来的时钟器件输出为零(其串行通信时序如图14-5所示)。如果MSBF位为低电平,则器件将首先以MSB的格式输出发送转换结果,然后又反过来按LSB的格式,即从低位到高位开始重新发送输出数据(其串行通信时序如图14-6所示)。需要时,可将CS拉为低电平,在启动位之前通过DIN线输入前导“0”。

978-7-111-51881-5-Chapter14-29.jpg

图14-6 按LSB格式输出的通信时序(MSBF=0)

5.STC15W4K32S4单片机与MCP3202的接口设计

单片机通过I/O口模拟实现与MCP3202的SPI通信,通信时将该端口配置成在时钟下降沿输出数据,在时钟上升沿锁存数据。单片机与MCP3202接口电路比较简单,如图14-7所示是一种典型数据采集电路。MCP3202采用单极性接法,其中N1、R3R4C3组成一个阶低通滤波器C4R5可滤除直流;R1R2用于将模拟输入信号变换成0~+5V电压信号,以适应MCP3202单极性要求;被采集的传感器信号输入到N1运放放大器正向端,经过N1整形放大后送入CH0通道;MCP3202的SPI串行总线直接与单片机的I/O口(P1.0~P1.3)连接,编程采用模拟编程方式。

978-7-111-51881-5-Chapter14-30.jpg

图14-7 单片机与MCP3202接口电路

通信时,单片机通常需要给SPI端口一次性发送8位数据组,并将端口配置为在时钟下降沿输出数据,在时间上升沿锁存数据,产生的通信时钟脉冲应是8的倍数。但有时通信所需的时钟数很可能不是8的倍数,实际通信时,单片机发送的时钟数会多于实际所需的时钟数。此时通常需要在启动位之前发送多个前导“0”来实现,A-D转换器会忽略前导“0”信号。

【例14-6】 按照图14-7电路进行A-D转换,编写A-D采样数据。程序设计如下:

978-7-111-51881-5-Chapter14-31.jpg

978-7-111-51881-5-Chapter14-32.jpg

程序段先写入前导位、启动位和配置位共11个时钟,然后A-D转换器输出转换结果,单片机读取转换数据,需要13个时钟信号,其中1个时钟读出空位,12个时钟读出转换有效数据。

此外还有很多高精度A-D转换器,例如,24位串行接口的AD7714与AD7705/7706的用法基本相同,如果需要对微弱信号更高分辨率的测量,可以考虑选用AD7714,省去A-D转换器前级的高精度放大器。若需要多个模拟输入通道时可以选择ADS1278(8通道、24位高精度A-D转换器)或ADS1258(16通道、24位高精度A-D转换器)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈