I have built a custom board with a TMC428 and 2 TMC246 drivers but the code that once worked on the eval boards we purchased doesn't work on with the custom board.
A PIC talks to the TMC428 at 250kHZ - the TMC428 xtal is 16MHz. The 428 and 246 have their own 5V supply hanging from the 24V motor voltage in order to satisfy the power up sequence rqeuirements in the data sheet.
I have confirmed that the PIC is communicating with the 428, at least I can read back a packet 0x0E0000 when sending a message to the 428 and that looks about right.
The 246 as in a daisy chain as per the datasheet with a shared CLK and CS line. I have seen some comms from the 428 to the first 246 IC. It looks as if there are 2 12 bit packets sent in quick succession, periodically.
However, whilst I see activity on SCLK_S, SCS_S and SDO_S from the 428 to the fist 246, I see no activity on the SDO line of the 1st 246 device and consquently the 2nd 246 device receives no data. Nor does the 428 recieve any data from the 2nd 246.
I have checked the packets we are sending to the device, they are the same as the initialisation procedure given in your datasheet and given in the example code except for a few minor changes relate to max current and the current threshold.
I have also tied the SPE line high (it was open on the board) in case that was an issue as I saw another post on this forum about driver ICs going in and out of SPI mode spuriously.
Apart from ANN, INA, INB and ENN, all other pins are connected to something. BL1 is tied to GND.
I am now stumped! Any ideas?