惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
G
Google Developers Blog
S
SegmentFault 最新的问题
Microsoft Security Blog
Microsoft Security Blog
J
Java Code Geeks
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
P
Proofpoint News Feed
博客园 - 【当耐特】
MongoDB | Blog
MongoDB | Blog
L
LangChain Blog
F
Fortinet All Blogs
C
Check Point Blog
博客园_首页
I
InfoQ
Jina AI
Jina AI
Blog — PlanetScale
Blog — PlanetScale
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
酷 壳 – CoolShell
酷 壳 – CoolShell
Engineering at Meta
Engineering at Meta
美团技术团队
Vercel News
Vercel News
Apple Machine Learning Research
Apple Machine Learning Research

博客园 - 坚强地活着

libxml问题 read函数读取时报错:Resource temporarily unavailable 管脚复用为gpio后不能控制的问题解决 ps制作gif 静态局部变量 问题:232串口发送数据不稳定,有时能发出数据,有时发不出数据 问题:qt按钮有时候点击没有反应 vs2017+qt问题 mysql问题 dtu通讯的一个问题 又是运行不到main的问题 stlink问题 stm32上调试AD5410 linux读xml文件问题 stm8问题记录 430 仿真器 问题 虚拟机VMware显示“内部错误”的解决方法 VS2008 如何设置字体大小? ps 处理gif
AD7124踩过的坑
坚强地活着 · 2020-06-08 · via 博客园 - 坚强地活着

花了正好一个星期的时间,终于基本上调通了,当然,不仅是指可以正确通过SPI和片子交互,而且采集氧量信号的精度也是非常高,至少在mv级别了。

过程中遇到了一系列问题,搞的人也是很崩溃。

先是SPI通讯的问题,ADI官方给的开发板的代码,用的并不是keil,spi的读写函数我根本没法用,因此只好自己来写。

我的spi代码从5420移植而来,但7124和5420有很大的不同,而且复杂了很多。

5420的读写是两函数,而7124的读写需要整合为一个.

在读写count个字节时,5420的for是从count开始,而7124是从0开始,因为刚开始时没有搞对,所以导致读出的数据都是反的,
比如读id,正确的是0x04,但我读出的却是0x20

还有,在5420中是CLR_SCL之后才给SDIN上放数据,但对于7124却需要在CLR_SCL之前放数据。
因为手册中描述:SCL下降沿驱动数据,上升沿锁存数据。

接着,遇到的问题是,读出的数据最后一位数据总是为0,比如 AD7124_Channel_0 手册上说读出来应该是0x8001,但我读出来却是0x8000,
又仔细研究了手册,手册上说,似乎在转换完成后DOUT/RDY脚会切换为RDY功能且为0表示数据有效可以被读取,而在读取之后才被重新置为1。
所以,怀疑是我读最后一位的时机不对(太晚了,以致于DOUT/RDY脚处于RDY功能且为0)
程序调整后(把从SDOUT读取数据的操作放在了SET_SCL之前),读取正确。

然后测试20mv标准信号,但始终得到的结果是18mv,尝试了各种校准,但都么有卵用。在崩溃,好心网友提示说可以测下内部2.5V,测量后竟然非常准确。
惊喜之余,又直接测了氧量信号(用信号源模拟),结果也非常精确。
我晕!难道是我对20mv标准信号的理解不对!!!