用 dspic30f2010 控制无传感器 BLDC 电机 AN992 作者 : 概述 Stan D Souza Microchip Technology 本应用笔记介绍了如何使用 dspic30f2010 数字信号控制器控制无传感器的 BLDC 电机 应用中采用的技术是基于另一 Microchip 应用笔记 : dspic30f 在无传感器 BLDC 控制中的应用 (AN901) 本文介绍了如何将 dspic30f2010 器件用于 AN901 中介绍的硬件和软件, AN901 中使用了 dspic30f6010 器件和 dspicdem MC1 电机控制开发板 dspic30f6010 具有 80 个引脚, 拥有 144 K 字节的闪存程序存储器,8 K 字节的 RAM 以及数量较多的 I/O 而 dspic30f2010 只有 28 个引脚, 使其 I/O 数目受到限制 该款芯片只拥有 12 K 字节的闪存程序存储器以及 512 字节 RAM 的有限资源 本应用笔记说明了如何对 AN901 应用笔记中介绍的硬件 软件和用户接口进行修改以利于其代码能够方便地移植到 dspic30f2010 器件 有关使用 dspic30f 实现 BLDC 无传感器控制的设计细节, 请参阅应用笔记 AN901 由于程序代码实现的功能并未改变, 因此 AN901 中介绍的所有可实现的 BLDC 控制功能仍旧是相同的 所需硬件 实现本文中介绍的电机控制应用需要使用以下硬件 : PICDEM MCLV 开发板 ( 图 1) Hurst DMB0224C10002 CL B 6403 24 V BLDC 电机 24 V 直流电源用户可以从 Microchip 购买上述全部硬件或只购买其中某项 有关订购信息, 请浏览 Microchip 网站的开发工具部分 硬件改动 图 2 给出了无传感器 BLDC 电机控制应用的简化结构框图 该图有助于用户自己开发硬件来驱动无传感器的 BLDC 电机 PICDEM MCLV 控制板的原理图附录 A 中给出 图 1: PICDEM MCLV 开发板 2005 Microchip Technology Inc. DS00992A_CN 第 1 页
图 2: PICDEM MCLV 控制板功能 dspic30f2010 PWM3H PWM3L PWM2H PWM2L PWM1H PWM1L FLTA AN0 AN1 AN2 AN3 AN4 AN5 给定 故障 VDC 相端电压反馈 三相逆变器 IBUS BLDC R49 R41 R34 R36 R44 R52 VBUS R63 VDC R64 除 dspic30f2010 器件外, 该框图的基本结构与 AN901 中完全相同 通过一个电位器来选择速度给定 通过使用电阻对 R63/R64 可实现 VBUS 电压的检测, 该电压即 VDC VDC/2 将用作反电动势 (BEMF) 检测时的 过零点 电压 电压反馈通过使用电阻对 R34/R36 R41/R44 和 R49/R52 来实现 电流反馈通过一个简单的运算放大器电路 (U10A) 来实现 通过与电流反馈电路相连接的比较器电路 (U7D) 可以获得故障输入 电流检测通过一个阻值为 0.1 欧姆的电阻 (R26) 来实现 电流增益设定为 11, 且比较器门限值可通过电位器 R60 进行调节 用户可方便地调节电阻阻值来适应所使用电机的电流容量 另一方面, 电机驱动电路设计为用来驱动 24V BLDC 电机 用户可对电机的驱动要求进行更改 ( 有关如何对电路硬件进行更改以适合不同电压等级电机驱动要求的具体内容, 可参考 PICDEM MCLV Development Board User s Guide 电压的最低极限值为 10V, 最高极限值为 40V 应注意, IGBT 散热器的散热效果有限, 因此使用 PICDEM MCLV 难以满足较高功率输出的要求 在本应用中若采用 PICDEM MCLV 控制板, 用户应参照表 1 所示的跳线设定以及表 2 中所列出的电机接线 表 1: PICDEM MCLV 控制板的跳线 设定 跳线 无传感器控制 J7, J11, J13 2-3 之间短接 J15 开路 J8,J12,J14 开路 J10, J16, J17, J19 开路 表 2: 电机接线 连接排 J9 标记 无传感器控制 M1 C 相 ( 红 ) M2 A 相 ( 白 ) M3 B 相 ( 黑 ) G 如果存在, 地线 ( 绿 ) 表 2 给出的颜色标注适用于来自 Microchip 的每一台 Hurst 24V 电机 对于某些电机, 并无地线 当代码开发完成并被下载到系统中后, 用户需点按开关 S2 来起动和停止电机 标注为 REF(R14) 的电位器用于对速度给定进行设置 顺时针旋转该电位器将增大电机转速给定 由于 dspic30f2010 的 I/O 数目有限, 故障状况的显示未使用控制板上的 LED, 而是通过串口显示在用户 PC 的 Windows 超级终端 (HyperTerminal ) 上 DS00992A_CN 第 2 页 2005 Microchip Technology Inc.
对 dspic30f2010 编程 借助 PICDEM MCLV 控制板可实现对 dspic30f2010 编程 由于 dspic30f2010 的 I/O 资源有限, 串口引脚与编程引脚复用 在对器件进行编程时, DIP 开关 S4 应置于 PRGM 方向 当编程完成后, 应将 DIP 开关置于 DEBUG 位置以执行程序 如果 ICD 2 连接到 PICDEM MCLV 控制板作为调试器使用, 那么编程后 J6 连接器应保持连接 如果 ICD2 作为编程器使用, 编程后应将 J6 连接器从 ICD2 拔除, 以确保单片机独立正常执行程序 为使本应用程序在 PICDEM MCLV 控制板上正常工作, 需进行以下的配置设定 : 振荡源 : 主振荡器主振荡器模式 : XT w/pll 8x 通信端口选择 : EMUC2 和 EMUD2 根据需要可使能或禁止其他设定, 或在应用程序中对其进行修改 软件改动 : 与 AN901 相比, 本应用中的软件并未作较大的修改, 但去除了 LCD 用户接口以及调试程序 有关串行接口的内容将在下一部分进行介绍 用户接口的确增加了代码长度并且在应用开发阶段需要使用一片 dspic30f3010 在开发模式时, 应设置 : #define DEVELOPMODE TRUE defs.h 文件中的该项设置使得代码中的所有条件语句自动使能 UART 并运行于用户接口模式 在代码全部开发完成后, 可选择 : #define DEVELOPMODE FALSE defs.h 文件中的该项设置禁止串行用户接口并将参数硬编码到闪存存储器中 为确保代码长度适合 dspic30f2010, 应使用 C30 编译器选项中的存储空间优化选项 从 MPLAB 主菜单中选择 Project>Build Options>Project 当显示 Build Options 对话框时, 应选择 MPLAB C30 选项卡并设置 Categories>Optimization>Optimization level>s ( 用于存储空间优化 ) 用户接口 需要通过用户接口对无传感器 BLDC 电机控制应用中使用的不同参数进行调整 本应用中共有 45 个可以修改的用户参数 有关这些参数及其功能 / 用法以及如何对其调整的具体内容, 请参见 dspic30f 在无传感器 BLDC 控制中的应用 (AN901) 应用笔记 在 AN901 中, 用户参数的修改是通过一个 LCD 显示器和按钮来实现 由于 PICDEM MCLV 电路板上未配置 LCD 显示器, 因此用户接口已更改为双线串行接口 本应用中采用的新用户接口使用 dspic30f2010 上的 RS-232 端口与通信终端 ( 例如,Windows 超级终端 ) 连接来实现, 通信速率为 19200 波特率 借助通信终端, 通过用户接口可实现对参数的更改 AN901 中所有参数通过电机控制开发板上配置的 LCD 屏进行设定, 而现在这些参数的设定都通过串行接口来实现 表 3 列出了参数的名称, 缩写形式以及说明 可通过用户接口对全部 45 个控制参数进行设置 参数可归类为 : 电机参数 - 与电机有关的参数 起动参数 - 与起动有关的参数 控制参数 - 与软件中使用的不同 PI 或 PID 控制有关的参数 极限参数 - 与软件中的各种极限设置有关的参数 控制板参数 - 与控制板上元器件以及它们如何与软件交互有关的参数 注 : 可从 Microchip 网站 (www.microchip.com) 获得该应用程序的源代码, 附于本应用笔记电子 (pdf) 版本后 2005 Microchip Technology Inc. DS00992A_CN 第 3 页
表 3: 电机控制参数 参数 键入缩写形式 说明 电机参数 DIRECTION DD 0 或 DD 1 0 = 正向 1 = 反向 No. Motor Poles MP < 值 > 电机极数 Blanking Count BC < 值 > Windmilling Dem WD < 值 > 起动参数 Lock Pos.1 Time LP1T < 值 > 单位为 10 ms 间隔 Lock Pos.2 Time LP2T < 值 > 单位为 10 ms 间隔 Lock Pos.1 Dem LP1D < 值 > PWM 占空比百分比 Lock Pos.2 Dem LP2D < 值 > PWM 占空比百分比 Ramp Start Speed RSS < 值 > 加速起始转速, 单位为 RPM Ramp End Speed RES < 值 > 加速终止转速, 单位为 RPM Ramp Start Dem RSD < 值 > PWM 占空比百分比 Ramp End Dem RED < 值 > PWM 占空比百分比 Ramp Duration RD < 值 > 单位为 10 ms 间隔 Tolerance Check TC < 值 > Auto Re-acquire ARA 0 或 ARA 1 0 = 禁止 1 = 使能 Starting Control SC 0 和 SC 1 Acquire Method AM 0 或 AM 1 0 = 电压控制 1 = 电流控制 0 = 方法 1 1 = 方法 2 ZeroX Enable Spd ZXES < 值 > 过零检测使能时的电机转速 DS00992A_CN 第 4 页 2005 Microchip Technology Inc.
表 3: 电机控制参数 ( 续 ) 参数键入缩写形式说明 控制参数 CONTROL MODE CM 0, CM 1, CM 2 或 CM 3 0 = 电压闭环 1 = 电流闭环 2 = 电压开环 3 = 电流开环 Phase Adv. Enable Spd PAES < 值 > Phase Adv. Slope PAS < 值 > Current P Gain CKP < 值 > Current I Gain CKI < 值 > Current D Gain CKD < 值 > Speed P Gain SKP < 值 > Speed I Gain SKI < 值 > Voltage Demand VD < 值 > Volts P Gain VKP < 值 > Volts I Gain VKI < 值 > 极限参数 Stall Time Limit STL < 值 > Over Speed Limit OSL < 值 > 过速极限值, 单位为 RPM Over Volts Limit OVL < 值 > Over Current Lim OCL < 值 > 控制板参数 Current Scale X CSX < 值 > Current Scale / CSD < 值 > Volts Scale X VSX < 值 > Volts Scale / VSD < 值 > Zero X Level Thd ZXL < 值 > Acquire Threshld AT < 值 > Acquire Level Td AL < 值 > Rotation Timeout RT < 值 > Pot / for Duty PDD < 值 > Pot / for Currnt PDC < 值 > Pot X for Speed PXS < 值 > Braking Ramp T BRT < 值 > 2005 Microchip Technology Inc. DS00992A_CN 第 5 页
串行用户接口的使用 只有在待机或系统处于复位状态时才能对用户参数进行修改 当电机运行时, 通信终端将显示电机转速以及 PWM 占空比 应将通信终端连接到 PICDEM MCLV 控制板的 RS232 连接器 (J1) 应如下设置系统运行参数 波特率 19200 数据位 8 奇偶校验 无 停止位 1 流控制 无 命令集格式为大小写敏感 如果键入的命令不正确, 系统将显示如图 3 所示的消息 欲获得有关命令集的更多信息, 可键入?? < 回车键 > 图 4 中所示的响应消息提示了更为具体的请求 欲获得一类具体命令集的有关信息, 可键入一个问号符后跟对应该命令集类型的字母 图 3: 不正确的命令信息 图 4: 命令集帮助菜单 DS00992A_CN 第 6 页 2005 Microchip Technology Inc.
电机参数 键入以下命令将显示电机参数 :?M< 回车键 > 如图 5 所示, 响应消息中列出了电机参数及其当前值 欲对参数值进行改动, 应键入参数缩写并随后键入新的参数值 ( 两者之间由空格分隔 ) DIRECTION 参数 (DD) 只使用两个参数值 :0 或 1 欲改变电机旋转方向, 应键入 : DD< 空格 >1< 回车键 > 注意, DD 为大写形式, 且参数缩写和参数值 1 之间存在一个空格 命令及其响应如图 6 所示 设定值从 00000 改为 00001 ( 相反方向 ) 假定将电机极数从 10 改至 8, 应如下键入 : MP< 空格 >8< 回车键 > 该命令格式及其响应如图 7 所示 设定值从 00010 改至 00008 图 5: 电机参数 图 6: 电机转向命令及其响应 2005 Microchip Technology Inc. DS00992A_CN 第 7 页
图 7: 电机极数命令及其响应 控制参数 作为?C 命令的响应, 将如图 8 所示显示控制参数名称及其当前值 欲对控制参数进行修改, 需键入该参数的缩写形式并随后键入期望的修改值 例如, 如果期望将速度积分增益从 40 改至 200 时, 应键入 SKI 200 图 8: 控制参数 DS00992A_CN 第 8 页 2005 Microchip Technology Inc.
起动参数 起动参数用于对无传感器起动控制算法进行微调并且是改动最为频繁的参数 由于其中一些参数的变化间隔为数十毫秒, 因此请注意表 3 中的说明并仔细阅读 AN901 中的相关内容 图 9: 起动参数 2005 Microchip Technology Inc. DS00992A_CN 第 9 页
极限参数 极限参数如图 10 所示 图 10: 极限参数 控制板参数 图 11 中显示了控制板参数 有关这些参数的具体内容请参考应用笔记 AN901 图 11: 控制板参数 DS00992A_CN 第 10 页 2005 Microchip Technology Inc.
运行模式 如前所述, 只有在待机模式下才能查看参数 在电机实际运行过程中, 电机转速以及 PWM 占空比将如图 12 所示不断更新 图 12: 速度和占空比的实时显示 故障情形 如果在电机起动或运行过程中出现故障, 它将以如图 13 所示的形式进行报告 报告的故障包括 : 起动失败 (FAILED TO START) 过电流 (OVER CURRENT) 过电压 (OVER VOLTAGE ) 硬件故障 (HARDWARE TRIP) 过速 (OVER SPEED ) 转子位置丢失 (SENSORLESS LOST) 堵转 (STALLED) 用户必须通过点按控制板上的 S2 以复位故障或停止电机运行 当系统复位后, 用户可对必要参数进行编辑修改 图 13: 故障消息 2005 Microchip Technology Inc. DS00992A_CN 第 11 页
结论 28 引脚的 dspic30f2010 为实现无传感器 BLDC 电机控制提供了理想的低成本解决方案 通过本文中介绍的具有较高灵活性的串行用户接口, 用户可对起动和运行无传感器 BLDC 电机应用所需的应用参数进行微调 有关内容在 AN901 中进行了具体介绍 DS00992A_CN 第 12 页 2005 Microchip Technology Inc.
附录 A: 原理图 图 A-1: BLDC 电机控制板 ( 第 1 页, 共 2 页 ) 2005 Microchip Technology Inc. DS00992A_CN 第 13 页
图 A-2: BLDC 电机控制板 ( 第 2 页, 共 2 页 ) 8 7 6 2 HIN 3 LIN 1 5 4 2 HIN VB 3 LIN HO VS VCC LO COM 8 7 6 2 HIN 3 LIN VB HO VS VCC LO COM 8 7 6 1 5 4 VB HO VS 1 5 4 VCC LO COM DS00992A_CN 第 14 页 2005 Microchip Technology Inc.
请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏代码保护功能的行为 就我们所知, 所有这些行为都不是以 Microchip 数据手册中规定的操作规范来使用 Microchip 产品的 这样做的人极可能侵犯了知识产权 Microchip 愿与那些注重代码完整性的客户合作 Microchip 或任何其他半导体厂商均无法保证其代码的安全性 代码保护并不意味着我们保证产品是 牢不可破 的 代码保护功能处于持续发展中 Microchip 承诺将不断改进产品的代码保护功能 任何试图破坏 Microchip 代码保护功能的行为均可视为违反了 数字器件千年版权法案 (Digital Millennium Copyright Act) 如果这种行为导致他人在未经授权的情况下, 能访问您的软件或其他受版权保护的成果, 您有权依据该法案提起诉讼, 从而制止这种行为 提供本文档的中文版本仅为了便于理解 Microchip Technology Inc. 及其分公司和相关公司 各级主管与员工及事务代理机构对译文中可能存在的任何差错不承担任何责任 建议参考 Microchip Technology Inc. 的英文原版文档 本出版物中所述的器件应用信息及其他类似内容仅为您提供便利, 它们可能由更新之信息所替代 确保应用符合技术规范, 是您自身应负的责任 Microchip 对这些信息不作任何明示或暗示 书面或口头 法定或其他形式的声明或担保, 包括但不限于针对其使用情况 质量 性能 适销性或特定用途的适用性的声明或担保 Microchip 对因这些信息及使用这些信息而引起的后果不承担任何责任 未经 Microchip 书面批准, 不得将 Microchip 的产品用作生命维持系统中的关键组件 在 Microchip 知识产权保护下, 不得暗中或以其他方式转让任何许可证 商标 Microchip 的名称和徽标组合 Microchip 徽标 Accuron dspic KEELOQ microid MPLAB PIC PICmicro PICSTART PRO MATE PowerSmart rfpic 和 SmartShunt 均为 Microchip Technology Inc. 在美国和其他国家或地区的注册商标 AmpLab FilterLab Migratable Memory MXDEV MXLAB PICMASTER SEEVAL SmartSensor 和 The Embedded Control Solutions Company 均为 Microchip Technology Inc. 在美国的注册商标 Analog-for-the-Digital Age Application Maestro dspicdem dspicdem.net dspicworks ECAN ECONOMONITOR FanSense FlexROM fuzzylab In-Circuit Serial Programming ICSP ICEPIC Linear Active Thermistor MPASM MPLIB MPLINK MPSIM PICkit PICDEM PICDEM.net PICLAB PICtail PowerCal PowerInfo PowerMate PowerTool rflab rfpicdem Select Mode Smart Serial SmartTel Total Endurance 和 WiperLock 均为 Microchip Technology Inc. 在美国和其他国家或地区的商标 SQTP 是 Microchip Technology Inc. 在美国的服务标记 在此提及的所有其他商标均为各持有公司所有 2005, Microchip Technology Inc. 版权所有 Microchip 位于美国亚利桑那州 Chandler 和 Tempe 及位于加利福尼亚州 Mountain View 的全球总部 设计中心和晶圆生产厂均于 2003 年 10 月通过了 ISO/TS-16949:2002 质量体系认证 公司在 PICmicro 8 位单片机 KEELOQ 跳码器件 串行 EEPROM 单片机外设 非易失性存储器和模拟产品方面的质量体系流程均符合 ISO/TS- 16949:2002 此外, Microchip 在开发系统的设计和生产方面的质量体系也已通过了 ISO 9001:2000 认证 2005 Microchip Technology Inc. DS00992A_CN 第 15 页
全球销售及服务网点 美洲 亚太地区 亚太地区 欧洲 公司总部 Corporate Office 2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 1-480-792-7200 Fax: 1-480-792-7277 技术支持 : http://support.microchip.com 网址 :www.microchip.com 亚特兰大 Atlanta Alpharetta, GA Tel: 1-770-640-0034 Fax: 1-770-640-0307 波士顿 Boston Westborough, MA Tel: 1-774-760-0087 Fax: 1-774-760-0088 芝加哥 Chicago Itasca, IL Tel: 1-630-285-0071 Fax: 1-630-285-0075 达拉斯 Dallas Addison, TX Tel: 1-972-818-7423 Fax: 1-972-818-2924 底特律 Detroit Farmington Hills, MI Tel: 1-248-538-2250 Fax: 1-248-538-2260 科科莫 Kokomo Kokomo, IN Tel: 1-765-864-8360 Fax: 1-765-864-8387 洛杉矶 Los Angeles Mission Viejo, CA Tel: 1-949-462-9523 Fax: 1-949-462-9608 圣何塞 San Jose Mountain View, CA Tel: 1-650-215-1444 Fax: 1-650-961-0286 中国 - 北京 Tel: 86-10-8528-2100 Fax: 86-10-8528-2104 中国 - 成都 Tel: 86-28-8676-6200 Fax: 86-28-8676-6599 中国 - 福州 Tel: 86-591-8750-3506 Fax: 86-591-8750-3521 中国 - 香港特别行政区 Tel: 852-2401-1200 Fax: 852-2401-3431 中国 - 上海 Tel: 86-21-5407-5533 Fax: 86-21-5407-5066 中国 - 沈阳 Tel: 86-24-2334-2829 Fax: 86-24-2334-2393 中国 - 深圳 Tel: 86-755-8203-2660 Fax: 86-755-8203-1760 中国 - 顺德 Tel: 86-757-2839-5507 Fax: 86-757-2839-5571 中国 - 青岛 Tel: 86-532-8502-7355 Fax: 86-532-8502-7205 中国 - 武汉 Tel: 86-27-5980-5300 Fax: 86-27-5980-5118 台湾地区 - 高雄 Tel: 886-7-536-4818 Fax: 886-7-536-4803 台湾地区 - 台北 Tel: 886-2-2500-6610 Fax: 886-2-2508-0102 台湾地区 - 新竹 Tel: 886-3-572-9526 Fax: 886-3-572-6459 澳大利亚 Australia - Sydney Tel: 61-2-9868-6733 Fax: 61-2-9868-6755 印度 India - Bangalore Tel: 91-80-2229-0061 Fax: 91-80-2229-0062 印度 India - New Delhi Tel: 91-11-5160-8631 Fax: 91-11-5160-8632 日本 Japan - Kanagawa Tel: 81-45-471-6166 Fax: 81-45-471-6122 韩国 Korea - Seoul Tel: 82-2-554-7200 Fax: 82-2-558-5932 或 82-2-558-5934 马来西亚 Malaysia - Penang Tel:011-604-646-8870 Fax:011-604-646-5086 菲律宾 Philippines - Manila Tel: 011-632-634-9065 Fax: 011-632-634-9069 新加坡 Singapore Tel: 65-6334-8870 Fax: 65-6334-8850 奥地利 Austria - Weis Tel: 43-7242-2244-399 Fax: 43-7242-2244-393 丹麦 Denmark - Ballerup Tel: 45-4450-2828 Fax: 45-4485-2829 法国 France - Massy Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 德国 Germany - Ismaning Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 意大利 Italy - Milan Tel: 39-0331-742611 Fax: 39-0331-466781 荷兰 Netherlands - Drunen Tel: 31-416-690399 Fax: 31-416-690340 英国 England - Berkshire Tel: 44-118-921-5869 Fax: 44-118-921-5820 加拿大多伦多 Toronto Mississauga, Ontario, Canada Tel: 1-905-673-0699 Fax: 1-905-673-6509 06/09/05 DS00992A_CN 第 16 页 2005 Microchip Technology Inc.