Skip to content

Instantly share code, notes, and snippets.

@Vesnica
Created September 13, 2025 14:25
Show Gist options
  • Select an option

  • Save Vesnica/30b41d4f676e8576e809b057b95f3c35 to your computer and use it in GitHub Desktop.

Select an option

Save Vesnica/30b41d4f676e8576e809b057b95f3c35 to your computer and use it in GitHub Desktop.
磁编码SMS_STS舵机-内存表解析

磁编码SMS/STS舵机-内存表解析

目录

1 舵机通信协议

舵机使用FT-SCS自定义协议,出厂时的串口默认配置,SMS舵机波特率默认为115200使用RS485总线通信,STS舵机默认波特率为1M使用TTL单总线通信,数据位 8,无校验,停止位 1;波特率可配置范围38400~1Mbps,默认通信地址(站号)为1。

FT-SCS 自定义协议

2 舵机内存表定义

如果功能地址采用两个字节数的数据,低位字节在前面地址,高位字节在后面地址

2.1 版本信息

地址DEC 地址HEX 功能名称 字节数 初始值 权限 取值范围 单位 说明
0 0x00 固件主版本号 1 只读
1 0x01 固件次版本号 1 只读
2 0x02 END 1 0 只读 0表示小端存储结构
3 0x03 舵机主版本号 1 只读
4 0x04 舵机次版本号 1 只读

2.2 EPROM配置

地址DEC 地址HEX 功能名称 字节数 初始值 权限 取值范围 单位 说明
5 0x05 舵机ID 1 1 读写 0 ~ 253 总线上唯一的主ID标识
6 0x06 波特率 1 0 读写 0 ~ 7 0-7分别代表波特率:1000000(0),500000(1),250000(2),128000(3),115200(4),76800(5),57600(6),38400(7)
7 0x07 应答返回延时 1 0 读写 0/50 ~ 253 2us STS此地址无功能,最大可设置返回延时 254*2=508us,0表示最少返回延时,设置<50默认仍然为50(100us)
8 0x08 应答状态级别 1 1 读写 0 ~ 1 0:除读指令与PING指令外其它指令不返回应答包;1:对所有指令返回应答包
9 0x09 最小角度限制 2 0 读写 0 ~ 4094 0.087度 多圈绝对位置控制时此值为0
11 0x0B 最大角度限制 2 4095 读写 1 ~ 4095 0.087度 多圈绝对位置控制时此值为0
13 0x0D 最高温度上限 1 70 读写 0 ~ 100 °C
14 0x0E 最高输入电压 1 读写 0 ~ 254 0.1V
15 0x0F 最低输入电压 1 40 读写 0 ~ 254 0.1V
16 0x10 最大扭矩 2 1000 读写 0 ~ 1000 0.1% 上电赋值给48号地址转矩限制
18 0x12 相位 1 读写 0 ~ 254 特殊功能字节,无特别需求不可修改
19 0x13 卸载条件 1 读写 0 ~ 254 对应位设置1为开启相应保护,对应位设置0为关闭相应保护
20 0x14 LED报警条件 1 读写 0 ~ 254 对应位设置1为开启闪灯报警,对应位设置0为关闭闪灯报警
21 0x15 位置环P 比例系数 1 读写 0 ~ 254 控制电机的比例系数
22 0x16 位置环D 微分系数 1 读写 0 ~ 254 控制电机的微分系数
23 0x17 位置环I 积分系数 1 0 读写 0 ~ 254 控制电机的积分系数
24 0x18 最小启动力 1 读写 0 ~ 254 0.1% 设置舵机的最小输出启动扭矩
25 0x19 积分限制值 1 0 读写 0 ~ 254 最大积分值=积分限制值*4,0表示关闭积分限制功能,位置模式0与模式4生效
26 0x1A 正向不灵敏区 1 1 读写 0 ~ 16 0.087度 最小单位为一个最小分辨角度
27 0x1B 负向不灵敏区 1 1 读写 0 ~ 16 0.087度 最小单位为一个最小分辨角度
28 0x1C 保护电流 2 511 读写 0 ~ 2047 6.5mA 最大可设置电流为 500 * 6.5mA = 3250mA
30 0x1E 角度分辨率 1 1 读写 1 ~ 128 对传感器最小分辨角度的放大系数
31 0x1F 位置偏移 2 0 读写 0 ~ 8191 0.087度 0 ~ 2047表示0 ~ 2047;2048 ~ 4095表示0 ~ -2047;4096 ~ 6143表示2048 ~ 4095;61448191表示-2048 ~ -4095(表示偏位置-40954095)
33 0x21 运行模式 1 0 读写 0 ~ 2 0:位置伺服模式;1:电机恒速模式;2:PWM开环调速度模式;3:步进模式
34 0x22 保持扭矩 1 20 读写 0 ~ 254 1% 进入过载保护后输出扭矩,如设20表示20%的最大扭矩
35 0x23 保护时间 1 200 读写 0 ~ 254 10ms 当前负载输出超过过载扭力并保持的计时时长,如设200表示2秒,最大可设2.5秒
36 0x24 过载扭矩 1 80 读写 0 ~ 254 1% 启动过载保护时间计时的最大扭力阀值,如设80表示80%的最大扭矩
37 0x25 速度闭环P比例系数 1 读写 0 ~ 254 电机恒速模式(模式1)下,速度环比例系数
38 0x26 过流保护时间 1 200 读写 0 ~ 254 10ms 最大可设置254 * 10ms = 2540ms
39 0x27 速度闭环I积分系数 1 读写 0 ~ 254 电机恒速模式(模式1)下,速度环积分系数

2.3 SRAM控制

地址DEC 地址HEX 功能名称 字节数 初始值 权限 取值范围 单位 说明
40 0x28 扭矩开关 1 0 读写 0 ~ 2 写0:关闭扭力输出;写1:打开扭力输出;写2:阻尼输出(STS舵机功能),写128:任意当前位置较正为2048
41 0x29 加速度 1 0 读写 0 ~ 254 8.7度/秒² 舵机运行加/减速度,0表示最大加速度
42 0x2A 目标位置 2 0 读写 -32767 ~ 32767 0.087度 绝对位置控制方式,最大对应最大有效角度,BIT15为方向位
44 0x2C PWM开环速度 2 1000 读写 0~1000 0.1% PWM开环调速度模式下生效,BIT10为方向位
46 0x2E 运行速度 2 舵机出厂默认最大速度 读写 -32767 ~ 32767 0.732RPM/0.0146RPM 控制电机最高运行速度,BIT15为方向位;速度0默认表示最高速度,可通过相位设置0表示停止;速度单位可通过相位设置,0.732RPM/0.0146RPM两种单位,速度单位设置为0.0146RPM,其精度也是0.732RPM
48 0x30 转矩限制 2 最大扭矩(16),默认1000 读写 0 ~ 1000 0.1% 用户可程序修改此值来控制堵转扭矩的输出
50~54 0x32~0x36 无定义 1
55 0x37 锁标志 1 1 读写 0 ~ 1 写0关闭写入锁,写入EPROM地址的值掉电保存;写1打开写入锁,写入EPROM地址的值掉电不保存

2.4 SRAM反馈

地址DEC 地址HEX 功能名称 字节数 初始值 权限 取值范围 单位 说明
56 0x38 当前位置 2 只读 0.087度 反馈舵机当前绝对位置,BIT15为方向位;步进模式3返回当前位置与目标位置的步进差值,BIT15为方向位
58 0x3A 当前速度 2 只读 0.732RPM/0.0146RPM 反馈当前电机转动的速度,速度单位根据相位设置,BIT15为方向位
60 0x3C 当前负载 2 只读 0.1% 当前控制输出驱动电机的电压占空比,BIT10为方向位
62 0x3E 当前电压 1 只读 0.1V 当前舵机工作电压
63 0x3F 当前温度 1 只读 °C 当前舵机内部工作温度
64 0x40 异步写标志 1 0 只读 采用异步写指令时,标志位
65 0x41 舵机状态 1 0 只读 对应位被置1表示相应错误出现
66 0x42 移动标志 1 0 只读 舵机在运动时标志为1,舵机到达目标并且停止时为0;舵机无更新目标位置保持为0
67 0x43 目标位置 2 0 只读 0.087度 当前目标位置
69 0x45 当前电流 2 只读 6.5mA 反馈当前电机相电流
71 0x47 无定义 2 只读

2.5 出厂参数

地址DEC 地址HEX 功能名称 字节数 初始值 权限 取值范围 单位 说明
80 0x50 移动速度阀值 1 只读
81 0x51 DTs(ms) 1 只读
82 0x52 速度单位系数 1 只读
83 0x53 Hts(ns) 1 只读 20.83ns,sms舵机固件>=2.54有效,其它版本保持0
84 0x54 最大速度限制 1 只读 单位0.732rpm
85 0x55 加速度限制 1 只读
86 0x56 加速度倍数 1 只读 加速度为0时加速度倍数生效,加速度倍数与加速度同时为0表示舵机响应速度最快

3 特殊字节解释

3.1 舵机相位

位数/位权重:说明

  • BIT0(1):驱动方向相位;(0)正向,(1)反向
  • BIT1(2):驱动桥模式;(0)无刷,(1)有刷,重启生效
  • BIT2(4):速度单位;(0)0.732RPM,(1)0.0146RPM
  • BIT3(8):速度模式;(0)速度0表示停止,(1)速度0表示最高速度
  • BIT4(16):角度反馈模式;(0)反馈单圈角度,(1)反馈全角度
  • BIT5(32):电压模式,(0)1.5K低压采样,(1)1K高压采样
  • BIT6(64):PWM频率,(0)24kHz,(1)16kHz
  • BIT7(128):位置反馈方向相位,(0)正向,(1)反向

注意: 如果同时设置多个位,舵机的相位值为各个位值之和。例如:原相位值为0,舵机运行反向,则相位值为128+1=129;

3.2 舵机状态

舵机状态:0表示正常,1表示异常

位数/位权重:说明

  • BIT0(1):电压状态
  • BIT1(2):磁编码状态
  • BIT2(4):温度状态
  • BIT3(8):电流状态
  • BIT4(16):----
  • BIT5(32):负载状态
  • BIT6(64):----
  • BIT7(128):----

注意: 如果同时有多种状态,舵机的状态值为各个位值之和。例如:电压过压/欠压与舵机过热,则舵机状态值为4+1=5;

3.3 卸载条件

卸载条件:0表示关闭,1表示开启

位数/位权重:说明

  • BIT0(1):电压保护
  • BIT1(2):磁编码保护
  • BIT2(4):过热保护
  • BIT3(8):过流保护
  • BIT4(16):----
  • BIT5(32):负载过载
  • BIT6(64):----
  • BIT7(128):----

注意: 如果同时设置多个位,舵机的卸载条件值为各位值之和。例如:电压保护与过热保护同时开启,则卸载条件值为4+1=5;

3.4 LED报警条件

LED报警条件:0表示关闭,1表示开启

位数/位权重:说明

  • BIT0(1):电压报警
  • BIT1(2):磁编码报警
  • BIT2(4):过热报警
  • BIT3(8):过流报警
  • BIT4(16):----
  • BIT5(32):负载过载报警
  • BIT6(64):----
  • BIT7(128):----

注意: 如果同时设置多个位,舵机的LED报警条件值为各位值之和。例如:电压报警与过热报警同时开启,则报警条件值为4+1=5;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment