硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1901|回复: 4
收起左侧

关于AD7606的电压实时采集和峰峰值显示

[复制链接]

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2021-2-8 20:23:47 | 显示全部楼层 |阅读模式
我是一个纯小白,自学STM32两个多月,,想请教硬汉兄一个AD7606的问题,我在硬件设计的时候AD7606的原理图是参照安富莱的原理图画的,然后程序利用安富莱7606的例程也能初步实现了电压值的实时采集,用探针测量电压也能正确的测量到电压值,我的项目是需要做一个能够实时测量电压又能根据测量一段时间电压计算出峰峰值,搜索资料了解到示波器项目里面由峰峰值的计算,但是示波器例程里面是用的片内AD,我对于示波器demo的理解是,用DMA传输的方式,将采集的电压值存到ADC1ConvertedValue数组里面,然后将数组里的值赋给g_DSO2->usWaveBufTemp,最后赋给g_DSO2->usWaveBuf做计算,但是我在AD7606里的程序只找到读取AD值的void AD7606_ReadNowAdc(void)程序,如下图,

但是这个程序的意思是读取每个通道当前最新的AD值对吗?那么如何将存储到FIFO里的值赋给另一个数组,进行峰峰值计算呢?我尝试把写到fifo里面的数值进行计算,但是始终不成功。我该如何把某个通道比如V1里的数组存储起来然后赋值给g_DSO2->usWaveBuf然后进行计算呢?然后我还有好多其他的问题,我汇总一一列出来了。希望得到硬汉兄和其他大佬的帮助。

1、关于变量定义
我在示波器demo里面看到的峰峰值等变量是定义成32位float浮点型数,但是在我的工程里,编译会报错,显示float32_t未定义,是缺少什么库文件吗?


2、AD采集相关的问题
AD7606_ReadNowAdc函数,是关于8个通道的ad值最新当前数值吗?为什么8个通道都是从AD7606_RESULT()这一个FSMC总线地址赋值呢?意思是这个sNowAdc[]里面的数据都是实时更新,显示的是最新的当前数据对吗?


3、关于FIFO存储的问题
由于要对批量数据进行峰峰值计算,所以一直想找到FIFO存储的数据在哪,如果我要像示波器demo里那样找到ADC1ConvertedValue的值,是不是在利用.AD7606_ReadFifo函数给g_DSO2->usWaveBuf赋值就行呀?


4、程序请教
我同样定义了一个g_DSO2->usWaveBuf用于我自己AD7606里来计算峰峰值,但是给他赋值的时候一直找不到应该怎样给他赋值。




回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2021-2-8 20:25:41 | 显示全部楼层
我的图都没了。。
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2021-2-9 00:43:14 | 显示全部楼层
或者硬汉哥能不能简单讲讲AD7606在FIFO工作模式下,如何像示波器demo那样调取一定数量的AD值进行数据计算呢?比如峰峰值,能量值计算等等。示波器demo那块太抽象了,没能搞明白对应7606例程里面FIFO模式下具体怎么操作存储的数据。我现在就想尝试着实现实时采集的同时能够显示出一段时间的电压峰峰值和能量值。希望能得到指导,非常感谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106534
QQ
发表于 2021-2-9 08:23:07 | 显示全部楼层
这个可以看我新作的教程,针对HAL库的,有DMA双缓冲方式,实时采集读取的,也有定时器触发中断方式的。都适合你的应用,你可以先看看。

http://www.armbbs.cn/forum.php?m ... 3255&extra=page%3D1
1.png
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2021-2-9 11:24:50 | 显示全部楼层
好的,我这就看看!非常感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-24 06:01 , Processed in 0.229206 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表