I am validating a design with a DRV8873 motor driver in SPI mode. Everything works as expected, but :
I wanted to link nSleep and nSCS signals to spare a separate signal for both, in my application I wake the driver, send some SPI commands to configure, switch on and off a couple of times and then I'm done.
Now the problem/question is : currently I drive nSCS down before sending SPI commands, and raise it as soon as I'm done :
P5OUT &= ~P5::SPIS; // SPIS is the nSCS signal __delay_cycles(10); TSPI::byteIO(address << 1); TSPI::byteIO(data); __delay_cycles(10); P5OUT |= P5::SPIS;
This happens a couple of times in a sequence of a couple of seconds. If I drive nSCS down for the entire cycle, the first SPI commands (without delays between them) will go through and then nothing seems to be accepted anymore (as soon as there is a pause of a couple of hundred milli-seconds).
Hence the question : is there a requirement that nSCS is driven low before the SPI clock activation ?