MODULE
Module for Stepper
TMCM-1181 TMCL™ Firmware Manual
Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
The TMCM-1181 is a single axis controller/driver module for 2-phase bipolar stepper motors. The
TMCM-1181 TMCL firmware allows to control the module using TMCL™ commands, supporting standalone operation as well as direct mode control, making use of the Trinamic TMC429 motion controller and the TMC262 motor driver. Dynamic current control, and quiet, smooth and efficient
operation are combined with StallGuard™ and CoolStep™ features.
Features
•
•
•
•
•
•
•
•
•
Single Axis Stepper motor control
Supply voltage up to 24V DC
TMCL™
USB interface
RS485 interface
Additional inputs and outputs
CoolStep™
StallGuard2™
SensOstep™ encoder
Applications
• Laboratory Automation
• Manufacturing
• Semiconductor Handling
• Robotics
• Factory Automation
• Test & Measurement
• Life Science
• Biotechnology
• Liquid Handling
Simplified Block Diagram
TMCL™
Memory
RS485
+3.3V
USB
µC
2
OUT
Motion
Controller
TMC429
5
IN
Stop
Switches
TMCM-1181
Power
Energy
Driver
Efficient
TMC262
Driver
with
TMC262
coolStep™
MOSFET
Driver
Stage
Step
Motor
Step /
Dir
ABN
10… 28V DC
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at: www.trinamic.com
Read entire documentation.
sensOstep™
Encoder
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
2 / 135
Contents
1 Features
1.1 StallGuard2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 CoolStep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
6
6
2 First Steps with TMCL
2.1 Basic Setup . . . . . . . . . . . . . . . .
2.2 Using the TMCL Direct Mode . . . . .
2.3 Changing Axis Parameters . . . . . . .
2.4 Testing with a simple TMCL Program
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
7
7
8
3 TMCL and the TMCL-IDE — An Introduction
3.1 Binary Command Format . . . . . . . . . . . .
3.1.1
Checksum Calculation . . . . . . . . .
3.2 Reply Format . . . . . . . . . . . . . . . . . . .
3.2.1
Status Codes . . . . . . . . . . . . . .
3.3 Standalone Applications . . . . . . . . . . . . .
3.4 The ASCII Interface . . . . . . . . . . . . . . . .
3.4.1
Entering and leaving the ASCII Mode
3.4.2
Format of the Command Line . . . .
3.4.3
Format of a Reply . . . . . . . . . . . .
3.4.4
Configuring the ASCII Interface . . . .
3.5 TMCL Command Overview . . . . . . . . . . .
3.6 TMCL Commands by Subject . . . . . . . . . .
3.6.1
Motion Commands . . . . . . . . . . .
3.6.2
Parameter Commands . . . . . . . . .
3.6.3
Branch Commands . . . . . . . . . . .
3.6.4
I/O Port Commands . . . . . . . . . .
3.6.5
Calculation Commands . . . . . . . .
3.6.6
Interrupt Processing Commands . . .
3.6.7
New TMCL Commands . . . . . . . . .
3.7 Detailed TMCL Command Descriptions . . . .
3.7.1
ROR (Rotate Right) . . . . . . . . . . .
3.7.2
ROL (Rotate Left) . . . . . . . . . . . .
3.7.3
MST (Motor Stop) . . . . . . . . . . . .
3.7.4
MVP (Move to Position) . . . . . . . .
3.7.5
SAP (Set Axis Parameter) . . . . . . .
3.7.6
GAP (Get Axis Parameter) . . . . . . .
3.7.7
STAP (Store Axis Parameter) . . . . .
3.7.8
RSAP (Restore Axis Parameter) . . . .
3.7.9
SGP (Set Global Parameter) . . . . . .
3.7.10 GGP (Get Global Parameter) . . . . .
3.7.11 STGP (Store Global Parameter) . . . .
3.7.12 RSGP (Restore Global Parameter) . .
3.7.13 RFS (Reference Search) . . . . . . . .
3.7.14 SIO (Set Output) . . . . . . . . . . . . .
3.7.15 GIO (Get Input) . . . . . . . . . . . . .
3.7.16 CALC (Calculate) . . . . . . . . . . . . .
3.7.17 COMP (Compare) . . . . . . . . . . . .
3.7.18 JC (Jump conditional) . . . . . . . . . .
3.7.19 JA (Jump always) . . . . . . . . . . . .
3.7.20 CSUB (Call Subroutine) . . . . . . . . .
3.7.21 RSUB (Return from Subroutine) . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
10
11
12
12
13
14
14
14
15
15
16
18
18
18
19
19
20
20
23
24
24
25
26
27
30
31
32
33
34
35
36
37
38
40
42
45
47
48
50
51
52
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
3.7.22
3.7.23
3.7.24
3.7.25
3.7.26
3.7.27
3.7.28
3.7.29
3.7.30
3.7.31
3.7.32
3.7.33
3.7.34
3.7.35
3.7.36
3.7.37
3.7.38
3.7.39
3.7.40
3.7.41
3.7.42
3.7.43
3.7.44
3.7.45
3.7.46
3.7.47
3.7.48
3.7.49
3.7.50
3.7.51
3.7.52
3.7.53
3 / 135
WAIT (Wait for an Event to occur) . . . . . . . . . . . . . . . . . . . . . . .
STOP (Stop TMCL Program Execution – End of TMCL Program) . . . . . .
SCO (Set Coordinate) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
GCO (Get Coordinate) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CCO (Capture Coordinate) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ACO (Accu to Coordinate) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CALCX (Calculate using the X Register) . . . . . . . . . . . . . . . . . . . .
AAP (Accu to Axis Parameter) . . . . . . . . . . . . . . . . . . . . . . . . . .
AGP (Accu to Global Parameter) . . . . . . . . . . . . . . . . . . . . . . . .
CLE (Clear Error Flags) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EI (Enable Interrupt) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DI (Disable Interrupt) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
VECT (Define Interrupt Vector) . . . . . . . . . . . . . . . . . . . . . . . . .
RETI (Return from Interrupt) . . . . . . . . . . . . . . . . . . . . . . . . . .
CALCVV (Calculate using two User Variables) . . . . . . . . . . . . . . . . .
CALCVA (Calculate using a User Variable and the Accumulator Register)
CALCAV (Calculate using the Accumulator Register and a User Variable)
CALCVX (Calculate using a User Variable and the X Register) . . . . . . .
CALCXV (Calculate using the X Register and a User Variable) . . . . . . .
CALCV (Calculate using a User Variable and a Direct Value) . . . . . . . .
RST (Restart) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DJNZ (Decrement and Jump if not Zero) . . . . . . . . . . . . . . . . . . . .
CALL (Conditional Subroutine Call) . . . . . . . . . . . . . . . . . . . . . . .
MVPA (Move to Position specified by Accumulator Register) . . . . . . . .
ROLA (Rotate Left using the Accumulator Register) . . . . . . . . . . . . .
RORA (Rotate Right using the Accumulator Register) . . . . . . . . . . . .
SIV (Set Indexed Variable) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
GIV (Get Indexed Variable) . . . . . . . . . . . . . . . . . . . . . . . . . . .
AIV (Accumulator to Indexed Variable) . . . . . . . . . . . . . . . . . . . .
Customer specific Command Extensions (UF0. . . UF7 – User Functions) .
Request Target Position reached Event . . . . . . . . . . . . . . . . . . . .
TMCL Control Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Axis Parameters
5 Global Parameters
5.1 Bank 0 . . . . .
5.2 Bank 1 . . . . .
5.3 Bank 2 . . . . .
5.4 Bank 3 . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
53
55
56
57
59
60
61
63
64
65
67
68
69
71
72
74
76
78
80
82
84
85
86
88
90
91
92
93
94
95
96
98
100
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
109
. 109
. 112
. 112
. 113
6 Module Specific Hints
6.1 Velocity and Acceleration Calculation . . . . . . . . . . . . . .
6.1.1
Velocity Conversion . . . . . . . . . . . . . . . . . . .
6.1.2
Acceleration Conversion . . . . . . . . . . . . . . . . .
6.1.3
How to choose Pulse Divisor and Ramp Divisor . . .
6.1.4
Conversion between PPS, RPM and RPS . . . . . . .
6.2 The SensOstep™ Encoder . . . . . . . . . . . . . . . . . . . . .
6.2.1
Matching Encoder Resolution and Motor Resolution
6.2.2
Special Encoder Functions . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
114
. 114
. 114
. 114
. 115
. 115
. 115
. 116
. 116
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7 Hints and Tips
117
7.1 Reference Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
7.1.1
Mode 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
7.1.2
Mode 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
7.1.3
Mode 3
7.1.4
Mode 4
7.1.5
Mode 5
7.1.6
Mode 6
7.1.7
Mode 7
7.1.8
Mode 8
7.2 StallGuard2 . .
7.3 CoolStep . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 / 135
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 118
. 119
. 119
. 120
. 120
. 121
. 122
. 123
8 TMCL Programming Techniques and Structure
8.1 Initialization . . . . . . . . . . . . . . . . . . . . .
8.2 Main Loop . . . . . . . . . . . . . . . . . . . . . .
8.3 Using Symbolic Constants . . . . . . . . . . . . .
8.4 Using Variables . . . . . . . . . . . . . . . . . . .
8.5 Using Subroutines . . . . . . . . . . . . . . . . .
8.6 Combining Direct Mode and Standalone Mode
8.7 Make the TMCL Program start automatically . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
126
. 126
. 126
. 126
. 127
. 128
. 128
. 129
9 Figures Index
130
10 Tables Index
131
11 Supplemental Directives
11.1 Producer Information . . . . . . . . . .
11.2 Copyright . . . . . . . . . . . . . . . . . .
11.3 Trademark Designations and Symbols .
11.4 Target User . . . . . . . . . . . . . . . .
11.5 Disclaimer: Life Support Systems . . . .
11.6 Disclaimer: Intended Use . . . . . . . .
11.7 Collateral Documents & Tools . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
132
. 132
. 132
. 132
. 132
. 132
. 132
. 133
12 Revision History
134
12.1 Firmware Revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
12.2 Document Revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
1
5 / 135
Features
The TMCM-1181 is a single axis controller/driver module for 2-phase bipolar stepper motors with state of
the art feature set. It is highly integrated, offers a convenient handling and can be used in many decentralized applications. The module can be mounted on the back of NEMA 34 (86mm flange size) stepper
motors and has been designed for coil currents of up to 6.4A RMS and up to 24V DC supply voltage. With
its high energy efficiency from Trinamic’s CoolStep™ technology cost for power consumption is kept down.
The TMCL firmware allows for standalone operation and direct mode control.
Main characteristics
• Motion controller & stepper motor driver:
– Hardware motion profile calculation in real-time.
– On the fly alteration of motion parameters (e.g. position, velocity, acceleration).
– High performance microcontroller for overall system control and communication protocol handling.
– Up to 256 microsteps per full step.
– High-efficient operation, low power dissipation.
– Dynamic current control.
– Integrated protection.
– StallGuard2™ feature for stall detection.
– CoolStep™ feature for reduced power consumption and heat dissipation.
• Encoder
– SensOstep™ magnetic encoder with 1024 increments per round.
– Usable for example for step-loss detection under all operating conditions and positioning supervision.
• Interfaces
– USB interface.
– RS485 bus.
– Three dedicated inputs for stop switches and home switch (+24V compatible) with programmable
pull-up resistors
– Two general-purpose digital inputs (+24V compatible), also usable as analog inputs.
– Two general purpose digital outputs (open drain, max. 1A).
Software
TMCL remote controlled operation via USB or RS485 interface and/or stand-alone operation via TMCL
programming. PC-based application development software TMCL-IDE available for free.
Electrical data
• Supply voltage: +12V / +24VDC nominal (10. . . 28V DC supply range).
• Motor current: up to 6.4A RMS / 9A peak (programmable).
Please see also the separate Hardware Manual.
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
1.1
6 / 135
StallGuard2
StallGuard2 is a high-precision sensorless load measurement using the back EMF of the coils. It can be
used for stall detection as well as other uses at loads below those which stall the motor. The StallGuard2
measurement value changes linearly over a wide range of load, velocity, and current settings. At maximum
motor load, the value reaches zero or is near zero. This is the most energy-efficient point of operation for
the motor.
stallGuard2
Load [Nm]
Initial stallGuard2 (SG) value: 100%
Max. load
stallGuard2 (SG) value: 0
Maximum load reached.
Motor close to stall.
Motor stalls
Figure 1: StallGuard2 Load Measurement as a Function of Load
1.2
CoolStep
CoolStep is a load-adaptive automatic current scaling based on the load measurement via StallGuard2
adapting the required current to the load. Energy consumption can be reduced by as much as 75%. CoolStep allows substantial energy savings, especially for motors which see varying loads or operate at a
high duty cycle. Because a stepper motor application needs to work with a torque reserve of 30% to
50%, even a constant-load application allows significant energy savings because CoolStep automatically
enables torque reserve when required. Reducing power consumption keeps the ystem cooler, increases
motor life, and allows cost reduction.
0,9
Efficiency with coolStep
0,8
Efficiency with 50v torque reserve
0,7
0,6
0,5
Efficiency
0,4
0,3
0,2
0,1
0
0
50
100
150
200
250
300
350
Velocity [RPM]
Figure 2: Energy Efficiency Example with CoolStep
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
2
7 / 135
First Steps with TMCL
In this chapter you can find some hints for your first steps with the TMCM-1181 and TMCL. You may skip
this chapter if you are already familiar with TMCL and the TMCL-IDE.
Things that you will need
• Your TMCM-1181 module.
• A USB cable.
• A power supply (24V DC) for your TMCM-1181 module.
• The TMCL-IDE 3.x already installed on your PC.
• A two-phase bipolar stepper motor.
2.1
Basic Setup
First of all, you will need a PC with Windows (at least Windows 7) and the TMCL-IDE 3.x installed on it. If
you do not have the TMCL-IDE installed on your PC then please download it from the TMCL-IDE product
page of Trinamic’s website (http://www.trinamic.com) and install it on your PC.
Please also ensure that your TMCM-1181 is properly connected to your power supply and that the stepper
motor is properly connected to the module. Please see the TMCM-1181 hardware manual for instructions
on how to do this. Do not connect or disconnect a stepper motor to or from the module while the
module is powered!
Then, please start up the TMCL-IDE. After that you can connect your TMCM-1181 via USB and switch on the
power supply for the module (while the TMCL-IDE is running on your PC). The module will be recognized
by the TMCL-IDE, and necessary driver registrations in Windows will automatically done by the TMCL-IDE.
2.2
Using the TMCL Direct Mode
At first try to use some TMCL commands in direct mode. In the TMCL-IDE a tree view showing the TMCM1181 and all tools available for it is displayed. Click on the Direct Mode entry of the tool tree. Now, the
Direct Mode tool will pop up.
In the Direct Mode tool you can choose a TMCL command, enter the necessary parameters and execute
the command. For example, choose the command ROL (rotate left). Then choose the appropriate motor
(motor 0 if your motor is connected to the motor 0 connector). Now, enter the desired speed. Try entering 51200 (pps) as the value and then click the Execute button. The motor will now run. Choose the MST
(motor stop) command and click Execute again to stop the motor.
2.3
Changing Axis Parameters
Next you can try changing some settings (also called axis parameters) using the SAP command in direct
mode. Choose the SAP command. Then choose the parameter type and the motor number. Last, enter
the desired value and click execute to execute the command which then changes the desired parameter.
The following table points out the most important axis parameters. Please see chapter 4 for a complete
list of all axis parameters.
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
8 / 135
Most important axis parameters
Number
Axis Parameter
Description
Range
[Units]
Access
4
Maximum
positioning
speed
The maximum speed used for positioning
ramps.
1. . . 2047
[int]
RW
5
Maximum
acceleration
Maximum acceleration in positioning ramps. Acceleration and deceleration value in velocity
mode.
1. . . 2047
[int]
RW
6
Maximum
current
Motor current used when motor is running. The
maximum value is 255 which means 100% of the
maximum current of the module.
The most important setting, as too high values can
cause motor damage.
0. . . 255
RW
7
Standby
current
The current used when the motor is not running.
The maximum value is 255 which means 100% of
the maximum current of the module. This value
should be as low as possible so that the motor
can cool down when it is not moving. Please see
also parameter 214.
0. . . 255
RW
Table 1: Most important Axis Parameters
2.4
Testing with a simple TMCL Program
Now, test the TMCL stand alone mode with a simple TMCL program. To type in, assemble and download
the program, you will need the TMCL creator. This is also a tool that can be found in the tool tree of
the TMCL-IDE. Click the TMCL creator entry to open the TMCL creator. In the TMCL creator, type in the
following little TMCL program:
1
3
5
ROL 0 , 1000
WAIT TICKS , 0 , 500
MST 0
ROR 0 , 100
WAIT TICKS , 0 , 500
MST 0
// Rotate motor 0 with speed 1000
// Rotate motor 0 with 1000
7
9
11
13
15
SAP 4 , 0 , 100
SAP 5 , 0 , 100
Loop :
MVP ABS , 0 , 512000
WAIT POS , 0 , 0
MVP ABS , 0 , -512000
WAIT POS , 0 , 0
JA Loop
// Set max . Velocity
// Set max . Acceleration
// Move to Position 512000
// Wait until position reached
// Move to Position -512000
// Wait until position reached
// Infinite Loop
After you have done that, take the following steps:
1. Click the Assemble icon (or choose Assemble from the TMCL menu) in the TMCL creator to assemble
the program.
2. Click the Download icon (or choose Download from the TMCL menu) in the TMCL creator to donwload the program to the module.
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
9 / 135
3. Click the Run icon (or choose Run from the TMCL menu) in the TMCL creator to run the program on
the module.
Also try out the debugging functions in the TMCL creator:
1. Click on the Bug icon to start the debugger.
2. Click the Animate button to see the single steps of the program.
3. You can at any time pause the program, set or reset breakpoints and resume program execution.
4. To end the debug mode click the Bug icon again.
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
3
10 / 135
TMCL and the TMCL-IDE — An Introduction
As with most TRINAMIC modules the software running on the microprocessor of the TMCM-1181 consists
of two parts, a boot loader and the firmware itself. Whereas the boot loader is installed during production and testing at TRINAMIC and remains untouched throughout the whole lifetime, the firmware can
be updated by the user. New versions can be downloaded free of charge from the TRINAMIC website
(http://www.trinamic.com).
The TMCM-1181 supports TMCL direct mode (binary commands). It also implements standalone TMCL
program execution. This makes it possible to write TMCL programs using the TMCL-IDE and store them
in the memory of the module.
In direct mode the TMCL communication over RS-232, RS-485, CAN, and USB follows a strict master/slave
relationship. That is, a host computer (e.g. PC/PLC) acting as the interface bus master will send a command to the TMCM-1181. The TMCL interpreter on the module will then interpret this command, do the
initialization of the motion controller, read inputs and write outputs or whatever is necessary according
to the specified command. As soon as this step has been done, the module will send a reply back over
the interface to the bus master. Only then should the master transfer the next command.
Normally, the module will just switch to transmission and occupy the bus for a reply, otherwise it will stay
in receive mode. It will not send any data over the interface without receiving a command first. This way,
any collision on the bus will be avoided when there are more than two nodes connected to a single bus.
The Trinamic Motion Control Language [TMCL] provides a set of structured motion control commands.
Every motion control command can be given by a host computer or can be stored in an EEPROM on the
TMCM module to form programs that run standalone on the module. For this purpose there are not only
motion control commands but also commands to control the program structure (like conditional jumps,
compare and calculating).
Every command has a binary representation and a mnemonic. The binary format is used to send commands from the host to a module in direct mode, whereas the mnemonic format is used for easy usage
of the commands when developing standalone TMCL applications using the TMCL-IDE (IDE means Integrated Development Environment).
There is also a set of configuration variables for the axis and for global parameters which allow individual
configuration of nearly every function of a module. This manual gives a detailed description of all TMCL
commands and their usage.
3.1
Binary Command Format
Every command has a mnemonic and a binary representation. When commands are sent from a host
to a module, the binary format has to be used. Every command consists of a one-byte command field, a
one-byte type field, a one-byte motor/bank field and a four-byte value field. So the binary representation
of a command always has seven bytes. When a command is to be sent via RS-232, RS-485, RS-422 or USB
interface, it has to be enclosed by an address byte at the beginning and a checksum byte at the end. In
these cases it consists of nine bytes.
The binary command format with RS-232, RS-485, RS-422 and USB is as follows:
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
11 / 135
TMCL Command Format
Bytes
Meaning
1
Module address
1
Command number
1
Type number
1
Motor or Bank number
4
Value (MSB first!)
1
Checksum
Table 2: TMCL Command Format
Info
Note
3.1.1
The checksum is calculated by accumulating all the other bytes using an 8-bit
addition.
When using the CAN interface, leave out the address byte and the checksum
byte. With CAN, the CAN-ID is used as the module address and the checksum is
not needed because CAN bus uses hardware CRC checking.
Checksum Calculation
As mentioned above, the checksum is calculated by adding up all bytes (including the module address
byte) using 8-bit addition. Here are two examples which show how to do this:
Checksum calculation in C:
1
unsigned char i , Checksum ;
unsigned char Command [9];
3
5
7
9
// Set the Command array to the desired command
Checksum = Command [0];
for ( i =1; i
Reference search
SIO
14
, ,
Set digital output to specified value
GIO
15
,
Get value of analog/digital input
CALC
19
,
Aithmetical operation between accumulator and direct value
COMP
20
Compare accumulator with value
JC
21
,
Jump conditional
JA
22
Jump absolute
CSUB
23
Call subroutine
RSUB
24
,
run infinitely
8.3
Using Symbolic Constants
To make your program better readable and understandable, symbolic constants should be taken for all
important numerical values that are used in the program. The TMCL-IDE provides an include file with
symbolic names for all important axis parameters and global parameters. Please consider the following
example:
1
3
5
// Define some constants
# include TMCLParam . tmc
MaxSpeed = 50000
MaxAcc = 10000
Position0 = 0
Position1 = 500000
7
9
// Initialization
SAP APMaxPositioningSpeed , Motor0 , MaxSpeed
SAP APMaxAcceleration , Motor0 , MaxAcc
11
13
15
MainLoop :
MVP ABS , Motor0 , Position1
WAIT POS , Motor0 , 0
MVP ABS , Motor0 , Position0
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
17
127 / 135
WAIT POS , Motor0 , 0
JA MainLoop
Have a look at the file TMCLParam.tmc provided with the TMCL-IDE. It contains symbolic constants that
define all important parameter numbers.
Using constants for other values makes it easier to change them when they are used more than once in
a program. You can change the definition of the constant and do not have to change all occurrences of it
in your program.
8.4
Using Variables
The user variables can be used if variables are needed in your program. They can store temporary values.
The commands SGP, GGP and AGP as well as STGP and RSGP are used to work with user variables:
• SGP is used to set a variable to a constant value (e.g. during initialization phase).
• GGP is used to read the contents of a user variable and to copy it to the accumulator register for
further usage.
• AGP can be used to copy the contents of the accumulator register to a user variable, e.g. to store
the result of a calculation.
• The STGP command stores the contents of a user varaible in the EEPROM.
• The RSGP command copies the value stored in the EEPROM back to the user variable.
• Global parameter 85 controls if user variables will be restored from the EEPROM automatically on
startup (default setting) or not (user variables will then be initialized with 0 instead).
Please see the following example:
1
3
5
7
9
11
MyVariable = 42
// Use a symbolic name for the user variable
// ( This makes the program better readable and understandable .)
SGP MyVariable , 2 , 1234
// Initialize the variable with the value 1234
...
...
GGP MyVariable , 2
// Copy contents of variable to accumulator register
CALC MUL , 2
// Multiply accumulator register with two
AGP MyVariable , 2
// Store contents of accumulator register to variable
...
...
Furthermore, these variables can provide a powerful way of communication between a TMCL program
running on a module and a host. The host can change a variable by issuing a direct mode SGP command
(remember that while a TMCL program is running direct mode commands can still be executed, without
interfering with the running program). If the TMCL program polls this variable regularly it can react on
such changes of its contents.
The host can also poll a variable using GGP in direct mode and see if it has been changed by the TMCL
program.
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
8.5
128 / 135
Using Subroutines
The CSUB and RSUB commands provide a mechanism for using subroutines. The CSUB command branches
to the given label. When an RSUB command is executed the control goes back to the command that follows the CSUB command that called the subroutine.
This mechanism can also be nested. From a subroutine called by a CSUB command other subroutines
can be called. In the current version of TMCL eight levels of nested subroutine calls are allowed.
8.6
Combining Direct Mode and Standalone Mode
Direct mode and standalone mode can also be combined. When a TMCL program is being executed in
standalone mode, direct mode commands are also processed (and they do not disturb the flow of the
program running in standalone mode). So, it is also possible to query e.g. the actual position of the motor
in direct mode while a TMCL program is running.
Communication between a program running in standalone mode and a host can be done using the TMCL
user variables. The host can then change the value of a user variable (using a direct mode SGP command)
which is regularly polled by the TMCL program (e.g. in its main loop) and so the TMCL program can react
on such changes. Vice versa, a TMCL program can change a user variable that is polled by the host (using
a direct mode GGP command).
A TMCL program can be started by the host using the run command in direct mode. This way, also a
set of TMCL routines can be defined that are called by a host. In this case it is recommended to place JA
commands at the beginning of the TMCL program that jump to the specific routines. This assures that
the entry addresses of the routines will not change even when the TMCL routines are changed (so when
changing the TMCL routines the host program does not have to be changed).
Example:
2
4
6
8
10
// Jump commands to the TMCL routines
Func1 : JA Func1Start
Func2 : JA Func2Start
Func3 : JA Func3Start
Func1Start :
MVP ABS , 0 , 1000
WAIT POS , 0 , 0
MVP ABS , 0 , 0
WAIT POS , 0 , 0
STOP
12
14
16
Func2Start :
ROL 0 , 500
WAIT TICKS , 0 , 100
MST 0
STOP
18
20
22
Func3Start :
ROR 0 , 1000
WAIT TICKS , 0 , 700
MST 0
STOP
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
129 / 135
This example provides three very simple TMCL routines. They can be called from a host by issuing a run
command with address 0 to call the first function, or a run command with address 1 to call the second
function, or a run command with address 2 to call the third function. You can see the addresses of the
TMCL labels (that are needed for the run commands) by using the ”Generate symbol file function” of the
TMCL-IDE.
8.7
Make the TMCL Program start automatically
For stand-alone operation the module has to start the TMCL program in its memory automatically after
power-on. In order to achieve this, switch on the Autostart option of the module. This is controlled by
global parameter #77. There are different ways to switch on the Autostart option:
• Execute the command SGP 77, 0, 1 in direct mode (using the Direct Mode tool in the TMCL-IDE).
• Use the Global Parameters tool in the TMCL-IDE to set global parameter #77 to 1.
• Use the Autostart entry in the TMCL menu of the TMCL Creator in the TMCL-IDE. Go to the Autostart
entry in the TMCL menu and select "’On"’.
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
9
130 / 135
Figures Index
1
2
3
4
5
StallGuard2 Load Measurement as a
Function of Load . . . . . . . . . . . .
6
Energy Efficiency Example with CoolStep . . . . . . . . . . . . . . . . . . . .
6
Reference Search Mode 1 . . . . . . . 118
Reference Search Mode 2 . . . . . . . 118
Reference Search Mode 3 . . . . . . . 119
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
6
7
8
9
10
11
Reference Search Mode 4 . . .
Reference Search Mode 5 . . .
Reference Search Mode 6 . . .
Reference Search Mode 7 . . .
Reference Search Mode 8 . . .
CoolStep Adjustment Points
Thresholds . . . . . . . . . . . .
.
.
.
.
.
. . .
. . .
. . .
. . .
. . .
and
. . . .
119
120
120
121
121
123
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
131 / 135
Tables Index
Most important Axis Parameters . . .
8
TMCL Command Format . . . . . . . . 11
TMCL Reply Format . . . . . . . . . . . 12
TMCL Status Codes . . . . . . . . . . . 12
Overview of all TMCL Commands . . . 18
Motion Commands . . . . . . . . . . . 18
Parameter Commands . . . . . . . . . 19
Branch Commands . . . . . . . . . . . 19
I/O Port Commands . . . . . . . . . . 20
Calculation Commands . . . . . . . . 20
Interrupt Processing Commands . . . 21
Interrupt Vectors . . . . . . . . . . . . 21
New TMCL Commands . . . . . . . . . 23
TMCL Control Commands . . . . . . . 99
Meaning of the Letters in the Access
Column . . . . . . . . . . . . . . . . . . 100
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
16
17
18
19
20
21
22
23
24
25
All Axis Parameters of the TMCM1181 Module . . . . . . . . . . . . . . .
Meaning of the Letters in the Access
Column . . . . . . . . . . . . . . . . . .
All Global Parameters of the TMCM1181 Module in Bank 0 . . . . . . . . .
User Variables in Bank 2 . . . . . . . .
Interrupt Parameters in Bank 3 . . . .
Internal Encoder Settings . . . . . . .
Reference Search Modes . . . . . . .
CoolStep Adjustment Points and
Thresholds . . . . . . . . . . . . . . . .
Firmware Revision . . . . . . . . . . .
Document Revision . . . . . . . . . . .
108
109
112
113
113
116
117
125
134
135
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
11
132 / 135
Supplemental Directives
11.1
Producer Information
11.2
Copyright
TRINAMIC owns the content of this user manual in its entirety, including but not limited to pictures, logos,
trademarks, and resources. © Copyright 2020 TRINAMIC. All rights reserved. Electronically published by
TRINAMIC, Germany.
Redistributions of source or derived format (for example, Portable Document Format or Hypertext Markup
Language) must retain the above copyright notice, and the complete Datasheet User Manual documentation of this product including associated Application Notes; and a reference to other available productrelated documentation.
11.3
Trademark Designations and Symbols
Trademark designations and symbols used in this documentation indicate that a product or feature is
owned and registered as trademark and/or patent either by TRINAMIC or by other manufacturers, whose
products are used or referred to in combination with TRINAMIC’s products and TRINAMIC’s product documentation.
This TMCL™ Firmware Manual is a non-commercial publication that seeks to provide concise scientific
and technical user information to the target user. Thus, trademark designations and symbols are only
entered in the Short Spec of this document that introduces the product at a quick glance. The trademark
designation /symbol is also entered when the product or feature name occurs for the first time in the
document. All trademarks and brand names used are property of their respective owners.
11.4
Target User
The documentation provided here, is for programmers and engineers only, who are equipped with the
necessary skills and have been trained to work with this type of product.
The Target User knows how to responsibly make use of this product without causing harm to himself or
others, and without causing damage to systems or devices, in which the user incorporates the product.
11.5
Disclaimer: Life Support Systems
TRINAMIC Motion Control GmbH & Co. KG does not authorize or warrant any of its products for use in
life support systems, without the specific written consent of TRINAMIC Motion Control GmbH & Co. KG.
Life support systems are equipment intended to support or sustain life, and whose failure to perform,
when properly used in accordance with instructions provided, can be reasonably expected to result in
personal injury or death.
Information given in this document is believed to be accurate and reliable. However, no responsibility
is assumed for the consequences of its use nor for any infringement of patents or other rights of third
parties which may result from its use. Specifications are subject to change without notice.
11.6
Disclaimer: Intended Use
The data specified in this user manual is intended solely for the purpose of product description. No representations or warranties, either express or implied, of merchantability, fitness for a particular purpose
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
133 / 135
or of any other nature are made hereunder with respect to information/specification or the products to
which information refers and no guarantee with respect to compliance to the intended use is given.
In particular, this also applies to the stated possible applications or areas of applications of the product.
TRINAMIC products are not designed for and must not be used in connection with any applications where
the failure of such products would reasonably be expected to result in significant personal injury or death
(safety-Critical Applications) without TRINAMIC’s specific written consent.
TRINAMIC products are not designed nor intended for use in military or aerospace applications or environments or in automotive applications unless specifically designated for such use by TRINAMIC. TRINAMIC
conveys no patent, copyright, mask work right or other trade mark right to this product. TRINAMIC assumes no liability for any patent and/or other trade mark rights of a third party resulting from processing
or handling of the product and/or any other use of the product.
11.7
Collateral Documents & Tools
This product documentation is related and/or associated with additional tool kits, firmware and other
items, as provided on the product page at: www.trinamic.com.
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
12
134 / 135
Revision History
12.1
Firmware Revision
Version
Date
Author
Description
V1.25
2013-MAR-21
OK
First release version for TMCM/PD-1181.
V1.26
2013-APR-04
OK
Vsense selectable (axis parameter #179).
V1.27
2013-AUG-30
OK
Problem with magnetic encoder fixed.
V1.28. . . V1.34
2014-OCT-10
OK
Not deployed.
V1.35
2015-APR-08
OK
Slow run current (axis parameter #182) is working correctly now.
RFS STATUS command also copies its result to the accumulator register and sets the flags (when used in a TMCL program).
Problem in TMCL interrupt handling that could lead to race conditions fixed.
Version information of the boot loader can be read (if the boot loader
supports this).
Direction of rotation can be reversed using global parameter #90.
The new USB IDs of Trinamic for stepper motor modules are used
(Vendor ID: 2A3Ch , Product ID: 0100h ).
Motor will be stopped and cannot be moved when supply voltage
drops below 8.5V. Motor can be moved again when supply voltage
is higher than 9.5V.
TMCL program will be stopped when supply voltage drops below
8.5V and will be restarted (if autostart mode set) when supply voltage is getting higher than 9.5V again.
V1.36. . . V1.37
2015-OKT-22
OK
Not deployed.
V1.38
2016-MAY-24
OK
Automatic re-calculation of internal ramp parameters also after SAP
153 and SAP 154.
Reference search works more accurate.
Module will be re-initialized when there was no motor supply voltage
on startup.
V1.39. . . V1.41
2016-NOV-28
OK
Not deployed.
V1.42
2017-FEB-14
OK
New axis parameter #150.
OK
Not deployed.
OK
New TMCL commands supported.
V1.43. . . V1.45
V1.46
2019-DEC-16
Table 24: Firmware Revision
12.2
Document Revision
Version
Date
Author
Description
V1.00
2017-APR-20
OK
Document completely revised.
V1.01
2017-AUG-10
OK
Description of axis parameters #5 and #130 improved.
V1.02
2018-JAN-09
OK
Typo in description of axis parameter #204 corrected.
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
TMCM-1181 TMCL™ Firmware Manual • Firmware Version V1.46 | Document Revision V1.03 • 2020-MAY-27
Version
Date
Author
Description
V1.03
2020-MAY-27
OK
New commands (firmware V1.46) added.
Table 25: Document Revision
©2020 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com
135 / 135