




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 用SPMC75的PDC定时器做BLDC电机的速度检测V1.0 Dec 8, 2005中文版19, Innovation First Road Science Park Hsin-Chu Taiwan 300 R.O.C. 版权声明凌阳科技股份有限公司保留对此文件修改之权利且不另行通知。凌阳科技股份有限公司所提供之信息相信为正确且可靠之信息,但并不保证本文件中绝无错误。请于向凌阳科技股份有限公司提出订单前,自行确定所使用之相关技术文件及规格为最新之版本。若因贵公司使用本公司之文件或产品,而涉及第三人之专利或著作权等智能财产权之应用及配合时,则应由贵公司负责取得同意及授权,本公司仅单纯贩售产品,
2、上述关于同意及授权,非属本公司应为保证之责任。又未经凌阳科技股份有限公司之正式书面许可,本公司之所有产品不得使用于医疗器材,维持生命系统及飞航等相关设备。 修订记录版本日期作者修订内容对应页码初版2005/12/8 1.0 目录页1BLDC的速度测算 (21.1直流无刷电动机概述 (21.2PDC模块简介 (21.3PDC的应用 (41.3.1控制寄存器 (41.3.2位置侦测控制寄存器 (71.4速度的计算 (81.5抗干扰设置 (102软件说明 (112.1软件说明 (112.2档案构成 (112.3DMC界面 (112.4子程序说明 (123程序范例 (143.1DEMO程序 (143.
3、2程序流程与说明 (163.3中断子流程与说明 (163.4实验硬件 (164参考文献 (18 【定义】机械角度:一台电动机的转子端面是个圆,从几何的角度来说可以分为360,这样划分的角度为机械角度。【定义】电角度:从磁场的角度看,一对磁极便是一个交变的周期,通常把一对磁极(一个N极,一个S极所对应的机械角度定为360电角度。如果电机有p对磁极,则电角度=p机械角度。可以看出不论电动机的级数多少,一个磁极对应180电角度,一对磁极对应360电角度,电动机的一个圆周对应p360电角度。 1 BLDC的速度测算1.1 直流无刷电动机概述直流无刷电动机采用电子换向器替代了传统直流电动机的机械换向装置
4、,从而克服了电刷和换向器所引起的噪声、火花、电磁干扰、寿命短等一系列弊病。由于直流无刷电动机既具备交流电动机的结构简单、运行可靠、维护方便等一系列优点,又具有直流电动机的运行效率高、无励磁损耗以及调速性能好等诸多优点,故其在工业领域中的应用越来越广泛。1.2 PDC模块简介SPMC75F2413A提供了两个PDC定时器,定时器0和定时器1,用于捕获功能和产生PWM 波形输出,同时具有直流无刷电机侦测位置改变的特性。PDC定时器非常适用于机械速度的计算,包括交流感应电机,直流无刷电机和。而直流无刷电机即是依据位置信息来改变电流相位。如图1-1所示PDC定时器0和定时器1的整体框图。PDC定时器的
5、详细规格说明见表1-1。表 1-1 PDC定时器规格功能PDC 定时器 0 PDC 定时器 1时钟源内部时钟: FCK/1、FCK/4、FCK/16、FCK/64、FCK/256、FCK/1024外部时钟: TCLKA、TCLKB 内部时钟: FCK/1、FCK/4、FCK/16、FCK/64、FCK/256、FCK/1024外部时钟: TCLKA、TCLKBIO 引脚TIO0A, TIO0B, TIO0C TIO1A, TIO1B, TIO1C定时通用寄存器 P_TMR0_TGRA、P_TMR0_TGRB、P_TMR0_TGRC P_TMR1_TGRA、P_TMR1_TGRB、P_TMR1_
6、TGRC定时缓冲寄存器 P_TMR0_TBRA、P_TMR0_TBRB、P_TMR0_TBRC P_TMR1_TBRA、P_TMR1_TBRB、P_TMR1_TBRC定时、计数寄存器 P_TMR0_TPR、P_TMR0_TCNT P_TMR1_TPR、P_TMR1_TCNT捕获采样时钟内部时钟: FCK/1、FCK/2、FCK/4、FCK/8 内部时钟: FCK/1、FCK/2、FCK/4、FCK/8计数边沿上升、下降、双沿计数上升、下降、双沿计数计数清除源根据P_TMR0_TGRA、P_TMR0_TGRB、P_TMR0_TGRC捕获输入清除根据P_POS0_DectData侦测位置改变数据变
7、化清除根据P_TMR0_TPR比较匹配清除根据P_TMR1_TGRA、P_TMR1_TGRB、P_TMR1_TGRC 捕获输入清除根据P_POS1_DectData侦测位置改变数据变化清除根据P_TMR1_TPR比较匹配清除输入捕获功能Yes Yes 1 输出 Yes Yes 0 输出YesYes PWM 比较匹配输出功能 输出保持 YesYes 边沿 PWM Yes Yes 中心PWMYesYes相位计数模式 Yes, 相位输入为TCLKA/TCLKB Yes, 相位输入为TCLK C/TCLKD 定期器缓冲操作YesYesAD 转换触发 P_TMR0_TGRA 比较匹配 P_TMR1_TG
8、RA 比较匹配 中断源定时器0 TPR 中断定时器 0 TGRA 中断 定时器 0 TGRB 中断 定时器 0 TGRC 中断 定时器 0 PDC 中断 定时器 0 上溢 中断 定时器 0 下溢 中断定时器 1 TPR 中断 定时器 1 TGRA 中断 定时器 1 TGRB 中断 定时器 1 TGRC 中断 定时器 1 PDC 中断 定时器 1 上溢中断 定时器1 下溢 中断 B7 B6 B5 B4 B3 B2 B1 B0R/W R/W R/W R/W R/W R/W R/W R/W0 0 0 0 0 0 0 0CCLS CKEGS TMRPS 第 15:14 位SPCK:捕获输入采样时钟选择
9、位,用于选择捕获输入的采样时钟,小于采样时钟四倍频的频率将被忽略。00 = FCK/101 = FCK/210 = FCK/411 = FCK/8第 13:10 位MODE:模式选择位。用于选择定时器操作模式。0000 =标准模式(连续递增计数0100 =相位计数模式10101 =相位计数模式20110 =相位计数模式30111 =相位计数模式41x0x =边沿PWM模式(连续递增计数,PWM输出1x1x =中心沿PWM模式(连续递增/递减计数,PWM输出第 9:8 位CLEGS:计数器清除边沿选择位,用于输入捕获模式下选择计数器清除边沿。00 =不清除01 =上升沿10 =下降沿11 =双沿
10、第 7:5 位CCLS:计数器清除源选择位,用于选择TCNT的计数清除源。000 =禁止进行TCNT清除001 =由P_TMRx_TGRA (x = 0, 1清除TCNT010 =由P_TMRx_TGRB (x = 0, 1清除TCNT011 =由P_TMRx_TGRC (x = 0, 1清除TCNT100 =每6次P_POSx_DectData (x = 0, 1变化清除1次TCNT101 =每3次P_POSx_DectData (x = 0, 1变化清除1次TCNT110 =每次P_POSx_DectData (x = 0, 1变化清除1次TCNT111 =P_TMRx_TPR (x =
11、0, 1比较匹配事件发生,清除1次TCNT第 4:3 位CKEGS:时钟边沿选择位,用于选择输入的时钟边沿触发方式。当输入时钟为双沿计数时,输入时钟周期会减半。若选择FCK/1为计数时钟,如果为双沿触发,那么计数器将以上升沿方式工作。00 =上升沿计数01 =下降沿计数 1X =双沿计数第 2:0 位TMRPS:定时器分频选择,用于选择TCNT计数时钟源。每个通道可分别的选择不同的时钟源。000= FCK /1下计数= FCK /4下计数001= FCK /16下计数010= FCK /64下计数011= FCK /256下计数100= FCK /1024下计数101110=以TCLKA引脚输
12、入时钟计数=以TCLKB引脚输入时钟计数1111.3.1.2 设置控制寄存器用于速度测算时定时器0/1控制寄存器P_TMRx_Ctrl(x = 0, 1 的设置主要是针对输入捕获的功能。输入捕获和一般意义上的还有所不同,因为我们用PDC位置改变中断来捕获在两次位置改变过程中所经历的时间,这个时间是以一定频率脉冲做为时钟源来计数得到的,所以要对相关计数的事项来进行设置。MODE:MODE为定时器操作模式模式设置位,有七种模式可以设置,然而这里只能是设置为0000=标准模式(连续递增计数。因为其它是关于相位计数和PWM发生模式的设置,与此无关。 CCLS:CCLS计数器清除源设置,这个设置是一个相
13、当重要的设置,有八种清除方式可以选择,这里将需要对其设置为100、101和110中的一个。分别是每六次P_POSx_DectData(x = 0, 1变化清除一次TCNT、每三次P_POSx_DectData(x = 0, 1变化清除一次TCNT和每一次P_POSx_DectData(x = 0, 1变化清除一次TCNT,也可以说成BLDC每转过360电角度清除一次TCNT、每转过180电角度清除一次TCNT和每转过60电角度清除一次TCNT。清除源的设置将影响BLDC的电角度向机械角度的换算和BLDC转速测量的精度。CKEGS:CKEGS计数时钟边沿触发方式,设置计数时钟将在上升、下降或双沿
14、来计数。如果设置为双沿计数频率快一倍,所以注意转速计算上的数值关系。TMRPS:TMRPS定时器计数时钟源分频设置,有八种选择。这里的设置将决定速度测量的精度和范围。例如下面的一段设置:P_TMR0_Ctrl-B.MODE = 0; / 标准计数模式P_TMR0_Ctrl-B.CCLS = 6; / 每次P_POSx_DectData改变清除一次TCNT P_TMR0_Ctrl-B.CKEGS = 0; / 上升沿计数P_TMR0_Ctrl-B.TMRPS = 3; / FCK/64的时钟源计数 1.3.2 位置侦测控制寄存器1.3.2.3 P_POSx_DectCtrl(x = 0, 1B1
15、5 B14 B13 B12 B11 B10 B9 B8 R/W RW R/W R/W R/W R/W R/W R/W0 0 0 0 0 0 0 0SPLCK SPLMOD SPLCNTB7 B6 B5 B4 B3 B2 B1 B0 R/W R/W R/W R/W R/W R/W R/W R/W0 0 0 0 0 0 0 0 PDEN SPDLY 第 15:14 位SPLCK:采样时钟选择位。选择FCK/4, FCK/8, FCK/32, 或FCK/128作为位置采样的时钟源00 = FCK/401 = FCK/810 = FCK/3211 = FCK/128第 13:12 位SPLMOD:采样
16、模式选择位。从以下三种模式中选择:PWM有输出时的采样、周期性采样、下相(UN, VN, WN导通时采样。00 =若P_TMRx_OutputCtrl (x = 3, 4寄存器中的UPWM/VPWM/WPWM位置1则进行采样,并输出PWM波形。01 =周期性采样10 =N极相位(UN, VN, WN导电采样11 =保留第 11:8 位SPLCNT:采样计数选择。用于为外部位置侦测信号选择采样计数。外部位置信号必须连续的以与采样计数的设置相匹配的数值采样,这样才算作有效的位置信号。采样计数设置的有效值与为从1到15次。注意0和1都将被认为是一次。第 7 位PDEN:位置侦测使能位,用于使能/禁止
17、来自TIOAC管脚的位置输入信号的位置侦测功能。使能时,对这些引脚上的输入信号进行采样,将结果锁存入POS_DectData 寄存器的PDR 2:0位中,一旦禁止该功能,PDR 2:0中仍保持了先前的状态。0 =禁止1 =使能第 6:0 位:SPDLY 采样延时。这些位设置了SPLCK时钟源的延时时间。可用于避免在PWM输出开启瞬间的噪声干扰导致的错误侦测。 2 软件说明2.1 软件说明AN_SPMC75_0013方案实现对BLDC的驱动过程中对速度测算,对速度得测算得实现方式是通过PDC Timer的位置改变捕获输入来完成的。2.2 档案构成文件名称功能类型Main 各模块的初始化,和对电机
18、运行监控(中断完成也可 CISR 位置改变捕获、速度测算 CSpmc75 _SPDET_V100 速度测算必要的函数libSpmc75_dmc_lib_V100.lib DMC通信程序lib2.3 DMC界面Speed1_Now:当前测算的速度值User_R0:PDC中断捕获到的数据 2.4 子程序说明Spmc75_System_Init ( 原形void Spmc75_System_Init(void描述初始化PDC Timer模块、DMC初始化输入参数无输出参数无头文件Spmc75_SPDET.h库文件Spmc75_ SPDET _V100注意事项初始化的为Timer0的PDC功能。例子S
19、pmc75_System_Init(; Spmc75_PDCETSPD_ISR ( 原形void Spmc75_PDCETSPD_ISR(void 描述捕获数据,滤波,计算速度输入参数无输出参数无头文件Spmc75_SPDET.h库文件Spmc75_SPDET_V100注意事项PDC中断服务程序。例子Spmc75_PDCETSPD_ISR(; 3 程序范例3.1 DEMO程序/*=*/应用范例/*=*/#include Spmc75_regs.h#include Spmc_typedef.h#include unspmacro.h#include Spmc75_SPDET.hmain(Spmc
20、75_System_Init(; /系统初始化while(1MC75_DMC_UART_Service(; /DMC服务/= / Description: IRQ1 interrupt source is XXX,used to XXX/ Notes: PDC测速度服务/= void IRQ1(void_attribute_(ISR;void IRQ1(voidif(P_TMR0_Status-B.PDCIF & P_TMR0_INT-B.PDCIE Spmc75_PDCETSPD_ISR(; /PDC中断捕获用于测算速度 /= / Description: IRQ6 interrupt so
21、urce is XXX,used to XXX/ Notes:DMC接收中断服务函数/= void IRQ6(void _attribute_ (ISR;void IRQ6(voidif(P INT Status-B.UARTIF if(P_UART_Status-B.RXIF MC75_DMC_RcvStream(;测速子函数:#define TMRPSFCK (24.0E+6/64 /计数时钟源#define PAIRPOLE 2 /BLDC极对数#define PDCCLEAR 1 /CNT清除源#define SPDLIMIT 5000 /限制最高转速,防止尖脉冲干扰#define R
22、ADIX (UInt32(TMRPSFCK*60*PDCCLEAR/(6*PAIRPOLE#define MAXRPM (UInt16(RADIX/SPDLIMITstatic UInt16 aFilterCAPBSIZE; /滑动滤波存储数据static UInt16 *ptr = aFilter; /对数组操作用的指针void Spmc75_PDCETSPD_ISR(voidstatic UInt32 summation=0;UInt16 original,uiSpeed;P_TMR0_Status-B.PDCIF = 1; /中断标志清除original = P_TMR0_TGRA-W;
23、 /读取PDC捕获数据/限制最高转速if(original P_TMR0_TCNT-W & original MAXRPM/滑动滤波捕获数据累加summation -= *ptr;*ptr = original;summation += *ptr;/使数组循环if(+ptr (aFilter+CAPBSIZE-1 ptr = aFilter;/求数据累加后的均值original = (UInt16(summation SHIFTDIV;uiSpeed = (UInt32RADIX/original; /速度计算SPMC_DMC_Save_Aux(0, original; /向DMC发送捕获数据SPMC_DMC_Save_SpdNow(1, uiSpeed; /向DMC发送速度速据 用 SPMC75 的 PDC 定时器做 BLDC 电机的速度检测 其中位置信号不必是实际
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业三定工作总结
- 弘扬塞罕坝精神团日活动
- 2025年 车险理赔考试卷库六附答案
- 创业培训开班
- 手卫生知识培训主要内容
- 银行年度员工培训方案
- 支原体肺炎检查方法与诊疗规范
- 肿瘤患者的舒适与安全
- 中药在肿瘤综合治疗中的应用
- 场地总监全面职责协议书模板
- LS 8010-2014植物油库设计规范
- GM/T 0021-2012动态口令密码应用技术规范
- GB/T 28022-2021玩具适用年龄判定指南
- GB/T 11832-2002翻斗式雨量计
- FZ/T 73001-2016袜子
- 2022版音乐课程标准解读
- 充电桩检测报告模板
- 车载诊断系统(OBD)简介课件
- 无犯罪证明委托书模板
- 城市轨道交通列车运行图编制课件
- 吊车施工专项施工方案
评论
0/150
提交评论