Hello,
I've set up experimental hardware with the DRV8908 EVM and a PIC processor (18F2580). The PIC SPI port is provided by a production board where the SPI port is brought out to a stick header.
I'm trying to send and receive messages from the 8908 while monitoring the signals with a logic analyzer.
I can see my messages appearing, as programmed, going to the 8908 but the returned bytes do not seem to make sense.
I've tried monitoring the SPI output on the EVM using the TI-supplied Demo GUI. These messages too do not appear to make sense to me.
Unfortunately, the demo software constantly monitors the EVM board, so I am not able to find the message(s) that I create via the GUI in the message stream.
Could TI please confirm or correct me with regards to the following:
1) To read the status register, I'm sending the byte pair 0x40, 0x00. My understanding of the return SPI stream is that the status register of the IC is the first byte and the requested information, the second byte is the register being written to. The response that I'm seeing on the logic analyzer varies but I'm getting the following byte pairs back in response: 0xC4, 0X04; 0xC6, 0x04; 0xC0, 0x04.. If I'm following the information in the data sheet, these two bytes should be the same value for a 0x40, 0x00, command. Are these responses I'm seeing sensical? If so, could you please help me understand the breakdown of the response byte messages?
2) I've also tried to send a multiple DRV part message by constructing the HDR1 | HDR2 | ADR | DAT message format. Per the data sheet it appears that the !CS input is held low for the entire multi-part message transmission. My code maintains !CS as low while sending the stream of bytes. Confusingly, in the data sheet there is a discussion that seems to indicate that I need to de-assert the !CS signal every two bytes. That's not what is being shown in the illustration for the multiple part messaging. The messaging I see with the EVM using the Demo GUI seems to indicate that I need to cycle the !CS every two bytes as well.
A) Does the !CS signal stay low for the entire duration of a multiple message?
B) If sending a single two-byte message, I assert then de-assert the !CS signal, correct?
B) Can I send a multiple message to a single part with the number of devices being '1'?
Thank you in advance for your time,