Quadpack, Sixpack (Trinamic)

Canbus stepper controller/driver: 4/6 motors per module. Identfifier: 11 bit, the least significant 3 bits are fixed (0). An identfifier must not be 0. Example:
ONLINE$>$ def/dev=stepper/mod=quadpack/base=8/vec=0/chan=0 motqp1
ONLINE$>$ def/dev=stepper/mod=quadpack/base=8/vec=0/chan=3 motqp4
ONLINE$>$ def/dev=stepper/mod=sixpack/base=8/vec=0/chan=0 motsp1

The currents are selected by the symbol MOTQP_current_id_chan, e.g.:

MOTQP_WERT_8_0 = 0   (0 .. 255, def. 0, Imax)
MOTQP_I0_8_0 = 8     (0 .. 8, def. 8, power-down, 0%) 
MOTQP_I1_8_0 = 2     (0 .. 8, def. 2, standing, 50%) 
MOTQP_I2_8_0 = 1     (0 .. 8, def. 1, slew, 75%) 
MOTQP_I3_8_0 = 0     (0 .. 8, def. 0, acceleration, 100%) 

These symbols are evaluated once per session - during the startup. The parameter Imax effects two motors: '0' for (0,1) and '2' for (2,3).

The currents can be changed afterwards by:

can(8) = ( 0x10, Chan, Wert, 0, 0, 0, 0, 0)
can(8) = ( 0x11, Chan, i0, i1, i2, i3, p5, p6)

e.g.:

can(8) = ( 0x10, 0, 255, 0, 0, 0, 0, 0)
can(8) = ( 0x11, 0, 8, 2, 1, 0, 0, 2)

The idea is that one should use the low level CanBus calls to find the currents and add the cooresponding symbols in exp_ini.exp.

The parameters P5 and P6 specify the power-down delay time [2 msec], P6 is the MSB, P5 must be even. The default is 0x0200 (x 0.002 s) = 1.024 s.

Note: Spectra uses 500 kB as default CanBus speed.