Go Down

Topic: high voltage power supply for nixie tubes (Read 3321 times) previous topic - next topic

putyn

hey , im trying to find a design for a high voltage power supply to power two nixie in-13, tubes are powered at 140V max  and the current requirement its about 5mA per tube   i found this design http://www.ladyada.net/library/diyboostcalc.html but im not really sure if its suited for my requirements

ive found a lot of designs using an 555 timer (or a dedicated ic from maxim)  but i want to use an atmega8 to driver this circuit
now the question is would that design allow me to produce 120-130V @ 10-15 mA ? and would be possible to implement some kinda of feedback circuit so i can keep an eye on the voltage output ?

any suggestion its appreciated

CrossRoads

There are internet designs that use disposable flash cameras to make the high voltage. Is that something you can obtain?

Or were you thinking something wallwart powered?
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

putyn

it will be powered by 9-12V from a dc wallwart , i have found this http://www.ogilumen.com/nixie-tube-power-supply-p-91.html but its too pricey for my budget

CrossRoads

Can you make this?
http://www.electricstuff.co.uk/nixpsu.html
Found it buried in here
http://www.derivedlogic.com/Nixie%20Stuff/nixiestuff.html
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

Zapro

I would VERY much recommend this design. It's almost impossible to do it wrong, and it works every time. Even on a breadboard.

https://skydrive.live.com/?cid=f9db37b8211ce831&sc=documents&id=F9DB37B8211CE831%21119#cid=F9DB37B8211CE831&id=F9DB37B8211CE831%211426&sc=documents

If you can figure out EAGLE cad, i have made a layout here, ready to use: http://zapro.dk/public/Nixie_SMPS_V1_5/

// Per.

CrossRoads

Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

putyn

both suggested designs look good but i want something where i could use the atmega8 to control the circuit , the schematic ive posted works but im not sure if it can produce 120V to power the nixie tubes

CrossRoads

The page you started with has calculator for that will show the caps, inductors, and switching information needed for the desired switching frequency (such as 31250), output voltage, current, and allowable ripple on the output voltage.

Go plug some numbers in the calculator seems to work.
For example, 31250 using Timer 1
http://www.arduino.cc/playground/Main/TimerPWMCheatsheet,
Min/Max 9V,
110-130 output,
20mA,
0.1V Ripple on the voltage,

yields inductor size, cap size, diode required, etc.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

putyn

yeah but my question was - is that design reliable to generate 120V ?

CrossRoads

The topology looks similar to the 555 design in reply #4.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

putyn

until i decide which design im going to use im gone simulate it inside proteus - probably that will give me some ideas on how reliable the circuit is
thanks for the suggestions so far - ill post my finding once if finish testing and some code/schematic once i complete the circuit

isparkes

I don't know if this is still of interest to you, but here goes anyway. I started out with the same idea of using a 555, but one of the things I wanted to do in my project was to reduce the component count to the minimum possible.

In the end I used Timer1 in PWM mode with a variable duty cycle and frequency to drive a boost circuit, and then a voltage divider with an input connected to a ADC input to close the feedback loop. This was I managed to get rid of the 555, and allow the voltage to be controlled directly by the uC.

I'm using this in my Nixie Clock Kit. You can find full schematics (page 11) here:

http://www.open-rate.com/Downloads/NixieClockInstructionManualCurrent.pdf

And the source code is here:

https://github.com/isparkes/ArdunixNix6


The source is quite advanced and has a lot of little features in it to make it feel smooth when you use it, but here is the skeleton of it:


Set up the Timer for right mode and frequency
Code: [Select]
  int hvTargetVoltage = 180;
  int pwmTop = 1000;
  int pulseWidth = 200;

  /* disable global interrupts while we set up them up */
  cli();

  // **************************** HV generator ****************************

  TCCR1A = 0;    // disable all PWM on Timer1 whilst we set it up
  TCCR1B = 0;    // disable all PWM on Timer1 whilst we set it up
  ICR1 = pwmTop; // Our starting point for the period

  // Configure timer 1 for Fast PWM mode via ICR1, with prescaling=1
  TCCR1A = (1 << WGM11);
  TCCR1B = (1 << WGM13) | (1<<WGM12) | (1 << CS10);

  tccrOff = TCCR1A;
 
  TCCR1A |= (1 <<  COM1A1);  // enable PWM on port PD4 in non-inverted compare mode 2
 
  tccrOn = TCCR1A;
 
  OCR1A = pulseWidth;  // Pulse width of the on time

  /* enable global interrupts */
  sei();



Once you turn the circuit on, it will start to generate the High Voltage quite powerfully, and will quickly reach a voltage that is more that you want. The next step is to modulate the voltage to give us our target voltage by turning the HV generator off and on.

Because we don't want to do a lot of floating point calculations in the main loop, we pre-calculate the integer threshold value of the ADC reading that is our maximum, based on a voltage divider of 4.7K in series with 390k, a reference voltage of 5V and the maximum ADC raw count of 1023:

Code: [Select]
// ************************************************************
// Calculate the target value for the ADC reading to get the
// defined voltage
// ************************************************************
int getRawHVADCThreshold(double targetVoltage) {
  double externalVoltage = targetVoltage * 4.7 / 394.7 * 1023 / 5;
  int rawReading = (int) externalVoltage;
  return rawReading;
}



Then we get the ADC raw reading and compare it to our threshold raw reading. If it is lower, we reduce the PWM "off" time, and if it is higher we increase the PWM "off" time:

Code: [Select]
// ************************************************************
// Adjust the HV gen to achieve the voltage we require
// Pre-calculate the threshold value of the ADC read and make
// a simple comparison against this for speed
// We control only the PWM "off" time, because the "on" time
// affects the current consumption and MOSFET heating
// ************************************************************
void checkHVVoltage() {
  int rawSensorVal = analogRead(sensorPin);

  pwmTop=(pwmTop+rawSensorVal)/2;
 
  // check that we have not got a silly reading: On time cannot be more than 50% of TOP time
  if (pulseWidth > (pwmTop-100)) {
    pwmTop = pulseWidth + 100;
  }
 
  ICR1 = pwmTop; // Our starting point for the period
}

Wawa

Everything from Adafruit is well thought over, but I have my doubts about the design from post#0.

It has no regulation, and they have used a 20volt schottky diode to make ~60volt.
Maybe they rely on the reverse breakdown voltage of that 1N5817 schottky diode.
??
Leo..


Go Up