by TRINAMIC_BD » 10 May 2011, 09:57
Dear Japhy,
i tested the SDO output with resistive load, a 390 Ohm resistor to GND causes no problem for communication. High level drops by only about 0.8V.
We have done some larger designs with up to 45 motors with these ICs and find them to be completely reliable.
Most probably, several ICs become selected at a time, e.g. TMC389 and TMC429, or two drivers, e.g. two TMC389. This will short out the SDO signal, and the driver driving a "low" signal wins, as low drivers are stronger for a TTL compatible output. This is not a matter of relative driver strength, only short circuit current would increase. The output pad we selected will be able to drive even SDO on a large designs with up to 50 SPI slaves, as load seen is only capacitive.
Please try measuring with an oscilloscope multiple CSN resp. NSCS lines at a time. Especially for TMC429 please be sure, to use the SDOZ_C for SPI, as only this pin can go to hi-Z.
Probably you will find a SW issue setting multiple CSN at a time.
At any time, only one CSN time is allowed to be active (low).
Further, hand soldering of the QFN migh cause a problem. You could have a single IC, where the TST_MODE pin or CSN is floating, then it will disturb the complete SPI bus. This could even be the working IC, as sometimes pins couple capacitively, if soldering joint did not get hot enough.
You could find the driver the follwing way: Pull the SDO line to a medium level like 2.5V, when no IC should drive it, using a resistor, e.g. 1kOhm. As it should be floating, it should exactly follow in the time between SPI transmissions. If some driver is still active, you will see the line being pulled high or low.