Wednesday, 20 August 2014

circuit design - How to generate a bipolar waveform using MOSFET?


I'm trying to generate bipolar waveform using MOSFET (IRF9630 & IRF630):


Basically the bipolar waveform looks like below:


biphasic DC waveform



The load is a wounded coil (260 Ohm).


For the experiment I need this three conditions:



  1. both coil ends at GND

  2. one end at +12V and other GND

  3. one end at -12V and other GND.


The frequency is provided by a MCU signal.


How can I proceed?


[update 1] @FakeMoustache: Square Wave i have generated with MOSFET and MCU -



For the case MCU output is High we will get +12V_Regulated on one pin and -12V_Regulated on other and when on MCU output is Low we will get -12V_Regulated on one pin and +12V_Regulated on another.


Here for the illustration i have shown When MCU is High, but you can get the idea.


[update 2] @FakeMoustache: Updated the schematic. enter image description here



Answer



Following the exchanges in the comments, it seems the solution to solve the root problem of OP can be made much simpler than what is actually asked in the question (this is a case of XY problem).


So, my answer will address the root problem, which is to be able to drive a wounded coiled in both directions using a voltage waveform similar as the one given in the question. But if we accept that we don't need to have one end of the coil permanently connected to ground, we can make things much much simpler, using the usual H-bridge solution:


H bridge explanation


The only consequence is that we'll have two "active wires" to bring to the coil, instead of one "active wire" and GND.


Now, if we accept that, the first simplification is that there is no need for a negative supply. So a single +12V supply can be used instead of a bipolar one.


Moreover, to further simplify the hardware, we can probably make the MCU output two waveforms instead of just a single square wave for the base period. This way, the hardware won't have to produce by itself the timings for the intermediate states (when the load is at 0V).



Let's say the MCU outputs this (should be really easy to produce, since most MCUs are able to output multiple PWM channels for a single timer - or, in the worst case, using two timers - or even manually triggered GPIOs since it seems you're targeting for a very low output frequency):


enter image description here


Here is a circuit that could be used to drive the coil:


enter image description here


Yes. It's as simple as wiring this single chip correctly (note the ugly drawn protection diodes, however). No need for additional mosfets or anything else in your case, given the currents involved. The TC4427 is a dual low-side MOSFET gate driver, but instead of using it to drive MOSFET gates, we're using it to drive the coil directly. There are many other chips you could use, but the TC4427 here is nice because it has low enough output impedance (about 10ohm, so you'll just have about 0.5V drop on both high and low side given your 260ohm load) and is easily available in different packages.


The resulting voltage waveform across the load will be what you requested initially.




Edit: As requested, here is the simplest discrete circuit that does the equivalent of the above MOSFET driver. It is still using the H-bridge idea (so, no need for a negative supply). Compared to the MOSFET driver circuit, it obviously uses more components, but it also consumes a bit more power and there is a shoot-through (a current spike when the mosfets change state) of around 5-10A for something like 10µS. This shoot-through shouldn't be a big problem, especially at the switching rate you're using. If it is, it can be prevented but it will require yet more components.


enter image description here


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...