UM0289 ST10 firmware
17/29
4 ST10 firmware
The firmware to manage the eMotion system is organized in two separate modules:
● Communication module: able to exchange data with the PC-GUI using a structured
protocol.
● Control module: able to perform the open and closed loop operation on three motors
and communicates with the first module.
Note: All the firmware is developed, in standard C language, using tasking toolchain v 8.5 from
Altium.
4.1 Communication protocol
The serial protocol used for communicate with PC-GUI is a frame based protocol, with a
baud rate of 115200, 8-bit data length, no parity check, 1 bit stop.
The frame has a variable length, with a CRC field. A mechanism of acknowledgement for
each command is implemented.
Figure 11. Frame protocol
Figure 11 shows the general frame format on which the communication is based, the CRC is
a field of 1 byte length computed with this formula:
16_Total_Length = (16_bit) (FRAME_TYPE + LENGTH + DATA)
CRC = (8_bit) (High_Byte(16_Total_Length) + Low_Byte(16_Total_Length))
Table 4 shows the general description of the frames.
Table 4. Frame description
Frame name Description Frame Type Length Direction Type
Connect
Open
connection
0x00 0 PC-MDK ST10 Command
Enable_Motor
Enable motor
drive
0x01 1 PC-MDK ST10 Command
Disable_Motor
Disable motor
drive
0x02 1 PC-MDK ST10 Command
Brake_Motor
Enable brake
motor drive
0x03 1 PC-MDK ST10 Command
Unbrake_Motor
Disable brake
motor drive
0x04 1 PC-MDK ST10 Command
Forward_Motor
Set forward
motor direction
(6205 motor
drive)
0x05 1 PC-MDK ST10 Command
Frame Type Length Payload CRC
1 byte 1 byte variable length 1 byte