一、为什么一颗编码器要同时给两种 "增量" 信号
无刷直流电机(BLDC)和永磁同步电机(PMSM)的控制,本质上都要回答两个问题:转子现在在电角度的哪个位置(用于换相),以及转子转得多快、转到了哪里(用于速度环与位置环)。这两个问题的精度要求和更新率要求完全不同。
![]()
麦歌恩mt6825磁编码器IC
换相要求的是电角度,精度不必极高,但必须绝对可靠、延时极低,因为一次换相错误就可能造成电流冲击甚至失步;位置环要求的是机械角度,精度要高、要能长期累积不丢步。传统方案用三只霍尔开关解决前者、用光电编码器解决后者,两套器件、两套线束、两处安装空间。
MT6825 的价值就在于把这两件事合并到一颗芯片里,而且是从同一个绝对角度 α 派生出来的:ABZ 用于位置与速度,UVW 用于换相。两者同源,不会出现 "霍尔与编码器相位对不上" 的经典调试难题。
二、UVW 输出:从三个霍尔到一个可编程对极数
UVW 输出的波形是互成 120° 电角度的三路方波,与三只霍尔开关在 120° 空间布置时的输出完全等价。芯片内部由绝对角度 α 直接合成这三路信号,因此不存在霍尔器件常见的抖动、相位偏差和温漂。
关键的可编程项是对极数,由 4 位寄存器 UVW_RES<3:0> 定义,取值 1~16,对应每圈 1~16 对极。这一项必须与电机极对数严格一致:
- 4 对极电机 → UVW_RES = 0011
- 5 对极电机 → UVW_RES = 0100
- 8 对极电机 → UVW_RES = 0111
配置错误的后果很直接:对极数设成一半,换相序列会在半圈处错位,表现为启动抖动、电流尖峰、带载能力下降;设成两倍,则换相频率翻倍,高速时可能超出驱动器的输入响应能力。
另外,引脚 1/2/3 是复用脚。出厂默认输出 UVW;若把寄存器配置为差分 ABZ 模式,这三个脚变为 -A、-B、-Z。这意味着 UVW 与差分 ABZ 不能同时使用,设计时必须二选一。对长线传输、强干扰环境,差分 ABZ 的抗干扰能力更强,此时换相只能靠 SPI 绝对角度在控制器内部合成电角度。
三、从 UVW 粗定位到 SPI 精细分
UVW 提供的是 60° 电角度一个状态的粗定位,分辨率只有 6 个状态。对六步换相(方波驱动)够用,对 FOC 正弦驱动则远远不够 ——FOC 需要连续的电角度,通常要求 0.1°~1° 电角度量级的精度。
工程上有两种组合方式:
方式一:UVW 定扇区 + SPI 线性插值。 控制器用 UVW 的状态确定当前处于 60° 电角度扇区,再用 SPI 读到的机械绝对角度乘以极对数得到电角度,两者结合得到无跳变的连续电角度。这种做法在整个转速范围内都可靠,且启动瞬间(甚至零速)就能得到正确电角度,实现真正的 "零速闭环"。
方式二:纯 SPI 合成电角度。 直接用机械绝对角度 × 极对数 mod 360° 得到电角度,UVW 仅作为冗余校验。这种做法精度最高(18 位机械角度 × 极对数后电角度分辨率极高),但对 SPI 的实时性与抗误码能力要求更严,需要 burst read + 奇偶校验 + 跳变检测三重保护。
对 2500 线伺服级别的驱动,推荐方式一:ABZ 用于测速,UVW 用于换相兜底,SPI 用于上电绝对位置与精细分。三条路径互为备份,是功能安全架构最省成本的搭建方式。
四、ABZ:分辨率与频率的取舍
ABZ 的 A、B 两路相位差 90° 电角度,通过四倍频计数可以把每圈脉冲数乘以 4。MT6825 的 ABZ 分辨率可在 1~4096 脉冲 / 圈之间取任意整数,对应 4~16384 步 / 圈。
选分辨率要做两道验算:
第一道,频率上限。 A/B 输出频率 = 转速 × PPR。芯片规定的 A/B 最大频率为 1.024MHz,因此 4096 PPR 时最高转速为 1.024MHz / 4096 = 250Hz = 15000 RPM。厂商另外说明,实际波形可超过 2MHz,但超过后 INL 会下降。所以高频场合要留出 2 倍以上余量,别贴着上限设计。
第二道,测速分辨率。 低速时若用 M 法(固定时间数脉冲),分辨率不足会导致速度量化台阶。2500 PPR 四倍频为 10000 步 / 圈,1ms 采样窗口下,1 RPM 对应约 0.167 个脉冲,显然不够。所以低速段必须切到 M/T 法或 T 法(测周法),用脉冲间隔时间反算速度;而 T 法的精度又直接取决于 ABZ 的边沿抖动,这就回到了芯片的跃变噪声 0.005°rms。
一个实操建议:把 ABZ 分辨率设为 2500 PPR 而不是 4096 PPR。原因是 2500 PPR 时 A/B 频率更低、边沿更干净,而 10000 步 / 圈的分辨率已足够支撑 1:100 减速比下的关节微动。4096 PPR 更适合需要与外部 "4096 线编码器" 接口直接对接的场合。
五、上电时序与几个必须处理的细节
16ms 封锁期。 芯片上电后 ABZ 输出会被封锁 16ms,以保证内部电路稳定。这段时间内若有转动,AB 计数会丢失。正确做法是:上电先用 SPI 读绝对角度建立位置基准,16ms 后再启用 AB 计数,并把这段位移用绝对角度差值补齐。
绝对位置指示脉冲。 MT6825 支持在上电后输出一串与当前绝对角度对应的 AB 脉冲,控制器数完即得绝对位置,无需依赖 Z 脉冲找零。对多轴协同启动的设备(如双臂机器人、并联机构),这个功能可以避免各轴按不同顺序回零造成的姿态干涉。
Z 脉冲宽度。 Z 每圈输出一次,代表机械零位,宽度可选 1、2、4、8、12、16 LSB 或 180°。窄脉冲在高速时容易被漏采,建议至少取 4 LSB;若 Z 用于 "每圈一次的中断基准",取 180° 反而更稳,但要接受它占据半圈宽度、不能用于精确找零。
方向寄存器。 Rotation_Dir 影响 ABZ、UVW、SPI 全部输出。设定错误会让速度环变成正反馈 —— 这是关节模组调试中最危险也最常见的错误之一。首次上电务必用示波器确认 A/B 相位关系与电机旋向一致。
六、和驱动器接口的兼容性
很多现成的伺服驱动器、闭环步进驱动器只认增量 ABZ 接口,输入频率上限 500kHz~1MHz,内部做四倍频。MT6825 的 ABZ 输出电平为推挽式,VDD-0.25V / 0.25V(2mA 负载),可直接对接 3.3V 或 5V 逻辑的驱动器,无需电平转换。
需要注意两点:一是若驱动器编码器接口是差分输入(RS-422),必须选支持差分 ABZ 的型号并把引脚 1/2/3 配成 -A/-B/-Z,或外加差分驱动芯片;二是若驱动器提供编码器供电(常见 5V±5%),要确认其电流能力覆盖 MT6825 的 10mA 典型功耗,并在编码器侧加 0.1μF 去耦。
七、从断电到闭环:一条完整的启动流程
把前面的要点串起来,可以得到一个可直接照抄的启动序列。这套流程在多个关节模组的实际项目里验证过,能避开绝大多数 "上电就抖、一动就飞" 的问题。
步骤一(0~20ms):等待电源稳定。 不做任何读取。芯片的上电准备时间典型 16ms,此时内部 LDO、振荡器、DSP 都在建立工作点,SPI 与 ABZ 都不可信。
步骤二(20ms):SPI 通信自检。 读 0x03、0x04、0x05,检查返回值不全为 0x00 或 0xFF,且 PC1/PC2 校验通过。失败则判定编码器未就绪,重试三次后报警。
步骤三(20~30ms):建立绝对基准。 读一次完整 18 位角度,作为 ABZ 计数器的初值。此后 ABZ 的每一次计数都在这个基准上累加,保证 "绝对 + 增量" 两条路径在数值上一致。
步骤四(30ms):检查诊断位。 No_Mag_Warning 必须为 0,ERROR 引脚必须为低。任一异常则禁止使能伺服 —— 在磁场不足的状态下通电,电机可能因为错误的换相而产生剧烈抖动甚至反转。
步骤五(30~50ms):确认换相基准。 用 UVW 读取当前扇区,与 "SPI 绝对角度 × 极对数" 算出的电角度扇区比对。两者必须落在同一扇区;若不一致,说明 UVW_RES 配置的极对数与电机实际极数不匹配,必须停机检查。
步骤六(50ms 之后):使能电流环,再使能速度环,最后使能位置环。 这个顺序不能颠倒。先让电流环在小电流下运行,确认电角度跟随正常(观察 d/q 轴电流是否稳定);再让速度环在低速下运行,确认测速方向与转速一致;最后才闭合位置环。
这套序列的价值在于:把 "配置错误" 和 "硬件故障" 在使能运动之前就区分开。机器人关节最贵的维修成本不是换个编码器,而是一次错误的使能导致的机械损伤。
ABZ 与 UVW 双输出的真正意义,是用一颗芯片替代 "霍尔 + 增量编码器" 两套器件,并且让换相与位置数据来自同一个绝对角度源。用 UVW 保证零速与低速时的换相可靠性,用 ABZ 保证测速带宽与增量接口兼容性,用 SPI 保证上电绝对位置与精细分 —— 三条路径分工明确,才是这套接口设计的最佳用法。本文来自深圳市艾毕胜电子有限公司,提供麦歌恩磁性编码器芯片和无刷马达驱动板定制服务
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.