This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DRV8908-Q1: SPI register reads are not working

Part Number: DRV8908-Q1
Other Parts Discussed in Thread: DRV8910-Q1

Hello,

I am just getting started with the PDRV8908 motor driver. But I am having trouble reading the SPI registers.

I first made the NSLEEP pin high. Later, I sent 0x4700 on MOSI (ie. SDI line) to read the address 0x7 and the data in MISO (ie. SDO line) is always 0. However, the IC_Status register is reported.

I followed the datasheet at http://www.ti.com/lit/ds/slvsec9c/slvsec9c.pdf

Could someone tell me what I am doing incorrectly?

Thanks,

Naveen.

  • Naveen,

    Can you compare your command signal with an EVM command signal? Also, would you check SCLK, SDI, SDO and nSCS pin signal on a scope and share the waveform to here?

  • Hey Wang,

    I captured the waveforms, but I made one small modification as compared to before, CPHA to 2nd Edge (falling edge).

    SPI Transmit frame: Sending read command of 0x7. (0x4700).

    SPI Receive frame: Sending 0x0000, expecting the content of 0x7.

    SPI Transmit frame comparison with the given frame format:

    Thanks,

    Naveen.

  • Naveen,

    SCLK minimum high or low time is 100ns. Some pulses just give about 100ns high or low time. Is it a real scope waveform or a simulation waveform? The edge looks so sharp. Would you slow down the clock?

    0x4700H was sent to the SDI, you get 0xC010 from SDO. That is correct. The device seems DRV8910-Q1.

  • Hey Wang,

    I am using a logic analyzer to capture these waveforms.

    When 0x4700 was sent as SDI, I was expecting 0xC020, instead of 0xC010, because 0xC010 = (0b1100 0000, 0[001] 0000) in which the ID is 0b001 = DRV8910.

    Please correct me if I am looking at it incorrectly.

    Something else that might be worth mentioning is the settings of the SPI master:

    * Baud Rate: 3.375 MBits/s

    * Clock Polarity (CPOL): Low

    * Clock Phase (CPHA): 2 Edge

    I will try reducing the clock to the SPI and see if that helps.

    Thanks,

    Naveen.

  • Naveen,

    You are right. DRV9808 device ID should be "010b" instead of "001b". But, your sample part number PDRV8908 starts with "P". It maybe an early sample to use PDRV8910 for PDRV8908 evaluation.

  • I changed the clock to operate within the timing requirements and I still see 0b001 as the ID, which means you are probably right about the sample version. But can I assume that it is 8908? Because there are some differences in both.

    Now that the SPI interface works, I am trying to get the motors to rotate and seeing some difficulty in getting them to work. I will take this up in a different post though.

    Thanks,

    Naveen.

  • Naveen,

    Good, the SPI interface works. I think you can assume it is 8908.