如何使用RX MCU的多功能定时器连接ABZ相对编码器

如何使用RX MCU的多功能定时器连接ABZ相对编码器,第1张

介绍

前面很多的文章已经有介绍过RX系列32位高性能MCU,特别是RX-T系列,如何在电机驱动控制上使用,以及如何实现无感测向量等高性能电机控制技术。

今天我们回头来看一看如何使用RX MCU的多功能定时器(MTU - MulTI-funcTIon TImer Unit,其实有更多人称之为Motor TImer Unit),连接传统的ABZ相对编码器。

本文章使用了RX671开发板作为例子,使用任何RX系列MCU, *** 作上也是基本相同的。

内容

1

打开e2 studio IDE,创建RX工程,选择Renesas CC-RX C/C++ Executable Project。

如何使用RX MCU的多功能定时器连接ABZ相对编码器,28e51380-2a77-11ed-ba43-dac502259ad0.png,第2张

2

选择工程对应的存储路径,工程命名为“prj”。

如何使用RX MCU的多功能定时器连接ABZ相对编码器,29134548-2a77-11ed-ba43-dac502259ad0.png,第3张

3

选择最新版本的CCRX Toolchain、对应的芯片型号、仿真器等。

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2929d754-2a77-11ed-ba43-dac502259ad0.png,第4张

4

勾选Use Smart Configurator,一直点击“Next”,直到工程创建完成。

如何使用RX MCU的多功能定时器连接ABZ相对编码器,294c593c-2a77-11ed-ba43-dac502259ad0.png,第5张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,29825294-2a77-11ed-ba43-dac502259ad0.png,第6张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,299e5b4c-2a77-11ed-ba43-dac502259ad0.png,第7张

5

点击prj.scfg,会出现图Smart Configurator *** 控界面。设置时钟源为HOCO 20MHz,以及后面的分频器也一同设置。

如何使用RX MCU的多功能定时器连接ABZ相对编码器,29c55ac6-2a77-11ed-ba43-dac502259ad0.png,第8张

6

更新BSP至最新版本。

如何使用RX MCU的多功能定时器连接ABZ相对编码器,29f14064-2a77-11ed-ba43-dac502259ad0.png,第9张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2a0cac50-2a77-11ed-ba43-dac502259ad0.png,第10张

7

为了方便测试,这里会使用MCU中的一个100us定时器产生中断,控制P3.2和P3.3作为模拟编码器的A/B信号输出。

添加CMT 100us定时器中断。

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2a26b6ea-2a77-11ed-ba43-dac502259ad0.png,第11张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2a408034-2a77-11ed-ba43-dac502259ad0.png,第12张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2a566534-2a77-11ed-ba43-dac502259ad0.png,第13张

8

添加MTU1,设置为16-bit Phase Counting Mode Timer,作为编码器A/B信号的输入,具体的参数使用默认值即可。

接线方法为编码器A/B信号线连接P2.4 (MTCLKA)/P2.5 (MTCLKB),在无编码器的情况下可以使用P3.2/P3.3作模拟(在CMT0的中断函数,以软件控制P3.2/P3.3)。

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2a72c0f8-2a77-11ed-ba43-dac502259ad0.png,第14张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2a91f7f2-2a77-11ed-ba43-dac502259ad0.png,第15张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2a9e6726-2a77-11ed-ba43-dac502259ad0.png,第16张

9

添加MTU0,设置为Normal Mode Timer,使用的是2pins Capture,TGRA0作为输入捕捉计时器,TGRC0用作TGRA0的Buffer。可以设置中断用作调试验证。

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2ac579ec-2a77-11ed-ba43-dac502259ad0.png,第17张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2ae3dbee-2a77-11ed-ba43-dac502259ad0.png,第18张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2af5ecd0-2a77-11ed-ba43-dac502259ad0.png,第19张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2b14aa1c-2a77-11ed-ba43-dac502259ad0.png,第20张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2b2f6d84-2a77-11ed-ba43-dac502259ad0.png,第21张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2b41684a-2a77-11ed-ba43-dac502259ad0.png,第22张

10

设置IO口P3.2、P3.3作输出,用来模拟编码器的输出信号。使用P2.4、P2.5的上拉电阻

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2b6b70c2-2a77-11ed-ba43-dac502259ad0.png,第23张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2b86ad2e-2a77-11ed-ba43-dac502259ad0.png,第24张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2b9bd762-2a77-11ed-ba43-dac502259ad0.png,第25张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2bbb115e-2a77-11ed-ba43-dac502259ad0.png,第26张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2bd28e74-2a77-11ed-ba43-dac502259ad0.png,第27张

11

配置好底层驱动后,生成代码。

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2be3321a-2a77-11ed-ba43-dac502259ad0.png,第28张

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2c0f4cba-2a77-11ed-ba43-dac502259ad0.gif,第29张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2c0f4cba-2a77-11ed-ba43-dac502259ad0.gif,第29张

至此完成Smart Configurator配置,后续就是代码部分了:

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2c0f4cba-2a77-11ed-ba43-dac502259ad0.gif,第29张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2c0f4cba-2a77-11ed-ba43-dac502259ad0.gif,第29张

1

Config_CMT0_user.c,CMT 100us定时器中断程序。

使用P3.2、P3.3作为模拟编码器的信号输出。仿真过程中可以通过修改变量g_led_delay_cnt来改变信号的频率。

接线方法为编码器A/B信号线连接P2.4 (MTCLKA)/P2.5 (MTCLKB),在无编码器的情况下可以使用P3.2/P3.3作模拟。

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2c6b44f2-2a77-11ed-ba43-dac502259ad0.png,第33张

2

Config_MTU0_user.c,使用MTU0捕捉中断和溢出中断,用来作调试验证用,实际使用时可以取消。

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2c905c9c-2a77-11ed-ba43-dac502259ad0.png,第34张

3

prj.c,主程序。实现简单的循环读取编码器脉冲计数值与定时器值。

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2cc1c0a2-2a77-11ed-ba43-dac502259ad0.png,第35张

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2c0f4cba-2a77-11ed-ba43-dac502259ad0.gif,第29张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2c0f4cba-2a77-11ed-ba43-dac502259ad0.gif,第29张

开始仿真测试,测试结果如下:

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2c0f4cba-2a77-11ed-ba43-dac502259ad0.gif,第29张

 

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2c0f4cba-2a77-11ed-ba43-dac502259ad0.gif,第29张

通过调整g_led_delay_cnt数值模拟不同频率下的脉冲输入。

当g_led_delay_cnt=1000时:

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2d2009fa-2a77-11ed-ba43-dac502259ad0.png,第40张

当g_led_delay_cnt=100时:

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2d3dde58-2a77-11ed-ba43-dac502259ad0.png,第41张

当g_led_delay_cnt=10时:

如何使用RX MCU的多功能定时器连接ABZ相对编码器,2d59ad4a-2a77-11ed-ba43-dac502259ad0.png,第42张

编辑:黄飞

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2998510.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-26
下一篇 2022-09-26

发表评论

登录后才能评论

评论列表(0条)

保存