Hallo Helmut,
ich würde das jedenfalls zunächst mal direkt ohne den SPItreiber probieren. 
Evtl liegts an einem Timingproblem.  so was  ähnliches wie:
TMC_CS[@PortB,2]        : bit;  // Pins als Beispiele
  TMC_DataOut[@PortB,3]   : bit;
  TMC_DataIn[@PortB,4]    : bit;
  TMC_Clk[@PortB,5]       : bit;
  TMCOutData,TMCInData : longword;
  bitz: byte;                    // Bitzähler
 // in InitPorts :  DDRB:= xx1011xx  incl (TMC_Clk);   incl (TMC_CS);
 procedure TMC429;        //
   begin
     excl (TMC_CS);      
     udelay(1);                            // Delays jeweils noch anzupassen 
     bitz:=31;
       repeat
          excl (TMC_Clk); 
           if bit(TMCOutData,bitz)=true then incl(TMC_DataOut);
             else excl(TMC_DataOut);
          endif;
          udelay(1);                        // Delays jeweils noch anzupassen 
          incl (TMC_Clk); 
          udelay(1);                        // Delays jeweils noch anzupassen
          if TMC_DataIn = true then incl(TMCInData,bitz); 
             else excl(TMCInData); 
          endif; 
          udelay(1);                      // Delays jeweils noch anzupassen
           dec (bitz);
       until bitz=255;
   
      incl (TMC_CS);
      udelay(1);                        // Delays jeweils noch anzupassen 
 end TMC429;
(ungetestet)
golf