OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5027|回复: 9

如何确定特定时刻的DAC的输出电压

[复制链接]

85

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2020-12-5
在线时间
202 小时
发表于 2021-1-3 10:28:56 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 车嘉炜 于 2021-1-3 10:31 编辑

现用stm32f103开发板,在做一个项目,大体过程是配置DAC实现单片机输出锯齿波的驱动电压,然后ADC采集到与驱动电压有关的(驱动电压驱动一个窄带滤波器得到一些尖峰信号)尖峰信号。经过计算得到尖峰信号的峰值,请问我如何才能知道采集到峰值的这个时刻所对应的DAC输出的驱动电压是多少。 锯齿波.png 图中上半部分就是DAC输出的锯齿波 ,下半部分对应的就是ADC采集到的各个尖峰信号

最佳答案

查看完整内容[请看2#楼]

照你这个意思,就是说 1,我不知道尖峰什么时候出现 2.但是我采集到尖峰时,也希望知道DAC的值 我的做法肯定时使用高频率2路配置一样的ADC同时采集,然后DMA配大的缓冲池进行处理啊
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
发表于 2021-1-3 10:28:57 | 显示全部楼层
照你这个意思,就是说
1,我不知道尖峰什么时候出现
2.但是我采集到尖峰时,也希望知道DAC的值

我的做法肯定时使用高频率2路配置一样的ADC同时采集,然后DMA配大的缓冲池进行处理啊
回复

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
发表于 2021-1-3 13:12:33 | 显示全部楼层
最简单的,你开双路ADC,由同一个信号触发采集不就好了吗?也可以在采集前先把DCA数据读出来,再去采集啊,好像都没太大问题吧?
回复

使用道具 举报

85

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2020-12-5
在线时间
202 小时
 楼主| 发表于 2021-1-3 15:41:32 | 显示全部楼层
本帖最后由 车嘉炜 于 2021-1-3 15:43 编辑
聚东风 发表于 2021-1-3 13:12
最简单的,你开双路ADC,由同一个信号触发采集不就好了吗?也可以在采集前先把DCA数据读出来,再去采集啊,好像 ...

您好,很感谢您的回复。您的意思是我用两路ADC:一路采集得到的尖峰信号,一路采集DAC输出的驱动电压,找到尖峰信号的峰值点的数组位置,就可以相应的找到驱动电压DCA的数据是吗?麻烦您可以详细解答一下,真的十分感谢!!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2021-1-4 02:29:20 | 显示全部楼层
你的尖峰什么时候采集的,如果和DAC是同步的话,你读取这个时刻DAC寄存器里面的值就知道了
回复

使用道具 举报

85

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2020-12-5
在线时间
202 小时
 楼主| 发表于 2021-1-4 09:46:42 | 显示全部楼层
本帖最后由 车嘉炜 于 2021-1-4 10:02 编辑
正点原子 发表于 2021-1-4 02:29
你的尖峰什么时候采集的,如果和DAC是同步的话,你读取这个时刻DAC寄存器里面的值就知道了

原子哥你好,谢谢您的回复 。DAC和尖峰信号是同步的 ,就是锯齿波其实是尖峰信号的驱动电压。我采集到的ADC的值是通过DMA存在数组中的,我经过对ADC数据进行高斯曲线拟合得到ADC的峰值,(这个峰值是通过曲线拟合求出来的,所以很大概率这个值并不在ADC数组中)我如何确定这个峰值出现的时刻,我又怎么确定这个时刻DAC寄存器里面的值呢?烦请原子哥指导一下
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2021-1-5 01:43:42 | 显示全部楼层
车嘉炜 发表于 2021-1-4 09:46
原子哥你好,谢谢您的回复 。DAC和尖峰信号是同步的 ,就是锯齿波其实是尖峰信号的驱动电压。我采集到的A ...

这就不好找咯,得有相同时基
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

85

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2020-12-5
在线时间
202 小时
 楼主| 发表于 2021-1-5 10:04:30 | 显示全部楼层
正点原子 发表于 2021-1-5 01:43
这就不好找咯,得有相同时基

原子哥您好,那么如果我只是在我采集的ADC数组中找一个峰值,比如说峰值出现在ADCConvertedValue[7]这个位置,我如何确定采样到这个值的时间呢?
回复

使用道具 举报

85

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2020-12-5
在线时间
202 小时
 楼主| 发表于 2021-1-5 10:09:21 | 显示全部楼层
聚东风 发表于 2021-1-5 08:10
照你这个意思,就是说
1,我不知道尖峰什么时候出现
2.但是我采集到尖峰时,也希望知道DAC的值

十分感谢您的回复,我觉得这也是个好办法。我想的是有没有可能知道峰值出现点的时刻,然后我根据这个时间去求得驱动电压的大小,毕竟驱动电压是个周期函数。
回复

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
发表于 2021-1-5 10:31:25 | 显示全部楼层
那你试试看ADC的ADC_HTR寄存器啊,就是让ADC自动采集着,然后等他采集到高出你设定值后,你自己去中断处理,读这个驱动DAC的寄存器呗
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-15 06:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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