English
Language : 

TMC4361 Datasheet, PDF (50/117 Pages) TRINAMIC Motion Control GmbH & Co. KG. – stepper motors
TMC4361 DATASHEET (Rev. 2.68 / 2015-Apr-14) Preliminary
50
64 BIT SPI COVER REGISTERS FOR COMMUNICATION BETWEEN µC AND DRIVER
The 64 bit SPI cover register is separated into two 32 bit registers - COVER_HIGH (0x6C) and
COVER_LOW (0x6D). Using the cover registers, an additional SPI communication channel between
microcontroller and motor driver is not needed. The total length of the cover register can be set by
COVER_DATA_LENGTH. If this parameter is set higher than 64, the cover register data length is still 64
bits at its maximum. The LSB (last significant bit) of the whole cover register is located at
COVER_LOW(0). Thus, if less than 33 bits are required for SPI communication, only COVER_LOW
respectively a part of it will be transmitted (in accordance to COVER_DATA_LENGTH). The cover register
and the datagram structure are illustrated in Figure 12.4.
Every SPI communication starts with the most significant bit (MSB):
- MSB is COVER_LOW(COVER_DATA_LENGTH - 1) if COVER_DATA_LENGTH < 33.
- MSB is COVER_HIGH(COVER_DATA_LENGTH - 33) if COVER_DATA_LENGTH ≥ 33.
HINT Similar to COVER_LOW and COVER_HIGH, the motor driver response is divided in the registers
COVER_DRV_LOW and COVER_DRV_HIGH. The composition of the response cover register and the
positioning of the MSB follow the same structure.
Cover register bit63
bit62 ... bit33
bit32
bit31
bit30 ... bit1
bit0
COVER_HIGH
bit31
bit30 ... bit1
bit0
COVER_LOW
bit31
bit30 ... bit1
bit0
MSB if CDL=63
MSB if CDL=30
(COVER_HIGH not
required)
Figure 12.4 Cover data register composition (CDL – cover_data_length)
12.3 Automatic cover datagrams
TMC4361 provides the opportunity to send automatically cover datagrams if a certain ramp velocity is
reached. If automatic_cover is set to 1 the data in COVER_HIGH will be transferred if VACTUAL passes
SPI_SWITCH_VEL to an absolute higher velocity. Whereas, COVER_LOW will be sent if VACTUAL passes
SPI_SWITCH_VEL to absolute lower values. Obviously, the SPI slave should not have expect datagrams
with more than 32 bits.
12.4 Current Datagrams
TMC4361 uses the introduced internal microstep look-up table (MSLUT) for providing current data for the
motor driver. With every step initialized by the ramp generator the MSCNT value becomes increased or
decreased, dependent on the ramp direction. The MSCNT register 0x79 (readable value) contains the
current microstep position of the sine value. Accordingly, the current values CURRENTA (0x7A) and
CURRENTB (0x7B) are altered.
In case the output configuration of the TMC4361 allows for automatic current transfer an updated
current value leads to a new datagram transfer. This way, the motor driver always receives the latest
data. The length for current datagrams could be set automatically and the TMC4361 converts new values
into the selected datagram format, usually divided in amplitude and polarity bit for TMC motor drivers.
Note that the TMC23x and TMC24x only forward new current data if the upper five bits of one of the
two 9 bit current values have changed. This is because TMC23x and TMC24x current data consist of four
bit current values and one polarity bit for each coil. Further on, TMC23x and TMC24x current datagrams
forward mixed decay bits. These bits can be set with mixed_decay (bit5:4 of SPIOUT_CONF register
0x04). Please refer to the TMC23x/TMC24x datasheets to get more information about setting mixed decay
bits correctly.
www.trinamic.com