目录

名词解释

数据输出速率

建立时间

ADC转换周期

CS1237转换速度与有效位数的关系

TM7707测试代码



最近小伙伴们咨询我,国产很多高精度的ADC,如何选型使用呢?这里我们主要讨论几款24位差分输入。

ADC/DAC相关名词解释

  • ADC输入范围
  • ADC转换速度
  • ADC稳定位数

在我们选的时候主要考虑上面三个参数

ADC参数对比
型号 供电范围 输入范围 输出速率 建立时间 PGA 时钟 单价(元)
Hx711

10Hz/80Hz 32,64 和 128 内/外 2.32
cs1237

VDD:3.0~5.5V

Ref外部:1.5~VDD+0.1

与增益有关

10Hz 、 40Hz 、 640Hz 、 1.28kHz

1 、 2 、 64 、 128
内/外 1.3
tm7707

VDD2.7~5.25

Ref内/外;

1~1.75 @3.3
1~3.5 @5V

与增益无关
500Hz最大 双通道约160mS 1, 2 ,4 ,8 ,16, 32, 64, 128 3.46

名词解释

数据输出速率

这里很多人第一次看数据输出速率,很容易理解成是SPI这种接口CLK的频率,这样是错误的。

这里的ADC输出速率是指ADC的转换速率。

这里的SPI clk 要>2KHZ

建立时间

这里的重点是要知道什么情况会发生建立时间

  • 电源上电/掉电
  • 通道切换
  • PGA/速率切换

ADC转换周期

转换周期也可以看作量化时间,可以简单看作 输出速率*位数

如24位ADC ,输出速率1khz

Tconvert ≈ 1ms *24 = 24ms

CS1237转换速度与有效位数的关系

有效分辨率的方只与AD速率和电源压值有关,计算方法为:AD速率增大倍数为增大2^1有效位降低0.5位,2^2为有效位降低2*0.5=1倍

1.28Khz 有效精度 = 20@5V - 7*0.5 = 16.5位

TM7707测试代码

下面这段代码是官方手册中的代码。

// MCU: AT89S52
// Target : TM7707
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit SCLK=P1^0;
sbit DIO=P1^1;
sbit RESET=P1^2;
sbit CS=P1^3;
sbit DRDY=P1^4;
uchar *intp;
uchar idata date8[180];
void write_byte1(uchar date) //写一字节数据
{ uchar i;CS=0; //CS 拉低,for(i=0;i<8;i++) { SCLK=0; //SCLK 拉低准备写数据_nop_();if(date&0x80) DIO=1; elseDIO=0; SCLK=1; //SCLK 拉高,写入一位数据 Date<<=1;}CS=1; //写完一个字节后 CS 拉高。
}
uchar read_byte1 ( ) //读一字节数据
{uchar j,b1;CS=0; for(j=0;j<8;j++) {SCLK=0; b1=(b1<<1)|DIO; SCLK=1; } return b1;
}
void save_data(void)
{uchar i0,i1;intp=date8;for(i0=0;i0<60;i0++){while(DRDY); //等待 DRDT 为低时,可读出数据 write_byte1(0x38); //向通信寄存器写入数据,选择通道 1 作为有效,将下一个操作设为读数据            寄存器。for(i1=0;i1<3;i1++) //连续存储一个数据。{*intp=read_byte1();intp++;}CS=1;}
}
void init( ) //初始化
{ RESET=1;SCLK=1;CS=1;DRDY=1;
}
void main(void) //主函数
{init();write_byte1(0X10); //向通信寄存器写数据,选择通道 1 作为有效通道,将下一个操作设为对设置寄存器进行写操作。write_byte1(0X20); //对设置寄存器写操作,选择 16 倍增益,无 BUF 缓冲器,双极性。write_byte1(0X50); //向通信寄存器写数据,选择通道 1 作为有效通道,将下一个操作设为对滤波低寄存器进行写操作。write_byte1(0X00); //向滤波低寄存器写入 0X00。write_byte1(0X20); //向通信寄存器写数据,选择通道 1 作为有效通道,将下一个操作设为对滤波高寄存器进行写操作。write_byte1(0X0F); //向滤波高寄存器写入 0X0F。save_data(); //MCU 连续存储 24 位数据 60 个。while(1); //循环等待。
}

国产的高精度ADC HX711 CS1237 TM7707等如何选型相关推荐

  1. A7799之STM32程序——STM32测试高精度ADC篇(二)

    1.  AD7799概述 AD7799是ADI公司早期推出一款高精度低速率的ADC,性能参数如下 •均方根(RMS)噪声:  27 nV(4.17 Hz.AD7799)  65 nV(16.7 Hz. ...

  2. AD7190之STM32程序——STM32测试高精度ADC篇(三)

    1.  AD7190概述 AD7190是一款适合高精密测量应用的低噪声完整模拟前端.它集成一个低噪声.24位Σ-Δ型模数转换(ADC).片内低噪声增益级意味着可直接输入小信号. 这款器件可配置为两路差 ...

  3. STM32 ADS8365 高精度 ADC 采集方案

    开源一个 ADS8365 高精度 ADC 检测方案,转载请联系博主,翻版必究. 1.硬件原理图(最多 6 路输入) 2.数据手册 数据手册在这里下载 https://www.alldatasheetc ...

  4. 热电偶温度采集pid加热控制,高精度adc数据采集继电器输出

    热电偶温度采集pid加热控制,高精度adc数据采集继电器输出 整套系统包括: 2路adc数据采集系统,采用24位高精度adc(美国adi公司产品ad7732),分辨率达到0.0002mv,可做高精度数 ...

  5. 桥式压力传感器输出mV用仪表运放还是选高精度ADC的问题

    桥式压力传感器输出mV用仪表运放还是选高精度ADC的问题 这几天博采众长  吸收了很多大师的意见  都不建议用仪表运放去做这种信号的放大采集,直接用高精度的ADC芯片,带MCU那种.(仪表放大器非常难 ...

  6. ADC芯片——CS1237的使用

    最近看到山西省电子设计大赛的一个题目--自制悬臂梁式简易电子称.具体题目要求如下: 这个题目好像是前年TI杯的一个题目.网上资料也比较多. 觉得这个题目应该很适合练手,于是就搞了一下.查了一番,觉得这 ...

  7. python代码用c语言封装_树莓派开发ADC芯片CS1237(C语言和python库开发)

    一.准备工作 1.安装树莓派官方系统 2.安装wiringpi库 1) sudo geit clone git://git.drogon.net/wiringPi 2) sudo apt-get in ...

  8. 树莓派开发ADC芯片CS1237(C语言和python库开发)

    源码地址https://github.com/dyingstraw/CS1237 一.准备工作 1.安装树莓派官方系统 安装树莓派官方系统 2.安装wiringpi库 sudo apt-get ins ...

  9. STM32F030 12位高精度ADC用法

    STM32F030C8有一个12位ADC接口,现用库函数编写ADC驱动代码 1.初始化接口,配置ADC参数通道 void bsp_adc_init(void) {     ADC_InitTypeDe ...

最新文章

  1. 编程小问题系列(2)——为什么WPF里MediaElement等视频控件不起作用
  2. Http的请求的全过程
  3. 网络电视视频服务器所放位置,pptv网络电视中多屏互动服务器删除的具体操作步骤...
  4. 战网AI危机!AlphaStar匿名潜入星际2天梯PK,进化版让人类玩家瑟瑟发抖
  5. 滑动轮播_这样运营轮播图可以增加订单
  6. MS-SQL CLR 直接读写文件,飞一般的感觉!
  7. 只要一点点力气就可以撬起重物?
  8. PHP gd库 验证码
  9. html5同心圆代码,HTML5/Canvas 鼠标跟随的同心圆
  10. Java设计模式笔记(1)单例模式
  11. 零式机器人_最帅机器人作品“EVA”“天元突破”谁才是男人真正的浪漫
  12. netcat、nc工具随记
  13. 数据结构题及c语言版4.31答案,数据结构参考题及答案修正版.doc
  14. Python编写微信打飞机小游戏(一)
  15. li标签中,img居中显示
  16. FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecate;的解决办法
  17. 已有企业认证的微信公众号快速创建一个企业小程序
  18. python调用word_Python调用win32com.client.Dispatch('Word.Application')报错汗血宝马
  19. 软件测试-offer选择,自研or外包
  20. win7文件夹每次打开新的窗口/卸载ie后/同一窗口中打开每个文件也没用

热门文章

  1. 那些永远消失的区块链巨头盘点
  2. Xilinx FPGA的SelectMAP与BPI配置模式的比较
  3. linux 全双工 wifi热点,wifi是全双工还是半双工
  4. Linux系统中dd命令用法详解
  5. 上半年薪资统计,数据岗中位数接近20K!
  6. svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的暴力解决方法
  7. [WorldWide_D幻想乡♂模拟赛][JZOJ4599]西行妖
  8. vue+vux vux安装出现错误
  9. ubuntu 网口状态_查看Linux下网卡连接状态(up还是down)?
  10. 我靠加班把老员工弄走了,昨天老板又给我画饼,一天天浑浑噩噩,Android开发究竟还有前途吗?