CF Servo - Memory Table Explanation
1. Servo Memory Table Definition
If a function address uses two bytes of data, the low byte is at the earlier address, and the high byte is at the later address.
1.1 Version Information
| Address DEC | Address HEX | Function Name | Bytes | Initial Value | Permission | Value | Unit | Description |
|---|---|---|---|---|---|---|---|---|
| 0 | 0x00 | Firmware major version number | 1 | 3 | Read-only | - | - | - |
| 1 | 0x01 | Firmware minor version number | 1 | - | Read-only | 40 - 59 | - | - |
| 2 | 0x02 | END | 1 | 0 | Read-only | - | - | 0 indicates little-endian storage structure |
| 3 | 0x03 | Servo major version number | 1 | 10 | Read-only | - | - | - |
| 4 | 0x04 | Servo minor version number | 1 | - | Read-only | - | - | - |
1.2 EPROM Configuration
| Address DEC | Address HEX | Function | Bytes | Initial Value | Permission | Value | Unit | Description |
|---|---|---|---|---|---|---|---|---|
| 5 | 0x05 | Primary ID | 1 | 1 | Read/write | 0 - 253 | Number | Unique primary ID identifier in the bus (first identifier) |
| 6 | 0x06 | Baud rate | 1 | 0 | Read/write | 0 - 7 | None | 0 - 7 respectively represent baud rates: 1000000(0), 500000(1), 250000(2), 128000(3), 115200(4), 76800(5), 57600(6), 38400(7) |
| 7 | 0x07 | Secondary ID | 1 | 0 | Read/write | 0 - 253 | Number | Secondary ID identifier (second identifier); the secondary ID only applies to write commands |
| 8 | 0x08 | Response status level | 1 | 1 | Read/write | 0 - 1 | None | 0: except for read commands and the PING command, other commands do not return a response packet; 1: return a response packet for all commands |
| 9 | 0x09 | Minimum angle limit | 2 | 0 | Read/write | 0 - 4094 | 0.087 degree | In multi-turn absolute position control, this value is 0 |
| 11 | 0x0B | Maximum angle limit | 2 | 4095 | Read/write | 1 - 4095 | 0.087 degree | In multi-turn absolute position control, this value is 0 |
| 13 | 0x0D | Maximum temperature upper limit | 1 | 70 | Read/write | 0 - 100 | °C | - |
| 14 | 0x0E | Maximum input voltage | 1 | - | Read/write | 0 - 254 | 0.1V | - |
| 15 | 0x0F | Minimum input voltage | 1 | 40 | Read/write | 0 - 254 | 0.1V | - |
| 16 | 0x10 | Maximum torque | 2 | 980 | Read/write | 0 - 1000 | 0.1% | Assigned to address 48 torque limit at power-on |
| 18 | 0x12 | Phase | 1 | - | Read/write | 0 - 254 | None | Special function byte; do not modify unless specifically required |
| 19 | 0x13 | Unload condition | 1 | - | Read/write | 0 - 254 | None | Setting the corresponding bit to 1 enables the corresponding protection; setting the corresponding bit to 0 disables the corresponding protection |
| 20 | 0x14 | LED alarm condition | 1 | - | Read/write | 0 - 254 | None | Setting the corresponding bit to 1 enables the flashing light alarm; setting the corresponding bit to 0 disables the flashing light alarm |
| 21 | 0x15 | Position loop P proportional coefficient | 1 | - | Read/write | 0 - 254 | None | Assigned to address 50 Kp at power-on |
| 22 | 0x16 | Position loop D derivative coefficient | 1 | - | Read/write | 0 - 254 | None | Assigned to address 51 Kd at power-on |
| 23 | 0x17 | Position loop I integral coefficient | 1 | 0 | Read/write | 0 - 254 | None | Assigned to address 52 Ki at power-on |
| 24 | 0x18 | Minimum starting force | 1 | - | Read/write | 0 - 254 | 0.1% | Set the servo's minimum output starting torque |
| 25 | 0x19 | Integral limit value | 1 | 0 | Read/write | 0 - 254 | None | Maximum integral value = integral limit value * 4; 0 indicates disabling the integral limit function; effective in position mode 0 and mode 4 |
| 26 | 0x1A | Positive dead zone | 1 | 1 | Read/write | 0 - 16 | 0.087 degree | The minimum unit is one minimum resolution angle |
| 27 | 0x1B | Negative dead zone | 1 | 1 | Read/write | 0 - 16 | 0.087 degree | The minimum unit is one minimum resolution angle |
| 28 | 0x1C | Protection current | 2 | - | Read/write | 0 - 2047 | 6.5mA | Assigned to address 44 target current at power-on |
| 30 | 0x1E | Angle resolution | 1 | 1 | Read/write | 1 - 128 | None | Amplification factor for the sensor's minimum resolution angle |
| 31 | 0x1F | Position offset | 2 | 0 | Read/write | -4095 - 4095 | 0.087 degree | BIT15 indicates positive/negative direction; the other bits can represent a range of 0 - 4095 |
| 33 | 0x21 | Operating mode | 1 | 0 | Read/write | 0 - 3 | None | 0: position servo mode (position + current limiting); 1: motor constant speed mode (constant speed + current limiting); 2: motor constant current mode (current limiting, speed uncontrollable); 3: PWM open-loop speed control mode |
| 34 | 0x22 | Current loop P proportional coefficient | 1 | - | Read/write | - | None | - |
| 35 | 0x23 | Current loop I integral coefficient | 1 | - | Read/write | - | None | - |
| 36 | 0x24 | Undefined | 1 | - | Read/write | - | - | - |
| 37 | 0x25 | Speed closed-loop P proportional coefficient | 1 | - | Read/write | 0 - 254 | None | In motor constant speed mode (mode 1), the speed loop proportional coefficient |
| 38 | 0x26 | Overcurrent protection time | 1 | 200 | Read/write | 0 - 254 | 10ms | Maximum settable value 254 * 10ms = 2540ms |
| 39 | 0x27 | Speed closed-loop I integral coefficient | 1 | - | Read/write | 0 - 254 | None | In motor constant speed mode (mode 1), the speed loop integral coefficient |
1.3 SRAM Control
| Address DEC | Address HEX | Function Name | Bytes | Initial Value | Permission | Value | Unit | Description |
|---|---|---|---|---|---|---|---|---|
| 40 | 0x28 | Torque switch | 1 | 0 | Read/write | 0 - 2 | None | Write 0: disable torque output; write 1: enable torque output; write 2: damping output |
| 41 | 0x29 | Acceleration | 1 | 0 | Read/write | 0 - 254 | 8.7 degree/s² | Servo running acceleration/deceleration; 0 indicates maximum acceleration |
| 42 | 0x2A | Target position | 2 | 0 | Read/write | -32767 - 32767 | 0.087 degree | Absolute position control method; the maximum corresponds to the maximum effective angle; BIT15 is the direction bit |
| 44 | 0x2C | Target current | 2 | Protection current (28) | Read/write | -2047 - 2047 | 6.5mA | Except for mode 3, other modes can modify this value to control the output of the motor's maximum operating current; in constant current mode (mode 2), BIT15 is the current direction bit; in PWM open-loop speed control mode (mode 3), the write range is -1000 - 1000, and BIT10 is the direction bit |
| 46 | 0x2E | Running speed | 2 | Servo factory default maximum speed | Read/write | -32767 - 32767 | 0.732 RPM | Control the motor's maximum running speed; 0 indicates stopping; in constant speed mode (1), BIT15 is the speed direction bit |
| 48 | 0x30 | Torque limit | 2 | Maximum torque (16) | Read/write | 0 - 1000 | 0.1% | Users can modify this value through programming to control the stall torque output |
| 50 | 0x32 | Kp | 1 | Position loop P proportional coefficient (21) | Read/write | 0 - 254 | None | Proportional coefficient controlling the motor position loop (1/8) |
| 51 | 0x33 | Kd | 1 | Position loop D derivative coefficient (22) | Read/write | 0 - 254 | None | Derivative coefficient controlling the motor position loop (1/4) |
| 52 | 0x34 | Ki | 1 | Position loop I integral coefficient (23) | Read/write | 0 - 254 | None | Integral coefficient controlling the motor position loop |
| 53 - 54 | 0x35 - 0x36 | Undefined | 1 | - | Read/write | - | - | - |
| 55 | 0x37 | Lock flag | 1 | 1 | Read/write | 0 - 1 | None | Write 0 to disable the write lock, and values written to EPROM addresses are saved after power-off; write 1 to enable the write lock, and values written to EPROM addresses are not saved after power-off |
1.4 SRAM Feedback
| Address DEC | Address HEX | Function Name | Bytes | Initial Value | Permission | Value | Unit | Description |
|---|---|---|---|---|---|---|---|---|
| 56 | 0x38 | Current position | 2 | - | Read-only | - | 0.087 degree | Feedback of the servo's current absolute position; BIT15 is the direction bit |
| 58 | 0x3A | Current speed | 2 | - | Read-only | - | 0.732 RPM | Feedback of the current motor rotation speed; BIT15 is the direction bit |
| 60 | 0x3C | Current load | 2 | - | Read-only | - | 0.1% | Current control output voltage duty cycle driving the motor; BIT10 is the direction bit |
| 62 | 0x3E | Current voltage | 1 | - | Read-only | - | 0.1V | Current servo operating voltage |
| 63 | 0x3F | Current temperature | 1 | - | Read-only | - | °C | Current internal operating temperature of the servo |
| 64 | 0x40 | Asynchronous write flag | 1 | 0 | Read-only | - | None | Flag bit when using asynchronous write commands |
| 65 | 0x41 | Servo status | 1 | 0 | Read-only | - | None | Setting the corresponding bit to 1 indicates that the corresponding error has occurred; for details, refer to the special byte explanation |
| 66 | 0x42 | Moving flag | 1 | 0 | Read-only | - | None | BIT0: the flag is 1 when the servo is moving (greater than the moving speed threshold), and 0 when the servo stops; BIT1: the flag is 1 when the servo is moving, 0 when the servo reaches the target and stops, and remains 0 when the servo does not update the target position |
| 67 | 0x43 | Target position | 2 | - | Read-only | - | 0.087 degree | Current target position |
| 69 | 0x45 | Current current | 2 | - | Read-only | - | 6.5 mA | Feedback of the current motor phase current |
| 71 | 0x47 | Undefined | 2 | - | Read-only | - | - | - |
| 73 | 0x49 | Current offset | 2 | - | Read-only | - | - | Current 0-point offset value |
2. Special Byte Explanation
2.1 Servo Status
| Byte Bit | BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0 |
|---|---|---|---|---|---|---|---|---|
| Bit Weight | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Address 65 | -- | -- | Load status | -- | Current status | Temperature status | Magnetic encoder status | Voltage status |
| -- | -- | (0) Load normal | -- | (0) Current normal | (0) Temperature normal | (0) Magnetic encoder normal | (0) Voltage normal | |
| -- | -- | (1) Load overload | -- | (1) Current overcurrent | (1) Temperature overheating | (1) Magnetic encoder abnormal | (1) Overvoltage/undervoltage |
If multiple statuses occur at the same time, the servo status value is the sum of the individual bit values. For example: overvoltage/undervoltage and servo overheating give a servo status value of 4+1=5.
2.2 LED Alarm Condition
| Byte Bit | BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0 |
|---|---|---|---|---|---|---|---|---|
| Bit Weight | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Address 20 | -- | -- | -- | -- | Overcurrent alarm | Overheating alarm | Magnetic encoder alarm | Voltage alarm |
| -- | -- | -- | -- | (0) Disable overcurrent alarm | (0) Disable overheating alarm | (0) Disable magnetic encoder alarm | (0) Disable voltage alarm | |
| -- | -- | -- | -- | (1) Enable overcurrent alarm | (1) Enable overheating alarm | (1) Enable magnetic encoder alarm | (1) Enable voltage alarm |
If multiple bits are set at the same time, the servo's LED alarm condition value is the sum of the individual bit values. For example: enabling both the voltage alarm and the overheating alarm gives an alarm condition value of 4+1=5.
2.3 Unload Condition
| Byte Bit | BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0 |
|---|---|---|---|---|---|---|---|---|
| Bit Weight | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Address 19 | -- | -- | -- | -- | Overcurrent protection | Overheating protection | Magnetic encoder protection | Voltage protection |
| -- | -- | -- | -- | (0) Disable overcurrent protection | (0) Disable overheating protection | (0) Disable magnetic encoder protection | (0) Disable voltage protection | |
| -- | -- | -- | -- | (1) Enable overcurrent protection | (1) Enable overheating protection | (1) Enable magnetic encoder protection | (1) Enable voltage protection |
If multiple bits are set at the same time, the servo's unload condition value is the sum of the individual bit values. For example: enabling both the voltage protection and the overheating protection gives an unload condition value of 4+1=5.
2.4 Servo Phase
| Byte Bit | BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0 |
|---|---|---|---|---|---|---|---|---|
| Bit Weight | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Address 18 | Position feedback direction phase | PWM frequency | Driver bridge configuration | Angle feedback mode | Speed direction phase (firmware version <=3.41) | Driver bridge direction phase | Current feedback direction phase | Magnetic encoder support (firmware version >=3.41) |
| (0) Forward | (0) 24kHz | (0) Independent H-bridge | (0) Feedback single-turn angle | (0) Forward | (0) Forward | (0) Forward | (0) AS5600 | |
| (1) Reverse | (1) 16kHz | (1) Integrated H-bridge | (1) Feedback full angle | (1) Reverse | (1) Reverse | (1) Reverse | (1) MT6701 |
If multiple bits are set at the same time, the servo's phase value is the sum of the individual bit values. For example: with the original phase value at 0 and the servo running in reverse, the phase value is 128+4+2=134.