MECHATRONIC DRIVE WITH STEPPER MOTOR PANdrive Firmware Version V4.42 TMCL™ FIRMWARE MANUAL + + TMCM-1180 PD86-1180 1-axis stepper controller / driver 5.5A RMS/ 24 or 48V DC USB, RS232, RS485, and CAN + TRINAMIC Motion Control GmbH & Co. KG Hamburg, Germany www.trinamic.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Table of contents 1 2 3 4 Life support policy ....................................................................................................................................................... 4 Features ........................................................................................................................................................................... 5 Overview .........................................
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 5.7.31 CLE (clear error flags) ................................................................................................................................. 81 5.7.32 VECT (set interrupt vector) ........................................................................................................................ 82 5.7.33 EI (enable interrupt) ...................................................................................
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 1 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.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 5 2 Features The PD86-1180 is a full mechatronic device consisting of a NEMA 34 (flange size 86mm) stepper motor, controller/driver electronics and integrated encoder. Applications Powerful single-axis stepper motor solutions Encoder feedback for high reliability operation Electrical data Supply voltage: +24V DC or +48V DC nominal Motor current: up to 5.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 6 3 Overview As with most TRINAMIC modules the software running on the microprocessor of the TMCM-1180 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 normally 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.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 4 Putting the PD86-1180 into operation Here you can find basic information for putting your PANdrive™ into operation. The further text contains a simple example for a TMCL™ program and a short description of operating the module in direct mode.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 1. 8 Connect the interface a) Connect the RS232, the RS485, or the CAN interface A 2mm pitch 8 pin JST B8B-PH-K connector is used for serial communication. With this connector the module supports RS232, RS485, and CAN communication.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 4. Start the TMCL-IDE software development environment The TMCL-IDE is available on the TechLibCD and 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. For RS232 and RS485 choose COM port and type with the parameters shown below (baud rate 9600).
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 10 4.2 Testing with a simple TMCL™ program Open the file test2.tmc. Change the motor number 2 in the second paragraph in motor number 0 (because there is only one motor involved). Now your test program looks as follows: A description for the TMCL™ commands can be found in Appendix A.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 11 4.3 Operating the module in direct mode 1. Start TMCL™ Direct Mode. Direct Mode 2. 3. If the communication is established the PD86-1180 is automatically detected. If the module is not detected, please check all points above (cables, interface, power supply, COM port, baud rate). Issue a command by choosing Instruction, Type (if necessary), Motor, and Value and click Execute to send it to the module.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 12 5 TMCL™ and TMCL-IDE The TMCM-1180 supports TMCL™ direct mode (binary commands or ASCII interface) and standalone TMCL™ program execution. You can store up to 2048 TMCL™ instructions on it. In direct mode and most cases the TMCL™ communication over RS485, RS232, USB or CAN 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-1180.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 13 Checksum calculation As mentioned above, the checksum is calculated by adding up all bytes (including the module address byte) using 8-bit addition.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 14 5.2.1 Status codes The reply contains a status code. The status code can have one of the following values: Code 100 101 1 2 3 4 5 6 Meaning Successfully executed, no error Command loaded into TMCL™ program EEPROM Wrong checksum Invalid command Wrong type Invalid value Configuration EEPROM locked Command not available 5.3 Standalone applications The module is equipped with an EEPROM for storing TMCL™ applications.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 15 5.4.2 Parameter commands These commands are used to set, read and store axis parameters or global parameters. Axis parameters can be set independently for the axis, whereas global parameters control the behavior of the module itself. These commands can also be used in direct mode and in standalone mode.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 16 For calculating purposes there is an accumulator (or accu or A register) and an X register. When executed in a TMCL™ program (in standalone mode), all TMCL™ commands that read a value store the result in the accumulator. The X register can be used as an additional memory when doing calculations. It can be loaded from the accumulator.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 17 5.4.6.4 Further configuration of interrupts Some interrupts need further configuration (e.g. the timer interval of a timer interrupt). This can be done using SGP commands with parameter bank 3 (SGP , 3, ). Please refer to the SGP command (paragraph 5.7.9) for further information about that. 5.4.6.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 18 5.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 20 5.6 The ASCII interface Since TMCL™ V3.21 there is also an ASCII interface that can be used to communicate with the module and to send some commands as text strings. The ASCII command line interface is entered by sending the binary command 139 (enter ASCII mode). Afterwards the commands are entered as in the TMCL-IDE.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 21 5.6.4 Configuring the ASCII interface The module can be configured so that it starts up either in binary mode or in ASCII mode. Global parameter 67 is used for this purpose (please see also chapter 7.1). Bit 0 determines the startup mode: if this bit is set, the module starts up in ASCII mode, else it will start up in binary mode (default). Bit 4 and Bit 5 determine how the characters that are entered are echoed back.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 22 5.7 Commands The module specific commands are explained in more detail on the following pages. They are listed according to their command number. 5.7.1 ROR (rotate right) With this command the motor will be instructed to rotate with a specified velocity in right direction (increasing the position counter). Internal function: First, velocity mode is selected.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 23 5.7.2 ROL (rotate left) With this command the motor will be instructed to rotate with a specified velocity (opposite direction compared to ROR, decreasing the position counter). Internal function: First, velocity mode is selected. Then, the velocity value is transferred to axis parameter #0 (target velocity). The module is based on the TMC428-I stepper motor controller and the TMC262A-PC power driver.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 24 5.7.3 MST (motor stop) With this command the motor will be instructed to stop. Please note: depending on motor speed a hard stop might lead to step losses. Internal function: The axis parameter target velocity is set to zero. Related commands: ROL, ROR, SAP, GAP Mnemonic: MST 0 Binary representation: INSTRUCTION NO.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 25 5.7.4 MVP (move to position) With this command the motor will be instructed to move to a specified relative or absolute position or a preprogrammed coordinate. It will use the acceleration/deceleration ramp and the positioning speed programmed into the unit. This command is non-blocking – that is, a reply will be sent immediately after command interpretation and initialization of the motion controller.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 26 Example: Move motor to previously stored coordinate #8 Mnemonic: MVP COORD, 0, 8 Binary: Byte Index Function Value (hex) 0 1 Target- Instruction address Number $01 $04 2 Type $02 3 Motor/ Bank $00 4 Operand Byte3 $00 5 Operand Byte2 $00 6 Operand Byte1 $00 7 Operand Byte0 $08 8 Checksum $11 When moving to a coordinate, the coordinate has to be set properly in advance with the help of the SCO, CCO or ACO command.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 27 5.7.5 SAP (set axis parameter) With this command most of the motion control parameters of the module can be specified. The settings will be stored in SRAM and therefore are volatile. That is, information will be lost after power off. Please use command STAP (store axis parameter) in order to store any setting permanently. Internal function: The parameter format is converted ignoring leading zeros (or ones for negative values).
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 7 Axis Parameter standby current 12 right limit switch disable left limit switch disable minimum speed 13 130 138 140 141 149 153 154 160 Description Range [Unit] The current limit two seconds after the motor 0… 255 has stopped. If set, deactivates the stop function of the right switch Deactivates the stop function of the left switch resp. reference switch if set.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 161 162 163 164 165 166 167 168 169 Axis Parameter double step enable Description Every edge of the cycle releases a step/microstep. It does not make sense to activate this parameter for internal use. Double step enable can be used with Step/Dir interface. 0 – double step off 1 – double step on chopper blank Selects the comparator blank time.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 170 Axis Parameter smartEnergy hysteresis Description Range [Unit] Sets the distance between the lower and the 0… 15 upper threshold for stallGuard2™ reading. Above the upper threshold the motor current becomes decreased.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 31 Number 181 Axis Parameter stop on stall 182 smartEnergy threshold speed 183 smartEnergy slow Sets the motor current which is used below 0… 255 run current the threshold speed. 193 referencing mode 1 – Only the left reference switch is searched. 1/2/3 2 – The right switch is searched and afterwards the left switch is searched.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 32 5.7.6 GAP (get axis parameter) Most parameters of the TMCM-1180 can be adjusted individually for the axis. With this parameter they can be read out. In standalone mode the requested value is also transferred to the accumulator register for further processing purposes (such as conditioned jumps). In direct mode the value read is only output in the “value” field of the reply (without affecting the accumulator).
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 7 Axis Parameter standby current 8 target pos. reached ref. switch status 9 10 11 12 13 130 135 138 140 141 149 153 Description Range [Unit] The current limit two seconds after the motor 0… 255 has stopped. Indicates that the actual position equals the 0/1 target position. The logical state of the reference (left) switch. 0/1 See the TMC 428 data sheet for the different switch modes.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 154 160 161 162 163 164 165 166 167 Axis Parameter pulse divisor Description The exponent of the scaling factor for the pulse (step) generator – should be de/incremented carefully (in steps of one). step interpolation Step interpolation is supported with a 16 enable microstep setting only. In this setting, each step impulse at the input causes the execution of 16 times 1/256 microsteps.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 168 Axis Parameter smartEnergy current minimum (SEIMIN) 169 smartEnergy current down step Description Range [Unit] Sets the lower motor current limit for 0/1 coolStep™ operation by scaling the CS (Current Scale, see axis parameter 6) value. minimum motor current: 0 – 1/2 of CS 1 – 1/4 of CS Sets the number of stallGuard2™ readings 0… 3 above the upper threshold necessary for each current decrement of the motor current.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 175 176 177 178 180 Axis Parameter slope control high side Description Determines the slope of the motor driver outputs. Set to 2 or 3 for this module or rather use the default value. 0: lowest slope 3: fastest slope slope control low Determines the slope of the motor driver side outputs. Set identical to slope control high side.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 38 5.7.7 STAP (store axis parameter) An axis parameter previously set with a Set Axis Parameter command (SAP) will be stored permanent. Most parameters are automatically restored after power up (refer to axis parameter list in chapter 6). Internal function: An axis parameter value stored in SRAM will be transferred to EEPROM and loaded from EEPORM after next power up.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 138 140 149 153 154 193 194 195 204 210 212 214 Axis Parameter ramp mode Description Automatically set when using ROR, ROL, MST and MVP. 0: position mode. Steps are generated, when the parameters actual position and target position differ. Trapezoidal speed ramps are provided. 2: velocity mode.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 40 Mnemonic: STAP 4, 0 Binary: Byte Index Function Value (hex) 0 Targetaddress $01 1 2 Instruction Type Number $07 $04 3 Motor/ Bank $00 4 Operand Byte3 $00 5 Operand Byte2 $00 6 Operand Byte1 $00 7 Operand Byte0 $00 8 Checksum $0d Note: The STAP command will not have any effect when the configuration EEPROM is locked (refer to 7.1). In direct mode, the error code 5 (configuration EEPROM locked, see also section 5.2.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 41 5.7.8 RSAP (restore axis parameter) For all configuration-related axis parameters non-volatile memory locations are provided. By default, most parameters are automatically restored after power up (refer to axis parameter list in chapter 6). A single parameter that has been changed before can be reset by this instruction also.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 138 140 149 153 154 193 194 195 204 210 212 214 Axis Parameter ramp mode Description Automatically set when using ROR, ROL, MST and MVP. 0: position mode. Steps are generated, when the parameters actual position and target position differ. Trapezoidal speed ramps are provided. 2: velocity mode.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 43 Mnemonic: RSAP 6, 0 Binary: Byte Index Function Value (hex) 0 Targetaddress $01 www.trinamic.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 44 5.7.9 SGP (set global parameter) With this command most of the module specific parameters not directly related to motion control can be specified and the TMCL™ user variables can be changed. Global parameters are related to the host interface, peripherals or application specific variables. The different groups of these parameters are organized in banks to allow a larger total number for future products.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 46 Global parameters of bank 2, which can be used for SGP: Bank 2 contains general purpose 32 bit variables for the use in TMCL™ applications. They are located in RAM and can be stored to EEPROM. After booting, their values are automatically restored to the RAM.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 47 5.7.10 GGP (get global parameter) All global parameters can be read with this function. Global parameters are related to the host interface, peripherals or application specific variables. The different groups of these parameters are organized in banks to allow a larger total number for future products. Currently, only bank 0 and 1 are used for global parameters, and bank 2 is used for user variables.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 69 70 71 73 75 76 77 80 81 83 84 128 129 130 132 133 Global parameter CAN bit rate Description 2 20kBit/s 3 50kBit/s 4 100kBit/s 5 125kBit/s 6 250kBit/s 7 500kBit/s Default 8 1000kBit/s CAN reply ID The CAN ID for replies from the board (default: 2) CAN ID The module (target) address for CAN (default: 1) configuration EEPROM Write: 1234 to lock the EEPROM, 4321 to unlock it.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 49 Global parameters of bank 1, which can be used for GGP: The global parameter bank 1 is normally not available, but can be used for customer specific extensions of the firmware. Global parameters of bank 2, which can be used for GGP: Bank 2 contains general purpose 32 bit variables for the use in TMCL™ applications. They are located in RAM and can be stored to EEPROM.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 50 Example: Get the serial address of the target device Mnemonic: GGP 66, 0 Binary: Byte Index Function Value (hex) Reply: Byte Index Function Value (hex) 0 1 Target- Instruction address Number $01 $0a 0 Hostaddress $02 1 Targetaddress $01 Status=no error, Value=1 www.trinamic.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 51 5.7.11 STGP (store global parameter) This command is used to store TMCL™ user variables permanently in the EEPROM of the module. Some global parameters are located in RAM memory, so without storing modifications are lost at power down. This instruction enables enduring storing. Most parameters are automatically restored after power up (see the list of global parameters in chapter 7).
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 19 20… 55 Global parameter general purpose variable #19 general purpose variables #20… #55 52 Description for use in TMCL™ applications for use in TMCL™ applications Global parameters of bank 3, which can be used for STGP: The global parameter bank 0 is not required for the STGP command.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 53 5.7.12 RSGP (restore global parameter) With this command the contents of a TMCL™ user variable can be restored from the EEPROM. For all configuration-related axis parameters, non-volatile memory locations are provided. By default, most parameters are automatically restored after power up (see axis parameter list in chapter 7). A single parameter that has been changed before can be reset by this instruction.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 18 19 20… 55 Global parameter general purpose variable #18 general purpose variable #19 general purpose variables #20… c#55 54 Description for use in TMCL™ applications for use in TMCL™ applications for use in TMCL™ applications Global parameters of bank 3, which can be used for RSGP: The global parameter bank 3 is not required for the RSGP command.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 55 5.7.13 RFS (reference search) The TMCM-1180 has a built-in reference search algorithm which can be used. The reference search algorithm provides switching point calibration and three switch modes. The status of the reference search can also be queried to see if it has already finished. (In a TMCL™ program it is better to use the WAIT command to wait for the end of a reference search.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 56 5.7.14 SIO (set output) This command sets the status of the general digital output either to low (0) or to high (1). Internal function: The passed value is transferred to the specified output line. Related commands: GIO, WAIT Mnemonic: SIO , , Binary representation: INSTRUCTION NO.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 57 5.7.15 GIO (get input/output) With this command the status of the two available general purpose inputs of the module can be read out. The function reads a digital or analogue input port. Digital lines will read 0 and 1, while the ADC channels deliver their 10 bit result in the range of 0… 1023. In standalone mode the requested value is copied to the accumulator (accu) for further processing purposes such as conditioned jumps.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 58 Loop: GIO 255, 0 SIO 255, 2,-1 JA Loop 5.7.15.2 I/O bank 1 – analogue inputs: The ADIN lines can be read back as digital or analogue inputs at the same time. The digital states can be accessed in bank 0. Pin 1 2 6 1 I/O port IN_0 IN_1 Command GIO 0, 1 GIO 1, 1 Range 0… 1023 0… 1023 5.7.15.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 59 5.7.16 CALC (calculate) A value in the accumulator variable, previously read by a function such as GAP (get axis parameter) can be modified with this instruction. Nine different arithmetic functions can be chosen and one constant operand value must be specified. The result is written back to the accumulator, for further processing like comparisons or data transfer.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 60 5.7.17 COMP (compare) The specified number is compared to the value in the accumulator register. The result of the comparison can for example be used by the conditional jump (JC) instruction. This command is intended for use in standalone operation only. The host address and the reply are only used to take the instruction to the TMCL™ program memory while the program loads down.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 61 5.7.18 JC (jump conditional) The JC instruction enables a conditional jump to a fixed address in the TMCL™ program memory, if the specified condition is met. The conditions refer to the result of a preceding comparison. Please refer to COMP instruction for examples. This function is for standalone operation only.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 62 5.7.19 JA (jump always) Jump to a fixed address in the TMCL™ program memory. This command is intended for standalone operation only. The host address and the reply are only used to take the instruction to the TMCL™ program memory while the program loads down. This command cannot be used in direct mode. Internal function: the TMCL™ program counter is set to the passed value.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 63 5.7.20 CSUB (call subroutine) This function calls a subroutine in the TMCL™ program memory. It is intended for standalone operation only. The host address and the reply are only used to take the instruction to the TMCL™ program memory while the program loads down. This command cannot be used in direct mode.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 64 5.7.21 RSUB (return from subroutine) Return from a subroutine to the command after the CSUB command. This command is intended for use in standalone mode only. The host address and the reply are only used to take the instruction to the TMCL™ program memory while the program loads down. This command cannot be used in direct mode. Internal function: The TMCL™ program counter is set to the last value of the stack.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 65 5.7.22 WAIT (wait for an event to occur) This instruction interrupts the execution of the TMCL™ program until the specified condition is met. This command is intended for standalone operation only. The host address and the reply are only used to take the instruction to the TMCL™ program memory while the program loads down. This command cannot be used in direct mode.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 66 5.7.23 STOP (stop TMCL™ program execution) This function stops executing a TMCL™ program. The host address and the reply are only used to transfer the instruction to the TMCL™ program memory. This command should be placed at the end of every standalone TMCL™ program. It is not to be used in direct mode. Internal function: TMCL™ instruction fetching is stopped.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 67 5.7.24 SCO (set coordinate) Up to 20 position values (coordinates) can be stored for every axis for use with the MVP COORD command. This command sets a coordinate to a specified value. Depending on the global parameter 84, the coordinates are only stored in RAM or also stored in the EEPROM and copied back on startup (with the default setting the coordinates are stored in RAM only).
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 68 5.7.25 GCO (get coordinate) This command makes possible to read out a previously stored coordinate. In standalone mode the requested value is copied to the accumulator register for further processing purposes such as conditioned jumps. In direct mode, the value is only output in the value field of the reply, without affecting the accumulator.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 69 5.7.26 CCO (capture coordinate) The actual position of the axis is copied to the selected coordinate variable. Depending on the global parameter 84, the coordinates are only stored in RAM or also stored in the EEPROM and copied back on startup (with the default setting the coordinates are stored in RAM only). Please see the SCO and GCO commands on how to copy coordinates between RAM and EEPROM.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 70 5.7.27 ACO (accu to coordinate; valid from TMCL™ version 4.18 on) With the ACO command the actual value of the accumulator is copied to a selected coordinate of the motor. Depending on the global parameter 84, the coordinates are only stored in RAM or also stored in the EEPROM and copied back on startup (with the default setting the coordinates are stored in RAM only).
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 71 5.7.28 CALCX (calculate using the X register) This instruction is very similar to CALC, but the second operand comes from the X register. The X register can be loaded with the LOAD or the SWAP type of this instruction. The result is written back to the accumulator for further processing like comparisons or data transfer.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 72 5.7.29 AAP (accumulator to axis parameter) The content of the accumulator register is transferred to the specified axis parameter. For practical usage, the accumulator has to be loaded e.g. by a preceding GAP instruction. The accumulator may have been modified by the CALC or CALCX (calculate) instruction.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 13 130 138 140 141 149 153 154 160 161 Axis Parameter left limit switch disable minimum speed Description Deactivates the stop function of the left switch resp. reference switch if set. Should always be set 1 to ensure exact reaching of the target position. Do not change! ramp mode Automatically set when using ROR, ROL, MST and MVP. 0: position mode.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 162 163 164 165 166 167 168 169 Axis Parameter chopper blank time Description Selects the comparator blank time. This time needs to safely cover the switching event and the duration of the ringing on the sense resistor. For low current drivers, a setting of 1 or 2 is good. For higher current applications like the TMCM-1180 a setting of 2 or 3 will be required.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number Axis Parameter 171 smartEnergy current up step Description Upper stallGuard threshold: (smartEnergy hysteresis start + smartEnergy hysteresis + 1) * 32 Sets the current increment step. The current becomes incremented for each measured stallGuard2™ value below the lower threshold (see smartEnergy hysteresis start).
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 193 194 195 204 209 210 212 214 76 Axis Parameter Description referencing mode 1 – Only the left reference switch is searched. 2 – The right switch is searched and afterwards the left switch is searched. 3 – Three-switch-mode: the right switch is searched first and afterwards the reference switch will be searched. referencing For the reference search this value directly search speed specifies the search speed.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 77 5.7.30 AGP (accumulator to global parameter) The content of the accumulator register is transferred to the specified global parameter. For practical usage, the accumulator has to be loaded e.g. by a preceding GAP instruction. The accumulator may have been modified by the CALC or CALCX (calculate) instruction.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 69 70 71 73 75 76 77 80 81 83 84 132 78 Global parameter CAN bit rate Description 2 20kBit/s 3 50kBit/s 4 100kBit/s 5 125kBit/s 6 250kBit/s 7 500kBit/s Default 8 1000kBit/s CAN reply ID The CAN ID for replies from the board (default: 2) CAN ID The module (target) address for CAN (default: 1) configuration EEPROM Write: 1234 to lock the EEPROM, 4321 to unlock it. lock flag Read: 1=EEPROM locked, 0=EEPROM unlocked.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 79 Global parameters of bank 2, which can be used for AGP: Bank 2 contains general purpose 32 bit variables for the use in TMCL™ applications. They are located in RAM and can be stored to EEPROM. After booting, their values are automatically restored to the RAM. Number 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20..
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) www.trinamic.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 81 5.7.31 CLE (clear error flags) This command clears the internal error flags. It is intended for use in standalone mode only and must not be used in direct mode. The following error flags can be cleared by this command (determined by the parameter): ALL: clear all error flags. ETO: clear the timeout flag.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 82 5.7.32 VECT (set interrupt vector) The VECT command defines an interrupt vector. It needs an interrupt number and a label as parameter (like in JA, JC and CSUB commands). This label must be the entry point of the interrupt handling routine. Related commands: EI, DI, RETI Mnemonic: VECT ,
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 83 5.7.33 EI (enable interrupt) The EI command enables an interrupt. It needs the interrupt number as parameter. Interrupt number 255 globally enables interrupts. Related command: DI, VECT, RETI Mnemonic: EI Binary representation: INSTRUCTION NO.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 84 5.7.34 DI (disable interrupt) The DI command disables an interrupt. It needs the interrupt number as parameter. Interrupt number 255 globally disables interrupts. Related command: EI, VECT, RETI Mnemonic: DI Binary representation: INSTRUCTION NO.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 85 5.7.35 RETI (return from interrupt) This command terminates the interrupt handling routine, and the normal program execution continues. At the end of an interrupt handling routine the RETI command must be executed. Internal function: The saved registers (A register, X register, flags) are copied back. Normal program execution continues. Related commands: EI, DI, VECT Mnemonic: RETI Binary representation: INSTRUCTION NO.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 5.7.36 Customer function) specific TMCL™ command 86 extension (UF0… UF7/user The user definable functions UF0…UF7 are predefined, functions without topic for user specific purposes. Contact TRINAMIC for the customer specific programming of these functions. Internal function: Call user specific functions implemented in C by TRINAMIC. Related commands: none Mnemonic: UF0… UF7 Binary representation: INSTRUCTION NO.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 87 5.7.37 Request target position reached event This command is the only exception to the TMCL™ protocol, as it sends two replies: One immediately after the command has been executed (like all other commands also), and one additional reply that will be sent when the motor has reached its target position.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 88 5.7.38 BIN (return to binary mode) This command can only be used in ASCII mode. It quits the ASCII mode and returns to binary mode. Related Commands: none Mnemonic: BIN Binary representation: This command does not have a binary representation as it can only be used in ASCII mode. www.trinamic.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 89 5.7.39 TMCL™ Control Functions The following functions are for host control purposes only and are not allowed for standalone mode. In most cases, there is no need for the customer to use one of those functions (except command 139). They are mentioned here only for reasons of completeness. These commands have no mnemonics, as they cannot be used in TMCL™ programs.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 90 Special reply format of command 136: Type set to 0 - reply as a string: Byte index 1 2… 9 Contents Host Address Version string (8 characters, e.g. 140V2.50 There is no checksum in this reply format! To get also the last byte when using the CAN bus interface, just send this command in an eight byte frame instead of a seven byte frame.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 91 6 Axis parameters The following sections describe all axis parameters that can be used with the SAP, GAP, AAP, STAP and RSAP commands. Meaning of the letters in column Access: R = readable (GAP) W = writable (SAP) E = automatically restored from EEPROM after reset or power-on Number 0 1 Axis Parameter target (next) position actual position Description The desired position in position mode (see ramp mode, no. 138).
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 12 13 130 135 138 92 Axis Parameter right limit switch disable left limit switch disable minimum speed Description If set, deactivates the stop function of the right switch Deactivates the stop function of the left switch resp. reference switch if set. Should always be set 1 to ensure exact reaching of the target position. Do not change! Range [Unit] 0/1 Acc.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 161 162 163 164 165 166 167 168 169 Axis Parameter double step enable Description Every edge of the cycle releases a step/microstep. It does not make sense to activate this parameter for internal use. Double step enable can be used with Step/Dir interface. 0 – double step off 1 – double step on chopper blank Selects the comparator blank time.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 170 Axis Parameter smartEnergy hysteresis Description Range [Unit] Sets the distance between the lower and the 0… 15 upper threshold for stallGuard2™ reading. Above the upper threshold the motor current becomes decreased. 94 Acc.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 180 Axis Parameter smartEnergy actual current Description Range [Unit] This status value provides the actual motor 0… 31 current setting as controlled by coolStep™. The value goes up to the CS value and down to the portion of CS as specified by SEIMIN. 95 Acc.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 210 212 214 215 Axis Parameter encoder prescaler maximum encoder deviation Description Prescaler for the encoder. When the actual position (parameter 1) and the encoder position (parameter 209) differ more than set here the motor will be stopped. This function is switched off when the maximum deviation is set to zero. power down Standstill period before the current is changed delay down to standby current.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 97 6.1 coolStep™ related parameters The figure below gives an overview of the coolStep™ related parameters. Please have in mind that the figure shows only one example for a drive. There are parameters which concern the configuration of the current. Other parameters are for velocity regulation and for time adjustment. It is necessary to identify and configure the thresholds for current (I6, I7 and I183) and velocity (V182).
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number I6 I7 I168 I169 I171 I183 Axis parameter Description The maximum value is 255. This value means 100% of the maximum current of the module. The current adjustment is within the range 0… 255 and can be adjusted in 32 steps (0… absolute max. current 255 divided by eight; e.g. step 0 = 0… 7, step 1 = 8… 15 and so (CS / Current Scale) on).
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 99 7 Global parameters Global parameters are grouped into 4 banks: bank bank bank bank 0 1 2 3 (global configuration of the module) (user C variables) (user TMCL™ variables) (interrupt configuration) Please use SGP and GGP commands to write and read global parameters. 7.1 Bank 0 Parameters with numbers from 64 on configure stuff like the serial address of the module RS232/RS485 baud rate or the CAN bit rate.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) Number 132 Global parameter tick timer 133 random number 101 Description Range Access A 32 bit counter that gets incremented by one every RW millisecond. It can also be reset to any start value. Choose a random number. Read only! 0… R 2147483 647 7.2 Bank 1 The global parameter bank 1 is normally not available. It may be used for customer specific extensions of the firmware.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 102 7.4 Bank 3 Bank 3 contains interrupt parameters. Some interrupts need configuration (e.g. the timer interval of a timer interrupt). This can be done using the SGP commands with parameter bank 3 (SGP , 3, ). The priority of an interrupt depends on its number. Interrupts with a lower number have a higher priority. The following table shows all interrupt parameters that can be set.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 103 8 Hints and tips This chapter gives some hints and tips on using the functionality of TMCL™, for example how to use and parameterize the built-in reference point search algorithm or the incremental encoder interface. 8.1 Reference search The built-in reference search features switching point calibration and support of one or two reference switches.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 104 8.2 Changing the prescaler value of an encoder The PD86-1180 PANdrive™ is a full mechatronic solution including a 86mm flange high torque motor, a motion controller/driver and a integrated sensOstep™ encoder. The built-in encoder has 256 steps/rotation.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 105 8.3 stallGuard2 The module is equipped with TMC262A-PC motor driver chip. The TMC262A-PC features load measurement that can be used for stall detection. stallGuard2™ delivers a sensorless load measurement of the motor as well as a stall detection signal. The measured value changes linear with the load on the motor in a wide range of load, velocity and current settings. At maximum motor load the stallGuard™ value goes to zero.
TMCM-1180 and PD86-1180 TMCL Firmware V4.42 Manual (Rev. 1.08 / 2012-NOV-20) 106 9 Revision history 9.1 Firmware revision Version 4.26 4.27 4.28 4.42 Date 2010-APR-26 2010-JUL-05 2010-AUG-09 2012-NOV-20 Description First version supporting all TMCL™ features 9.2 Document revision Version 1.00 1.01 Date 2010-JUN-28 2010-AUG-31 Author SD SD 1.02 2010-SEP-16 SD 1.03 2010-NOV-19 SD 1.04 2010-DEC-22 SD 1.05 2011-FEB-21 SD 1.06 1.07 1.