项目进展(六)-继续学习32位ADC芯片ADS1285

news2024/12/26 15:28:27

一、数据手册学习

1.1时序图

SPI时序图,这是很重要的一个地方,一定要在代码中将SPI配置成对应的模式。
在这里插入图片描述
先放一堆截图在这吧,一些引脚的功能及特性还未看到,等具体了解之后再详细介绍下面几张截图的时序:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

1.2 内部框图及各部分介绍

注意:该芯片的噪声特性取决于参考电压,参考电压为4.096V或者5V时,噪声性能最好;参考电压为2.5V(设计时需要注意,若参考电压设计为2.5V,那么AVDD1要设计为3.3V而不是5V),会降低噪声特性。
下图是芯片的内部框图,稍后会对各个模块进行一一的介绍
在这里插入图片描述
部分引脚简介:

  1. SYNC:ADC同步引脚,有脉冲同步和连续同步
  2. RESET:复位引脚,由施密特触发输入,抗噪声
  3. PWDN:在ADC不使用时切断电源

1.2.1 模拟输入和多路复用器

在这里插入图片描述
在输入端已经集成了ESD(静电保护)二极管,不再需要我们自己设计外围的静电保护电路;ADC包含两个差分输入通道,多路复用器在两个差分输入之间选择进行测量。多路复用器还提供了测量噪声和偏置的测试模式。短输入测试配置可带或不带400-Ω电阻,以模拟800-Ω检波器产生的热噪声。多路复用配置如下表所示。
在这里插入图片描述

1.2.2 可编程增益放大(PGA)和缓冲(Buffer)

在这里插入图片描述
缓冲操作会禁用PGA bias,降低设备功耗。“当AVDD1 = 3.3 V时,由于PGA增益= 1的输入余量有限,因此必须在此条件下使用缓冲器。”–对于手册的这句话,我个人理解是:如果设计AVDD1为3.3V,那么PGA不能使用,只能使用Buffer(个人理解,如有错误,还请指正!)。
PGA可提供1~16的模拟增益,通过数字缩放提供32和64的增益。
PGA增益由CONFIG1寄存器的gain[2:0]位编程:
在这里插入图片描述
下图显示了AVDD1 = 5v、输入共模电压= 2.5 V、差分输入电压=±2.5 VPP、增益= 1时的输入输出电压。PGA输入电压的绝对最小值和最大值(1.25 V和3.75 V)分别为差分信号电压加共模电压的±1/2(±1.25)。PGA在负峰值处提供0.15 v的输入电压裕量,在正峰值处提供0.4 v的输入电压裕量。如图所示,当ADC工作在4.096 v或5v参考电压下时,PGA增益增加了× 1.5。PGA在正、负峰值处提供0.475 v输出电压裕度。
在这里插入图片描述
当AVDD1 = 3.3 V工作时,PGA不支持±2.5-VPP的输入信号。对于±1.25 - vpp的输入信号(PGA增益= 2),通过将共模电压提高0.1 V至AVSS + 1.75 V来增加输入净空。下图给出了AVDD1 = 3.3 V、VCM = 1.75 V、输入信号=±1.25 VPP、增益= 2时的输入输出工作净空。当VREF = 2.5 V时,PGA使用正常增益缩放。
在这里插入图片描述
该芯片有一个缓冲选择,可以绕过PGA,降低功耗。当AVDD1工作在3.3 V时,使用±2.5 vpp输入信号缓冲器。通过设置CONFIG1寄存器的GAIN[2:0] bits = 111b来启用缓冲区操作。
下图为AVDD1 = 3.3 V、VCM = 1.65 V、输入信号=±2.5 VPP时的缓冲电压净空。当AVDD1 = 3.3 V工作时,缓冲器有足够的电压余量,可以承受±2.5-VPP的输入信号。
在这里插入图片描述
无论PGA或缓冲操作,从每个缓冲输出连接两个47-nF, C0G介电电容器到AVSS (CAPBP和CAPBN)。电压电荷泵增加了缓冲输入的操作净空。在CAPC和AGND之间连接一个外部4.7-nF电容器,用于电荷泵操作。
在这里插入图片描述

1.2.3 参考电压输入

该芯片提供三种参考电压选择:5 V、4.096 V或2.5 V。使用VREF = 5 V或4.096 V实现最大动态范围性能,这需要AVDD1 = 5 V才能运行如果AVDD1 = 3.3 V,则限制参考电压为2.5 V(一定要注意!!!)。通过CONFIG1寄存器的REF[1:0]位编程使参考电压与物理电压匹配。使用低噪声的精密电压基准,在测量带宽内最佳小于0.5 μVRMS。
下图给出了一个简化的参考输入电路。与模拟输入类似,参考输入由ESD二极管保护。如果参考输入低于AVSS - 0.3 V或高于AVDD1 + 0.3 V,则保护二极管可以导通。如果这些条件是可能的,使用外部箝位二极管,串联电阻,或两者兼而有之,以限制参考输入电流到规定值。
在这里插入图片描述

1.2.4 IOVDD电源

IOVDD数字电源工作在两个电压范围:1.65 V至1.95 V和2.7 V至3.6 V。如果IOVDD工作在1.65 v ~ 1.95 v范围内,请将IOVDD直接连接到CAPD引脚上。当IOVDD工作在1.65 v ~ 1.95 v范围时,接线方式如下图所示。否则,如果工作在2.7 v ~ 3.6 v范围内的IOVDD,不要将连接在一起
在这里插入图片描述

1.2.5 调制器

调制器采用多比特delta-sigma架构,具有低功耗和出色的动态范围性能,频谱中的杂散音水平非常低。调制器将内部量化器的量化噪声塑造为带外频率范围,在该频率范围内噪声被数字滤波器去除。留在通带区域内的噪声是密度恒定的热噪声(白噪声)。通带内的综合噪声由数字滤波器OSR决定。

1.2.6 数字滤波器

数字滤波器对调制器数据进行抽取和滤波以提供高分辨率输出数据。通过调整通过OSR的滤波量,可以在总噪声和带宽之间进行权衡。提高OSR降低了总噪声,同时降低了信号带宽。如下图所示,采样率转换器(SRC)在输入到数字滤波器块之前从调制器接收数据。
在这里插入图片描述
数字滤波器由三部分组成:可变抽取正弦滤波器;可变系数、固定抽取FIR滤波器;和一个可编程高通滤波器(IIR)。所需的滤波器路径由CONFIG0寄存器的**filter[1:0]**位选择。
sinc滤波器提供部分滤波的数据,绕过FIR和HPF滤波器和用户校准。
对于完全过滤的数据,选择FIR过滤器选项
IIR滤波器级去除直流和低频数据
FIR和组合FIR + IIR滤波器被路由到用户校准块和输出代码裁剪块

具体的滤波器介绍,我就不写了(菜鸡一个,信号与系统没学好,有点看不明白)。

1.2.8 时钟输入

操作需要时钟信号(从时序图可以看出,与SCLK,即SPI的时钟信号区别开来)。时钟信号应用于CLK引脚,fCLK = 8.192 MHz用于高功率和中功率模式4.096 MHz用于低功率模式。与许多精度数据转换器一样,需要低抖动时钟来实现数据表性能。避免使用rc时钟振荡器(我们使用TI推荐的8.092MHz有源晶振)。建议使用水晶时钟源。为了避免时钟信号振铃,可以在到源端的时钟PCB线路中放置一个串联电阻。时钟信号走线应远离其他时钟信号、输入引脚和模拟组件。

1.2.9 GPIO

ADC提供两个通用I/O (GPIO)引脚,可用作数字输入或输出。GPIO电压等级为IOVDD和DGND。GPIO模块示意图如下图所示。
通过GPIO寄存器对GPIO进行编程。gpio被编程为GPIOx_DIR位的输入或输出。GPIO状态通过GPIOx_DAT位进行读写。当作为输出编程时,读取GPIOx_DAT位返回先前写入的寄存器位值。如果gpio未使用,请使用下拉电阻终止gpio,以防止引脚浮动。
在这里插入图片描述

1.3 芯片功能模式介绍

1.3.1断电模式

通过将PWDN引脚设为低电平或通过发送STANDBY命令的软件控制来进行断电。如果需要退出断电模式,可以将PWDN调高或发送WAKEUP命令退出软件断电(时钟运行)。断电使模拟电路失效;然而,数字LDO (CAPD引脚)仍然偏置,从IOVDD提取小偏置电流。相比之下,软件断电会产生更大的IOVDD偏置电流。在两种断电模式下,数字输出的交流信号停止,但保持高或低驱动。数字输入不能浮动;否则,漏电流会从IOVDD电源流出。如果断电时时钟被打断,则复位ADC。断电时同步丢失;因此需要同步ADC。

1.3.2 复位

ADC有三种复位方法:上电复位(POR)、reset引脚或reset命令。
通过引脚复位ADC,驱动reset低电平至少两个fCLK周期,然后返回高电平进行复位。
通过命令复位,在复位命令的SCLK上升沿第8条之后的下一个fCLK上升沿生效。在重置时,过滤器将重新启动,寄存器将重置为默认值。

1.3.3 同步

通过SYNC引脚或SYNC命令对ADC进行同步,从而重新启动数字滤波器周期。在CLK的下降沿上同步后,引脚的同步发生在CLK的下一个上升沿上。SYNC命令的同步发生在CLK的上升沿,在该命令的第8位之后。
以下情况会导致同步丢失:
在这里插入图片描述
同步控制方式有脉冲同步和连续同步两种。同步模式由ID/SYNC寄存器的SYNC位编程。

1.3.3.1 脉冲同步

脉冲同步模式无条件在SYNC上升沿进行同步。当同步时,内部过滤器内存复位,DRDY变高,过滤器周期重新开始。之后的63个DRDY周期被禁用,以允许数字滤波器进行设置。当转换数据准备好时,DRDY断言为低

1.3.3.2 连续同步

连续同步模式提供了接受连续时钟信号到同步引脚的选项。ADC将SYNC时钟信号的周期与DRDY信号的N个周期进行比较,以确定是否可以重新同步。最初,第一个SYNC正边同步ADC。只有当SYNC的上升沿在N多个DRDY周期之间的时间间隔相差至少±1个fCLK周期时,才会发生重新同步,其中N = 1,2,3…否则,SYNC时钟周期与已经存在的DRDY脉冲处于同步状态,不会发生重同步。注意,当采样率转换器启用时,不能使用连续同步模式
同步完成后,DRDY继续脉冲;然而,数据保持低63个数据周期,以允许数字滤波器设置。由于数字滤波器的初始延迟,同步输入信号和DRDY脉冲表现出偏移时间。偏移时间是数据速率的函数。

1.3.4 采样率转换器

采样率转换器(SRC)通过对调制器数据以写入SRC寄存器的补偿因子设定的新速率重新采样来补偿时钟频率误差。频率补偿范围为±244 ppm,分辨率为7.45 ppb(1 / 227)。时钟频率误差通过向SCR0和SRC1寄存器写入一个值来补偿。寄存器值为2补码格式,用于正负频率误差补偿。正寄存器数据值降低数据速率频率(增加周期)。新的数据速率频率由DRDY信号的频率观测到。
8000h禁用采样率转换器。0000h使数据不加补偿地通过,但在同步输入到DRDY脉冲的时间延迟上增加了8 / fCLK延迟。
在这里插入图片描述
注意:!!!在启用或禁用采样率转换器后重新同步ADC!!!

1.3.5 偏移和增益校准

ADC集成了校准寄存器来校正偏移和增益误差。如下图所示,从滤波器数据中减去24位偏移量(offset[23:0]),然后乘以24位增益值(gain[23:0]),再除以400000h。数据被裁剪为32位以产生最终输出。当高通滤波器(IIR)启用时,偏移操作被绕过
在这里插入图片描述

1.3.5.1 偏移寄存器

偏移量校正是由一个24位字组成的三个8位寄存器(高地址是MSB)。偏移值左对齐以与32位数据对齐。偏移值为2补码,最大正值为7FFFFFh,最大负值800000h。从转换数据中减去OFFSET,如下表所示。偏置误差通过带输入短多路复用器选项的偏置校准命令或通过收集短输入ADC数据并将值写入寄存器来纠正。虽然偏置校正范围从-FS到+FS,但偏置和增益校正的总和不得超过未校准范围的106%。
当高通滤波器被启用时,偏移校正被禁用。偏移值被用作起始值,以缩短高通滤波器的设置时间。要重新加载偏移值到HPF,请禁用并重新启用高通滤波器。
在这里插入图片描述

1.3.5.2 增益寄存器

增益校正是通过一个24位字,由三个8位寄存器(高地址= MSB)组成。增益值为24位,用连续二进制编码,对于gain[23:0],归一化为1.0,等于400000h。应用校准信号后,通过增益校准命令或通过收集ADC数据并将计算值写入增益寄存器来校准增益误差。下表列出了GAIN[23:0]寄存器值的示例。
虽然增益值的范围可以大于或小于1,但偏置和增益校正的总和不得超过未校准范围的106%(即不超过1.06)。
在这里插入图片描述

1.3.5.2 校准过程

可以使用ADC校准命令或手动校准来执行ADC校准:

  1. 选择PGA或缓冲操作,输入通道和PGA增益条件进行校准
  2. 预置OFFSET寄存器= 000000h和GAIN寄存器= 400000h
  3. 禁用高通滤波器进行偏移校准。短输入到系统,或使用输入MUX提供短输入。系统级输入短可以产生更精确的校准。输入确定后,发送OFSCAL命令或执行手动校准
    a. OFSCAL命令。命令发出后,DRDY在81个转换周期后被驱动至低电平,表示校准完成。OFFSET寄存器用新的校准值更新。如下图所示,第一个数据输出使用新的OFFSET值
    b.手动校准。等待数字滤波器至少64次转换,然后平均一些数据点,以提高校准精度。将该值写入24位OFFSET寄存器
  4. 施加增益校准电压。输入确定后,发送GANCAL命令或执行手动校准
    a. GANCAL命令。施加正直流满量程校准电压。命令发出后,DRDY在81个转换周期后被驱动至低电平,表示校准完成。ADC计算增益,使满量程码等于应用的校准信号。如下图所示,第一个数据输出使用新的“GAIN”值
    b.手动校准。对采样率或略低于满量程(例如,增益= 1时为2.4 V)的直流校准信号应用交流相干信号。使用小于满量程的校准信号可防止截断输出代码,否则会导致不正确的校准。等待64转换的数字滤波器解决,然后平均一些数据点,以提高校准精度。对于交流信号校准,使用一些相干信号周期来计算均方根值。
    下面的公式用来计算手动校准的增益值。
    在这里插入图片描述
    在这里插入图片描述

二、总结

上面的一些介绍有很多是数据手册翻译过来的,然后掺杂一些自己的理解,可能不是很准确,这篇博客基本上已经把芯片的一些功能介绍完毕了,接下来也就是SPI的格式以及Register map的介绍了,这部分会在下一篇博客中进行详细介绍。

三、往期回顾

项目进展(一)-晶振正常输出、焊接驱动芯片、查找芯片手册并学习
项目进展(二)-配置MCT8316ZR芯片,主要学习如何根据数据手册配置外设等
项目进展(三)-电机驱动起来了,发现了很多关键点,也遇到了一些低级错误
项目进展(四)-双电机均可驱动,配置模拟SPI,调平仪功能初步实现!
项目进展(五)-修复PCB电路板,学习32位ADC芯片ADS1285

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

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

相关文章

大模型RLHF算法更新换代,DeepMind提出自训练离线强化学习框架ReST

文章链接: https://arxiv.org/abs/2308.08998 大模型(LLMs)爆火的背后,离不开多种不同基础算法技术的支撑,例如基础语言架构Transformer、自回归语言建模、提示学习和指示学习等等。这些技术造就了像GPT-3、PaLM等基座…

问答雕虫1

问题: 现在有如下表 假设按时间顺序,记录中连续出现0.2 0.3 0.5 0.7四条记录记为一次有效数据组,统计一段时间范围内,有效数据组出现的次数,最终计算有效数据组在整个时间范围内的记录的占比。用mysql语句或者函数如何…

uniapp uni.showToast 一闪而过的问题

问题:在页面跳转uni.navigateBack()等操作的前或后,执行uni.showToast,即使代码中设置2000ms的显示时间,也会一闪而过。 解决:用setTimeout延后navigateBack的执行。

css自学框架之选项卡

这一节我们学习切换选项卡,两种切换方式,一种是单击切换选项,一种是鼠标滑动切换,通过参数来控制,切换方法。 一、参数 属性默认值描述tabBar.myth-tab-header span鼠标触发区域tabCon.myth-tab-content主体区域cla…

C语言动态内存管理

🐵本篇文章将会对动态内存管理相关知识进行讲解 1. 为什么要存在动态内存管理❓ 目前我们掌握了两种开辟内存的方式,分别为: int a 10;//存放一个值 int arr[] { 1,2,3,4,5,6,7,8,9,10 };//存放一组数 这两种内存开辟方式都是静态的&#…

2023年山东省安全员C证证考试题库及山东省安全员C证试题解析

题库来源:安全生产模拟考试一点通公众号小程序 2023年山东省安全员C证证考试题库及山东省安全员C证试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业人员上岗证考试大…

人脸识别:FaceSDK 8.1 Crack

FaceSDK 使 Microsoft Visual C、C#、Objective C、Swift、Java、VB、Delphi 和 Python 开发人员能够为 Web、Windows、Linux、macOS、iOS 和 Android 构建具有人脸识别和基于人脸的 32 位和 64 位应用程序生物特征识别功能 FaceSDK 用于数百个应用程序,用于通过网络…

极大似然估计概念的理解——统计学习方法

目录 1.最大似然估计的概念的理解1 2.最大似然估计的概念的理解2 3.最大似然估计的概念的理解3 4.例子 1.最大似然估计的概念的理解1 最大似然估计是一种概率论在统计学上的概念,是参数估计的一种方法。给定观测数据来评估模型参数。也就是模型已知,参…

Flutter项目安装到Android手机一直显示在assembledebug

问题 Flutter项目安装到Android手机一直显示在assembledebug 原因 网络不好,gradle依赖下载不下来 解决方案 修改如下的文件 gradle-wrapper.properties 使用腾讯提供的gradle镜像下载 distributionUrlhttps://mirrors.cloud.tencent.com/gradle/gradle-7.5…

SpringBoot-Shiro安全权限框架

Apache Shiro是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。 官网: http://shiro.apache.org/ 源码: https://github.com/apache/shiro Subject:代表当前用户或…

【问题证明】矩阵方程化为特征值方程求得的特征值为什么是全部特征值?不会丢解吗?

问题 这个问题困扰了我好久,一直感觉如果有其他的特征值没法证伪,不过一直存在思想的层面,没有实际解决,今天突然想到动笔来解决,遂得解,证明如下。 证明 总结 这个证明看似证明过后很直观,但…

10.4 小任务

目录 QT实现TCP服务器客户端搭建的代码&#xff0c;现象 TCP服务器 .h文件 .cpp文件 现象 TCP客户端 .h文件 .cpp文件 现象 QT实现TCP服务器客户端搭建的代码&#xff0c;现象 TCP服务器 .h文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #includ…

智能合约漏洞,BEVO 代币损失 4.5 万美元攻击事件分析

智能合约漏洞&#xff0c;BEVO 代币损失 4.5 万美元攻击事件分析 一、事件背景 北京时间 2023 年 1 月 31 日&#xff0c;在 twitter 上看到这样一条消息&#xff1a; BEVO 代币被攻击&#xff0c;总共损失 45000 美元&#xff0c;导致 BEVO 代币的价格下跌了 99%。 有趣的是…

编程新手?跟着这个教程,用Python画出小猪佩奇

小猪佩奇是许多小朋友们的心头好&#xff0c;它的形象可爱、颜色鲜艳。你知道吗&#xff0c;只需要Python中的一个简单模块&#xff0c;我们就可以自己绘制出这个可爱的形象&#xff01;本文将教你如何使用Python的turtle模块&#xff0c;一步步画出小猪佩奇。 1. 准备工作&a…

当我们做后仿时我们究竟在仿些什么(四)

就像人类容易接受自然数&#xff0c;但对于负数缺乏某种直觉上的认识一样&#xff1b;后仿过程中经常出现的 Negative Delay 和 Negative Timing Check 也非常容易使人困惑。 Warning-[SDFCOM_NICD] Negative INTERCONNECT Delay encountered今天这篇首先简要分析这些 Negativ…

创建线程池

如何创建线程池及处理相应任务 目录 如何创建线程池及处理相应任务线程池定义解决的问题(需求)工作原理实现线程池创建示意图重要构造器创建线程池(ExecutorService)线程池任务处理常用API处理Runnable任务处理Callable任务 使用工具类(Executors)创建线程池常用API应用案例 拓…

桌面自动化工具总结

引言:产品经理提出桌面程序需要自动化的测试,避免繁琐的人肉点击。说干就干。 现有自动化工具是五花八门,我找了两个框架。 这两个框架都是基于微软的UIA 框架,链接地址 https://learn.microsoft.com/en-us/windows/win32/winauto/uiauto-providerportal?source=recommen…

以太网的MAC层

以太网的MAC层 一、硬件地址 ​ 局域网中&#xff0c;硬件地址又称物理地址或MAC地址&#xff08;因为用在MAC帧&#xff09;&#xff0c;它是局域网上每一台计算机中固化在适配器的ROM中的地址。 ​ 关于地址问题&#xff0c;有这样的定义&#xff1a;“名字指出我们所要寻…

【Spring】Bean作用域和生命周期

Bean作用域和生命周期 一. Bean 的作用域1. Bean 的 6 种作⽤域&#xff1a;①. singleton②. prototype③. request④. session⑤. application⑥. websocket单例作用域(singleton) VS 全局作⽤域(application) 2. 设置作用域 二. Spring 执行流程和 Bean 的生命周期1. Spring…

MySQL优化、锁、总结常见问题

慢 SQL 如何定位呢&#xff1f; 慢 SQL 的监控主要通过两个途径&#xff1a; 慢查询日志&#xff1a;开启 MySQL 的慢查询日志&#xff0c;再通过一些工具比如 mysqldumpslow 去分析对应的慢查询日志&#xff0c;当然现在一般的云厂商都提供了可视化的平台。服务监控&#xf…