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.

DRV8711 Not initiliasing + Arduino Library

Other Parts Discussed in Thread: DRV8711, CSD88537ND, DRV8711EVM

Good morning

I am a few weeks into a new design for a 4ch DRV8711+CSD88537ND board (based off of the DRV8711-BOOST circuit)

1.  Attached schematic, I would appreciate a review for any issuesOPBS-Muscle.pdf

2.  I have assembled 3 of the PCBs and consistently I have issues getting the motor enabled.   Suspect it might be SPI comms issues but I dont have a logic analyser to see if thats the case. On two of the boards I have also suffered failures, but i suspect that to be assembly related - hand soldering HTSSOP38 is not an easy task.  In one case I had a track around pin 4 (VM) burn out.  In the other I had the 3rd mosfet burn up. Not sure why yet

3.  I started working on an Arduino Library here:  https://github.com/openhardwarecoza/OpenBuilds_DRV8711_Arduino_Lib-  - which works with the Boost pack wired to an Arduino Uno, but not with my own board - I have only once gotten a motor spinning on my own board ( https://www.youtube.com/watch?v=cBXLFMXr9mc 

after desoldering everything except the no 4 channel it spun up once.  But I havent been able to get it running again. 

 

4.  Suspecting SPI Issues, I removed the other three 3k3 pullups on SDATO line and only left one - no difference

 

5.  I havent figured out if there is a power on sequence, seems as if I remove the pullup on MISO/SDATO while its running the motor stops spinning.  I have to then disconnet VM, and wait for the 100uf bulk caps to drain before reenabling.

 

Looking forward to any advise, would love to get this piece of open source hardware polished and into the hands of makers the world over

 

Kind regards

 

Peter (Openbuildspartstore.com)

 

  • Hi Peter,

    Do you have a DRV8711-Boost EVM or DRV8711EVM to compare? This can be very helpful as you can compare signals between the two designs.

    How is the SCS pin used? It should be raised at the beginning of the transaction and lowered at the end of the 16bit transaction per figures 17 and 18 of the DRV8711 datasheet.
  • Ok, in a followup, I ruled out the SPI issue. Turns out the "could not enable the driver" was a silly noob mistake. I used a banana-plug to crocdile clip cable between PSU and the board while testing. Inside the crocodile clamp on VM's side, the wires had broken off due to strain over time and wasnt making good contact. So thats why it worked once. It still passes 24v through, but not enough current. Replaced the crocodile clamp and now I get a reliable enable each time.

    I did manage to have another burnt track near pin 4 though (DRV8711 heated up at the same time, no fault or stall LED) on the 3rd board I assembled
    I suspect we are still dealing with assembly gremlins (and moving to pick and place would maybe resolve) but I can't see my boss signing off on a production run on that assumption - but to be safe, please check my schematic?

    Also, the CADsoft Eagle files are over on github.com/.../Muscle
  • Hi Rick

    I don't have a DRV8711EVM, only the DRV8711BOOST.

    SCS is raised and lowered:  See

    unsigned int OPBS::SPI_DRV8711_ReadWrite(unsigned char dataHi, unsigned char dataLo)

    {

    unsigned int readData = 0;

       SPI.begin();

       SPI.setClockDivider(SPI_CLOCK_DIV8);

    digitalWrite(_pin, HIGH);

    delayMicroseconds (1) ;

    readData |= (SPI.transfer(dataHi) << 8);

    readData |= SPI.transfer(dataLo);

    digitalWrite(_pin, LOW);

    return readData;

    }

    In summary:  SCS is pulled, high, 1 microsecond wait, then transfer the High byte, then the Low byte, and finally the SCS pin is asserted low again.

  • Ok, so progress.

    1. Fixing the VM issue has meant I now have the drv8711 starting up reliably (responding to SPI) so I proceeded to hand solder (instead of reflowing, I used the tack-the-corners + lots of flux + solder the pads method and layed down a fresh drv8711 onto a fourth PCB. (since the other 3 had a few rework attempts where I tried fixing and reflowing the pins, etc - unneccesary as I was chasing the fault on the wire from the PSU, but alas thats done, so lets throw away $60 in parts and start on another fresh PCB)

    2. Under microscope I verified, no shorts at all between the pins, and since solder was flowed in from the front, unlikely that there could be an issue behind the legs.

    3. I applied 24V to VM and all is still fine.

    4. As soon as I set the enable bit (with RESET pulled low, and SLEEP pulled up to 5v through a 10k) the thin track connecting pin 4 starts to burn. Same as the DRV8711, I have a 0.3049mm track (12 mil) going to to pin 4 of the drv8711.

    5. The fault LED came on at this time as well

    So - I either underspec'ed the track width (but a 12mil trace is exactly as wide as the pad in the footprint I got from TI, along with the spacing of the other tracks there really isnt much space for a larger track either.) or something is wrong that when I hit the enable bit, (it turns on the fets) and that causes a short?

    Peter
  • Follow on from point 4.

    I lifted pin 4 off the board and tacked on a wire bridge to a VM pad nearby (bypassing the thin track) - still same issue.

    Please check my schematic
  • HI Peter,

    Which DRV8711 location did you see the problem?
  • Hi.  The track that burns up goes to pin 4 of the DRV8711

    In terms of location on the board, it happened in both the 4th and the 3rd chip (from left to right = 1,2,3,4)

    Peter

  • Hi Peter,

    Have you tried the first and second chip location? This is an attempt to eliminate the layout as a possibility.

    Also, is it possible to replace one of the devices and the trace? Once replaced, please remove the motor, and limit the current into the board. This should allow you to probe the signals on the output side of the DRV8711. Hopefully probing the outputs will provide additional clues.