OpenEdv-开源电子网

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

ABZ编码器定时器3配置以及中断使用问题

[复制链接]

13

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2019-3-24
在线时间
40 小时
发表于 2021-8-3 22:32:36 | 显示全部楼层 |阅读模式
2金钱
各位老哥好,小弟最近在使用g0的定时器3编码器模式时(该定时器使用与F0类似),有点问题想不明白。简单来讲就是,我使用的编码器是ABZ增量式编码器,AB两相通过TIM3的CH1,CH2采样,Z相通过CH4采样,我想知道的是TIM3是拥有编码器配置的,因此CH1,CH2这两个通道的使用,我没有疑惑,但是Z相也就是CH4,应当如何配置呢,是配置成输入捕获嘛?同时来讲,定时器的中断应该如何选择?是选择CH1,CH2的计数溢出中断,还是配合CH4的配置来使用? 希望有知道的老哥能解答一下。万分感谢!

最佳答案

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

http://www.openedv.com/forum.php?mod=viewthread&tid=301520&extra= 这个链接里,评论区第一条评论,我贴出的 工程里,有这个功能,需要可以看一下。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

28

主题

294

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1790
金钱
1790
注册时间
2018-3-26
在线时间
294 小时
发表于 2021-8-3 22:32:37 | 显示全部楼层
http://www.openedv.com/forum.php ... d=301520&extra=
这个链接里,评论区第一条评论,我贴出的 <103电机控制> 工程里,有这个功能,需要可以看一下。
茵茵猪头
回复

使用道具 举报

7

主题

480

帖子

0

精华

高级会员

Rank: 4

积分
783
金钱
783
注册时间
2021-4-15
在线时间
305 小时
发表于 2021-8-4 10:24:57 | 显示全部楼层
增量式编码器的工作原理就是,AB两相相差90度相角交错信号,每转一圈固定位置有一个Z相的信号输出,所以如果精度不是要求很高且向旋转的话,可直接使用Z相接到高数记数口,而AB相不接.把所记的Z相脉冲数除以时间,就是转速了.  网上看到的这个用法!多了一根看具体使用吧!要连接这个多出来的一根是什么功能然后才可以操作!
日常敲键--头秃一片
回复

使用道具 举报

13

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2019-3-24
在线时间
40 小时
 楼主| 发表于 2021-8-4 12:14:17 | 显示全部楼层
日渐秃兀 发表于 2021-8-4 10:24
增量式编码器的工作原理就是,AB两相相差90度相角交错信号,每转一圈固定位置有一个Z相的信号输出,所以如果精 ...

你好 是这样的 ABZ三相我都想使用,Z相作为对AB相的校正, 现在AB相我理解可以用定时器的编码器模式,但是Z相如果使用同一个定时器,应该选择什么功能呢 输入捕获嘛 如果是输入捕获会不会和编码器起冲突/
回复

使用道具 举报

11

主题

2147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4902
金钱
4902
注册时间
2015-1-10
在线时间
614 小时
发表于 2021-8-4 13:23:36 | 显示全部楼层
Z不是零点吗,每圈应该只有一个Z信号,你用个GPIO中断就行了啊,不需要用定时器啊
回复

使用道具 举报

13

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2019-3-24
在线时间
40 小时
 楼主| 发表于 2021-8-4 14:19:41 | 显示全部楼层
阿侑kevin 发表于 2021-8-4 13:23
Z不是零点吗,每圈应该只有一个Z信号,你用个GPIO中断就行了啊,不需要用定时器啊

硬件方面设计是想用TIM3的CH4的 我这边先看看能不能用不上 不行就直接外部中断了
回复

使用道具 举报

11

主题

2147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4902
金钱
4902
注册时间
2015-1-10
在线时间
614 小时
发表于 2021-8-4 14:47:12 | 显示全部楼层
dadagu 发表于 2021-8-4 14:19
硬件方面设计是想用TIM3的CH4的 我这边先看看能不能用不上 不行就直接外部中断了

零点信号频率不高的,资源多的话可以用定时器的输入捕获算转速
回复

使用道具 举报

13

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2019-3-24
在线时间
40 小时
 楼主| 发表于 2021-8-4 15:55:51 | 显示全部楼层
阿侑kevin 发表于 2021-8-4 14:47
零点信号频率不高的,资源多的话可以用定时器的输入捕获算转速

我也是想用输入捕获来弄 可是想知道 如果用同一个定时器来弄的话 输入捕获和编码器模式会不会冲突
回复

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2021-7-30
在线时间
22 小时
发表于 2021-8-24 13:22:47 | 显示全部楼层
dadagu 发表于 2021-8-4 15:55
我也是想用输入捕获来弄 可是想知道 如果用同一个定时器来弄的话 输入捕获和编码器模式会不会冲突

感觉会冲突。输入捕获用的是内部时钟计数,编码器用的是外部触发沿计数。两者计数方式冲突吧。刚学,说得不对请多多指教
回复

使用道具 举报

13

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2019-3-24
在线时间
40 小时
 楼主| 发表于 2021-8-24 15:46:34 | 显示全部楼层
sharkboy 发表于 2021-8-24 13:22
感觉会冲突。输入捕获用的是内部时钟计数,编码器用的是外部触发沿计数。两者计数方式冲突吧。刚学,说得 ...

这里尝试采用输入捕获检测,发现结果不准之后,就选择采用外部中断来采集z信号了,没有深入研究这里冲突的原因。
回复

使用道具 举报

28

主题

294

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1790
金钱
1790
注册时间
2018-3-26
在线时间
294 小时
发表于 2021-8-25 09:28:45 | 显示全部楼层
本帖最后由 htao 于 2021-8-25 09:30 编辑
dadagu 发表于 2021-8-24 15:46
这里尝试采用输入捕获检测,发现结果不准之后,就选择采用外部中断来采集z信号了,没有深入研究这里冲突 ...

AB相是捕获脉冲数,可以通过配置定时器的捕获模式的ch1 ch2来获取。

Z相是一圈一个信号,比如AB相检测每3600个脉冲会产生一个Z 相信号,这个Z相信号不用定时器,用普通IO 中断获取。

你说的捕获不准,可能是配置定时器参数有问题,百度对照参数配置一下
茵茵猪头
回复

使用道具 举报

13

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2019-3-24
在线时间
40 小时
 楼主| 发表于 2021-8-26 15:04:35 | 显示全部楼层
htao 发表于 2021-8-25 09:33
http://www.openedv.com/forum.php?mod=viewthread&tid=301520&extra=
这个链接里,评论区第一条评论,我 ...

好的  谢谢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-30 13:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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