OpenEdv-开源电子网

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

求助各位大神 怎么样设计一个程序来测试矩形波的上升时间

[复制链接]

23

主题

90

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
220
金钱
220
注册时间
2016-1-20
在线时间
34 小时
发表于 2016-7-28 01:29:47 | 显示全部楼层 |阅读模式
1金钱
RT
@正点原子
求求各位大神帮帮给给设计思路。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

299

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1836
金钱
1836
注册时间
2013-7-29
在线时间
278 小时
发表于 2016-7-28 08:38:17 | 显示全部楼层
回复

使用道具 举报

23

主题

90

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
220
金钱
220
注册时间
2016-1-20
在线时间
34 小时
 楼主| 发表于 2016-7-28 08:49:30 | 显示全部楼层
xuyan021 发表于 2016-7-28 08:38
用快速ADC采样吧。

具体怎么操作。
回复

使用道具 举报

21

主题

299

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1836
金钱
1836
注册时间
2013-7-29
在线时间
278 小时
发表于 2016-7-28 09:05:16 | 显示全部楼层
你设置好0时的电压阈值和1时的电压阈值,再加上双门限电压比较器。接着开启捕捉功能或开启一个定时,根据计数来确定时间。用ADC也是这个思路。
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11553
金钱
11553
注册时间
2014-4-1
在线时间
1317 小时
发表于 2016-7-28 09:08:39 | 显示全部楼层

上升沿最快和最慢的时间是多少?

这个有点难度。


回复

使用道具 举报

104

主题

150

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1802
金钱
1802
注册时间
2014-1-4
在线时间
560 小时
发表于 2016-7-28 09:21:18 | 显示全部楼层
xuyan021 发表于 2016-7-28 09:05
你设置好0时的电压阈值和1时的电压阈值,再加上双门限电压比较器。接着开启捕捉功能或开启一个定时,根据计 ...

双门限电压比较器-----外接一个芯片?
回复

使用道具 举报

23

主题

90

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
220
金钱
220
注册时间
2016-1-20
在线时间
34 小时
 楼主| 发表于 2016-7-28 09:43:49 | 显示全部楼层
mcza30 发表于 2016-7-28 09:21
双门限电压比较器-----外接一个芯片?

信号幅度是不定的  我们现在所有的题目就剩下这一问了
回复

使用道具 举报

21

主题

299

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1836
金钱
1836
注册时间
2013-7-29
在线时间
278 小时
发表于 2016-7-28 10:27:19 | 显示全部楼层
那你用ADC快速采样找到最大值和最小值,加上滤波吧。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-7-29 21:14:19 | 显示全部楼层
ADC的方案不可取,要求速度太高了。MCU处理不过来。
用运放+2个IO,搞定。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-7-30 03:28:00 | 显示全部楼层
试试用ADC的watchdog:
9.png

它可以预先设置好上下限,
硬件上ADC快速连续采样,它会自动与预设值比对,然后利用产生的信号去触发定时器捕捉当前时刻。
两个时刻一减,就是上升沿了。

说着简单,不过得非常熟悉单片机寄存器操作才行, 过程中不能使用中断,甚至DMA都不行,因为它们都太慢了。。
只能使用STM32的内部信号互联功能来实现,而且估计这也只能测得微秒级的,不能再快了,STM32的ADC速率有限
坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

3

主题

548

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1383
金钱
1383
注册时间
2015-2-3
在线时间
197 小时
发表于 2016-7-30 19:58:41 | 显示全部楼层
我们做这一题的方法是使用ADC+DMA连续采样65536个(采样速度速度、处理速度并不重要,重要的是必须是做到能在脉冲不同位置等可能采样,然后采样点越多越好),然后取介于幅值10%和90%的点,求出所占的比例(注意这其实是上升+下降沿,所以存在误差),再乘上脉冲周期即可
最后做出来,精度能达到±10ns的样子。不过缺点是低频(比如10Hz)测不准
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2016-3-16
在线时间
3 小时
发表于 2016-8-3 16:43:13 | 显示全部楼层
正点原子 发表于 2016-7-29 21:14
ADC的方案不可取,要求速度太高了。MCU处理不过来。
用运放+2个IO,搞定。

具体怎么怎么实行?
回复

使用道具 举报

23

主题

90

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
220
金钱
220
注册时间
2016-1-20
在线时间
34 小时
 楼主| 发表于 2016-8-11 21:19:25 | 显示全部楼层
xuyan021 发表于 2016-7-28 09:05
你设置好0时的电压阈值和1时的电压阈值,再加上双门限电压比较器。接着开启捕捉功能或开启一个定时,根据计 ...

双门限电压比较器的硬件电路也不是很好实现  速度比较高。
回复

使用道具 举报

23

主题

90

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
220
金钱
220
注册时间
2016-1-20
在线时间
34 小时
 楼主| 发表于 2016-8-11 21:22:06 | 显示全部楼层
yyx112358 发表于 2016-7-30 19:58
我们做这一题的方法是使用ADC+DMA连续采样65536个(采样速度速度、处理速度并不重要,重要的是必须是做到能 ...

ADC+DMA?是把采到的点存到内部RAM里面?你们当时只采的了一个周期的点 然后用软件来计算了一下?
回复

使用道具 举报

11

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2016-3-1
在线时间
55 小时
发表于 2017-3-19 11:57:15 | 显示全部楼层
yyx112358 发表于 2016-7-30 19:58
我们做这一题的方法是使用ADC+DMA连续采样65536个(采样速度速度、处理速度并不重要,重要的是必须是做到能 ...

问层主一个问题,我用的F4板子,我把DMA一次采集的数据设为65535,为什么编不通过,提示内存不够
  __IO uint16_t ADC1OscConver[65535]={0};
  DMA_InitStructure.DMA_BufferSize=65535;
  最近在做测方波上升沿的时间,看到层主的方案,觉得挺好,想试一下,我的ADC和DMA已经好了,可是换到65535就不可以了,想问一下您怎么做的
回复

使用道具 举报

3

主题

548

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1383
金钱
1383
注册时间
2015-2-3
在线时间
197 小时
发表于 2017-3-28 11:53:50 | 显示全部楼层
wang呆呆 发表于 2017-3-19 11:57
问层主一个问题,我用的F4板子,我把DMA一次采集的数据设为65535,为什么编不通过,提示内存不够
  __IO ...

那就是内存不够吧,改小一点试试
回复

使用道具 举报

49

主题

341

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5265
金钱
5265
注册时间
2012-8-25
在线时间
1025 小时
发表于 2017-3-28 11:58:48 | 显示全部楼层
yyx112358 发表于 2016-7-30 19:58
我们做这一题的方法是使用ADC+DMA连续采样65536个(采样速度速度、处理速度并不重要,重要的是必须是做到能 ...

这办法牛逼,赞
回复

使用道具 举报

11

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2016-3-1
在线时间
55 小时
发表于 2017-3-28 16:02:51 | 显示全部楼层
yyx112358 发表于 2017-3-28 11:53
那就是内存不够吧,改小一点试试

问一个你的采样频率还记得吗?用定时器触发ADC采样,定时器时间是0.5us,ADC转换时间是7us,那么这会影响ADC采样的数据吗?因为ADC还没转换完,定时器又触发ADC采样了?这个问题存在吗?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 03:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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