GithubHelp home page GithubHelp logo

ud3's People

Contributors

acobaugh avatar bear-shen avatar malte0811 avatar netzpfuscher avatar tmaxelectronics avatar zixb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ud3's Issues

30ns gate drive pulse during freewheeling

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):

DS1Z_QuickPrint2
DS1Z_QuickPrint3

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:
kill

These are inverted on every other falling edge of ST, which is a ~30ns pulse (2 cycles of 64 MHz):
old

However the half-bridges toggle on the rising edge of ST:
gdt

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.
ht

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.