Ad Widget

Collapse

Announcement

Collapse
No announcement yet.

Microprocessor Bias Control For Tube Amps

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

  • #46
    I dug through the archives (i.e. composting remains of designs ) and found where I made it to on this topic.

    I designed a two-tube and a six-tube red-light/green-light biaser and did most of the layout for a board. It uses a cathode resistor to sense current, some caps and diodes to make sure that a self-destructive tube doesn't take out the uC, and a couple of opamps just to make the signal larger. I think it works without those if I tinker it a bit.

    The adjusters are multiturn 3/8" trimmer pots, and the indicators are red/green/blue LEDs, so one could have blue = too cold, green = just right, and red = too hot. There is a variable current adjustment on the reference as well.

    I'll try to pick that design back up and see how easily it can be replicated.

    ======update========
    I messed a bit. It's amenable to re-casting with comparators, but it gets big and ugly fast. This is all very pedestrian circuit design - pick the voltages, pick the thresholds, find out what to adjust and then go at it with comparators and other parts.

    One quad or two dual comparators give you the basic R-G-B indicator for biasing in a single RGB LED, for a single tube. But there's several precision Rs and some Cs to get it to work stably and well for each comparator. A tube saver current overload sensor per tube requires another comparator section per tube plus some more precision Rs and Cs. A two-tube amp needs two of these setups, so you're into two 14 pin DIPs and an equal amount of PCB floorspace in Rs and Cs to get the basic logic done.

    There do exist common anode RGB LEDs, but they're not nearly as common (or cheap) as common cathode RGBs. Toss in another three transistors plus a half dozen resistors per tube.

    Fortunately, the two-tube case can be iterated for more pairs of tubes and use the same references. The reference voltage design generates the trip point voltages for too-cold, just-right-max, just-right-min, and an overload trip point. These can be shared for half a dozen tubes. The reference has a tweaking pot for maximum bias setting current so you can adapt it to different tubes. The overload trip point has an pot for tweaking the overload point. And of course, one bias pot per tube.

    Anyway, it gets to being a whole clot of ICs and other parts to avoid using a $1.50 microcontroller. But it's possible, if large and clumsy.

    So who wants to supply the current points for too-cold, too hot, and overload disaster currents for the common tubes? Presumably we can cover the field with EL84, EL34, 6L6, KT88, 6550, and a few others.
    Last edited by R.G.; 11-20-2013, 04:29 AM.
    Amazing!! Who would ever have guessed that someone who villified the evil rich people would begin happily accepting their millions in speaking fees!

    Oh, wait! That sounds familiar, somehow.

    Comment


    • #47
      Fellow OF's (Old Farts)
      The modern development kits/ prototyping boards for PiC, Rabbit, Rasberry Pi and similar microcontrollers (which are dirt cheap) come with a compiler/interpreter for a Tiny Basic. If you want to get really serious you can use a C Complier (the way to go wrong with confidence) but usually the Basic will do everything you want.
      They are WAY easier to use than the old 6800, 8080, SC/MP, 6502 etc. which you generally had to programme using Assembly Language. No one uses assembly language any more (except the compiler writers at the factory), you don't need to know what registers do what or any of that stuff. They really have taken all the fun out of it. Everything is done at a higher level and at a "remove" from the actual hardware. The 50 lines of code to do a 16 bit x 16 bit multiplication is now a single instruction. The development/prototyping kit comes with access to Analog to Digital Converters, Digital to Analog Converters, Pulse Width Modulation Controllers etc. in fact most of those things are now on the processor chip itself.
      When you explain to the modern guys that your CP/M Operating System ran in 6K of RAM and the Bios (which you wrote and assembled yourself) took up 2K of EPROM they simply don't believe you, but operating systems need 256 Meg of RAM (minimum) is what you hear. So I just expain that the operating system needs no more than about 8K but all the fancy GUIs and other BS needs another 256 MEG.
      Cheers,
      Ian

      Comment


      • #48
        I can remember programming the 6502 in assembler but it must be over 25 years ago. I use this one now. STM32 Value line discovery. It costs about $8 and that’s it, the software is free (I use the CooCox open source IDE). It works fine. I’m not a programmer but I could probably manage to write enough ’C’ to do a bias controller. The STM32 uC has more than enough DACs, ADCs and IO for that.

        The link above is for the development board which could be used as it is for a prototype as all the uC pins come out to 0.1” pitch headers. The development board has an extra uC for a USB link to a PC but that is not required for the target application. The target uC is programmed from the development board via a three wire link. If you don’t need an accurate crystal oscillator the target uC will run with no external components (except for a capacitor between its power pins) as all the usual uC support circuits, (Memory, POR, Watchdog, Clock etc.) are built in.

        Having said all that my bias controller will continue to be a 150 ohm resistor between the EL84 cathodes and ground.

        Comment


        • #49
          6800s were friendlier to work on than the 8080.
          Education is what you're left with after you have forgotten what you have learned.

          Comment


          • #50
            Originally posted by Enzo View Post
            6800s were friendlier to work on than the 8080.
            When Apple abandoned Motorola, my Mac and I both had our 'sad face' on.
            If it still won't get loud enough, it's probably broken. - Steve Conner
            If the thing works, stop fixing it. - Enzo
            We need more chaos in music, in art... I'm here to make it. - Justin Thomas
            MANY things in human experience can be easily differentiated, yet *impossible* to express as a measurement. - Juan Fahey

            Comment


            • #51
              Bias Indicator Design

              Here's a reasonable design for a Red/Green/Blue bias indicator and signaling for massive overcurrents.

              Current sensed with 10 ohm 1% 5W cathode resistor. Voltages filtered by resistor/capacitor networks, then into comparators.

              Lower 4 comparators turn on/off blue for too cold, green for OK, red for too hot. Separate LEDs OK, but it works in one RGB LED. Upper comparator senses current over some limit and signals some protection circuit. I have a protection circuit, but it would clot up understanding the sensing. Overload sensing has a different time constant for filtering overloads.

              Overall, you need five comparators and a clump of resistors per tube, and the per-tube stuff can be replicated as many times as you need.

              The reference circuit only needs to be made once for many tubes.

              The resistor values are obvious to one skilled in the art. Oh, wait! Can I patent resistor values?
              Attached Files
              Amazing!! Who would ever have guessed that someone who villified the evil rich people would begin happily accepting their millions in speaking fees!

              Oh, wait! That sounds familiar, somehow.

              Comment


              • #52
                And here's one with the same functions, but using a 14 pin DIP micro.
                Attached Files
                Amazing!! Who would ever have guessed that someone who villified the evil rich people would begin happily accepting their millions in speaking fees!

                Oh, wait! That sounds familiar, somehow.

                Comment


                • #53
                  So how about a sample of what the code/program would look like. If yours is proprietary, maybe something that would come close.
                  Education is what you're left with after you have forgotten what you have learned.

                  Comment


                  • #54
                    Originally posted by R.G. View Post
                    And here's one with the same functions, but using a 14 pin DIP micro.
                    An empty box with a shutdown circuit? now that is worrying. What happens when it has a silicon failure? It would be a real PITA if you couldn’t complete a gig because a 10c transistor had failed in the shutdown circuit of an otherwise perfectly healthy amplifier. What you really need is a second protection circuit to protect against failures of the first protection circuit

                    Comment


                    • #55
                      @Ted,
                      Bias Servos are a little more complicated for Class AB Amps than for Single Ended or Class A.

                      In any design (which I do for a living) step 1 is always to establish a Requirements Specification. Without this, not only do you not have a fixed aim of what it is you are trying to achieve, but in a commercial/buisiness sense you can't know when the job is finished. This particularly applies to Software. Otherwise you end up with creeping features ("Feeping creatures" is the engineers expletive) and time overruns. Once the requirements have been met than the job is finished, additional features are additional scope of work which costs additional money.

                      So lets have a Requirment Spec discussion
                      What you want is to set an idle current such that the Average Power Dissipated in tube (both at idle and at full signal) never exceeds some "setpoint" value.

                      The exact way to do this means monitoring anode voltage and anode current and vector multiplying them to get an instantaneous power vector, then averaging that to end up with a TRUE RMS Power, comparing it with a reference and using the error signal to increase or decrease the bias voltage.

                      The control loop needs a timeconstant (response speed) which is faster than the tubes response when turned on with cold heaters but slower than the lowest audio frequency.

                      That of-course is "WAY OVER THE TOP" for what is actually required to do an adequate job. An adequate job being "keep the tube dissipation within say +/- 10% of some settable value".

                      So my requirements discussion would look something like:
                      For simplicity monitor cathode current (this is easy. just measure the voltage across a sense resistor in the cathode to derive a 0V referenced signal which is the instantaneous anode plus screen current). That is we will be working on total tube dissipation not just anode dissipation - that is actully probably an advantage, it is certainly not a disadvantage.

                      Recognize that this current sense signal will go to 0V when the tube cuts off and that positive going peaks (idle to peak) can swing much further than the negative (idle tom 0). With a simple average this will tend to drive the bias point too negative (too cold or too low an idle current) as the signal level increases.

                      Correct that by clipping the current sense waveform at 2 x idle current value to balance the "natural clipping" on the otherside of the waveform as the tube cuts off.

                      This can be done in the analogue front end circuitry before the Analog to Digital Converter or in software by applying a limit to the digitised data.
                      If you are going for greatest simplicity then do it in analog hardware, if you are going for maximum flexibility where you might want to add peak current fault trips etc. then you are going to need access to the full dynamic range current data so don't clip in hardware but rather in software in the averaging routine.

                      You have 2 competing tyime constants (fast enough to follow tube warmup, slow enough to NOT follow lowest audio frequency, for guitar./bass this may also mean not following sub sonic intermodulation products from overdrive)
                      Simplify this by setting the idle current demand to zero untill after the tube warm time (30 second or so delay in applying an idle current demand).

                      Average the clipped current data and compare with the idle current demand to generate an error signal. Use Integral ONLY or Proportional / Integral control on the Error Signal to control the bias voltage.

                      If desired use a compare to set an I/O Port when a max. peak current is execeeded and use that to switch off the faulty tube or ALL tubes via MOSFET Cathode Switches or MOSFET B+ switch via an optocoupler. Indicate this with a RED LED

                      Possible Variant:
                      To get around that requirement to clip the current sense data at 2 x idle, designate one tube as a "Master" set it's bias in the normal fashion with a pot , RC average the current sense waveform directly to generate a VARYING with signal "demand" voltage.
                      Use that as the demand for the other tube(s) which then run as slaves to that master tube. Only simple RC averagers (integrators) are then required. Norman Koren Analog method for this:
                      http://www.normankoren.com/Audio/TENA.html

                      Cheers,
                      Ian
                      Last edited by Gingertube; 11-21-2013, 01:06 AM.

                      Comment


                      • #56
                        OK. I'll put together a suitable-for-public version. May take a few days as I go through the iterations.

                        The first step is to write down what you want it to do. So here's the English version I would write first.

                        Using a PIC 16F1503 [because I think it will work OK] and its internal oscillator, read four analog voltages.
                        The voltages are supplied external to the PIC.
                        The voltages represent a target tube current for biasing, an overload current threshold, and two actual tube currents.
                        Set up a timer that overflows about 10 times per second and set it running.
                        Main Loop:
                        Read all four voltages.
                        If the reference voltages have changed, update them in memory and in the EEPROM for carrying over to the next power/on cycle.
                        If the reference voltages are the same, compare the actual tube currents to the references.
                        For each tube, if the actual current is less than the target voltage minus the allowable variation amount, light up the blue LED and turn off the red and green LEDs.
                        If the actual current is between the target voltage plus and minus the allowable variation amount, light up the green LED and turn off the red and blue LEDs.
                        If the actual current is over the target voltage plus the allowable variation amount, light up the red LED, and turn off the green and blue LEDs.
                        If the actual current is over the overload current, increment the number of times it has been over the threshold.
                        If the actual current is under the overload current, set the number of times it has been over threshold to 0.
                        If the number of times the current has been over the overload current threshold is greater than OhSh|t [which is a time limit we decided ahead of time, from testing] then turn on the fault indicator output pin and start the red LED blinking, or keep it blinking if it's already blinking.
                        Wait Loop:
                        Read the timer
                        Has 1/10 second elapsed yet?
                        If not, go to Wait Loop.
                        If yes, go to Main Loop.
                        Amazing!! Who would ever have guessed that someone who villified the evil rich people would begin happily accepting their millions in speaking fees!

                        Oh, wait! That sounds familiar, somehow.

                        Comment


                        • #57
                          Forgot to mention - review of the program specification and functional description is the first phase of the software design process.

                          The part I just wrote plus the schematic is the design spec. YOU (all of you...) are now doing the review of the top level design to see if it makes sense.

                          There is at least one bug in there. Can you find it?
                          Amazing!! Who would ever have guessed that someone who villified the evil rich people would begin happily accepting their millions in speaking fees!

                          Oh, wait! That sounds familiar, somehow.

                          Comment


                          • #58
                            See my recent post about a Requiremnets Spec. The scheme you suggest is not going to work for Class AB Amps.

                            A hint from my day job. I'm a design EE for a Laser Airborne Depth Sounder System. It has 2 cabinets chock full of high speed computers, 500 MSPS A to D converter, laser drivers, stabilized sensor platform controller and laser scanner, photomultiplier tube base laser receiever, Sat Nav systems, aircraft autopilot interfaces etc.

                            All of the gear is designed such that when everything is working properly then each major equipment item has one green LED which indicates it is turned on and its working properly.
                            Warning conditions illuminate yellow LEDs, Fault conditions illuminate RED LEDS. It is deliberately designed this way so that it doesn't end up looking like a XMAS Tree and such that any LED other than Green requires operator attention.

                            Cheers,
                            Ian

                            Comment


                            • #59
                              Good. Some review!

                              Actually, I think it does work for Class AB amps - if you're talking about the last couple of posts I made. It's an indicator system which tells the human whether they turned the knob to the right place, and squawks via the cry-for-help output if it thinks the current's been on too high, too long. In that, it's a handier means to do biasing than with a meter. But please elaborate on how it won't work for that.

                              But you do bring up a good point that was left unstated - the indicators are not meant to be front panel lights, nor to be looked at for any serious purpose other than when the user thinks to bias the amp.

                              As Einstein was reputed to have said, everything should be as simple as possible - but no simpler. A single green light for biasing is one of the variants I considered when I first set up the earlier version of this. However, with no indication of which way the adjuster was off, it was very frustrating to get a single, steady green light. There are three states: over, under, and just right. All are necessary, as unintentional overly hot biasing can be a problem even for the few seconds the process takes. So the direction indication is necessary, I believe. And it not being a front-panel indicator, it's not distracting.

                              At least in my opinion.
                              Amazing!! Who would ever have guessed that someone who villified the evil rich people would begin happily accepting their millions in speaking fees!

                              Oh, wait! That sounds familiar, somehow.

                              Comment


                              • #60
                                Yep, as an indicator only system it will work for Class AB as long as it is conducted at zero signal. You probably want a disable switch so you don't get spurious LEDS when playing through it. Apart from dinky stuff like initializing the fault counter to zero before commencing the main loop, I did'nt spot any obvious errors although there is some implications on program structure, using "Psuedo Code" is the way the professionals do this too. Write it out in ordinary language and then when happy go back and turn the Psedo-Code into Comments and add the actual instructions to do what the Psudo-Code describes.

                                As per:
                                Subroutine Indicate (Tube Number);
                                * Inputs: Tube Number - This is a pointer to the tube current data and the LEDS
                                * Outputs: Port Drives for LEDS
                                * Returns: NIL

                                If Tube Current < (Demand - Hysterseis) then
                                light Blue LED
                                ELSE
                                IF Tube Current > (Demand + Hysteresis) then
                                light RED LED
                                ELSE
                                light Green LED
                                ENDIF */ End of if > demand
                                ENDIF */ End of if < demand
                                RETURN

                                Comment

                                Working...
                                X