MODULE FOR STEPPER MOTORS
MODULE
Firmware Version V1.29
TMCL™ FIRMWARE MANUAL
+
+
TMCM-1021
1-Axis Stepper
Controller / Driver
24V DC
up-to 0.7A RMS / 1.4A RMS
RS485 Interface
sensOstep™ Encoder
+
UNIQUE FEATURES:
TRINAMIC Motion Control GmbH & Co. KG
Hamburg, Germany
www.trinamic.com
+
TMCM-1021 TMCL Firmware V1.29 Manual (Rev. 1.07 / 2014-SEP-30)
Table of Contents
1
2
Features........................................................................................................................................................................... 4
Putting the Module into Operation ........................................................................................................................ 6
2.1
Basic Set-Up .......................................................................................................................................................... 6
2.1.1 Connecting the Module ............................................................................................................................... 6
2.1.2 Start the TMCL-IDE Software Development Environment ................................................................. 7
2.2
Using TMCL Direct Mode .................................................................................................................................... 8
2.2.1 Important Motor Settings ........................................................................................................................... 9
2.3
Testing with a Simple TMCL Program ......................................................................................................... 10
3
TMCL and the TMCL-IDE: Introduction ................................................................................................................. 11
3.1
Binary Command Format ................................................................................................................................ 11
3.2
Reply Format ....................................................................................................................................................... 12
3.2.1 Status Codes ................................................................................................................................................. 13
3.3
Standalone Applications .................................................................................................................................. 13
3.4
TMCL Command Overview .............................................................................................................................. 13
3.4.1 TMCL Commands ......................................................................................................................................... 13
3.4.2 Commands Listed According to Subject Area .................................................................................... 14
3.5
Commands ........................................................................................................................................................... 18
3.5.1 ROR (rotate right) ........................................................................................................................................ 18
3.5.2 ROL (rotate left) ........................................................................................................................................... 19
3.5.3 MST (motor stop)......................................................................................................................................... 20
3.5.4 MVP (move to position) ............................................................................................................................ 21
3.5.5 SAP (set axis parameter) ........................................................................................................................... 23
3.5.6 GAP (get axis parameter) .......................................................................................................................... 24
3.5.7 STAP (store axis parameter) ..................................................................................................................... 25
3.5.8 RSAP (restore axis parameter) ................................................................................................................. 26
3.5.9 SGP (set global parameter) ...................................................................................................................... 27
3.5.10 GGP (get global parameter)...................................................................................................................... 28
3.5.11 STGP (store global parameter) ................................................................................................................ 29
3.5.12 RSGP (restore global parameter) ............................................................................................................ 30
3.5.13 RFS (reference search) ................................................................................................................................ 31
3.5.14 SIO (set output) ........................................................................................................................................... 32
3.5.15 GIO (get input/output) ............................................................................................................................... 34
3.5.16 CALC (calculate) ............................................................................................................................................ 36
3.5.17 COMP (compare)........................................................................................................................................... 37
3.5.18 JC (jump conditional) ................................................................................................................................. 38
3.5.19 JA (jump always) ......................................................................................................................................... 39
3.5.20 CSUB (call subroutine) ............................................................................................................................... 40
3.5.21 RSUB (return from subroutine) ................................................................................................................ 41
3.5.22 WAIT (wait for an event to occur) ......................................................................................................... 42
3.5.23 STOP (stop TMCL program execution) ................................................................................................... 43
3.5.24 SCO (set coordinate) ................................................................................................................................... 44
3.5.25 GCO (get coordinate) .................................................................................................................................. 45
3.5.26 CCO (capture coordinate) .......................................................................................................................... 46
3.5.27 ACO .................................................................................................................................................................. 47
3.5.28 CALCX (calculate using the X register) .................................................................................................. 48
3.5.29 AAP (accumulator to axis parameter) .................................................................................................... 49
3.5.30 AGP (accumulator to global parameter) ............................................................................................... 50
3.5.31 CLE (clear error flags) ................................................................................................................................. 51
3.5.32 VECT (set interrupt vector) ........................................................................................................................ 52
3.5.33 EI (enable interrupt) ................................................................................................................................... 53
3.5.34 DI (disable interrupt) .................................................................................................................................. 54
3.5.35 RETI (return from interrupt) ..................................................................................................................... 55
3.5.36 Customer Specific TMCL Command Extension (UF0… UF7/user function) ................................... 56
3.5.37 Request Target Position Reached Event ............................................................................................... 57
3.5.38 TMCL Control Functions ............................................................................................................................. 58
4
Axis Parameters .......................................................................................................................................................... 60
www.trinamic.com
2
TMCM-1021 TMCL Firmware V1.29 Manual (Rev. 1.07 / 2014-SEP-30)
4.1
Velocity Calculation ........................................................................................................................................... 66
4.2
stallGuard2 ........................................................................................................................................................... 67
4.3
coolStep Related Axis Parameters ................................................................................................................ 67
5
Global parameters ...................................................................................................................................................... 69
5.1
Bank 0 ................................................................................................................................................................... 69
5.2
Bank 1 ................................................................................................................................................................... 71
5.3
Bank 2 ................................................................................................................................................................... 72
5.4
Bank 3 ................................................................................................................................................................... 73
6
Hints and Tips ............................................................................................................................................................. 74
6.1
Reference Search ............................................................................................................................................... 74
6.2
Changing the Prescaler Value of an Encoder ............................................................................................ 77
6.3
Using the RS485 Interface .............................................................................................................................. 77
7
TMCL Programming Techniques and Structure ................................................................................................. 78
7.1
Initialization ........................................................................................................................................................ 78
7.2
Main Loop ............................................................................................................................................................ 78
7.3
Using Symbolic Constants .............................................................................................................................. 78
7.4
Using Variables .................................................................................................................................................. 79
7.5
Using Subroutines ............................................................................................................................................. 79
7.6
Mixing Direct Mode and Standalone Mode ................................................................................................ 80
8
Life Support Policy ..................................................................................................................................................... 81
9
Revision History .......................................................................................................................................................... 82
9.1
Document Revision ........................................................................................................................................... 82
9.2
Firmware Revision ............................................................................................................................................ 82
10 References .................................................................................................................................................................... 83
www.trinamic.com
3
TMCM-1021 TMCL Firmware V1.29 Manual (Rev. 1.07 / 2014-SEP-30)
1 Features
The TMCM-1021 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 NEMA11 (28mm flange size) and
has been designed for coil currents up to 0.7A RMS (low current range, programmable) or 1.4A RMS (high
current range, programmable, new additional range since hardware version 1.4) and 24V DC supply
voltage. With its high energy efficiency from TRINAMIC’s coolStep™ technology cost for power consumption is
kept down. The TMCL™ firmware supports remote control (direct mode) and standalone operation (with
TMCL program being executed on the TMCM-1021 itself).
MAIN CHARACTERISTICS
Highlights
Motion profile calculation in real-time
On the fly alteration of motor parameters (e.g. position, velocity, acceleration)
High performance microcontroller for overall system control and serial communication protocol
handling
For position movement applications, where larger motors do not fit and higher torques are not
required
Bipolar stepper motor driver
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 (max. 1024 increments per rotation) e.g. for step-loss detection under
all operating conditions and positioning supervision
Interfaces
Up to 4 multi-purpose inputs (2 shared with general purpose outputs)
2 general purpose outputs
RS485 2-wire communication interface
Software
TMCL: standalone operation or remote controlled operation,
program memory (non volatile) for up to 876 TMCL commands, and
PC-based application development software TMCL-IDE available for free.
Electrical and mechanical data
Supply voltage: +24V DC nominal (9… 28V DC max.)
Motor current: up to 0.7A RMS (low current range, programmable) or 1.4A RMS (high current range,
programmable, new additional range since hardware version 1.4)
Refer to separate Hardware Manual, too.
www.trinamic.com
4
TMCM-1021 TMCL Firmware V1.29 Manual (Rev. 1.07 / 2014-SEP-30)
5
TRINAMICS UNIQUE FEATURES – EASY TO USE WITH TMCL
stallGuard2™
stallGuard2 is a high-precision sensorless load measurement using the back EMF on 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 goes to zero or
near to zero. This is the most energy-efficient point of operation for the motor.
Load
[Nm]
stallGuard2
Initial stallGuard2
(SG) value: 100%
Max. load
stallGuard2 (SG) value: 0
Maximum load reached.
Motor close to stall.
Motor stalls
Figure 1.1 stallGuard2 load measurement SG as a function of load
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 system cooler,
increases motor life, and allows reducing cost.
0,9
Efficiency with coolStep
0,8
Efficiency with 50% 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 1.2 Energy efficiency example with coolStep
www.trinamic.com
TMCM-1021 TMCL Firmware V1.29 Manual (Rev. 1.07 / 2014-SEP-30)
2 Putting the Module into Operation
Here you can find basic information for putting your TMCM-1021 into operation. If you are already
common with TRINAMICs modules you may skip this chapter.
The things you need:
TMCM-1021 with fitting motor
RS485 interface converter with cables
Nominal supply voltage +24V DC for your module
TMCL-IDE program and PC
PRECAUTIONS
Do not connect or disconnect the TMCM-1021 while powered!
Do not connect or disconnect the motor while powered!
Do not exceed the maximum power supply voltage of 28V DC!
Note, that the module is not protected against reverse polarity!
START WITH POWER SUPPLY OFF!
2.1 Basic Set-Up
The following paragraph will guide you through the steps of connecting the unit and making first
movements with the motor.
2.1.1
Connecting the Module
1.
Pin
1
2
Converter
3
e.g. USB-2-485
RS485
Pin 1 GND
Pin 3 RS485+
Pin 4 RS485Note, that the
GND pin has to be
used for the
power supply and
for the RS485
interface.
Power Supply
Pin 1 GND
Pin 2 9… 28V DC
4
5
6
1
7
1
Pin
Pin
Pin
Pin
Stepper
Motor
Figure 2.1: Starting up
www.trinamic.com
1
2
3
4
B2
B1
A2
A1
8
Connect RS485 interface and power supply.
Label
GND
VDD
Description
GND
VDD (+9V…+28V)
RS485 interface, diff. signal (nonRS485+
inverting)
RS485RS485 interface, diff. signal (inverting)
Digital input (+24V compatible)
Alternate function 1: step input
IN_0
Alternate function 2: left stop switch
Digital input (+24V compatible)
Alternate function 1: direction input
IN_1
Alternate function 2: right stop switch
Open drain output with freewheeling
diode (max. 100mA)
OUT_0 / IN_2 Alternate function 1:
digital input (+24V compatible)
Alternate function 2:home switch
Open drain output with freewheeling
diode (max. 100mA)
OUT_1 / IN_3 Alternate function 1: digital input
(+24V compatible)
Alternate function 2: analog input
6
TMCM-1021 TMCL Firmware V1.29 Manual (Rev. 1.07 / 2014-SEP-30)
2.
Connect motor
Pin
1
2
3
4
3.
Label
OB2
OB1
OA2
OA1
Description
Pin 2 of motor
Pin 1 of motor
Pin 2 of motor
Pin 1 of motor
coil
coil
coil
coil
B
B
A
A
Switch ON the power supply
Turn power ON. The green LED for power lights up slowly and the motor is powered but in
standstill now.
If this does not occur, switch power OFF and check your connections as well as the power
supply.
2.1.2
Start the TMCL-IDE Software Development Environment
The TMCL-IDE is available on www.trinamic.com.
Installing the TMCL-IDE:
Make sure the COM port you intend to use is not blocked by another program.
Open TMCL-IDE by clicking TMCL.exe.
Choose Setup and Options and thereafter the Connection tab.
Choose COM port and type with the parameters shown in Figure 2.2 (baud rate 9600). Click OK.
Figure 2.2 Setup dialogue and connection tab of the TMCL-IDE.
Please refer to the TMCL-IDE User Manual for more information (see www.TRINAMIC.com).
www.trinamic.com
7
TMCM-1021 TMCL Firmware V1.29 Manual (Rev. 1.07 / 2014-SEP-30)
2.2 Using TMCL Direct Mode
1.
Start TMCL Direct Mode.
Direct Mode
2.
If the communication is established the TMCM-1021 is automatically detected. If the module is
not detected, please check all points above (cables, interface, power supply, COM port, baud
rate).
3.
Issue a command by choosing Instruction, Type (if necessary), Motor, and Value and click
Execute to send it to the module.
Examples:
ROR rotate right, motor 0, value 10000
MST motor stop, motor 0
-> Click Execute. The first motor is rotating now.
-> Click Execute. The first motor stops now.
Top right of the TMCL Direct Mode window is the button Copy to editor. Click here to copy the chosen
command and create your own TMCL program. The command will be shown immediately on the editor.
NOTE
Please mind chapter 7 (programming techniques) of the TMCL-IDE User Manual on www.trinamic.com.
Here you will find information about creating general structures of TMCL programs. In particular
initialization, main loop, symbolic constants, variables, and subroutines are described there. Further you
can learn how to mix direct mode and stand alone mode.
Chapter 4.3 of this manual includes a diagram which points out the coolStep related axis parameters and
their functions. This can help you configuring your module to meet your needs.
www.trinamic.com
8
TMCM-1021 TMCL Firmware V1.29 Manual (Rev. 1.07 / 2014-SEP-30)
2.2.1
9
Important Motor Settings
There are some axis parameters which have to be adjusted right in the beginning after installing your
module. Please set the upper limiting values for the speed (axis parameter 4), the acceleration (axis
parameter 5), and the current (axis parameter 6). Further set the standby current (axis parameter 7) and
choose your microstep resolution with axis parameter 140. Please use the SAP (Set Axis Parameter)
command for adjusting these values. The SAP command is described in paragraph 3.5.5. You can use the
TMCM-IDE direct mode for easily configuring your module.
ATTENTION
The most important motor setting is the absolute maximum motor current setting, since too high values
might cause motor damage!
IMPORTANT AXIS PARAMETERS FOR MOTOR SETTING
Number Axis Parameter Description
4
Maximum
Maximum feasible positioning speed. Has to be
positioning
adapted to motor and application
speed
5
Maximum
Limit for acceleration and deceleration. Has to be
acceleration
adapted to motor and application.
6
Absolute max.
The maximum value is 255. This value means 100% of
current
maximum programmable current of the selected
(CS / Current
motor current range (see axis parameter 179). Current
Scale)
can be adjusted / scaled down by specifying a lower
value between 0 and 255. This value is transformed
into 32 different internal current settings supported by
the hardware (see hardware manual for more details
and complete table with possible current settings).
Range [Unit]
0… +268.435.454
[pps/s]
1… +33554431
[pps/s]
0… 255
Low current range scaling
(axis parameter 179 set to
1):
Please note: high current range is available for hardware
version V1.4, only!
High current range
scaling (axis parameter
179 set to 0):
7
Standby current
140
Microstep
resolution
www.trinamic.com
The current limit two seconds after the motor has 0… 255
stopped.
0
1
2
3
4
5
6
7
8
full step
half step
4 microsteps
8 microsteps
16 microsteps
32 microsteps
64 microsteps
128 microsteps
256 microsteps
0… 8
TMCM-1021 TMCL Firmware V1.29 Manual (Rev. 1.07 / 2014-SEP-30)
Number
179
Axis Parameter
VSENSE
Description
sense resistor voltage based current scaling
0: high current range up-to 1.4A RMS / 2A peak
1: low current range up-to 0.7A RMS / 1A peak
(default value)
Please note: this parameter should not and cannot
be changed for hardware V1.2! The high current
range is available for hardware V1.4, only!
10
Range [Unit]
0/1
2.3 Testing with a Simple TMCL Program
Type in the following program:
Loop:
ROL 0, 50000
WAIT TICKS, 0, 500
MST 0
ROR 0, 50000
WAIT TICKS, 0, 500
MST 0
//Rotate motor 0 with speed 50000
SAP 4, 0, 50000
SAP 5, 0, 50000
MVP ABS, 0, 100000
WAIT POS, 0, 0
MVP ABS, 0, -100000
WAIT POS, 0, 0
JA Loop
//Set max. Velocity
//Set max. Acceleration
//Move to Position 100000
//Wait until position reached
//Move to Position -100000
//Wait until position reached
//Infinite Loop
//Rotate motor 0 with 50000
Assemble
Stop
Download
1.
2.
3.
4.
Run
Click the Assemble icon to convert the TMCL into machine code.
Then download the program to the TMCM-1021 module by clicking the Download icon.
Press icon Run. The desired program will be executed.
Click the Stop button to stop the program.
www.trinamic.com
TMCM-1021 TMCL Firmware V1.29 Manual (Rev. 1.07 / 2014-SEP-30)
11
3 TMCL and the TMCL-IDE: Introduction
As with most TRINAMIC modules the software running on the microprocessor of the TMCM-1061 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-1021 supports TMCL direct mode (binary commands) and standalone TMCL program execution.
You can store up to 876 TMCL instructions on it.
In direct mode and most cases the TMCL communication over RS485 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 TMCL-1021. 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 RS485 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 onebyte 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 RS485 interface, it has to be
enclosed by an address byte at the beginning and a checksum byte at the end. In this case it consists of
nine bytes.
The binary command format for RS485 is as follows:
Bytes
1
1
1
1
4
1
Meaning
Module address
Command number
Type number
Motor or Bank number
Value (MSB first!)
Checksum
The checksum is calculated by adding up all the other bytes using an 8-bit addition.
www.trinamic.com
TMCM-1021 TMCL Firmware V1.29 Manual (Rev. 1.07 / 2014-SEP-30)
12
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 to show how to do this:
in C:
unsigned char i, Checksum;
unsigned char Command[9];
//Set the “Command” array to the desired command
Checksum = Command[0];
for(i=1; i run infinitely
7.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.
Example:
//Define some constants
#include TMCLParam.tmc
MaxSpeed = 500
MaxAcc = 100
Position0 = 0
Position1 = 5000
//Initialization
SAP APMaxPositioningSpeed, Motor0, MaxSpeed
SAP APMaxAcceleration, Motor0, MaxAcc
MainLoop:
MVP ABS, Motor0, Position1
WAIT POS, Motor0, 0
MVP ABS, Motor0, Position0
WAIT POS, Motor0, 0
JA MainLoop
www.trinamic.com
TMCM-1021 TMCL Firmware V1.29 Manual (Rev. 1.07 / 2014-SEP-30)
79
Just 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.
7.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 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.
Example:
MyVariable = 42
//Use a symbolic name for the user variable
//(This makes the program better readable and understandable.)
SGP MyVariable, 2, 1234
...
...
GGP MyVariable, 2
accumulator register
CALC MUL, 2
AAP MyVariable, 2
variable
...
...
//Initialize the variable with the value 1234
//Copy the contents of the variable to the
//Multiply accumulator register with two
//Store contents of the accumulator register to the
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.
7.5 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.
www.trinamic.com
TMCM-1021 TMCL Firmware V1.29 Manual (Rev. 1.07 / 2014-SEP-30)
80
7.6 Mixing Direct Mode and Standalone Mode
Direct mode and standalone mode can also
standalone mode, direct mode commands are
program running in standalone mode). So, it
motor in direct mode while a TMCL program is
be mixed. When a TMCL program is being executed in
also processed (and they do not disturb the flow of the
is also possible to query e.g. the actual position of the
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:
//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
Func2Start: ROL 0, 500
WAIT TICKS, 0, 100
MST 0
STOP
Func3Start:
ROR 0, 1000
WAIT TICKS, 0, 700
MST 0
STOP
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.
Please refer to the TMCL-IDE User Manual for further information about the TMCL-IDE.
www.trinamic.com
TMCM-1021 TMCL Firmware V1.29 Manual (Rev. 1.07 / 2014-SEP-30)
8 Life Support Policy
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.
© TRINAMIC Motion Control GmbH & Co. KG 2014
Information given in this data sheet is believed to be
accurate and reliable. However neither 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.
www.trinamic.com
81
TMCM-1021 TMCL Firmware V1.29 Manual (Rev. 1.07 / 2014-SEP-30)
82
9 Revision History
9.1 Document Revision
Version
0.90
Date
2011-AUG-25
Author
SD
0.91
2011-AUG-31
GE
1.00
2012-MAR-09
SD
1.01
1.02
1.03
1.04
1.05
2012-MAR-13
2012-MAY-20
2012-MAY-31
2012-JUL-30
2013-APR-12
SD
SD
SD
SD
JP
1.06
2014-APR-14
SD
1.07
2014-SEP-30
GE
Description
Preliminary version
Table with axis and global parameters now centralized in
dedicated chapters
RFS function added
First complete version.
Axis parameters 130 and 200 added.
Axis parameter 254 updated
Axis parameter 254 corrected
Minor changes
JC instruction: type corrected
Global parameter 79 added
Firmware revisions updated
- Axis parameter 87 added.
- Axis parameter 197 added.
- Axis parameter 193 updated: reference mode moving
directions can be inverted now.
- Firmware revisions updated.
- Chapter 7 added.
- Axis parameter 179 added for hardware version V1.4
Figure 8.1 Document revision
9.2 Firmware Revision
Version
1.09
1.10
1.15
1.19
1.20
Date
2011-AUG-08
2011-AUG-23
2012-MAR-09
2012-JUL-25
2012-OCT-04
Author
OK
OK
OK
OK
OK
1.21
2012-DEC-07
OK
1.22
2013-FEB-23
OK
1.25
1.26
2013-MAR-13
2013-APR-04
OK
OK
1.27
1.28
1.29
2013-AUG-30
2013-SEP-24
2014-JAN-14
OK
OK
OK
Figure 8.2 Firmware revision
www.trinamic.com
Description
First version
Several enhancements
Several enhancements
Global parameter 79 added
Second Address available for RS232/RS485 (global parameter 87).
Answer suppressed for messages to 2nd address.
- Bug fix: stored axis parameter 140 correctly loaded at startup.
- Bug fix: oscillations around target position at minimum
velocity >0 (parameter 130) fixed.
- Axis parameter 193 updated: add 64 in order to invert the
reference mode moving direction.
- Bug fix (reference modes 7 and 8 / axis parameter 193): end
switches are generally deactivated.
Not deployed for TMCM-1021
Internal clock frequency increased to enable RS485 bit rates
between 9600 and 115200.
Error correction related to magnetic encoder. Update rate increased.
Not deployed for TMCM-1021
- Firmware version 1.29 is intended for TMCM-1021 module
versions from 1.0 to 1.4. Earlier firmware versions are not
compatible with TMCM-1021 V1.4. boards!
- Axis parameter 197 added.
TMCM-1021 TMCL Firmware V1.29 Manual (Rev. 1.07 / 2014-SEP-30)
10 References
[TMC262]
[TMCL-IDE]
[QSH2818]
Please refer to www.trinamic.com.
www.trinamic.com
TMC262 Datasheet
TMCL-IDE User Manual
QSH2818 Manual
83