AD7606调试笔记:采集多路不正常,少采集几路就正常
AD7606调试笔记:采集多路不正常,少采集几路就正常了
文章目录
- AD7606调试笔记:采集多路不正常,少采集几路就正常了
- 问题描述:
- 查错方案:
- 处理速度不够
- 时序不对
- 解决办法
- 延时
- 转换完成读取
- 是否影响?
- 结论
- 未若头发因风起
问题描述:
最近在调试嵌入式比赛的作品,用单片机同时带动两个7606同步采集的过程中,发现采集8+3路信号的时候,后3路数据不对,当采集8+2路时正常。
查错方案:
处理速度不够
当然首先怀疑是速度不够快,我使用的条件是32k采样率,一次采集至多只能花费32us。DEBUG后,发现,实际上只用了约17us,对于32us的要求来说绰绰有余,说是快很多也毫不过分。我电赛时为了克服HAL库的缓慢,能高速得带动7606,专门用IO口模拟SPI驱动的7606。
排除速度问题。
时序不对
选用的是4倍过采样,上升沿读取,也就是转换期间读取。数据手册上描述如下:
于是有疑问了,会不会是我采集的时间太长,在BUSY的高电平持续时间内没有读取完成?当BUSY下降沿到来时,寄存器数据更新了,我此时正在读取,数据自然就出错了。很有可能,开始检验。
锁定时序问题,通过DEBUG查看,前8个通道的数据花费了13.34us,后3路花费了4us左右。
我使用的是4倍过采样率,转换时间,也就是BUSY持续高电平的时间是16-18us。
嗯?!16us,我的采样时间是17us多,正好赶上了BUSY的下降沿。
如上是错误的时序。
解决办法
延时
读取3个通道和读取8个通道之间,加入延时。如下图。延时5us就可以了。
这样解决会有一个问题,就是8路数据和3路数据不再是同步的了。这不满足要求呀。
转换完成读取
将触发改成BUSY的下降沿触发,这样就改成了转换完成再去读取。
经过测试,数据正确。可是大家一定也注意到了,我在读取后3路时,BUSY又被拉高了,开始新的一轮测量。这样是否会影响呢?根据我测到的数据来看是不影响的。那么他是否会影响呢?
是否影响?
我们观察数据手册上的时序图。BUSY上升沿前,是完成了采集的。但是也没有指明是否可以这样测。不如来做个实验验证验证。
我让我手上的两个7606,去采集16路信号。采集时间如下,用了26.6us。32k采样率下,一个周期31.25us,BUSY高电平16us,低电平约15us,下降沿开始采集,采集了26.6us,明显已经进入了下一个周期的BUSY的高电平。严重超时。
开启采集,观察数据。数据正常!看来采集是可以持续到下一个周期的BUSY高电平。
结论
- 转换完后读取数据:上面的问题,基本上是由于采用了转换期间读取导致的。转换期间读取,只能在BUSY高电平下进行,比如这里的16us,有时间的限制。改用下降沿触发,就可以在一整个周期内读取信号,也就是这里的31.25us。
- 注意时序:叮嘱自己一下。
未若头发因风起
- 如果觉得本文章对你有作用,请大方的点个赞吧
AD7606调试笔记:采集多路不正常,少采集几路就正常相关推荐
- AD7606调试笔记
文章目录 AD7606接线图 AD7606SPI通讯接口说明 AD7606时序图 AD7606时序图讲解 AD7606 STM32引脚配置 AD7606 程序模块 遇到的问题以及总结 由于训练电赛,需 ...
- 调试笔记--jlink 变量转实时波形小技巧
调试笔记–jlink 变量转实时波形小技巧 上篇讲了jlink RTT组件在RAM中开辟一段内存,将printf字符串存入然后通过jlink调试接口读取RAM,将printf字符串在jlink-RTT ...
- 多路视频数据实时采集系统设计与实现
多路视频数据实时采集系统设计与实现 常永亮 王霖萱 常馨蓉 摘要 面对越来越多的实时视频采集.播放的应用,如何能更加方便的操控视频采集,保证流畅的播放效果,成为近几年实时媒体流的一个重要研究方向 ...
- 【分享干货】AD9653调试笔记
标题AD9653调试笔记 一.简介 AD9653是ADI公司于2012年推出的一款四通道.16位.125MSPS模数转换器,内置片内采样保持电路,专门针对低成本.低功耗.小尺寸和易用性设计.该产品转换 ...
- 海思3559:BT656调试笔记
前言 海思3559a的sdk例子是没有提供BT1120和BT656视频接入的,但实际上硬件是可以支持接入的.不过前提是只支持逐行方式输入,不支持隔行视频,如果想输入PAL制式的隔行视频,请先用芯片 ...
- 调试笔记--keil 测量周期小技巧
调试笔记–keil 测量周期小技巧 本文参考安富莱专题教程第7期 http://www.armbbs.cn/forum.php?mod=viewthread&tid=87176&ext ...
- 调试笔记--keil 断点调试小技巧
调试笔记–keil 断点调试小技巧 给变量打断点 调试不熟悉的项目时,卧槽!怎么这么多全局变量?这玩意又在那修改了??这个时候会给变量打断点就能省好多事. 将要监视的全局变量添加到watch窗口 选中 ...
- gpio驱动广播Android,[RK3288][Android6.0] 调试笔记 --- 通用GPIO驱动控制LED【转】
Platform: ROCKCHIP OS: Android 6.0 Kernel: 3.10.92 由于板子没有lcd无法得知sd卡升级是否完成,因此使用LED显示. Recovery中升级完成后控 ...
- keil4怎么移植其他人的程序_【调试笔记】韦东山:在100ask_imx6ull上移植使用六轴传感器ICM20608...
之前发了LCD调试笔记,大家很感兴趣,所以这次再来一篇:六轴传感器ICM20608驱动移植笔记,大家还需要什么移植笔记?可以留言.我们尽量满足. 1.1 移植思路 先找到驱动:也许内核里已经有,也许需 ...
最新文章
- 进程 互斥锁、队列与管道、生产者消费者模型
- JavaScript实现prim普里姆算法(附完整源码)
- javaweb学习总结(三十四)——使用JDBC处理MySQL大数据
- CodeSmith 基础用法和例子
- ElasticSearch插件demo
- oracle一页显示15行,oracle rownum分页与显示记录小测
- Java如何判断整数溢出,溢出后怎么得到提示?
- [转载]Spring Boot Actuator 使用
- 计算机中dhcp服务器怎么找,如何查找网络中其他非法 DHCP 服务器Unix系统 -电脑资料...
- 【金万维】天联高级版客户端登陆后,打开U8提示服务器端要求网络级身份证(NLA)
- 怎样在计算机上注册dll文件,win10如何注册dll文件_win10系统dll文件怎样安装
- 0x02 如何安装【XPS 查看器】?超简单哦!
- hivesql:行列转换
- 信息安全管理——网络安全监管
- AFDX(ARINC664)的交换机规范
- 网络创业理论与实践(网络通识)
- 《遥远的救世主》遵守客观规律(五)——文化属性
- python中abs函数是什么意思_python中abs是什么意思
- 淘宝双十一实时显示成交数据是怎么实现的?
- windows系统自带工具dxdiag查看电脑信息
热门文章
- 《js遍历json、js创建table、隐藏id列、点击获取id值》
- SAP VF11冲销发票BADI
- 64位操作系统(WIN10)+32位LabVIEW(2020)+64位MySQL,Windows10系统下用32位ODBC连接MySQL
- Matlab中unwrap函数内容详解
- 【Linux】什么是进程(process)?
- 华为荣耀6x内核编译修改PTRACE安装xposed/frida并打开ro.debuggable记录
- Windows 删除”找不到该项目”文件夹
- Linner介绍、安装及简单Demo
- 下载和使用TPXO9_atlas
- 【历史上的今天】2 月 26 日:施乐 Alto 设计师出生;ATM 机获得专利;Clearview AI 被盗取 30 亿张照片