本帖最后由 linux-0405209 于 2017-6-7 12:31 编辑

(若发的板块不对,请告知修改)

环境: STM32F407   SPI3   AD7616

程序配置如下:

// AD7616 Reg addr

#define AD7616_CONFIG_REG   0x02

#define AD7616_CHANLE_REG   0x03

#define AD7616_PUINA1_REG   0x04

#define AD7616_PUINA2_REG   0x05

#define AD7616_PUINB1_REG   0x06

#define AD7616_PUINB2_REG   0x07

#define AD7616_STATUS_REG   0x08

#define AD7616_STACKx_REG(n)    (0x20+n*0x01)

u16 parame[32] = {

0x88, 0x99, 0xBB, 0x00, 0x133, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

};

// Init the range register, which has the register address = 0x04, 0x05, 0x06, 0x07

// set +/-10V for all channels

chanle = 0x00FF; //range:±10V

for(chanle = 0; chanle < 4; chanle++){

writeAD7616(AD7616_PUINA1_REG+chanle, chanle); //write ad7616 reg

dd1 = readAD7616(AD7616_PUINA1_REG+chanle); //read ad7616 reg, return 16bit data

while(dd1 != chanle){

writeAD7616(AD7616_PUINA1_REG+chanle, chanle);

dd1 = readAD7616(AD7616_PUINA1_REG+chanle);

}

}

// Init Sequencer

// Set the sequencer as Vcc->ALDO->self testing->0->3

for(chanle = 0; chanle < 32; chanle++){

writeAD7616(AD7616_STACKx_REG(chanle), parame[chanle]);

dd1 = readAD7616(AD7616_STACKx_REG(chanle));

while(dd1 != parame[chanle]){

writeAD7616(AD7616_STACKx_REG(chanle), parame[chanle]);

dd1 = readAD7616(AD7616_STACKx_REG(chanle));

}

}

// Init the configuration register, which has the register address = 0x02

// bit 7 - self error dection, '1' error, '0' no error

// bit 6 - set '1' to active the burst mode, set '0' to disable

// bit 5 - set '1' to active the auto sequencer, set '0' to disable

// bit 4~2 - "000" no OS; "001" OS by 2, "010" OS by 4, ... "111" OS by 128

// bit 1 - set '1' to output the status word after conversion data, set '0' to disable

// bit 0 - set '1' to output the CRC word after conversion/status data, set '0' to disable

chanle = 0x007E;

writeAD7616(AD7616_CONFIG_REG, chanle);

dd1 = readAD7616(AD7616_CONFIG_REG);

while(dd1 != chanle){

writeAD7616(AD7616_CONFIG_REG, chanle);

dd1 = readAD7616(AD7616_CONFIG_REG);

}

以上的配置在我的程序中读写都能正确显示;

以下为采集回来的数据显示:

以上为串口终端显示的内容

> chanle[00]: 3944 ----> 4.473877        // 此处为Acc数据  Acc万用表量得为4.92V

> chanle[01]: 3D9B ----> 4.812927        // 此处为Acc数据

> chanle[02]: CC0C ----> -4.058838        // 此处为ALDO数据        ALDO应该为1.8V,在手册上写着

> chanle[03]: CA79 ----> -4.181824        // 此处为ALDO数据

> chanle[04]: AAAA ----> -6.666870        // 此处为自测通道A数据        在手册上写着固定返回AAAA

> chanle[05]: 5555 ----> 6.666565        // 此处为自测通道B数据        在手册上写着固定返回5555

> chanle[06]: 1D5D ----> 2.294006        // 此处为自测通道A0数据        次通道接入一个直流4.1V左右

> chanle[07]: E8CD ----> -1.812439        // 此处为自测通道B0数据        没接入

> chanle[08]: E8C7 ----> -1.814270        // 此处为自测通道A3数据        没接入

> chanle[09]: E8CC ----> -1.812744        // 此处为自测通道B3数据        没接入

> chanle[10]: 3327 ----> 3.996277        // 此处为状态寄存器的数据

从上面数据可见:

返回来的数据 通道A0 B0 A3 B3都有一个1.8V左右的偏差;

但读回来的自测通道和状态寄存器的值是准确的;

Acc的数值就有点偏;

ALDO是错的比较离谱了;

各位有谁调试过AD7616的给点提示,这问题纠结几天了,还没解决,在这谢谢各位。

偏移出来的数据不准_关于AD7616采集后读回来数据不准(有偏移)的问题,求解决...相关推荐

  1. 偏移出来的数据不准_关于AD7616采集后读回来数据不准(有偏移)的问题

    环境: STM32F407   SPI3   AD7616 程序配置如下: // AD7616 Reg addr #define AD7616_CONFIG_REG   0x02 #define AD ...

  2. 采集后没有播放数据 没有播放按钮的解决办法

    有时候会遇到,采集后没有播放数据,前台页面也找不到播放按钮,这种情况一般是后台没有添加播放器 只需要添加对应的播放器,然后清理缓存即可 本站提供的V10采集插件,具有一键配置播放器的功能,详情点击&g ...

  3. python构造icmp数据包_如何在python中构造ICMP数据包

    为了学习,我目前正在尝试创建一个简单的python porgram来向某个设备发送ICMP ping数据包.为了开始,我查看了python模块Pyping:https://github.com/Akh ...

  4. 对数据仓库进行数据建模_确定是否可以对您的数据进行建模

    对数据仓库进行数据建模 Some data sets are just not meant to have the geospatial representation that can be clus ...

  5. python自动化数据报告_如何:使用Python将实时数据自动化到您的网站

    python自动化数据报告 This tutorial will be helpful for people who have a website that hosts live data on a ...

  6. python爬虫爬网站数据登录_使用webdriver+urllib爬取网页数据(模拟登陆,过验证码)...

    urilib是python的标准库,当我们使用Python爬取网页数据时,往往用的是urllib模块,通过调用urllib模块的urlopen(url)方法返回网页对象,并使用read()方法获得ur ...

  7. python向mysql中添加数据标签_用python在MySQL中写入数据和添加数据

    在笔者之前的博文中,已介绍了用python连接与mysql数据库的知识.包括如何安装python连接mysql的pymysql包,如何通过cusor语句将python与mysql连接起来,以及如何用p ...

  8. modis数据介绍_【更新90篇】地理数据科学技术文章合集,欢迎大家点赞、在看、转发三连!...

    最近因微信公众号修改了规则, 不将公众号标星可能无法及时收到推送, 还请大家把"走天涯徐小洋地理数据科学"加个星标. 公众号技术文章合集目录,目前已整理以下8个部分,共计90篇文章 ...

  9. dgi数据治理_荐书 | 5G时代组织急需数据体检

    张靖笙 随着5G的到来,基础硬件设施提供商.运营商及终端设备提供商都会迎来改变,而随着数据传输速度的加快和终端设备的增多,直接产生数据量的增长,海量的联网终端意味着海量的数据.5G只是底层通讯技术,但 ...

最新文章

  1. java 中的gc方法
  2. CDN加速小水管动态应用技巧
  3. 【推荐】 女人愁嫁时代终于来临
  4. 通过豆瓣Api,输入ISBN获取图书信息
  5. java 改变文件路径_在C#中改变文件路径
  6. html5 职工入职后台管理系统_【开源】Net平台的后台管理系统
  7. js 基础之Math对象
  8. 动态规划 BZOJ2287【POJ Challenge】消失之物
  9. VLAN、OSPF、GRE或IPSEC配置作业与抓包内容(新手入门)
  10. golang copy-on-write思想应用
  11. 【航拍中国第二季】甘肃笔记
  12. Silverlight新型的富媒体
  13. [GIS原理] 8 GIS基本空间分析-叠置分析|缓冲区分析|窗口分析
  14. 论文阅读:Generating Talking Face Landmarks from Speech
  15. ❤Linux文件、目录与磁盘格式总结❤
  16. ZOJ4043 : Virtual Singers
  17. YBT高效进阶 6.2.5 余数之和
  18. 现在的access数据库有2种后缀格式:.mdb和.accdb,区别是.mdb是access2003版及以前,.accdb是2007版access的格式
  19. 常见的几种短信应用场景
  20. 2021-Lite-HRNet: A Lightweight High-Resolution Network

热门文章

  1. 使用UTM安装windows7
  2. 教你如何搜索电影资源,再也不为没有电影资源烦心!
  3. 加载的图片太多或太大如何优化
  4. java 双击触发事件_java鼠标双击事件怎么实现
  5. Ubuntu 17.10/内核4.13.0 vmware 提示 Not Enough Physical Memory 解决方法
  6. php爬虫全国地址信息
  7. linux的分区讲解,讲解Linux硬盘分区步骤
  8. 优思学院|质量管理七项原则十三项步骤
  9. 【视频】运行第一个容器 - 每天5分钟玩转容器技术(5)
  10. Unity3d 5烘焙相关