Announcement

Collapse
No announcement yet.

MOSFET current regulator for PI

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • MOSFET current regulator for PI

    I've drafted this current regulator which is basically a simplfied Op Amp.

    The problem is some MOSFETS ring, I know it has a lot to do with the Op Amp seeing the gate as a capacitive load.

    Any ideas on how to get rid of it?

    Attached Files

  • #2
    Two things. Your control loop is too slow, and your driver transistor is starved.
    This works:
    Attached Files

    Comment


    • #3
      I don't think the oscillations are being caused by the MOSFET gate capacitance. If you remove the wire at the gate of Q6, the oscillations disappear. It seems to be caused by feedback into the differential input stage. I suspect you will need a much tighter control loop to effectively limit the current. Try the modified version attached. Not sure if this is what you're looking for, but it doesn't oscillate.
      Attached Files

      Comment


      • #4
        Originally posted by Davor View Post
        Two things. Your control loop is too slow, and your driver transistor is starved.
        This works:
        Originally posted by Qiaozhi View Post
        I don't think the oscillations are being caused by the MOSFET gate capacitance. If you remove the wire at the gate of Q6, the oscillations disappear. It seems to be caused by feedback into the differential input stage. I suspect you will need a much tighter control loop to effectively limit the current. Try the modified version attached. Not sure if this is what you're looking for, but it doesn't oscillate.
        Thanks to both for your valuable input.

        Davor, I reduced the overall gain (R11 = 2K, R8 = 60) and the oscillation damped quickly. I'll try your layout and compare.

        Qiaozhi, the reason I didn't use the simple shunt regulator is it's temperature instabilty, that's why I went differential. I'm doing active damping (moodz) which is very sensitive to variations in the steady coil current. A predictable current helps keeping the damping adjusted.

        Comment


        • #5
          Originally posted by Teleno View Post
          Qiaozhi, the reason I didn't use the simple shunt regulator is it's temperature instabilty, that's why I went differential. I'm doing active damping (moodz) which is very sensitive to variations in the steady coil current. A predictable current helps keeping the damping adjusted.
          I guessed that might be the reason, but mainly wanted to demonstrate the MOSFET gate capacitance wasn't the problem.
          Good luck!

          Comment


          • #6
            My layout is just a variation of yours. I rearranged Q6 as a folded cascode to make the closed loop faster. It somewhat reduces gain, but makes it much faster.

            I actually like your approach, as it uses considerably less current than a shunt regulator. It may be simplified a bit further by replacing Q5 with a pair of diodes and a 600ohm resistor, and following the folded cascode approach.

            Comment


            • #7
              Originally posted by Davor View Post
              My layout is just a variation of yours. I rearranged Q6 as a folded cascode to make the closed loop faster. It somewhat reduces gain, but makes it much faster.

              I actually like your approach, as it uses considerably less current than a shunt regulator. It may be simplified a bit further by replacing Q5 with a pair of diodes and a 600ohm resistor, and following the folded cascode approach.
              Be careful with temperature stability, uncomment ".step temp list 0 25 40" and simulate, see the variation in Id.

              Comment


              • #8
                Originally posted by Teleno View Post
                Be careful with temperature stability, uncomment ".step temp list 0 25 40" and simulate, see the variation in Id.
                The .step command doesn't work.
                You need to add ".temp 0 25 40" (for example).
                The simple shunt regulator has a current variation over the range of 0 to 40 Deg.C of 1.2A to 1.1A, so it's not that horrendous. With the addition of a few extra components, you can improve this if it's a problem.

                Comment


                • #9
                  Her's my solution, temperature variation 0 - 40 deg celsius is under 0.2%



                  Originally posted by Qiaozhi View Post
                  The .step command doesn't work.
                  You need to add ".temp 0 25 40" (for example).
                  Strange, it worked for me.

                  Originally posted by Qiaozhi View Post
                  The simple shunt regulator has a current variation over the range of 0 to 40 Deg.C of 1.2A to 1.1A, so it's not that horrendous. With the addition of a few extra components, you can improve this if it's a problem.
                  Certainly the shunt version is very economical and it makes a lot of sense where 10% tolerance is not a problem.
                  Attached Files

                  Comment


                  • #10
                    Originally posted by Teleno View Post

                    Strange, it worked for me.
                    Well ..... that's a little bit bizarre.
                    I was running the simulation in Linux (under Wine), and it definitely wasn't working.
                    The LTSpice version is 4.21x Sep 26 2014
                    Then I ran the same simulation in Windows using LTSpice version 4.23x Jan 8 2016, and the .step command worked.

                    So I went back to Linux and ran the simulation yet again (for the umpteenth time). Guess what? ... it worked!

                    According to the LTSpice manual, ".step temp" is preferred over .temp (which is an archaic form). For PSpice, .temp is the usual way to specify temperature sweeps. Anyway, apparently both methods work, so you can take your pick.

                    Either LTSpice had a hiccup in Linux, or there's a bug in version 4.21x.

                    Comment


                    • #11
                      This shunt version has a very small temperature coefficient (0.05%).



                      I might finally settle for this solution. Current consumption is 1.2 mA OFF, 12mA ON.
                      Attached Files

                      Comment


                      • #12
                        Originally posted by Qiaozhi View Post
                        Well ..... that's a little bit bizarre.
                        I was running the simulation in Linux (under Wine), and it definitely wasn't working.
                        And THAT is why you can simulate until the cows come home, but there is no substitute for building the darned thing (mostly)....

                        Comment


                        • #13
                          Originally posted by Sean_Goddard View Post
                          And THAT is why you can simulate until the cows come home, but there is no substitute for building the darned thing (mostly)....
                          Hi Sean, good to see you're back.

                          I've built the circuit and it works. I'll post the PCB and schematic later.

                          (By the way, QuioZhi was referring to the ".step" command not working in LTSpice, not to the circuit).

                          Comment


                          • #14
                            Hi Teleno.....whats the advantage of your above circuit compared to a basic pi circuit...does this above circuit equal more depth ????

                            Comment


                            • #15
                              Advantages:
                              • rise time is faster than using a series resistor,
                              • flat top-off to eliminate eddies induced by the ramp (more target signal),
                              • precise control of the coil current (no change when switching coils) and of power consumption.

                              Comment

                              Working...
                              X