Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

PSoC™ 5, 3 & 1 Forum Discussions

WolfgangCS
Level 1
10 sign-ins 5 sign-ins 5 likes given
Level 1

Hello,

I use a PSoC3 (CY8C3246PVI-147) on a PCB to drive brushed motor drivers. I'm experiencing some problems using the PSoC when it receives some external electrical discharges: the PSoC momentarily shuts down, blocking communication and also the movement of the motors.
Are there any measures that can be taken outside the PCB or through-hole components so that these discharges can be 'discharged' directly without shutting down the PSoC?
Thank you for your help.

 

0 Likes
1 Solution
Len_CONSULTRON
Level 9
1000 replies posted 750 replies posted 500 likes received
Level 9

Wolfgang,

Without knowing certain specifics about your design, I'll provide some general design techniques to reduce ESD on a brush drive motor design. I've had experience in releasing to production at least 4 BM drivers in the automotive industry.

In general, it is better to place ESD mitigation components on the PCB as it enters the PCB.

External HW mitigation

If you need to do external mitigation, it is common to add a silicon varistor to the brush motor PCB across the motor terminals.  The varister trigger voltage should be at least 15x the maximum operational voltage.  If the max operational voltage is 18V, then your  varister should trigger at 27V.  Make sure the varistor wattage rating is sufficient. 

Internal PCB HW mitigation

I've placed a diode on each leg of the motor leads.  I've shown a H-Bridge motor drive with Schottky diode.

Len_CONSULTRON_0-1641925567751.png

The added diodes improve the "flyback"/"recirculation" of current needed on an inductor (motor windings) when the power to the inductor is immediately cut.  (Inductors resist current changes.  When the power is removed, the inductor will immediately raise the voltage across it to attempt to keep the current flowing.  This is the major cause of high-voltage seen in this condition.

You need to pick a diode that can support the power during recirculation.  You can use a standard silicon diode instead of a Schottky, however the Schottky has a lower conduction voltage (0.2V to 0.3V) to minimize the time to shunting the high-voltage being developed during recirculation.

SW mitigation

I have used SW to improve and significantly improve the recirculation mitigation with one of the HW mitigation techniques above.

The idea is that when I need to stop the motor, I "dynamically" brake the motor by effectively shorting the two motor terminals together.  The easiest way to do this based on the H-Bridge motor drive shown above is to cause the FETs (listed here as Q_1 and Q_2) to be turned on.   This causes the FET to be near 0 ohms to GND on BOTH sides of the motor.

I keep the dynamic braking on long enough to guarantee the motor is effectively stopped and at least 99% of the recirculation current is dissipated in the recirculation circuit.

You are probably asking "How long is long?"

There are two practical ways to determine that.

Motor current sensor

If have an external motor current sense element outside the FETs, you can monitor the amount of current.  Once the current goes below a threshold (let's call it 10mA) you can stop the braking.

Empirical Measurements

If you don't have motor current sense available, you can temporarily create one.

The goal is to test both your HW and SW mitigation to find the time it takes for the maximum current in the motor to dissipate nearly all the current when dynamically braked.

Place a 1 ohm resistor in series to the motor.  place a scope probe across the 1 ohm resistor.

Turn the power supply voltage to the maximum allowed operational voltage.

Take the motor and lock the shaft.  This will cause a forced stall when the motor is turned on.  A stall should be maximum current to the motor.

Turn on the motor drive for only a second (or less) and immediately turn off the motor drive.

Monitor the motor current sense resistor on the scope.  When the motor is turned on, the current should quickly rise.  When the motor is stopped and dynamically braked, the current through the sense resistor should drop to near 0A.   The time from the beginning of the stop to the current is 0A is the amount of time maximum to hold the dynamic braking.  This time should be coded into your SW algorithm in the motor control.

 

Len
"Engineering is an Art. The Art of Compromise."

View solution in original post

0 Likes
2 Replies
Len_CONSULTRON
Level 9
1000 replies posted 750 replies posted 500 likes received
Level 9

Wolfgang,

Without knowing certain specifics about your design, I'll provide some general design techniques to reduce ESD on a brush drive motor design. I've had experience in releasing to production at least 4 BM drivers in the automotive industry.

In general, it is better to place ESD mitigation components on the PCB as it enters the PCB.

External HW mitigation

If you need to do external mitigation, it is common to add a silicon varistor to the brush motor PCB across the motor terminals.  The varister trigger voltage should be at least 15x the maximum operational voltage.  If the max operational voltage is 18V, then your  varister should trigger at 27V.  Make sure the varistor wattage rating is sufficient. 

Internal PCB HW mitigation

I've placed a diode on each leg of the motor leads.  I've shown a H-Bridge motor drive with Schottky diode.

Len_CONSULTRON_0-1641925567751.png

The added diodes improve the "flyback"/"recirculation" of current needed on an inductor (motor windings) when the power to the inductor is immediately cut.  (Inductors resist current changes.  When the power is removed, the inductor will immediately raise the voltage across it to attempt to keep the current flowing.  This is the major cause of high-voltage seen in this condition.

You need to pick a diode that can support the power during recirculation.  You can use a standard silicon diode instead of a Schottky, however the Schottky has a lower conduction voltage (0.2V to 0.3V) to minimize the time to shunting the high-voltage being developed during recirculation.

SW mitigation

I have used SW to improve and significantly improve the recirculation mitigation with one of the HW mitigation techniques above.

The idea is that when I need to stop the motor, I "dynamically" brake the motor by effectively shorting the two motor terminals together.  The easiest way to do this based on the H-Bridge motor drive shown above is to cause the FETs (listed here as Q_1 and Q_2) to be turned on.   This causes the FET to be near 0 ohms to GND on BOTH sides of the motor.

I keep the dynamic braking on long enough to guarantee the motor is effectively stopped and at least 99% of the recirculation current is dissipated in the recirculation circuit.

You are probably asking "How long is long?"

There are two practical ways to determine that.

Motor current sensor

If have an external motor current sense element outside the FETs, you can monitor the amount of current.  Once the current goes below a threshold (let's call it 10mA) you can stop the braking.

Empirical Measurements

If you don't have motor current sense available, you can temporarily create one.

The goal is to test both your HW and SW mitigation to find the time it takes for the maximum current in the motor to dissipate nearly all the current when dynamically braked.

Place a 1 ohm resistor in series to the motor.  place a scope probe across the 1 ohm resistor.

Turn the power supply voltage to the maximum allowed operational voltage.

Take the motor and lock the shaft.  This will cause a forced stall when the motor is turned on.  A stall should be maximum current to the motor.

Turn on the motor drive for only a second (or less) and immediately turn off the motor drive.

Monitor the motor current sense resistor on the scope.  When the motor is turned on, the current should quickly rise.  When the motor is stopped and dynamically braked, the current through the sense resistor should drop to near 0A.   The time from the beginning of the stop to the current is 0A is the amount of time maximum to hold the dynamic braking.  This time should be coded into your SW algorithm in the motor control.

 

Len
"Engineering is an Art. The Art of Compromise."
0 Likes
WaMa_286156
Level 5
First comment on blog 100 replies posted 50 replies posted
Level 5

In addition to Len's excellent advice,  a 5.1 volt zener from vdd to ground (assuming a 5 volt supply on your device.  3.4v zener for 3.3v supply, etc.) will clip any fly back that occurs in the positive direction, and possibly save your FET's as currents circulate through the body diode and eventually damage the device.  If the voltage spikes high enough, you will lose your psoc.

Finally, add a bit more power supply capacitance to keep the supply currents down.  10uf to 100uf is cheap compared to a $25 psoc that you can't purchase right now.

0 Likes