我是靠谱客的博主 愤怒心情,最近开发中收集的这篇文章主要介绍MCP3421高精度ADC转换器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

MCP3421高精度ADC转换器应用

一个项目的需求,使用的单片机型号为stm32f030f4,虽然单片机自带了12位ADC转换器,分辨率可以达到805.66uV(此型号没有内部参考电压,所以使用工作电压作为参考电压,所以精度值计算:3.3V除以2的12次方)。但这个项目需要检测很小的电流,最起码要能检测到1mA电流,最大电流可以达到3A,所以检测电阻不能太大。大就会超出量程,也会产生大的功耗。这个电阻选择了2512封装0.012欧,1mA电流产生的电压为12uV,这个电压单片机无法检测到,所以必须重新找个分辨率高的ADC转换器。

美国Microchip微芯有一颗SOT-23-6封装的高精度ADC转换芯片,下面我们看看它的概述:MCP3421 为单通道低噪声、高精度、差分输入A/D转换器,分辨率高达18 位,提供微型SOT-23-6 封装。片上精密2.048V 参考电压使得差分输入电压范围为±2.048V (电压 = 4.096V)。该器件使用2 线I2C兼容串行接口,并采用2.7V 至5.5V 单电源供电。用户通过2 线I2C 串行接口对控制配置位进行设定,从而MCP3421 器件可按3.75、15、60 或240 采样/ 秒(SPS)速率进行转换。该器件具有片内可编程增益放大器(PGA),用户可在转换开始之前选择PGA 增益为x1、x2、x4 或x8。因此MCP3421 在转换很小的输入信号时仍可保持高分辨率。该器件提供两种转换模式:a) 连续转换模式; b) 单次转换模式。在单次转换模式下,器件在完成一次转换后自动进入低电流待机模式,这样可显著降低空闲期间的电流消耗。

MCP3421 器件特别适合需要设计简单、低功耗和节省空间的各种高精度模/ 数转换应用。

引脚定义

1 VIN+ 正差分模拟输入引脚

2 VSS 接地引脚

3 SCL IIC 接口的串行时钟输入引脚

4 SDA IIC 接口双向串行数据引脚

5 VDD 正电源引脚

6 VIN- 负差分模拟输入引脚

SCL 和SDA 上拉电阻的典型值范围在标准模式(100 kHz)和快速模式(400 kHz)下为5 k 至10 k ;在高速模式(3.4 MHz)下小于1 k。在VDD 小于2.7V时,不建议使用高速模式。

芯片特点

1、体积小:SOT-23-6

2、转换分辨率可以选择:12、14、16 或18 位

3、PGA增益选项:x1、x2、x4 或x8

4、连续转换或单次转换

5、通讯方式使用二线制IIC总线

6、具有内部稳定参考电压2.048V

分辨率设置表:

从表中可以看出,最大分辨率为15.625uV,这样一来还是识别不到最小测试的12uV。别急,刚好这个芯片具有4档PGA增益,也就是说可以把输入信号进行放大,然后再进行转换,那么这里我们PGA增益选项选择x2就可以了,输入12uV电压,经过x2增益后就相当于输入了24uV,这样就可以检测到这个电压了。

在这个芯片中有个8位配置字节,用于选择输入通道、转换模式、转换速率和PGA 增益。该寄存器允许用户改变器件的工作条件和检查器件的工作状态。

bit 7 RDY:就绪标志位

此位为数据就绪标志。在读模式,此位表示输出寄存器是否被最新的转换数据更新。在单次转换模式下,向此位 写入1 将启动一次新的转换。
使用读命令读取RDY 位:
1 = 输出寄存器未更新
0 = 输出寄存器被最新转换结果更新
使用写命令写RDY 位:
连续转换模式:无影响
单次转换模式:
1 = 开始一次新的转换
0 = 无影响
bit 6-5 C1-C0:MCP3421 器件未使用这些位。
bit 4 O/C:转换模式位
1 = 连续转换模式(默认)。器件进行连续数据转换。
0 = 单次转换模式。器件进行单次转换并进入低功耗待机模式,直至收到新的读或写命令。
bit 3-2 S1-S0:采样率选择位
00 = 240 sps (12 位)(默认)
01 = 60 sps (14 位)
10 = 15 sps (16 位)
11 = 3.75 sps (18 位)
bit 1-0 G1-G0:PGA 增益选择位
00 = x1 (默认)
01 = x2
10 = x4
11 = x8

 

典型应用

          

 

最简单的使用就是单端输入,输出代码计算电压公式:

公式中LSB为分辨率,PGA为增益倍数。

硬件介绍就这么多,剩下的就是编程问题。由于这个芯片的通讯方式使用了二线制IIC总线,所以第一个要解决的就是编写出IIC总线驱动代码,这个可以选择硬件IIC也可以选择用IO口模拟,时钟速度在400KHz以下。学过编程的童鞋都应该写过EEPROM驱动,如果写过那个学过IIC总线。

由于MCP3421为6脚芯片,没有多余的IO口来做地址位选择,一般出厂时默认000,如果要使用多个MCP3421芯片,需要购买不同地址位,在一条总线上可以挂8颗MCP3421。

写 MCP3421 的时序图

程序代码如下

 

18 模式下读MCP3421 的时序图

18位模式下,一共接收4个字节,最后一位是配置字节,这个字节可以不读取,代码如下

使用的是单次转换方式。到此已经完成MCP3421的应用,如果不清楚请参考MCP3421数据手册。

最后

以上就是愤怒心情为你收集整理的MCP3421高精度ADC转换器的全部内容,希望文章能够帮你解决MCP3421高精度ADC转换器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部