Google Chat: zj734465502@gmail.com
+86-0755-88291180
sales01@spotpear.com
dragon_manager@163.com
services01@spotpear.com
manager01@spotpear.com
WhatsApp:13246739196
Based on the integrated development concept, DDSM115 is a high-reliability Permanent Magnet Synchronous Motor (PMSM) integrating an outer rotor brushless motor, encoder, and servo. With a compact structure, it is easy to install and can be operated stably. As it is small while with high torque, it can be applied for the following advanced robot projects such as robot joints, small AGV drive wheels, balance car drive wheels, and the development of vehicle platforms.
By optimizing the number of poles and slots, slot type, air gap, permanent magnet material, etc., it is ensured that the motor has greater torque output and smaller torque fluctuations, and realizes direct drive with low speed and high torque, providing users with high-performance direct-drive application solutions.
As the drive for the motor adopts the Field Oriented Control (FOC) algorithm and works with the built-in high-precision sensor, the motor can be precisely controlled with lower noise. The driver also has a complete and reliable OBD (Onboard diagnostics) monitoring mechanism and protection functions for the motor to ensure safe and reliable motor operation.
At the same time, we provide an open-source four-wheel drive off-road vehicle structure model for this type of direct-drive servo motor. You can download the model and project files here.
Signal Cable (ZH1.5*4P) | Name | Type | Description |
---|---|---|---|
1 | GND | Signal GND | Negative Electrode |
2 | A | DATA+ | 485 bus A |
3 | B | DATA- | 485 bus B |
4 | / | / | Reserved |
Power cable (XH2.54*2P) | Name | Type | Description |
---|---|---|---|
1 | VCC | Power input | Rated 18V DC |
2 | GND | Ground | Negative Electrode |
1. Switch to velocity loop (02), this command has no feedback.
01 A0 00 00 00 00 00 00 00 02
2. For additional feedback, query the motor mode
01 74 00 00 00 00 00 00 00 04
3. Brake command, valid in speed loop mode.
01 64 00 00 00 00 00 FF 00 D1
4. ID setting(01), send the command five times in a row
AA 55 53 01 00 00 00 00 00 00
5. ID query
C8 64 00 00 00 00 00 00 00 DE
6. Current loop command(-32767~32767 corresponds to -8A~8A)
01 64 F8 30 00 00 00 00 00 08 (-2000)
01 64 EC 78 00 00 00 00 00 D3 (-5000)
01 64 D8 F0 00 00 00 00 00 78 (-10000)
01 64 00 00 00 00 00 00 00 50 (0)
01 64 07 D0 00 00 00 00 00 27 (2000)
01 64 13 88 00 00 00 00 00 A7 (5000)
01 64 27 10 00 00 00 00 00 57 (10000)
7. Velocity loop commands(-330~330 rpm)
01 64 FF CE 00 00 00 00 00 DA (-50rpm)
01 64 FF 9C 00 00 00 00 00 9A (-100rpm)
01 64 00 00 00 00 00 00 00 50 (0rpm)
01 64 00 32 00 00 00 00 00 D3 (50rpm)
01 64 00 64 00 00 00 00 00 4F (100rpm)
8. Position loop commands(0~32767 corresponds to 0~360°)
01 64 00 00 00 00 00 00 00 50 (0)
01 64 27 10 00 00 00 00 00 57 (10000)
01 64 4E 20 00 00 00 00 00 5E (20000)
01 64 75 30 00 00 00 00 00 A7 (30000)
①Set the motor ID (save when power is off) ②Set the motor mode (current loop, speed loop, position loop, the default is speed loop) ③Send the given value
Send to the motor:
Data Field | DATA[0] | DATA[1] | DATA[2] | DATA[3] | DATA[4] | DATA[5] | DATA[6] | DATA[7] | DATA[8] | DATA[9] |
---|---|---|---|---|---|---|---|---|---|---|
Content | ID | 0x64 | Velocity/current/given position high 8 bits | Velocity/current/given position low 8 bits | 0 | 0 | Acceleration time | Brake | 0 | CRC8 |
Motor feedback:
Data Field | DATA[0] | DATA[1] | DATA[2] | DATA[3] | DATA[4] | DATA[5] | DATA[6] | DATA[7] | DATA[8] | DATA[9] |
---|---|---|---|---|---|---|---|---|---|---|
Content | ID | Mode value | Torque current high 8 bits | Torque current low 8 bits | Velocity high 8 bits | Velocity low 8 bits | Position high 8 bits | Position low 8 bits | Error code | CRC8 |
Send to the motor:
Data Field | DATA[0] | DATA[1] | DATA[2] | DATA[3] | DATA[4] | DATA[5] | DATA[6] | DATA[7] | DATA[8] | DATA[9] |
---|---|---|---|---|---|---|---|---|---|---|
Content | ID | 0x74 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | CRC8 |
Motor feedback:
Data Field | DATA[0] | DATA[1] | DATA[2] | DATA[3] | DATA[4] | DATA[5] | DATA[6] | DATA[7] | DATA[8] | DATA[9] |
---|---|---|---|---|---|---|---|---|---|---|
Content | ID | Mode value | Torque current high 8 bits | Torque current low 8 bits | Velocity high 8 bits | Velocity low 8 bits | Winding temperature | U8 position value | Error code | CRC8 |
Error Code | BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0 |
---|---|---|---|---|---|---|---|---|
Content | Save | Save | Save | Troubleshooting | Stall error | Phase overcurrent error | Overcurrent error | Sensor error |
For example, the error code 0x22, that is 0b00000010, means an overcurrent error.
The value after performing CRC8 check on the value DATA[0]~DATA[8].
CRC algorithm: CRC-8/MAXIM
Polynomial: x8 + x5 + x4 + 1
Data Field | DATA[0] | DATA[1] | DATA[2] | DATA[3] | DATA[4] | DATA[5] | DATA[6] | DATA[7] | DATA[8] | DATA[9] |
---|---|---|---|---|---|---|---|---|---|---|
Content | ID | 0xA0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Mode value |
Mode value:
0x01:set the current loop
0x02:set the velocity loop
0x03:set the position loop
The rotating velocity of the motor must be lower than 10rpm when switching to the position loop.
Data Field | DATA[0] | DATA[1] | DATA[2] | DATA[3] | DATA[4] | DATA[5] | DATA[6] | DATA[7] | DATA[8] | DATA[9] |
---|---|---|---|---|---|---|---|---|---|---|
Content | 0xAA | 0x55 | 0x53 | ID | 0 | 0 | 0 | 0 | 0 | 0 |
Note: When setting the ID, please ensure that there is only one motor on the bus. It is only allowed to be set once each time the power is turned on. The motor can be set after receiving 5 ID setting instructions.
Send to the motor:
Data Field | DATA[0] | DATA[1] | DATA[2] | DATA[3] | DATA[4] | DATA[5] | DATA[6] | DATA[7] | DATA[8] | DATA[9] |
---|---|---|---|---|---|---|---|---|---|---|
Content | 0xC8 | 0x64 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | CRC8 |
Motor feedback:
Data Field | DATA[0] | DATA[1] | DATA[2] | DATA[3] | DATA[4] | DATA[5] | DATA[6] | DATA[7] | DATA[8] | DATA[9] |
---|---|---|---|---|---|---|---|---|---|---|
Content | ID | Mode value | Torque current high 8 bits | Torque current low 8 bits | Velocity high 8 bits | Velocity low 8 bits | Position high 8 bits | Position low 8 bits | Error code | CRC8 |
Note: Please ensure that there is only one motor on the bus when querying the ID.
1. Bus overcurrent protection threshold: 3A, trigger shutdown protection after overcurrent occurs, and release after 5S.
2. Motor over-temperature protection threshold: 80°C, the protection will be released when the temperature is lower than the threshold by 5°C.
3. Phase current protection threshold: 4.6A, trigger shutdown protection after overcurrent occurs, and release after 5S.
4. Locked rotor protection: the blocked rotor lasts for more than 5S to trigger the protection, and it will be released after 5S.