码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 项目进展(十)-解决ADS1285在调试时出现的问题


    一、解决大坑

      在项目进展(九)-完善ADS1285代码这边博客中,看似解决了问题,可以去读数据,但是其实是给自己挖大坑,这边博客就是来填坑的。
      首先呢,上篇博客说的是用0x12指令来读取数据,但是仔细再看数据手册会发现,使用指令读取数据是在特定条件下的:“RDATA命令用于在同一转换周期内重新读取数据或读取被读寄存器命令打断 的数据。”真的是被自己坑到了。
    在这里插入图片描述
      接下来是第二个大坑,当时只是看到注意到了DRDY引脚了,却忘了SYNC,RESET,PWDN这仨哥们,忘记在cubeMX里面初始化他们的电平了,我直接哭死。这三个引脚初始化时都需要需要全部拉成高电平。

    	HAL_GPIO_WritePin(GPIOB, ADS_X_PWDN_Pin|ADS_X_RESET_Pin|ADS_X_SYNC_Pin, GPIO_PIN_SET);
    	GPIO_InitStruct.Pin = ADS_X_PWDN_Pin|ADS_X_RESET_Pin|ADS_X_SYNC_Pin;
      	GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
      	GPIO_InitStruct.Pull = GPIO_NOPULL;
      	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
      	HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

      配置完上面三个引脚之后便可以使用直接读取,根据DRDY的变化来读取数据了。下面是DRDY的波形图:
    在这里插入图片描述
      频率为1KHz,正好对应配置的寄存器中1000SPS(即1s采样1000次):

    data[3] = (HIGHPOWER<<6)|(SPS1000<<3)|(LINEAR_PHS<<2)|FIR;
    
    • 1

      DRDY正常工作,接下来便是按照数据手册的时序图来编写代码(DRDY拉低后,我们要将CS拉低,之后连续读取四个字节,即最后的32位ADC采集数据):
    在这里插入图片描述

    	while(DRDY);  // 等待DRDY拉低
    	ADC_X_CS_LOW;  // 拉低CS引脚
    	for(i=0;i<4;i++)
    	{
    		HAL_SPI_Receive(&hspi2,(uint8_t *)&Data[i],1,10);// 读取数据
    	}
    	readDataFinal = (Data[0]<<24)|(Data[1]<<16)|(Data[2]<<8)|(Data[3]);
    	ADC_X_CS_HIGH;  // 拉高CS引脚
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

      下面是仿真的视频:
    在这里插入图片描述
      数据是读取回来了,但是总是感觉跟实际数据对不上,后续还得继续看数据手册,今天先到这了。

    二、往期回顾

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

  • 相关阅读:
    基于html+css的图展示95
    MAUI Blazor 权限经验分享 (定位,使用相机)
    【Quark RISC-V】流水线CPU设计(4)数据冒险的处理(主要解决方案:流水线暂停、数据转发、乱序执行)
    阿里巴巴按关键字搜索商品 API 返回值说明
    【R语言】对一个Plot绘制多个图,并且每个图单元也包含多个图
    OpenGL之帧缓冲与片元运算
    2023_Spark_实验五:Scala面向对象部分演示(一)(IDEA开发)
    CSP-J1 CSP-S1 初赛 第1轮(2022.08.09)
    如何寻找计算机领域的英文文献?
    lintcode 367 · 表达树构造 【hard 栈,树】
  • 原文地址:https://blog.csdn.net/weixin_44412311/article/details/133676314
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号