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.

DRV8711EVM: BOOST-DRV8711 SPI SDATO issue

Part Number: DRV8711EVM
Other Parts Discussed in Thread: BOOST-DRV8711, DRV8711

Tool/software:

I'm trying to read the registers of a 8711 on a BOOST-DRV8711 eval board using a STM32C011. STM32 SPI is set up as a master, full-duplex, 16-bit datasize, clock polarity high, clock phase 2nd edge, and pull-up on MISO (SDATO). SCLK frequency is 1,5MHz. SCS is set high 7,3us before first SCLK pulse and 15us after last SCLK pulse.
SCS, SCLK, SDAI output from STM32 on read of registers corresponds to DRV8711 DataSheet Figure 18, but default register values on SDATO does not correspond to what DataSheet specifies. And if I first write to register and then read back, then the bits written don't show up.

The first thing that strikes me is that output on SDATO when reading is not acc.to Figure 18 where SDATO (MISO) should be high (inactive) the first 4 bits. But my traces show that SDATO is pulled low on falling SCLK edge after READ-bit has been clocked.  

Below trace when trying to read CTRL register default value 0x0C10, but returned value is 0



I can see that other users has problems with reading registers, where it is suggested that 8711 is broken. But if I instead read TORQUE register (default value 0x01ff) then I get 0x003f. See trace below. So it seems like 8711 is outputting something. Question is what? And why not the TORQUE register value.




Regards
Mats

  • Hi Mats,

    Thanks for your question. For every data frame SCS must go from low to high at the start of frame and high to low at the end of frame. Please see below. In your capture the SCS looks to be high always. 

    Also SDATA0 pin requires a pullup, 2.2 kΩ. Thank you.

    Regards, Murugavel 

  • Hi Murugavel,

    As I initially wrote: "SCS is set high 7,3us before first SCLK pulse and 15us after last SCLK pulse" and "STM32 SPI is set up as ... pull-up on MISO (SDATO)".

    Below capture of read of CTRL showing handling of SCS



    Below another trace showing a write to CTRL following a read of CTRL, where it can be seen that 8711 reacts on write bit by not driving SDATO on 2nd SCLK positive flank as it does on a read to same register.



    It therefore seems like SDATO output driver and read/write logic works. But for some reason connection between 8711 internal SPI interface and registers doesn't. Right now I'm out of ideas what could cause this.

    Regards
    Mats  

  • Hi Murugavel,

    Some additional info: 8711 5V-pin = 4.98V, 8711 VINT-pin = 1.798V, so both values are OK

    Regards
    Mats

  • Hi Mats,

    The 5V pin and VINT pin voltages you mentioned are good.

    I'm trying to read the registers of a 8711 on a BOOST-DRV8711 eval board using a STM32C011. STM32 SPI is set up as a master, full-duplex, 16-bit datasize, clock polarity high, clock phase 2nd edge, and pull-up on MISO (SDATO). SCLK frequency is 1,5MHz. SCS is set high 7,3us before first SCLK pulse and 15us after last SCLK pulse.

    I missed this information in your previous posting, sorry about that. Thanks for the clarification. I'm not familiar with the mentioned MCU, I'm unable to comment if that was the correct setting to talk to the DRV8711.

    See below captures of successful SPI communication with the DRV8711 in our setup. The below example shows a read of the TORQUE register showing its default values, then writing this register with 0x1F0 and finally reading the contents of this register for verification. I hope this would be an helpful reference for you.

    Reading TORQUE register, address 0x01: result was 0x1FF

    Writing TORQUE register, address 0x01, data 0x1F0:

    Reading TORQUE register, address 0x01: result was 0x1F0

    The datasheet SPI timing requirements must be in compliance. Thank you.   

    Regards, Murugavel 

  • Hi Murugavel,

    Found the issue. SDATO pullup was too weak. With a 2.2k pullup I can run SPI at 1.5MHz

    Regards
    Mats

  • Hi Mats,

    I'm glad you found the issue. Thank you.

    Regards, Murugavel