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

一、数据手册学习

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.rhkb.cn/news/147807.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能合约漏洞,Dyna 事件分析

智能合约漏洞,Dyna 事件分析 1. 漏洞简介 https://twitter.com/BlockSecTeam/status/1628319536117153794 https://twitter.com/BeosinAlert/status/1628301635834486784 2. 相关地址或交易 攻击交易 1: https://bscscan.com/tx/0x7fa89d869fd1b89e…

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

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

嵌入式Linux应用开发-驱动大全-同步与互斥③

嵌入式Linux应用开发-驱动大全-同步与互斥③ 第一章 同步与互斥③1.4 Linux锁的介绍与使用1.4.1 锁的类型1.4.1.1 自旋锁1.4.1.2 睡眠锁 1.4.2 锁的内核函数1.4.2.1 自旋锁1.4.2.2 信号量1.4.2.3 互斥量1.4.2.4 semaphore和 mutex的区别 1.4.3 何时用何种锁1.4.4 内核抢占(pree…

JavaScript系列从入门到精通系列第十四篇:JavaScript中函数的简介以及函数的声明方式以及函数的调用

文章目录 一:函数的简介 1:概念和简介 2:创建一个函数对象 3:调用函数对象 4:函数对象的普通功能 5:使用函数声明来创建一个函数对象 6:使用函数声明创建一个匿名函数 一:函…

嵌入式Linux应用开发-驱动大全-同步与互斥①

嵌入式Linux应用开发-驱动大全-同步与互斥① 第一章 同步与互斥①1.1 内联汇编1.1.1 C语言实现加法1.1.2 使用汇编函数实现加法1.1.3 内联汇编语法1.1.4 编写内联汇编实现加法1.1.5 earlyclobber的例子 1.2 同步与互斥的失败例子1.2.1 失败例子11.2.2 失败例子21.2.3 失败例子3…

留住时光、固化时间、让一瞬成为永恒——全新的真人手办定制模式,就选易模小程序制作。

如何能永远留住一瞬间? 有人说我可以拍摄一张照片,照片的问世确实给生活中许多美好的瞬间留下了可以记录的工具。但是随着时间的流逝,照片终究也会泛黄,似乎有一些记忆的温度,有一些岁月的棱角,也是照片所给…

分享Arduino环境下加速下载 第三方库或芯片包

Content 问题描述问题解决 问题描述 众所周知,由于网络的问题,导致Arduino里面的包下载速度非常慢,甚至下了非常久,最后也还是出现下载失败的情况。 有的人打开了加速器,但是也依旧是速度非常慢,为什么呢…

在微信小程序中跳转到另一个小程序(多种实现方式)

方式一: 配置要跳转的appid和小程序页面路径 wx.navigateToMiniProgram({appId: 目标小程序appid,path: 目标小程序页面路径,//develop开发版;trial体验版;release正式版envVersion: release, success(res) {// 打开成功console.log("跳…

ArcGIS Engine:报错无法嵌入互操作类型“ESRI.ArcGIS.Geometry.EnvelopeClass”。请改用适用的接口。

此错误是由于尝试直接实例化ArcGIS COM组件的某些互操作类引起的。这在.NET Framework 4及更高版本中是不被推荐的。 为了解决此问题,你需要确保在工程的引用中将ArcGIS的互操作类型设置为“不嵌入”。 按照以下步骤操作: 在解决方案资源管理器中找到…

原型、原型链、判断数据类型

目录 作用 原型链 引用类型:__proto__(隐式原型)属性,属性值是对象函数:prototype(原型)属性,属性值是对象 Function:本身也是函数 相关方法 person.prototype.isPrototypeOf(stu) Object.getPrototypeOf(objec…

分享一款开源的QT的串口示波器

分享一款开源的QT的串口示波器,完全开源,支持串口、TCP、波形显示、通信协议。 Sailor Project功能说明 串口调试助手功能 支持传统的串口调试助手的基本收发功能,同时可以刷新大量的数据而不卡顿 支持保存接收的数据 支持最大200条可编辑…

Docker Tutorial

什么是Docker 为每个应用提供完全隔离的运行环境 Dockerfile, Image,Container Image: 相当于虚拟机的快照(snapshot)里面包含了我们需要部署的应用程序以及替它所关联的所有库。通过image,我们可以创建很…

SD卡格式化怎么恢复?

随着智能手机、平板电脑、数码相机和行车记录仪等各种移动电子设备走入千家万户,SD卡作为与这些设备相配套的存储介质,也随之获得了广泛的市场认可。SD卡因其体积小巧、容量庞大、读写速度高及与多种设备兼容的优点,逐渐成为日常工作和生活中…

linux 笔记:远程服务器登录jupyter notebook

1 生成jupyter notebook 配置文件(服务器端) jupyter notebook --generate-config #Writing default config to: /home/shuailiu/.jupyter/jupyter_notebook_config.py2 Ipython中设置密码(服务器端) 3 修改jupyter 配置文件&…

如何使用百度“云一朵”来分析PDF文件

PDF 文件是一种常见的文件格式,用于存储文档、图像和其他内容。在许多情况下,我们需要对 PDF 文件进行分析,以提取其中的信息。百度“云一朵”提供了一个 PDF 分析 API,可以帮助我们轻松地对 PDF 文件进行分析。 在本博客文章中&…

车牌文本检测与识别:License Plate Recognition Based On Multi-Angle View Model

论文作者:Dat Tran-Anh,Khanh Linh Tran,Hoai-Nam Vu 作者单位:Thuyloi University;Posts and Telecommunications Institute of Technology 论文链接:http://arxiv.org/abs/2309.12972v1 内容简介: 1)方向&#x…

基于spring boot的医疗管理系统 /基于java的医疗系统

摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&a…

概率密度函数,概率分布函数

概率密度函数:描述信号的取值在某个确定的取值点附近的概率的函数;概率分布函数的导数。 以幅值大小为横坐标,以每个幅值间隔内出现的概率为纵坐标进行统计分析。反映了信号落在不同幅值强度区域内的概率情况。 直方图:对每个幅…

解决nvm切换node版本失败的终极办法-秒杀网上99%的水文

nvm是一款强大的node多版本管理器,可以轻易选择你需要的node版本,这对win7平台简直就是超好的福音:可以突破node 14.15以上的安装限制。 但是nvm安装有一个巨大的坑点:nvm use 版本号以后,并没有生效,nvm …

【时区】Flink JDBC 和CDC时间字段时区 测试及时间基准

关联文章: 各种时间类型和timezone关系浅析 一、测试目的和值 1. 测试一般的数据库不含time zone的类型的时区。 mysql timestamp(3) 类型postgres timestamp(3) 类型sqlserver datetime2(3) 类型oracle类型 TIMESTAMP(3) 类型 在以下测试之中均为ts字段 2.测试CDC中元数据…