国产的高精度ADC HX711 CS1237 TM7707等如何选型

news2024/7/4 4:32:42

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

ADC/DAC相关名词解释

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

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

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

10Hz/80Hz32,64 和 128内/外2.32
cs1237
10Hz 40Hz 640Hz 1.28kHz
1 2 64 128
内/外1.3
tm7707最大1KHz1, 2 ,4 ,8 ,16, 32, 64, 1283.46

 

 

名词解释

数据输出速率

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

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

这里的SPI clk 要>2KHZ

建立时间

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

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

ADC转换周期

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

        如24位ADC ,输出速率1khz

        Tconvert ≈ 1ms *24 = 24ms

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; 
        else
            DIO=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); //循环等待。
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/584487.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网页JS自动化脚本(八)使用网页专属数据库indexedDB进行数据收集

我们在网页上进行的活动,往往都需要进行收集一些简单的数据,但是因为浏览器的安全原因,浏览器基本上是无法与本地的操作系统直接产生数据交互的,这本来就是一个由于安全问题生产的无解问题,在浏览器里面是内置了几种数据库的,其中一种就是indexedDB,可以用来储存一些非常小的数…

多主题插件上线!开源的 API 管理工具居然这么有意思!

之前我一直在用的开源API 管理工具——Postcat 最近上线了新的主题插件&#xff0c;真的有意思&#xff01; 之前就用用户提 issue 没想到终于安排上了&#xff0c;给这个项目点赞&#xff01; 挑几款我偏好的主题插件&#xff0c;简单看看 第一款&#xff0c;【VSCode 主题】&…

鸿蒙Hi3861学习二十-编译构造

一、简介 在使用编译构造子系统前&#xff0c;应了解如下基本概念&#xff1a; 子系统 子系统是一个逻辑概念&#xff0c;它由一个或多个具体的组件构成、OpenHarmony整体遵从分层设计&#xff0c;从下向上依次为&#xff1a;内核层、系统服务层、架构层和应用层。系统功能按照…

电商用户行为分析__求前3点击量

测试代码 package Data_textimport org.apache.flink.streaming.api.TimeCharacteristic import org.apache.flink.streaming.api.functions.timestamps.BoundedOutOfOrdernessTimestampExtractor import org.apache.flink.streaming.api.scala._ import org.apache.flink.st…

KWin事件总结和相关类介绍

KWin事件总结和相关类介绍 目录 KWin事件总结和相关类介绍 1、事件相关模块 1.1 事件类型 1.2 事件管理 1.3 事件过滤器 2、KWin其他模块整理 2.1 窗口 2.2 Item 2.3 scene 3、事件传递流程 3.1 事件整体流程 3.2 事件传递时序图 4、事件流程样例 4.1 鼠标拖动修…

英伟达发布 532.03 驱动,为新游戏和新显卡带来支持

继英伟达 RTX 4060系列显卡陆续发售后&#xff0c;又发布了 GeForce Game Ready 532.03 WHQL 驱动&#xff0c;驱动人生整理了一下NVIDIA GeForce Game Ready 532.03 WHQL 驱动带来的支持与优化。 GeForce Game Ready 532.03 WHQL 驱动主要同步支持 RTX 4060 Ti 8G 显卡&#…

Hadoop3.1.4分布式搭建

Hadoop3.1.4分布式搭建 1. 基础环境准备 1.1 实验网络规划 hostnameip addrroleotherk8s-m13310.10.10.133NameNode, DataNode, NodeManageerk8s-m13410.10.10.134SecondaryNameNode, DataNode, NodeManageerk8s-m13510.10.10.135ResourceManager, DataNode, NodeManageerk8…

Java 多线程基础

文章目录 Java 多线程基础一、相关概念1. 程序、进程和线程2. 线程调度3. 并行与并发 二、线程的创建1. 继承 Thread 类2. 实现 Runnable 接口3. 实现 Callable 接口4. 线程池 三、Thread 类常用方法1. 构造方法2. 常用方法3. 其他方法 四、线程的生命周期五、线程同步1. 线程安…

Serverless 是什么?

文章目录 Serverless 是什么&#xff1f;Serverless 的前世今生面临挑战以应用为中心&#xff0c;无需运营基础架构自动伸缩为价值付费内置高可用和高安全 Serverless 行业及应用场景IT 自动化数据处理微服务架构IoT 后端系统游戏 Serverless 解决方案推荐SaaS Boot适合客户方案…

代码审查 idea

目录 文档 alibaba java coding guidelines 插件下载 Upsource 文档 https://download.csdn.net/download/qq_41169544/87545171https://download.csdn.net/download/qq_41169544/87545171 alibaba java coding guidelines 插件下载 Alibaba Java Coding Guidelines安装使用…

【珍藏版】SolVES模型的生态系统服务功能社会价值评估及拓展

生态系统服务是人类从自然界中获得的直接或间接惠益&#xff0c;可分为供给服务、文化服务、调节服务和支持服务4类&#xff0c;对提升人类福祉具有重大意义&#xff0c;且被视为连接社会与生态系统的桥梁。自从启动千年生态系统评估项目&#xff08;Millennium Ecosystem Asse…

OSI(Open System Interconnect)开放系统互联参考模型-7层模型(改版)

OSI&#xff08;Open System Interconnect&#xff09;开放系统互联参考模型-7层模型 1. OSI七层模型1.1 基本概念1.2 七层模型的划分1.3 数据传输过程 2. TCP/IP四层模型2.1 基本概念2.2 四层模型的划分2.3 数据传输过程 3. 涉及的协议及概念3.1 MTU1. 概念2. 关于mtu取值3. 修…

Anchor Free目标检测方法

faster rcnn anchor&#xff1a;尺寸比例固定 yolo anchor尺寸确定&#xff1a;通过聚类 Anchor Free方法 anchor的简单理解&#xff1a;在特征图上的模板&#xff0c;含有的信息为检测框的大小和尺度 Anchor based 方法小结 Faster rcnn(左上) yolo v3(右上) ssd (中) re…

python爬虫学习简记(更新中)

页面结构的简单认识 如图是我们在pycharm中创建一个HEML文件后所看到的内容 这里我们需要认识的是上图的代码结构&#xff0c;即html标签包含了head标签与body标签 table标签 table标签代表了一个网页页面中的表格&#xff0c;其包含了行和列&#xff0c;其中行标签我们使用tr标…

1.场景设计题

系统设计 文章目录 系统设计一、缓存设计1、Redis 缓存Key回收策略&#xff1f;1.1、Redis缓存Key过期策略1.2、Redis缓存Key回收策略 2、Redis缓存击穿如何解决&#xff1f;2.1、导致Redis缓存穿透原因有那些&#xff1f; 3、Redis缓存雪崩如何解决&#xff1f;4、Redis缓存击…

笛卡尔心形线

目录 一、前言 二、使用 EasyX 绘制笛卡尔心形线 一、前言 "谁能告诉我&#xff0c;这是什么&#xff1f;" "爱心呗" "哼&#xff0c;爱心&#xff0c;我们叫它心形线。关于心形线呢&#xff0c;还有一个美丽的故事&#xff0c;是跟笛卡尔有关。…

RabbitMQ六种工作模式01

01: Work Queue工作队列模式 //接口所有的属性都是静态常量属性 public interface RabbitContent {//队列String QEUEU_HELLO "hello";String QUEUE_WORKING "working";String QUEUE_BAIDU "baidu";String QUEUE_SINA "sina";//交换机…

【操作系统笔记】南京大学jyy老师

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了操作系统学习&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于南京大学操作系统jyy老师课程进行的&#xff0c;每个知识点的修正…

Windows系统内核溢出漏洞提权

目录 Windows内核溢出漏洞原理 溢出漏洞简介 什么是缓冲区 缓冲区溢出 缓冲区溢出目的 Windows内核溢出漏洞利用流程 提权实战思路 手工提权测试 辅助提权 EXP如何寻找 使用MSF提权 关于提权时可能遇到的问题 如果提权的时候发现无法执行命令的话&#xff0c;可以上…

零售EDI:如何与Transgourmet 建立EDI连接?

Transgourmet是一家总部位于法国的批发和供应商公司&#xff0c;为酒店、餐馆和快餐行业提供食品和非食品产品。在欧洲拥有广泛的市场覆盖&#xff0c;经营范围涵盖法国、德国、奥地利、波兰、罗马尼亚和瑞士等国家。 Transgourmet EDI 需求分析 1.传输协议 Transgourmet选择…