You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is an issue rather than a PR since the changes will be in binary files, so resolving merge conflicts "nicely" is not possible. Since this directly affects the switching logic I would like someone to double-check my arguments.
The problem
During freewheeling, the "switching" and "passive" half-bridge are swapped after every (full) cycle. On the gate drive signals (GDxA/B) which turn on at the same time as this "swap", a 30ns pulse is present at the start of the "passive" cycle of the corresponding half-bridge. Below are scope-shots of this pulse on a dev-board (with the CT input tied to 5V):
I originally noticed these pulses on the actual IGBT gates of my (small) coil, so I assume that they contribute some switching losses "in the real world" rather than being a purely theoretical issue.
The cause
All of the following is in the PWM schematic sheet. KillA and KillB are derived from Tselect/nTSelect:
These are inverted on every other falling edge of ST, which is a ~30ns pulse (2 cycles of 64 MHz):
However the half-bridges toggle on the rising edge of ST:
So the bridge that will become passive is switched 30ns before it is disabled, causing the pulse.
Proposed fix
As a fix I suggest to make Tselect/nTSelect toggle on the rising edge of ST instead of the falling one (by removing the inverter on ST in the second "cause"-screenshot). The value of (n)Tselect differs from the "old" value only while ST is high. The (n)Tselect signals are used in two places, the first and third "cause"-screenshot. In the first one we want the change. In the third one it does not change the behavior: Since HT is ST or …, both inputs of the MUX are high while ST is high and the select signal does not affect the output.
This removes the pulses while keeping the non-freewheeling output correct. I have tested the fix in my small coil without any issues, but I may have missed issues affecting e.g. only larger coils or QCWs.
The text was updated successfully, but these errors were encountered:
This is an issue rather than a PR since the changes will be in binary files, so resolving merge conflicts "nicely" is not possible. Since this directly affects the switching logic I would like someone to double-check my arguments.
The problem
During freewheeling, the "switching" and "passive" half-bridge are swapped after every (full) cycle. On the gate drive signals (GDxA/B) which turn on at the same time as this "swap", a 30ns pulse is present at the start of the "passive" cycle of the corresponding half-bridge. Below are scope-shots of this pulse on a dev-board (with the CT input tied to 5V):
I originally noticed these pulses on the actual IGBT gates of my (small) coil, so I assume that they contribute some switching losses "in the real world" rather than being a purely theoretical issue.
The cause
All of the following is in the PWM schematic sheet.
KillA
andKillB
are derived fromTselect
/nTSelect
:These are inverted on every other falling edge of
ST
, which is a ~30ns pulse (2 cycles of 64 MHz):However the half-bridges toggle on the rising edge of
ST
:So the bridge that will become passive is switched 30ns before it is disabled, causing the pulse.
Proposed fix
As a fix I suggest to make
Tselect
/nTSelect
toggle on the rising edge ofST
instead of the falling one (by removing the inverter onST
in the second "cause"-screenshot). The value of(n)Tselect
differs from the "old" value only whileST
is high. The(n)Tselect
signals are used in two places, the first and third "cause"-screenshot. In the first one we want the change. In the third one it does not change the behavior: Since HT isST or …
, both inputs of the MUX are high whileST
is high and the select signal does not affect the output.This removes the pulses while keeping the non-freewheeling output correct. I have tested the fix in my small coil without any issues, but I may have missed issues affecting e.g. only larger coils or QCWs.
The text was updated successfully, but these errors were encountered: