项目进展(七)-焊接ADS1285及其外围电路,学习芯片的SPI部分

news2024/11/17 11:35:02

一、焊接芯片及其外围电路

总体焊接过程没有出现什么大问题,也算顺利,下一步主要是根据SPI来编写代码,配置该芯片。
焊接之后的PCB如下(手工焊接,比较丑陋,哈哈哈哈)
在这里插入图片描述
之后测试了4.096V参考电压和晶振输出,没有出现什么问题:
在这里插入图片描述
在这里插入图片描述
在这里总结几点:
1.参考电压的电路上0.22Ω电阻买错了,师兄买成了0.22kΩ,而且现在实验室也没有0.22Ω,无奈只好焊接了0Ω电阻,实际出来的参考电压也没有什么大问题,不过建议还是采用推荐的阻值容值进行电路设计。还有就是一些电容,手册说明使用C0G型,那最好严格按照他的要求去选型。
在这里插入图片描述
补充:

C0G(也被称为NP0)是一种陶瓷电容器。这里的"C"代表电容器,而"0"表示它是类别1的电容器,这意味着它在温度和电压变化下具有非常稳定的电容值。"G"表示它具有±30 ppm/°C的温度系数。这使得C0G电容器适用于需要在各种工作条件下保持精确和稳定电容值的应用。
X7R:X7R电容器是一种类别2电容器,具有中等的温度稳定性和介电常数。它们通常比C0G电容器具有更高的电容密度,但在温度和电压变化时会产生一些变化
Y5V:Y5V电容器是一种类别2电容器,具有相对较高的电容密度,但它们在温度和电压变化时的电容值会发生较大变化。它们不适合需要精确电容值的应用。
Z5U:Z5U电容器是一种类别2电容器,通常具有较高的电容密度,但与Y5V类似,在温度和电压变化时的电容值也会发生较大变化
X5R:X5R电容器是一种介于C0G和X7R之间的类型,具有介于它们之间的温度稳定性和电容密度
VX7R:VX7R电容器是一种变种,它在温度特性上比普通的X7R电容器更稳定
U2J:U2J电容器具有与C0G电容器相当的稳定性,但具有更高的电容密度
U2J-Y5V:这是一种结合了U2J稳定性和Y5V电容密度的变种。

2.建议参考电压的P和N端连线还是使用差分布线(我当时没有按照差分布线,对芯片的精度可能会造成一些影响)
在这里插入图片描述
在这里插入图片描述
3.焊接有源晶振时,最好留出一点锡来好用来测试,一开始焊接完晶振后,测试引脚无输出信号,无奈之下又焊下来,重新焊接了一下,测试无问题。还有就是焊接晶振时要注意引脚的标号(1号引脚焊盘那有一个缺脚,具体还是要仔细看手册说明),不要焊接错了:
在这里插入图片描述

二、芯片的SPI介绍

2.1 工作模式

当转换数据准备好时,DRDY断言为低。串行接口是无源的(外设模式),其中串行时钟(SCLK)是一个输入。ADC工作在SPI模式0,其中CPOL = 0和CPHA = 0。在模式0下,SCLK低空闲,数据在SCLK下降沿上更新,在SCLK上升沿上读取

2.2 DRDY引脚

DRDY是一个低电平有效输出,表示转换数据准备就绪。无论CS的状态如何,DRDY都是活动的。DRDY在SCLK的第一个下降沿上被驱动为高电平,无论是否正在读取数据或输入命令。如下图所示,如果没有检索到数据,DRDY脉冲为8个fCLK周期。
在这里插入图片描述

2.3 命令

在这里插入图片描述
上面是一些指令的格式,尤其注意下面两条:
在这里插入图片描述
rrrr = 寄存器读写命令的起始地址
nnnn = 要读或写的寄存器数- 1。例如,要读写三个寄存器,nnnn = 2

2.3.1 单字节指令

在这里插入图片描述

2.3.2 唤醒命令

WAKEUP命令用来退出备用模式,恢复系统正常运行。如果ADC已经上电,则该命令为no operation (NOP)。当退出备用模式时,ADC需要重新同步。

2.3.4 软件断电命令

STANDBY命令进入软件下电模式。ADC通过WAKEUP命令退出软件下电模式。

2.3.5 读取数据

读取转换数据有两种方法:直接读取数据和命令读取数据。

2.3.5.1 直接读取数据

直接读取数据不需要命令,而是在DRDY降低后,只需应用SCLK来读取数据
读数据直接操作如下图所示。当DRDY低时,取CS低开始读操作
CS低导致DOUT从三态模式转换到数据MSB的输出。数据在SCLK的上升沿上读取,在SCLK的下降沿上更新。DRDY在SCLK的第一个下降沿返回高值。
读32位数据后DOUT是低的。要在新数据可用之前再次读取相同的数据,请使用RDATA命令
读取转换数据时保持DIN低。如果发送了RDATA(读转换数据)或RREG(读寄存器数据)命令,输出数据会因该命令而中断。如果在读取操作期间DRDY降低,则除非读取至少三个字节的旧数据,否则新数据将丢失。
在这里插入图片描述
从上面介绍可以看出,写代码时读取数据的操作需要如下步骤:判断DRDY引脚,若为低电平—>延时1us,拉低CS引脚—>从MISO引脚读取数据。注意,在上述过程中不要对MOSI引脚有任何操作(即不能写指令)。

2.3.5.2 读取转换数据命令

RDATA命令用于在同一转换周期内重新读取数据或读取被读寄存器命令中断的数据。在这两种情况下,DRDY都是高的,因为DRDY在前一个操作的第一个SCLK上被驱动为高。如果DRDY值高,第一个输出字节是0,后面跟着data。如果为低,则第一个输出字节是转换数据的字节1,它将为输出字节2重新启动。
在这里插入图片描述

2.3.5.3 读寄存器指令

该命令由个字节组成,后面跟着指定寄存器字节数的输出。ADC自动将地址递增到命令的第2字节中指定的寄存器数。递增地址不换行。该命令的第一个字节是添加到寄存器起始地址的操作码,第二个字节是要读取的寄存器数- 1。
•第一个命令字节:0010 rrrr,其中rrrr是起始寄存器地址
•第二个命令字节:0000 nnnn,其中nnnn是要读取的寄存器数减去1

下图给出了一个从寄存器地址01h开始的三寄存器读操作的示例。第一个寄存器数据出现在DOUT上,位于SCLK的第16个下降沿。数据被锁存在SCLK的上升沿上。
在这里插入图片描述

2.3.5.4 写寄存器指令

该命令是两个字节,后面跟着要写入的指定寄存器字节数。ADC自动将地址递增到命令中指定的寄存器数。递增地址不换行。该命令的第一个字节是添加到寄存器起始地址的操作码,第二个字节是要写入的寄存器数- 1。
•第一个命令字节:0100 rrrr,其中rrrr是第一个寄存器的起始地址。
•第二个命令字节:0000 nnnn,其中nnnn是要写入的寄存器数- 1。

数据字节:取决于指定的寄存器数。
在这里插入图片描述

2.4 寄存器映射

在这里插入图片描述
下面给出一些寄存器的主要位,目前我还没有进行实际的配置测试,后学继续更新(感冒了,今晚先回宿舍休息一晚)。

2.4.1 设备ID,同步寄存器(00h)

在这里插入图片描述

2.4.2 配置寄存器0(01h)

在这里插入图片描述

2.4.3 配置寄存器1(02h)

在这里插入图片描述

2.4.4 高通滤波器寄存器(03h,04h)

在这里插入图片描述
在这里插入图片描述

2.4.5 偏移校正寄存器(05h,06h,07h)

在这里插入图片描述
在这里插入图片描述

2.4.6 增益校准寄存器(08h,09h,0Ah)

在这里插入图片描述
在这里插入图片描述

2.4.7 数字输入/输出寄存器(0Bh)

在这里插入图片描述

2.4.8 采样率转换器寄存器(0Ch,0Dh)

在这里插入图片描述
在这里插入图片描述

三、往期回顾

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

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

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

相关文章

CART算法解密:从原理到Python实现

目录 一、简介CART算法的背景例子:医疗诊断 应用场景例子:金融风控 定义与组成例子:电子邮件分类 二、决策树基础什么是决策树例子:天气预测 如何构建简单的决策树例子:动物分类 决策树算法的类型例子:垃圾…

长时序栅格数据缺失值插补

长时序栅格数据经常会出现一些缺失值,会对后续的分析造成很大的不便。这便需要利用一些插值算法对这些缺失数据进行填补,奇异谱分析(SSA)便是常用的一种插值方法。更多内容可见公众号GeodataAnalysis。 简介 在时间序列分析中&a…

处理机调度的概念,层次联系以及七状态模型

1.基本概念 当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。 这就需要确定某种规则来决定处理这些任务的顺序,这就是“调度”研究的问题。 2. 三个层次 1.高级调度(作业调度) 高级调度(作业…

websocket逆向【python实现websocket拦截】

python实现websocket拦截 前言一、拦截的优缺点优点:缺点:二、实现方法1.环境配置2.代码三、总结前言 开发者工具F12,筛选ws后,websocket的消息是这样显示的,如何获取这里面的消息呢? 以下是本篇文章正文内容 一、拦截的优缺点 主要讲解一下websocket拦截的实现,现在…

结构和基本尺寸

声明 本文是学习GB-T 586-2015 船用法兰铸钢止回阀. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了法兰连接尺寸和密封面按 CB/T 4196、GB/T 2501 的船用法兰铸钢止回阀(以下简 称止回阀)的分类和标记、要求、试验方法、检验规…

sheng的学习笔记-【中英】【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第四周测验

课程1_第4周_测验题 目录:目录 第一题 1.在我们的前向传播和后向传播实现中使用的 “缓存” 是什么? A. 【  】它用于在训练期间缓存成本函数的中间值。 B. 【  】我们用它将在正向传播过程中计算的变量传递到相应的反向传播步骤。它包含了反向传…

Linux系统编程系列之条件变量

一、什么是条件变量 条件变量是一种同步互斥机制,通常与互斥锁一起使用以实现线程之间的通信和同步。 二、问题的引入 先来看一个例子:小楠是一名在校学生,每个月都会从父母那里得到一笔生活费。现在她的钱花光了,想要去取钱。但是很显然取钱…

Redis-缓存穿透,缓存击穿,缓存雪崩

缓存穿透,缓存击穿,缓存雪崩 缓存穿透处理方案解决方案1 缓存空数据解决方案2 布隆过滤器 缓存击穿处理方案解决方案 1 互斥锁解决方案2 逻辑过期 缓存雪崩处理方案解决方案 1 给不同的key的过期时间设置添加一个随机值,降低同一个时段大量ke…

柯桥生活口语学习,英语中初次见面,除了Nice to meet you,还能说什么?

第一印象非常重要。所以当你第一次见到某人时,留下一个好印象很重要,尤其是当你面对一个重要的工作或者面对某个对你来说可能非常特别的人时。 下面我列出了一些最常用的说“很高兴见到你”的表达方法,也包括对方的回答,除了nice …

活动报名与缴费小程序开发笔记一

项目背景 活动报名与缴费小程序的开发背景主要源于以下几个因素: 1.数字化时代的需求: 随着移动互联网和智能手机的普及,人们习惯使用手机进行各种活动。传统的纸质报名表格和线下缴费方式变得相对繁琐,而数字化报名与缴费小程序…

2023年-华为机试题库B卷(Python)【满分】

华为机试题库B卷 已于5月10号 更新为2023 B卷 (2023-10-04 更新本文) 华为机试有三道题目,前两道属于简单或中等题,分值为100分,第三道为中等或困难题,分值为200分。总分为 400 分,150分钟考试…

GKR+Groth16:更快的MiMC证明

1. 引言 Consensys团队Alexandre Belling等人2022年论文 Recursion over Public-Coin Interactive Proof Systems; Faster Hash Verification 中,提出了: 用GKR来证明MiMC哈希计算的完整性将GKR verifier嵌入到SNARK(Groth16)电…

【开发篇】十四、SpringBoot整合Quartz实现定时任务

文章目录 1、关于定时任务2、Java原生实现3、相关名词4、SpringBoot整合Quartz5、Quartz的通用配置6、关于QuartzJobBean7、关于调度器Scheduler的绑定8、Quartz持久化 1、关于定时任务 定时任务在实际开发中使用场景很多,比如: 年度报告各种统计报告某…

vs code 离线安装 CodeLLDB 包[Acquiring CodeLLDB platform package]

1. 问题描述 最近在配置使用vscode编译c,一打开vscode就弹出以下信息“Acquiring CodeLLDB platform package” 2. 问题原因 vscode在安装CodeLLDB插件时,速度太慢,一直不能成功 3. 解决方案: 离线下载 CodeLLDB插件&#xff0c…

前后端通信到底是怎样一个过程

前后端通信是怎样 前言:Http协议 超文本传输协议 规定:每一次前后端通信,前端需要主动向后端发出请求,后端接收到前端的请求后,可以给出响应 1、Http报文 浏览器向服务器发送请求时,请求本身就是信息&…

ROS导航——环境感知(激光雷达)

下载相关驱动包(激光雷达厂商应该会给出) 编译后可能会出现部分错误,以下是部分情况: (1) 移植功能包后出现c文件无法找到头文件的情况:解决链接 修改代码:(以我的雷达为…

将pyc文件转换为py文件

1.首先将pip版本升级 pip install --upgrade pip 2.然后安装uncompyle6 pip install uncompyle6 3.在系统的环境变量中,添加“python_home” 4.在系统变量Path中添加: %python_home%\Scripts\ 5.运行下面的代码,就会在你.pyc对应文件夹…

腾讯云服务器完整建站过程(新手搭建网站教程)

使用腾讯云服务器搭建网站全流程,包括轻量应用服务器和云服务器CVM建站教程,轻量可以使用应用镜像一键建站,云服务器CVM可以通过安装宝塔面板的方式来搭建网站,腾讯云服务器网分享使用腾讯云服务器建站教程,新手站长搭…

第二章 进程与线程 十九、管程

目录 一、定义 管程是一种特殊的软件模块,由以下部分组成: 二、管程的基本特征 三、使用管程解决生产者消费者问题 四、总结 一、定义 管程是一种特殊的软件模块,由以下部分组成: 1、局部于管程的共享数据结构说明;&#xf…