TMC5161 DATASHEET (Rev. 1.01 / 2018-NOV-20)
43
6.5 Motor Driver Registers
MICROSTEPPING CONTROL REGISTER SET (0X60…0X6B)
R/W
Addr
n
Register
Description / bit names
Range [Unit]
MSLUT[0]
Each bit gives the difference between entry x 32x 0 or 1
and entry x+1 when combined with the cor- reset default=
W
0x60
32 microstep
responding MSLUTSEL W bits:
sine wave
table
table entries 0: W= %00: -1
0…31
%01: +0
%10: +1
7x
%11: +2
32x 0 or 1
reset default=
sine wave
table
1: W= %00: +0
%01: +1
%10: +2
%11: +3
MSLUT[1...7]
0x61
…
7
x
This is the differential coding for the first
W
microstep
0x67
32 table entries quarter of a wave. Start values for CUR_A and
CUR_B are stored for MSCNT position 0 in
START_SIN and START_SIN90.
ofs31, ofs30, …, ofs01, ofs00
…
32…255
ofs255, ofs254, …, ofs225, ofs224
This register defines four segments within 0<X1<X2<X3
each quarter MSLUT wave. Four 2 bit entries reset default=
determine the meaning of a 0 and a 1 bit in sine wave
W
W
0x68
0x69
32 MSLUTSEL
the corresponding segment of MSLUT.
table
See separate table!
bit 7… 0:
bit 23… 16: START_SIN90
START_SIN
START_SIN
reset default
START_SIN gives the absolute current at =0
microstep table entry 0.
8
+
8
MSLUTSTART START_SIN90 gives the absolute current for START_SIN90
microstep table entry at positions 256. reset default
Start values are transferred to the microstep =247
registers CUR_A and CUR_B, whenever the
reference position MSCNT=0 is passed.
Microstep counter. Indicates actual position 0…1023
in the microstep table for CUR_A. CUR_B uses
an offset of 256 (2 phase motor).
Hint: Move to a position where MSCNT is
zero before re-initializing MSLUTSTART or
MSLUT and MSLUTSEL.
R
R
0x6A
0x6B
10 MSCNT
bit 8… 0:
CUR_A (signed):
+/-0...255
Actual microstep current for
motor phase A as read from
MSLUT (not scaled by current)
9
+
MSCURACT
bit 24… 16: CUR_B (signed):
9
Actual microstep current for
motor phase B as read from
MSLUT (not scaled by current)
www.trinamic.com