利用电机控制中PLU模块与CTIMER计数器解码电机

发布者:yanfeng00最新更新时间:2022-12-05 来源: elecfans关键字:电机控制  计数器 手机看文章 扫描二维码
随时随地手机看文章

在电机控制中,实时获取电机转子位置是非常重要的。通过监测电机轴或机械设备运动的位置可以计算电机转速。当电机转动时,编码盘传感器(Encoder)会发出类似于正交PWM波的高低电平信号,对此信号进行解码,可以得到电机转动角度及方向。


DSC系列MCU的Quad Timer(TMR)外设可以对正交编码信号解码,有些客户使用LPC55XX系列也需要解码,本文用PLU模块对Encoder的信号解码,用计数器计数解码信号,进而得到转子位置及速度。


1. 标准推拉输出

DSP系列MCU的Quad Timer(TMR)外设可以对正交编码信号进行解码,如下:


在进行解码时,其实是两个信号发生电平翻转时进行计数,那么可以理解为对这两个信号做异或运算,对结果信号上升沿和下降沿进行计数,就可实现解码功能。利用可编程逻辑单元PLU对正交编码信号做异或运算,利用CTIMER计数器对输出信号进行计数,同样可以达到Quad Timer(TMR)解码效果。


2. 配置PLU与CTIMER

PLU(Programmable Logic Unit),即可编程逻辑单元,可创建小型组合与时序逻辑电路。LPC804与LPC55XX的PLU在使用上是完全相同的,包含了6个输入、8个输出、26个5输入查找表(LUT)、4个触发器(state Flip-Flops),详细介绍如下: https://www.nxpic.org.cn/module/forum/thread-622667-1-1.html 用PIO_19与PIO_20产生类似于正交编码信号,将两路信号输入PLU模块的IN3与IN4,进行异或运算,再输出到OUT5,将OUT5信号输入到CTIMER计数器进行计数,如下:


以LPC55S69-EVK开发板为例,具体的引脚使用如下:


配置PLU与CTIMER引脚,如下:


打开PLU与CTIMER时钟,如下:


添加PLU外设,如下:


配置CTIMER外设,在main.c文件中添加CTIMER初始化,上升沿与下降沿都可触发计数器。假如电机转一圈触发4096次计数器,电机在旋转60°时要控制电机变相,当计数器值为4096/6 = 682时,触发一次ctimer中断,在中断处理函数中控制电机,如下:

uint32_t motor_flag = 0;
const ctimer_config_t CTIMER0_config = {
  .mode = kCTIMER_IncreaseOnBothEdge,
  .input = kCTIMER_Capture_0,
  .prescale = 0
};
const ctimer_match_config_t CTIMER0_Match_0_config = {
  .matchValue = 681,
  .enableCounterReset = true,
  .enableCounterStop = false,
  .outControl = kCTIMER_Output_NoAction,
  .outPinInitState = false,
  .enableInterrupt = true
};
/*Single callback functions definition */
ctimer_callback_t CTIMER0_callback[] ={ctimer0_match0_callback};
static void CTIMER0_init(void) {
  /* CTIMER0 peripheral initialization */
  CTIMER_Init(CTIMER0, &CTIMER0_config);
  /* Interrupt vector CTIMER0_IRQn priority settings in theNVIC. */
  NVIC_SetPriority(CTIMER0_IRQn, 0);
  /* Match channel 0 of CTIMER0 peripheral initialization*/
  CTIMER_SetupMatch(CTIMER0, kCTIMER_Match_0, &CTIMER0_Match_0_config);
  CTIMER_RegisterCallBack(CTIMER0,CTIMER0_callback, kCTIMER_SingleCallback);
  CTIMER_StartTimer(CTIMER0);
}
void ctimer0_match0_callback(uint32_t flags)
{
    motor_flag++;
}


下载PLU configure tool,下载链接如下:

https://www.nxp.com/mcu-plu-config-tool 打开PLU配置工具,选择原理图设计,做一个异或运算,如下:

7305c920-7110-11ed-8abf-dac502259ad0.jpg

点击菜单栏File->Export->PLU source file将其导出为C文件,将C文件的内容复制到main函数中,如下:

    PLU->LUT[4].INP_MUX[0] = 0x00000003; /* IN3 (IN3) */
    PLU->LUT[4].INP_MUX[1] = 0x00000004; /* IN4 (IN4) */
    PLU->LUT[4].INP_MUX[2] = 0x0000003F; /* default */
    PLU->LUT[4].INP_MUX[3] = 0x0000003F; /* default */
    PLU->LUT[4].INP_MUX[4] = 0x0000003F; /* default */
    PLU->LUT_TRUTH[4] = 0x66666666; /* XOR01 (XOR01) STD 2INPUT XOR */
    PLU->OUTPUT_MUX[5] = 0x00000004; /* LUT4 (XOR01) ->OUT5 */


利用GPIO产生正交编码信号,CTimer进行计数,当计数到682时会触发中断进入回调函数,计数器值(TC)会自动清零,重新计数,如下:


while(1) {
     GPIO_PortToggle(GPIO,0, 1u << 19);
     SysTick_DelayTicks(5U);
     GPIO_PortToggle(GPIO,0, 1u << 20);
     SysTick_DelayTicks(5U);
        motor_counter = CTIMER0->TC;    }


3. 测试结果 逻辑分析仪测试结果如下:

73245ad4-7110-11ed-8abf-dac502259ad0.jpg

调试时,计数器的值如下所示:

73428d10-7110-11ed-8abf-dac502259ad0.jpg


关键字:电机控制  计数器 引用地址:利用电机控制中PLU模块与CTIMER计数器解码电机

上一篇:多联外机噪音诊断故障及解决方案
下一篇:如何使用NXP的PLU配置工具

推荐阅读最新更新时间:2024-10-29 09:06

基于MC9S12X128无刷直流电机控制系统设计
直流无刷电机是一种高性能电机,它具有效率高、可靠性好、结构简单、便于维护和体积小等优点。与直流电机相比,无刷电机没有电刷和换相器,而采用电子电路进行换相,换相时不会产生电火花,不存在机械换向损耗。与异步电机相比,无刷电机的转子与定子磁场同步旋转,因此不存在转子损耗。与同步电机相比,无刷电机控制方法简单,便于工程应用的特性,使其被广泛应用于众多领域。 直流无刷电机的控制方案有多种,如文献采用DSP作为主控制器的控制系统,文献采用FPAG控制无刷电机,文献选用MEGA8单片机控制方案。这些控制方法都能够实现电机的正反转、启停等控制,但在系统实现成本、控制精度、运行稳定性和外围电路的能源消耗等方面上却有较大的差别。使用DSP和FP
[单片机]
基于MC9S12X128无刷直流<font color='red'>电机控制</font>系统设计
单片机的程序计数器及存储系统
  为了保证程序能够连续地执行下去,CPU必须具有某些手段来确定一条指令的地址。程序计数器PC正是起到了这种作用,所以通常又称其为指令地址计数器。在程序开始执行前,必须将其起始地址。即程序的第一条指令所在的内存单元地址送入PC。当执行指令时,CPU将自动修改PC的内容,使之总是保存将要执行的下一个条指令的地址。由于大多数都是按顺序执行的,所以修改的过程只是简单的加1操作。   下面我们看看8051的存储器系统:(此章非常重要,请仔细理解)8051序列单片机与一般微机的存储器配置方式不相同。一般微机通常只有一个地址空间,ROM和RAM可以随意安排在这一地址范围内不同的空间,即ROM和RAM的地址同在一个队列里分配不同的地址空间。
[单片机]
基于双DSP的无刷直流电机控制器硬件设计和实现
摘要:根据无刷直流电机理论和系统的要求,以双TMS320F2812 DSP处理器为核心,针对系统的高可靠性要求,进行了无刷直流电机控制器的硬件电路设计并对核心电路进行分析、仿真和实验验证;结果表明,该硬件电路可实现无刷直流电机正常调速的控制需求,相应性能指标可满足系统需求。 0 引言 无刷直流电机(以下简称BLDCM)用电子换相器取代机械换向器,根除了电刷和换向器接触磨损所导致的寿命周期短、电气绝缘低、火花干扰强等诸多缺陷;同时永磁材料的高磁性能使无刷直流电机具有起动转矩大、调速范围广、运行效率高等优点,在各个工业领域有着广泛应用。 由于本系统有较高的可靠性要求,因此总体设计思路是采用主控、监控双DSP系统架构满足控制器的高
[嵌入式]
从工业到智能工业,ST亮出了“控制、通信、传感”三把利器
从人类社会的整体进程来看,工业革命对其发展起到了巨大的推动作用,社会经济迅速增长,城市化建设快速推进,不同地区能够无障碍交流,世界逐步形成一个整体。第一次工业革命以水和蒸汽机驱动机械生产设备为标志,使工厂代替了手工工场,用机器代替了手工劳动;第二次工业革命通过分工概念和使用电力,实现大规模量产,使驱动机制发生了改变;第三次工业革命基于使用电子产品和IT技术来进一步实现生产自动化,机器被大量取代;如今人类社会将迎来第四次工业革命,使用网络物理系统、通信、物联网和分散式决策,使得机器被部分取代和关联,也就是我们一直在讲的 智能工业 。   从工业到智能工业,意味着工厂的生产效率更高,供应链的灵活性和定制化可能性更大,实现可持续的生产,
[嵌入式]
基于LabVIEW的步进电机控制
步进电机是一种将电脉冲信号转换成角位移或线位移的机电元件。它在在工业自动化控制、数控机床、机器人等领域有着广泛的应用。在远程实验系统中,经常有需要利用步进电机对一些旋钮、位置等进行自动调节。本文设计了基于虚拟仪器技术的步进电机控制方案。该方案采用虚拟仪器控制步进电机,编程简单,界面友好,易于更改程序功能,控制灵活性得到了提高。 1 步进电机工作原理 步进电机按其力矩产生原理可以分为反应式、永磁式和混合式几种。本文采用的是反应式二相四线步进电机,定子有两个线圈绕组,设其中一个线圈绕组为A相,另一个线圈绕组为B相。当给A相绕组通电时,该绕组即产生磁场,转子齿与A相绕组各齿对齐;当给B相绕组通电时,转子齿将与B相绕组各齿对齐,这样,转子
[测试测量]
基于LabVIEW的步进<font color='red'>电机控制</font>
精英聚焦:工程新星Manish Bhardwaj
在德州仪器持续推出的 精英聚焦 系列博客中,我们将介绍那些在TI通过出色工作来改变世界的业界精英。 摘要:德州仪器(TI)的员工Manish Bhardwaj曾被Design News授予 工程新星奖 ,其在线刊物指出,Manish在他所从事的领域中另辟蹊径,这也让他在众多 杰出的同行提名者 中脱颖而出。您只需要简单地了解一下Manish在其近期项目中的表现,就会知道他为什么是本年度 工程新星奖 的不二人选。 大约在一年半之前,Manish决定着手开始一项非凡的工作,那就是为客户设计一款软件工具,以帮助他们解决在为太阳能板创建电力转换系统时遇到的常见控制设计难题。带着这个想法,Manish首先找到了他的经理,在经
[工业控制]
精英聚焦:工程新星Manish Bhardwaj
什么是电机控制算法
电机控制算法和是电机控制领域的两个核心方面,下面将对它进行解释。 电机控制算法: 电机控制算法是指利用各种控制技术对电机进行控制的算法,其目的是让电机在不同负载和速度下实现高精度、高效率、高可靠性的运行。常见的电机控制算法包括以下几种: (1) 位置控制算法:控制电机按照预设位置运行,常用于步进电机、伺服电机等的控制。 (2) 速度控制算法:控制电机按照预设速度运行,常用于直流电机、无刷电机等的控制。 (3) 扭矩控制算法:控制电机输出的扭矩大小,常用于交流电机、直流电机等的控制。 (4) 矢量控制算法:控制电机的磁场方向和大小,实现高精度、高效率的运行,常用于交流电机、无刷电机等的控制。 电机控制算法的选择需要根据具体的应用场景
[嵌入式]
力矩电机控制器工作原理
力矩电机控制器为代替三相自耦变压器,而专门设计的一种先进的全电子化控制装置,能工作在电阻、电感性负载。广泛适用于五金机械塑料、电线、电缆、绳网、印刷、造纸、纺织、印染、化疑纤、橡绞、电影胶皮等各种机械、机电行业。 与三相自藕调压器相比较,本控制器由于采用了电子调节,无触点磨损,电压调节平衡,起动性能好,本控制器具有体积小、重量轻、效率高、发热小、节约能源(经测定平均节能17%以上),使用寿命长、安装、维修方便。 工作条件: 1、 环境温度:-25℃~+55℃。 2、空气相对湿度:≤85%(20℃±5℃)。 3、无显著冲击震动外。 4、工作电压:三相电压交流380V、220V(±10%)。 5、50~60HZ。 工作原理:
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved