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转换器相关推荐
- A7799之STM32程序——STM32测试高精度ADC篇(二)
1. AD7799概述 AD7799是ADI公司早期推出一款高精度低速率的ADC,性能参数如下 •均方根(RMS)噪声: 27 nV(4.17 Hz.AD7799) 65 nV(16.7 Hz. ...
- AD7190之STM32程序——STM32测试高精度ADC篇(三)
1. AD7190概述 AD7190是一款适合高精密测量应用的低噪声完整模拟前端.它集成一个低噪声.24位Σ-Δ型模数转换(ADC).片内低噪声增益级意味着可直接输入小信号. 这款器件可配置为两路差 ...
- STM32 ADS8365 高精度 ADC 采集方案
开源一个 ADS8365 高精度 ADC 检测方案,转载请联系博主,翻版必究. 1.硬件原理图(最多 6 路输入) 2.数据手册 数据手册在这里下载 https://www.alldatasheetc ...
- 热电偶温度采集pid加热控制,高精度adc数据采集继电器输出
热电偶温度采集pid加热控制,高精度adc数据采集继电器输出 整套系统包括: 2路adc数据采集系统,采用24位高精度adc(美国adi公司产品ad7732),分辨率达到0.0002mv,可做高精度数 ...
- 桥式压力传感器输出mV用仪表运放还是选高精度ADC的问题
桥式压力传感器输出mV用仪表运放还是选高精度ADC的问题 这几天博采众长 吸收了很多大师的意见 都不建议用仪表运放去做这种信号的放大采集,直接用高精度的ADC芯片,带MCU那种.(仪表放大器非常难 ...
- 高精度ADC采集电量显示(MCP3421)
文章目录 Linux 一.简介 二.前序 三.MCP3421 1.官方资料下载 2.芯片讲解 四.电压转电量思路 五.程序 1.C程序 2.测试结果 六.总结 Linux 一.简介 最近在做一个嵌入式 ...
- 国产的高精度ADC HX711 CS1237 TM7707等如何选型
目录 名词解释 数据输出速率 建立时间 ADC转换周期 CS1237转换速度与有效位数的关系 TM7707测试代码 最近小伙伴们咨询我,国产很多高精度的ADC,如何选型使用呢?这里我们主要讨论几款24 ...
- 08 在ATmega8中真实可用的ADC转换器写法
有些时候我们喜欢用ATmega8中的代码生成编辑器去编辑一个完成的软件架构,但是博主在进行ADC代码测试编写的时候发现,ADC的编辑器是比较坑的,在ATmega8单片机的手册中我们可以发现有左对齐和右 ...
- STM32F030 12位高精度ADC用法
STM32F030C8有一个12位ADC接口,现用库函数编写ADC驱动代码 1.初始化接口,配置ADC参数通道 void bsp_adc_init(void) { ADC_InitTypeDe ...
- ADS1220 24位高精度ADC芯片驱动
芯片引脚及功能描述: 驱动代码: 头文件:ads1220.h #ifndef __ADS1220_H #define __ADS1220_H#include "em_device.h&quo ...
最新文章
- 网络电视视频服务器所放位置,pptv网络电视中多屏互动服务器删除的具体操作步骤...
- html表格编辑器退出编辑状态,html编辑器的使用方法
- 挨踢项目求生法则-战略篇
- python【蓝桥杯vip练习题库】ADV-147学霸的迷宫(广搜 bfs经典问题)
- HDU 4323 Magic Number(编辑距离DP)
- 香帅的北大金融学课笔记 -- 金融学专题
- 【HDU - 5489】Removed Interval(离散化,权值线段树,思维,最长上升子序列)
- android+动画完成后不可点击,动画后,TranslateAnimated ImageView无法点击[Android]
- 15个示例让你搞懂Linux中的cd命令
- [开发笔记]-使用jquery获取url及url参数的方法
- 黑客获取数据信息的目的和进攻手段及应对之策
- 视频直播技术详解之延迟优化
- python 方差_python+方差_python 方差_python 方差齐性检验 - 云+社区 - 腾讯云
- 下一个冷链独角兽:C轮融资后,九曳供应链如何撬动生鲜市场?
- IP-SAN存储技术
- JavaSE基础知识
- 微信开发40163 40029错误总结
- 超详细的Charles抓包工具的使用
- java代码重构工具_代码重构什么意思 Java代码重构的几种模式
- 该如何选择IT培训机构?