打印
[学习笔记]

【AutoChips 7801x MCU评测报告】四、正交解码

[复制链接]
716|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
      在PWM1_CH6输出学习的基础上又尝试进行了PWM模块另一功能“正交解码”的学习。实验中使用了一只EC11编码开关模块,利用PWM0_CH0、PWM0_CH1通道连接EC11的"A"、"B"端,期望实现对EC11旋转方向及转动步数的解码。具体实验过程如下:

一、实验资源
1、AC7801x开发板;
2、AutoGen Studio 1.3.0;
3、KEIL 5.28.0.0;
4、ST-LINK2;
5、EC11编码开关

二、资源简介
      AC7801x的PWM模块具有许多非常实用的功能,正交解码就是其中的一项。




      正交解码有两种工作模式,通过“PWM_QDI”寄存器的“QUADMODE”位进行控制,当“QUADMODE=1”时工作模式为“计数和方向编码模式”;当“QUADMODE=0”时工作模式为“A向和B向编码模式”。根据EC11的器件特性实验中选择了“A向和B向编码模式”:

      在“A向和B向编码模式”中,当PWM计数器向上、向下计数溢出中断时“CNTOFDIR”状态不同,编写代码时对其状态进行判断用以确定EC11计步数的增、减。




三、代码实现
使用“AutoGen Studio”配置工程:


正交解码初始化参数:
void ATC_PWM0_Init(void)
{
    PWM_ConfigType pwmConfig;
    PWM_QuadDecodeConfigType initModeStruct;

    MSP_PWM_Init(PWM0);

    pwmConfig.mode = PWM_MODE_QUADRATURE_DECODER;
    pwmConfig.clkSource = PWM_CLK_SOURCE_APB;
    pwmConfig.clkPsc = 0;
    pwmConfig.initValue = 0;
    pwmConfig.maxValue = 0;
    pwmConfig.overflowInterrupEn = ENABLE;
    pwmConfig.cntOverflowFreq = 0;
    pwmConfig.interruptEn = ENABLE;
    pwmConfig.callBack = Quad_Decoder_Callback;

    initModeStruct.quadEn = ENABLE;
    initModeStruct.mode = PWM_QUAD_PHASE_ENCODE;
    initModeStruct.phaseAConfig.polarity = PWM_QUAD_PHASE_NORMAL;
    initModeStruct.phaseAConfig.filterEn = DISABLE;
    initModeStruct.phaseBConfig.polarity = PWM_QUAD_PHASE_NORMAL;
    initModeStruct.phaseBConfig.filterEn = DISABLE;
    pwmConfig.initModeStruct = &initModeStruct;

    PWM_Init(PWM0, &pwmConfig);

}

四、实验结果


五、实验总结
      第一次使用“正交解码”解读EC11,实现的代码相较于之前的软件代码显得简洁并且高效,运行流畅也没有失步现象。实验代码还缺少EC11按键部分,也没有进行优化。准备后期与PWM输出模块相配合制作一个频率可调、占空比可调的PWM输出控制设备。

使用特权

评论回复

相关帖子

沙发
caizhiwei| | 2020-6-21 22:39 | 只看该作者
厉害了楼主!
我用过华大的高级定时器做正交解码,还不错效果。

使用特权

评论回复
板凳
lisingch|  楼主 | 2020-6-21 23:05 | 只看该作者
caizhiwei 发表于 2020-6-21 22:39
厉害了楼主!
我用过华大的高级定时器做正交解码,还不错效果。

以前用过软件方式的,没这个好用。第一次用这个硬件解码,感觉非常顺滑不丢步,好用

使用特权

评论回复
地板
marginer| | 2020-6-23 14:11 | 只看该作者
LZ的Auto Gen用得很溜

使用特权

评论回复
5
lisingch|  楼主 | 2020-6-23 14:29 | 只看该作者
marginer 发表于 2020-6-23 14:11
LZ的Auto Gen用得很溜

谢谢领导表扬!关键还是AutoGen Studio简单易用、平易近人

使用特权

评论回复
6
TechHolder| | 2020-6-23 16:54 | 只看该作者
非常好的分享

使用特权

评论回复
7
lisingch|  楼主 | 2020-6-23 17:41 | 只看该作者

谢谢捧场!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

14979

帖子

17

粉丝