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.

DRV8876: Asymmetric Tpd between INx and OUTx

Part Number: DRV8876
Other Parts Discussed in Thread: DRV8412

I'm simulating the DRV8876 in PWM mode with IN1 held high and IN2 toggling and no current limiting.  I'd like to use a variable PWM pulse width from near zero to near 100%.  The data sheet reports a tpd time of 650 ns typ and a rise/fall time of 150 ns.  So no indication of an asymmetry in input to output delay.  Yet the simulation shows an 800 ns high pulse on IN2 being narrowed to less than 300 nS on OUT1.  The fall time is very short and the rise time is on the order of 50 ns, so not the cause of the issue.  The rising edge of IN2 is delayed 680 ns while the falling edge is delayed less than 200 ns, so nearly 500 ns of asymmetry.

If the pulse is inverted being low for 800 ns, I see a 740 ns delay on the falling edge of IN2 and only 130 ns delay on the rising edge of IN2 giving a high pulse on OUT1 of just 200 ns. 

When the input PWM is more even I see a much more even delay in tpd around 700 ns.  At a 1/4 duty cycle the tpd is asymmetrical but not as bad as the very low or very high duty cycle.  It's as if the duty cycle determines the distortion in the pulse width.

Is this expected?  Is that as good as the actual chip will perform? 

I was hoping to simulate the impact of the current draw from the power distribution, but it seems this is not modeled.  Are there any plans to add this? 

  • Rick,

    The long tpd is a normal behave for DRV8876. In general, the load is a motor coil with a very high inductance. the tpd would change to output current very much. For a high frequency application or short tpd application, I would think DRV8412 or DRV8432 can support it.

    Regards,

    Wang Li

  • Hello Rick,

    Yet the simulation shows an 800 ns high pulse on IN2 being narrowed to less than 300 nS on OUT1

    If possible can you provide the waveform showing IN2 and OUT1.

    If the pulse is inverted being low for 800 ns, I see a 740 ns delay on the falling edge of IN2 and only 130 ns delay on the rising edge of IN2 giving a high pulse on OUT1 of just 200 ns. 

    Can you provide waveform?

    Is this expected?  Is that as good as the actual chip will perform?

    It is expected behavior because of the way you are controlling the outputs. You keep IN1 held high and toggle IN2. If you look at the PWM control logic table (shown below), the h-bridge will be switching between the Forward and Brake phases. So OUT1 will be high for the amount of time that IN2 Is low. The longer that IN2 is low, the longer OUT1 is high.

    I was hoping to simulate the impact of the current draw from the power distribution, but it seems this is not modeled.  Are there any plans to add this? 

    At the moment we don't plan on modeling this. The model only simulated the functionality of the device. If you wish to do test power supply current draw, I suggest getting an evaluation module board to test in your lab.

  • I think the question is not understood.  The pulse on IN2 is 800 ns wide and the pulse on OUT1 is 200 ns or less.  As the pulse is wider this distortion becomes less.  As the pulse is more narrow the distortion become greater making the pulse on OUT1 disappear.  This happens on both positive and negative pulses.

  • Here are images of the pulses, one with IN2 high for 700 ns and the other low for 700 ns.  The outputs are barely pulses.  The high going OUT1 pulse never makes it up to the 7.5V power supply voltage. Then one on a 50/50 duty cycle showing a nearly perfect 50/50 square wave on OUT1 to within 43 ns. 

     Even tpd, no distortion

  • Can you provide an eval board? 

  • Hi Rick,

    I think the issue here is that you are providing a very high PWM frequency. The DRV8876 has accept a maximum PWM frequency of 100kHz. With your current set-up, the frequency is 714286kHz which is very high for this device. Can you try to decrease the frequency and try again?

    You can go here to get an evaluation board: https://www.ti.com/tool/DRV8876EVM

  • I'm not sure how you are measuring the frequency, but it is exactly 100 kHz.  Perhaps you are measuring the pulse width rather than the period.  In the two narrow pulse examples you can not see the full period, but it is the same as the 50/50 duty cycle example which you can clearly see has a period of 10 us so 100 kHz.

    I don't presently have a budget for buying hardware.  I was hoping you could lend an eval unit?  This is for an open source ventilator project. 

  • Rick,

    I misunderstood your following statement. I thought the period was 1400ns (700ns + 700ns). Sorry about the confusion there. Looking at the waveform I can see that the frequency is 100kHz.

    Here are images of the pulses, one with IN2 high for 700 ns and the other low for 700 ns
    don't presently have a budget for buying hardware.  I was hoping you could lend an eval unit?

    Unfortunately, the only way to get the evaluation boards is by buying from  from the TI website.

    If you can share with me the PSPICE or LTSPICE schematic, I can take a look at it and try to understand if there is something wrong with the model.

  • Schematic

    Plots

    Here is the contents of the DRV8876_spkr_driver.asc file.   I could not find a way to upload it as a file.  I was running this in LTspice XVII.  I will upload the .sym file I created in another message.  The .lib file is yours, but I believe I changed the item name to remove "_trans" so it is just DRV8876.lib

    You will need to change the ON time in V4 to adjust the duty cycle. 

    Version 4
    SHEET 1 1768 872
    WIRE -576 -176 -608 -176
    WIRE -432 -176 -464 -176
    WIRE 416 -176 384 -176
    WIRE 448 -176 416 -176
    WIRE 560 -176 512 -176
    WIRE -608 -144 -608 -176
    WIRE -464 -144 -464 -176
    WIRE 416 -96 416 -176
    WIRE 448 -96 416 -96
    WIRE 560 -96 560 -176
    WIRE 560 -96 512 -96
    WIRE -96 -80 -144 -80
    WIRE 64 -80 -16 -80
    WIRE 560 -80 560 -96
    WIRE -144 -64 -144 -80
    WIRE -608 -48 -608 -64
    WIRE -464 -48 -464 -64
    WIRE -96 -16 -128 -16
    WIRE 48 -16 -16 -16
    WIRE 112 -16 48 -16
    WIRE 416 -16 416 -96
    WIRE 416 -16 336 -16
    WIRE 448 -16 416 -16
    WIRE 544 -16 512 -16
    WIRE 880 -16 880 -32
    WIRE 32 32 -224 32
    WIRE 112 32 32 32
    WIRE 400 32 336 32
    WIRE 544 32 544 -16
    WIRE 544 32 400 32
    WIRE -96 80 -128 80
    WIRE 32 80 32 32
    WIRE 32 80 -16 80
    WIRE -128 96 -128 80
    WIRE 656 96 336 96
    WIRE 720 96 656 96
    WIRE 944 96 800 96
    WIRE 992 96 944 96
    WIRE 1072 96 1056 96
    WIRE 1312 96 1232 96
    WIRE 112 128 -224 128
    WIRE 1312 144 1312 96
    WIRE 112 160 -224 160
    WIRE 592 176 336 176
    WIRE 1072 176 1072 96
    WIRE 1232 176 1232 96
    WIRE 1072 192 1088 176
    WIRE 1088 192 1072 176
    WIRE 1088 192 1104 176
    WIRE 1104 192 1088 176
    WIRE 1104 192 1120 176
    WIRE 1120 192 1104 176
    WIRE 1120 192 1136 176
    WIRE 1136 192 1120 176
    WIRE 1136 192 1152 176
    WIRE 1152 192 1136 176
    WIRE 1152 192 1168 176
    WIRE 1168 192 1152 176
    WIRE 1168 192 1184 176
    WIRE 1184 192 1168 176
    WIRE 1184 192 1200 176
    WIRE 1200 192 1184 176
    WIRE 1200 192 1216 176
    WIRE 1216 192 1200 176
    WIRE 1216 192 1232 176
    WIRE 1232 192 1216 176
    WIRE -96 208 -128 208
    WIRE 64 208 -16 208
    WIRE 64 240 64 208
    WIRE 64 240 -224 240
    WIRE 112 240 64 240
    WIRE 400 256 336 256
    WIRE 448 256 400 256
    WIRE 544 256 512 256
    WIRE 592 272 592 176
    WIRE 656 272 592 272
    WIRE 720 272 656 272
    WIRE 944 272 800 272
    WIRE 992 272 944 272
    WIRE 1072 272 1072 192
    WIRE 1072 272 1056 272
    WIRE 1232 272 1232 192
    WIRE 1312 272 1312 224
    WIRE 1312 272 1232 272
    WIRE -96 288 -144 288
    WIRE 48 288 -16 288
    WIRE 112 288 48 288
    WIRE -144 304 -144 288
    WIRE 400 304 336 304
    WIRE 544 304 544 256
    WIRE 544 304 400 304
    WIRE 400 352 336 352
    WIRE -96 368 -128 368
    WIRE 32 368 -16 368
    WIRE 64 368 32 368
    WIRE 112 368 64 368
    WIRE 400 384 400 352
    WIRE 400 384 336 384
    WIRE 880 400 880 384
    WIRE -160 416 -224 416
    WIRE 112 416 -160 416
    WIRE 400 416 400 384
    WIRE 400 416 336 416
    WIRE -160 432 -160 416
    WIRE 64 432 64 368
    WIRE 400 448 400 416
    WIRE -160 528 -160 512
    WIRE -48 528 -48 512
    WIRE 64 528 64 512
    WIRE -336 576 -368 576
    WIRE -560 608 -592 608
    WIRE -368 608 -368 576
    WIRE -64 608 -96 608
    WIRE -592 640 -592 608
    WIRE -96 640 -96 608
    WIRE -368 720 -368 688
    WIRE -592 752 -592 720
    WIRE -96 752 -96 720
    FLAG -224 160 SPK1_IN2
    IOPIN -224 160 In
    FLAG 656 96 OUTP
    FLAG 944 96 SPKP
    FLAG 384 -176 V12
    IOPIN 384 -176 In
    FLAG -160 528 0
    FLAG 656 272 OUTN
    FLAG 944 272 SPKN
    FLAG -224 128 SPK1_IN1
    IOPIN -224 128 In
    FLAG 880 -32 0
    FLAG 880 400 0
    FLAG -224 416 SPK1_SENS
    IOPIN -224 416 Out
    FLAG -128 208 V3.3
    IOPIN -128 208 In
    FLAG 560 -80 0
    FLAG -224 240 SPK1_FLT_N
    IOPIN -224 240 Out
    FLAG 400 448 0
    FLAG 64 528 0
    FLAG -224 32 SPK1_EN
    IOPIN -224 32 In
    FLAG -128 -16 V3.3
    IOPIN -128 -16 In
    FLAG 48 -16 PMODE
    FLAG -144 -64 0
    FLAG -608 -48 0
    FLAG -576 -176 V12
    IOPIN -576 -176 Out
    FLAG -128 368 V3.3
    IOPIN -128 368 In
    FLAG 32 368 1V
    FLAG 400 32 VCP
    FLAG 400 304 CPL
    FLAG 400 256 CPH
    FLAG -48 528 0
    FLAG 48 288 IMODE
    FLAG -144 304 0
    FLAG -592 752 0
    FLAG -560 608 SPK1_EN
    IOPIN -560 608 Out
    FLAG -368 720 0
    FLAG -336 576 SPK1_IN1
    IOPIN -336 576 Out
    FLAG -96 752 0
    FLAG -64 608 SPK1_IN2
    IOPIN -64 608 Out
    FLAG -464 -48 0
    FLAG -432 -176 V3.3
    IOPIN -432 -176 Out
    FLAG -128 96 0
    SYMBOL Misc\\EuropeanResistor -112 224 R270
    WINDOW 0 41 40 VLeft 2
    WINDOW 3 41 52 VRight 2
    SYMATTR InstName R3
    SYMATTR Value 10K
    SYMBOL Misc\\jumper 1024 336 R180
    SYMATTR InstName X1
    SYMBOL Misc\\jumper 1024 32 M0
    SYMATTR InstName X2
    SYMBOL Speaker 1264 128 R0
    SYMATTR InstName SPKR1
    SYMATTR Value 1H
    SYMATTR SpiceLine Rser=50
    SYMBOL Misc\\EuropeanResistor -144 416 M0
    SYMATTR InstName R4
    SYMATTR Value 1K
    SYMBOL Misc\\EuropeanResistor 80 528 R180
    WINDOW 0 31 76 Left 2
    WINDOW 3 31 40 Left 2
    SYMATTR InstName R5
    SYMATTR Value 4.3K
    SYMBOL Misc\\EuropeanCap 864 -16 R0
    SYMATTR InstName C4
    SYMATTR Value 100pF
    SYMATTR SpiceLine V=100 Irms=55.6m Rser=5.11126 Lser=0
    SYMBOL Misc\\EuropeanCap 512 -192 R90
    WINDOW 0 -15 41 VRight 2
    WINDOW 3 -16 29 VLeft 2
    SYMATTR InstName C1
    SYMATTR Value 22F
    SYMATTR SpiceLine V=100 Irms=55.6m Rser=5.11126 Lser=0 mfg="KEMET" pn="C0603C102K1RAC" type="X7R"
    SYMBOL Misc\\EuropeanCap 512 -112 R90
    WINDOW 0 -15 44 VRight 2
    WINDOW 3 -15 33 VLeft 2
    SYMATTR InstName C2
    SYMATTR Value 100nF
    SYMATTR SpiceLine V=100 Irms=55.6m Rser=5.11126 Lser=0 mfg="KEMET" pn="C0603C102K1RAC" type="X7R"
    SYMBOL Misc\\EuropeanCap 512 -32 R90
    WINDOW 0 -15 43 VRight 2
    WINDOW 3 -15 33 VLeft 2
    SYMATTR InstName C3
    SYMATTR Value 100nF
    SYMATTR SpiceLine V=100 Irms=55.6m Rser=5.11126 Lser=0 mfg="KEMET" pn="C0603C102K1RAC" type="X7R"
    SYMBOL Misc\\EuropeanCap 864 320 R0
    SYMATTR InstName C5
    SYMATTR Value 100pF
    SYMATTR SpiceLine V=100 Irms=55.6m Rser=5.11126 Lser=0
    SYMBOL Misc\\EuropeanResistor -112 0 R270
    WINDOW 0 41 43 VLeft 2
    WINDOW 3 41 52 VRight 2
    SYMATTR InstName R1A
    SYMATTR Value 10K
    SYMBOL Misc\\EuropeanResistor -112 -64 R270
    WINDOW 0 41 42 VLeft 2
    WINDOW 3 41 52 VRight 2
    SYMATTR InstName R1B
    SYMATTR Value 100Meg
    SYMBOL voltage -608 -160 R0
    WINDOW 123 0 0 Left 0
    WINDOW 39 0 0 Left 0
    SYMATTR InstName V1
    SYMATTR Value 13V
    SYMBOL Misc\\EuropeanResistor -112 384 R270
    WINDOW 0 41 40 VLeft 2
    WINDOW 3 41 52 VRight 2
    SYMATTR InstName R1
    SYMATTR Value 10K
    SYMBOL Misc\\EuropeanCap 512 240 R90
    WINDOW 0 -16 40 VRight 2
    WINDOW 3 -16 24 VLeft 2
    SYMATTR InstName C6
    SYMATTR Value 22nF
    SYMATTR SpiceLine V=100 Irms=55.6m Rser=5.11126 Lser=0 mfg="KEMET" pn="C0603C102K1RAC" type="X7R"
    SYMBOL Misc\\EuropeanCap -32 512 R180
    WINDOW 0 24 64 Left 2
    WINDOW 3 24 4 Left 2
    SYMATTR InstName C7
    SYMATTR Value 1nF
    SYMATTR SpiceLine V=100 Irms=55.6m Rser=5.11126 Lser=0
    SYMBOL Misc\\EuropeanResistor -112 304 R270
    WINDOW 0 41 40 VLeft 2
    WINDOW 3 41 52 VRight 2
    SYMATTR InstName R2
    SYMATTR Value 62K
    SYMBOL voltage -592 624 R0
    WINDOW 123 0 0 Left 0
    WINDOW 39 0 0 Left 0
    WINDOW 3 27 139 Left 2
    SYMATTR Value PULSE(0V 3.3V 100us 10ns 10ns 1s)
    SYMATTR InstName V2
    SYMBOL voltage -368 592 R0
    WINDOW 123 0 0 Left 0
    WINDOW 39 0 0 Left 0
    SYMATTR InstName V3
    SYMATTR Value 3.3v
    SYMBOL voltage -96 624 R0
    WINDOW 123 0 0 Left 0
    WINDOW 39 0 0 Left 0
    SYMATTR InstName V4
    SYMATTR Value PULSE(3.3V 0V 1.2ms 10ns 10ns 5us 10us 20)
    SYMBOL voltage -464 -160 R0
    WINDOW 123 0 0 Left 0
    WINDOW 39 0 0 Left 0
    SYMATTR InstName V5
    SYMATTR Value 3.3V
    SYMBOL ind 704 112 R270
    WINDOW 0 32 56 VTop 2
    WINDOW 3 5 56 VBottom 2
    SYMATTR InstName L1
    SYMATTR Value 220
    SYMATTR SpiceLine Ipk=0.26 Rser=0.98 Rpar=20724 Cpar=0
    SYMBOL ind 704 288 R270
    WINDOW 0 32 56 VTop 2
    WINDOW 3 5 56 VBottom 2
    SYMATTR InstName L2
    SYMATTR Value 220
    SYMATTR SpiceLine Ipk=0.26 Rser=0.98 Rpar=20724 Cpar=0
    SYMBOL Misc\\EuropeanResistor -112 96 R270
    WINDOW 0 41 40 VLeft 2
    WINDOW 3 41 52 VRight 2
    SYMATTR InstName R6
    SYMATTR Value 10K
    SYMBOL AutoGenerated\\DRV8876 224 224 R0
    SYMATTR InstName U1
    TEXT 752 152 Center 2 ;EMI Filter
    TEXT 1008 192 VCenter 2 ;Speaker\nConnector
    TEXT -200 -144 Center 2 ;Populate one only\nR1A or R1B
    TEXT -248 472 Right 3 ;Vsen = Iout * Rsens / 1000
    TEXT 1376 8 Center 3 ;Seltech - 50 &!\nSOD20722Y50LH
    TEXT -520 224 Right 3 ;To FPGA
    TEXT 928 -216 Center 3 ;Two copies of this circuit to drive two spseakers
    TEXT 896 632 Center 5 ;Alarm Speaker Driver
    TEXT 616 392 Left 2 !.tran 1.5ms
    TEXT 552 440 Left 2 ;.ac dec 10 100 100Meg
    TEXT 1080 328 Left 2 ;Shielded twisted pair
    TEXT 1080 416 Left 2 ;Reverse polarity of SPKR2
    TEXT 384 520 Center 3 ;Use local power and ground planes\nseparate from system planes,\nconnected at one point
    TEXT 896 112 Center 2 ;Do not populate\nC4 and C5
    TEXT 760 184 Center 2 ;SLF6028T-221MR26-PF\nLCSC C136197
    TEXT -40 568 Center 2 ;Do not populate C7
    LINE Normal 1024 432 1024 -80 1
    LINE Normal 1207 160 1096 160 1
    LINE Normal 1152 224 1120 304
    LINE Normal 1207 208 1096 208 1
    LINE Normal -480 224 -512 224
    CIRCLE Normal 1104 208 1088 160 1
    CIRCLE Normal 1216 208 1200 160 1
    ARC Normal -480 432 -336 16 -408 49 -410 400

  • This is the symbol file DRV8876.asy

    Version 4
    SymbolType BLOCK
    RECTANGLE Normal -112 -264 112 216
    WINDOW 0 0 -264 Bottom 2
    WINDOW 3 0 216 Top 2
    SYMATTR Value DRV8876
    SYMATTR Prefix X
    SYMATTR ModelFile C:\Arius\Projects\Vent\Bristol\Simulations\DRV8876_TRANS.lib
    PIN 112 32 RIGHT 8
    PINATTR PinName CPH
    PINATTR SpiceOrder 1
    PIN 112 80 RIGHT 8
    PINATTR PinName CPL
    PINATTR SpiceOrder 2
    PIN -112 -96 LEFT 8
    PINATTR PinName EN_IN1
    PINATTR SpiceOrder 3
    PIN 112 192 RIGHT 8
    PINATTR PinName GND
    PINATTR SpiceOrder 4
    PIN -112 64 LEFT 8
    PINATTR PinName IMODE
    PINATTR SpiceOrder 5
    PIN -112 192 LEFT 8
    PINATTR PinName IPROPI
    PINATTR SpiceOrder 6
    PIN -112 16 LEFT 8
    PINATTR PinName nFAULT
    PINATTR SpiceOrder 7
    PIN -112 -192 LEFT 8
    PINATTR PinName nSLEEP
    PINATTR SpiceOrder 8
    PIN 112 -128 RIGHT 8
    PINATTR PinName OUT1
    PINATTR SpiceOrder 9
    PIN 112 -48 RIGHT 8
    PINATTR PinName OUT2
    PINATTR SpiceOrder 10
    PIN 112 128 RIGHT 8
    PINATTR PinName PGND
    PINATTR SpiceOrder 11
    PIN 112 160 RIGHT 8
    PINATTR PinName PAD
    PINATTR SpiceOrder 12
    PIN -112 -64 LEFT 8
    PINATTR PinName PH_IN2
    PINATTR SpiceOrder 13
    PIN -112 -240 LEFT 8
    PINATTR PinName PMODE
    PINATTR SpiceOrder 14
    PIN 112 -192 RIGHT 8
    PINATTR PinName VCP
    PINATTR SpiceOrder 15
    PIN 112 -240 RIGHT 8
    PINATTR PinName VM
    PINATTR SpiceOrder 16
    PIN -112 144 LEFT 8
    PINATTR PinName VREF
    PINATTR SpiceOrder 17

  • Hi Rick,

    Thank you for providing this information. Please follow these steps to upload images:

    1. click on "Insert" on the bottom tab

    2. click on "Image/Video/File"

    3. click on the "upload" word right underneath the File/URL box. The "upload" work is greyed out so it seems like you cannot upload images but you certainly can. 

    Please allow me another day or two to look at the model in detail. Expect a reply from me by 3/19 or earlier. Thank you for your patience in advance.

  • Yes, thank you for the instructions.  The trouble is in this thread the "upload" choice appears, but in the other thread it does not.  There is a URL box to type in and dimensions.  There is no "upload".

  • Rick,

    There was a recent major update to the E2E forum site. So this might be an issue caused by the update. I will look into this.

  • Hi Rick,

    The uploading issue has now been fixed.

    I'm still working on figuring out the issue with the model. Please give me another day. Expect a reply by 3/19.

  • Hi Rick,

    I apologize once again but I will need a few more days to understand the issue with the model. I will try to have a final answer to you by 3/23 or earlier.

  • Rick,

    Apologies for the late response. This post seems to be related to this other post. Please follow the instruction that I wrote in the latest reply. Try running the simulation with the configuration I suggest. Let me know if it does not fix your issues.

  • The original issue was never resolved.  We determined that I am running at 100 kHz which is an appropriate frequency.  When IN1 is held high and vary the duty cycle of IN2, the pulse width of OUT1 tracks the pulse width of IN2 until the duty cycle approaches either 0% or 100%.  As the IN2 pulse width increases, at about 93% the output pulse on OUT1 becomes 100% low.  Likewise as the pulse width on IN2 reduces at about 7% the OUT1 low pulse width drops to 0%. This makes a significant portion of the range of outputs very hard to use.  

    Is this another problem with the simulator?  Or is this an accurate representation of the chip?

  • Hi Rick,

    I think the issue here is caused by the high PWM frequency. There is a minimum pulse time of around 600ns typical (t_rise+t_fall+t_dead) for this device. At 93% Duty cycle, the TOFF is around 700ns which is close to the 600ns minimum pulse that the device allows. So that's why OUT1 remains high despite the input control signal going LOW for a very short period of time. Likewise, when the duty cycle is 7%, the TON is 700ns which is too fast for the driver to process and will result in 0V at OUT1.

    This is expected behavior for the chip and model.

  • Ok, so this is a limitation of the chip, not just a simulation artifact.  It's not so much a matter of frequency, but an issue of a minimum pulse width.  It would be useful if this were clearly stated in the data sheet.  While you have explained it with by adding the three parameters that are provided, it is not obvious that the chip works this way and that the value is 600 ns. 

  • I've had a chance to think about this some more and I don't think the issue I am seeing is explained by the dead time and the rise/fall times.  The pulse width is not shortened by both the rise and the fall time.  One puts a slight delay in the leading edge and the other adds a slight delay to the falling edge.  So both edges would be delayed a small amount having no affect on the pulse width.  Likewise, the dead time delays each edge which again simply delays the pulse rather than shrinking it. 

    The dead time shows up as the output being pulled below ground by the inductance of the load forcing the body diodes to conduct.  So the output pin drops about 400 mV below ground.  In the simulation this is for a very short duration.  However it is delayed from the falling edge of the IN2 pulse by 700 ns but only 300 ns from the rising edge when the low time is 1 us.  This shortens the output pulse on OUT1 to 500 ns. 

    Then when the IN2 high time is short, it is the rising edge of the IN2 pulse that is delayed 700 ns to OUT1 and the falling edge of the IN2 pulse that is delayed by 300 ns with an IN2 pulse high time of 1 us or less. 

    The dead time alone would not cause this issue.  So I am still in the dark about whether this is a simulator problem or a chip problem.

  • Hi Rick,

    I think my previous explanation might not be clear so I made a diagram to explain what I meant by the minimum pulse time. The image below shows IN signal example for 7% and 93% DC. What I meant to say is that the "ON" time (in the case of 7%DC) and "OFF" time (in the case of 93%) needs to be greater than t_rise+T_dead+t_fall. In order for the device to recognize the command from the INx signal to switch H-bridge, the "ON" or "OFF" duration has to be greater than 600ns.

    You mentioned that the output is always ON when the PWM duty cycle is 93%. The reason for this is because the driver did not recognize the "OFF" command since it is <~600ns. The same explanation can explain why the output is always "OFF" when the PWM duty cycle is 7%.

    Let me know if this doesn't make sense to you.

  • I'm sorry, but this doesn't make much sense to me. What you are calling dead time is not what dead time is.  Dead time is a wait after turning off one transistor in a half bridge to turning on the other transistor so the two are not on at the same time which results in shoot through current.  Dead time does not relate one pulse edge to another.  Dead time delays BOTH edges and so should not distort the pulse width.  Is there some reason why the dead time is larger or smaller for one edge than the other?

    When the pulse is wider than about 1.5 us there is no distortion of the pulse width.  If dead time were involved it would distort the pulse by the same 600 ns in all cases.  I would also point out that the typical value for dead time in the data sheet is 300 ns, not 600 ns. 

    Here is an illustration of what I'm seeing.  The dead time is less than 100 ns as indicated by the voltage on OUT1 going below ground due to the body diodes conducting while neither FET is turned on.  The cause of the narrowing of the output pulse is a difference in delay on the two edges of the pulse as the pulse narrows.  Whatever is causing this is altered by the time from the previous edge.  As the pulse width widens, the difference in delays of the two edges vanishes. 

    I wanted to upload the image file, but the web page is broken again.  There is no option for upload, just a line to enter a URL.  It would be nice if they could fix this intermittent bug.

  • Hello Rick,

    You are correct about dead time. Dead time is a fixed time which is inserted after switching to prevent shoot-through. During the dead time period the driver will ignore any input control. So my diagram above was meant to show what the absolute minimum ON and OFF time required for the driver to read the control input and switch the output FETs accordingly.

  • That also doesn't make much sense to me.  If the input has a transition and a dead timer is started, times out and the pulse begins, why would the pulse be shortened?  The other edge is after the dead time has timed out as evidenced by the output pulse starting.  So dead time is no reason for the output pulse being shorter than the input.  Dead time applies to both edges of the input pulse and should apply to both equally - resulting in the output pulse about equal to the input pulse.

  • Our office is closed today for a US holiday.  My colleague will respond on Monday.

  • Hi Rick,

    I apologize for the late reply.

    If the input has a transition and a dead timer is started, times out and the pulse begins, why would the pulse be shortened?

    The waveforms I showed in my previous reply is for the input control signal not the outputs. it is meant to show the minimum pulse width needed in order for the driver to process the input command and switch the output states.

    I think we deviated from your original question regarding the asymmetry between input-to-output delay causing the output waveform pulse to shorten. Let's bring back the focus to this discussion. 

    So dead time is no reason for the output pulse being shorter than the inpu

    You are correct. The output rise and fall times should be the variables affecting the total output HIGH pulse. A longer rise time and fall time will make the output HIGH time be lower compared to the input ON pulse width. The rise/fall times specs in the datasheet are given with no load connected. When a load is connected, the rise/fall times may vary due to the introduction of the inductance of the load. Can you remove the load from your schematic and run the simulations again?

    The propagation delay should not be changing. If you see it changing on your simulation, it could mean the model may not be working properly or not configured properly. The best way to evaluate it will be with an actual device.

  • The inductance of the load will not prevent the output from changing voltage.  The nature of inductance is to change current in proportion to the applied voltage.  You may be thinking of capacitance limiting the rate of change of voltage.  In this simulation both voltage and current are delayed, so it is from the output of the part.  So this is another way the simulation of the DRV8876 does not work correctly?  This is what I need to know, if the problem is in the simulation or the device.

  • Hi Rick,

    I think the best way to determine if this is an issue with the model is to take measurements with a real device. But based on your results, it does point out to an issue with the model.