Nixie Tube Multiplex Frequency and Blanking - Page 1
Forum section: electronics / projects

author: NivagSwerdna
author_rank: Super Contributor
timestamp: October 04, 2017, 02:35:40 pm
content: According to the multiplex section of...https://threeneurons.wordpress.com/nixie-power-supply/...When multiplexing there should be a blanking period between 100us and 300us between lighting elements and an on time somewhere between 1 and 4msI have a nixie driver for six tubes that is driven as two sets of three tubes (via 2x HV5812)Currently I have a simple 100Hz interrupt which alternately lights one or the other set.... i.e. effective frame-rate of 50Hz. (I don't currently have any blanking period). This just meets the max frame time of 20ms criteria described in the linked page. It seems to work... I don't see artifacts as far as I am aware.I'm about to revamp my software to introduce some fade and scroll effects and thought I should revisit blanking.100us to 300us would need my interrupt frequency to be somewhere between 3.33kHz and 10kHz. (At that sort of frequency I will have to pay closer attention to the timing of the Interrupt routine)My current ON time is 10ms for each set... I could make it 9.8ms blank for 0.2ms ... 9.8ms blank for 0.2s repeat or perhaps... 4.8ms blank for 0.2, 4.8ms blank for 0.2,...Or.. 9.9ms blank for 0.1,.... or 4.9ms blank for 0,1,... or 1.9ms blank for 0.1,....Any comments? Are there any frequencies I should try and avoid that might cause audible artifacts/resonances?

author: NivagSwerdna
author_rank: Super Contributor
timestamp: October 05, 2017, 04:52:30 pm
content: FWIW... I think I am going to aim for a 6.4kHz Interrupt...If I have 1 period blanking and 19 period MuxA, then 1 period blanking and 19 period MuxB repeat... I get...156us blanking, 3ms ON time. For an overall frame rate of 160 frames per second (i.e. 6.25ms frame rate)If I further divide that into 32 divisions of 5 frames I can have 32 divisions supporting PWM of 0, 20, 40, 60, 80, 100%Now to work out how to do the software!(Incidentally I do notice a bit of a buzz from the tubes even at 100Hz.... but is only audible when I am very close)

author: NivagSwerdna
author_rank: Super Contributor
timestamp: October 09, 2017, 12:00:22 pm
content: It seems I'm on my own with this one...I guess most people don't write multiplexing routines for nixie tubes anymore.With an interrupt rate of 6.4kHz....I have156us blank, 2.97ms Pattern A, 156us blank, 2.97ms Pattern B which I call a 'frame'Grouping into groups of five frames I change Pattern A and Pattern B to be ON for 0,1,2,3,4 or 5 frames to give a form of dimming.When fading up/down i.e. changing ON frames from 0/5, 1/5, 2/5, 3/5, 4/5 and 5/5 with a fade increment every 30 frames...I seem to get about the right effect, the flicker is quite noticeable when dimming up one cathode at the same time as dimming down another, when I dim up one and then fade out the other it seems better.I have a few effects coded now... scroll, slot machine, fade digits, scroll-back (when displaying '0' after '9', instead display 9876543210 in rapid succession).Does 6.4kHz sound reasonable for a 2-way multiplex?

author: niekproductions
author_rank: Contributor
timestamp: May 02, 2019, 05:20:47 pm
content: Hi, sorry for reviving your old topic.Did you ever get the nixies working at your 6.4kHz pattern?

author: NivagSwerdna
author_rank: Super Contributor
timestamp: May 02, 2019, 06:32:04 pm
content: Quote from: niekproductions on May 02, 2019, 05:20:47 pmI got something working... and working very nicely... let me dig out what I did in the end...!

author: NivagSwerdna
author_rank: Super Contributor
timestamp: May 02, 2019, 06:54:25 pm
content: I seem to remember now... I got a few tips from the forum and ended up with...Code:// TIMER 1 for interrupt frequency 8000 Hz// process Effects, typically only every 5 frames maxif (timerTickCounter == 0) {processFrameEffect(frameCounter);}...if (timerTickCounter == 0) {blank();} else if ((timerTickCounter >= 1) && (timerTickCounter <= 19)) {pattern1(timerTickCounter - 1);} else if (timerTickCounter == 20) {blank();} else if ((timerTickCounter >= 21) && (timerTickCounter <= 39)) {pattern2(timerTickCounter - 21);}timerTickCounter++;if (timerTickCounter >= 40) {timerTickCounter = 0;// At end of frame increment Frame Counter... (we let this overrun beyond 200.. rather than wrap// so that we don't reset the effect if the second takes slightly longer than we expect (due to our// clock running fast)frameCounter++;}So the underlying TIMER interrupts at 8kHz. (Frame counter is reset by the clock timer interrupt every 1Hz)For every 40 interrupts... i.e. 200Hz I update the display.Within each 1/200th the display is Blank (for 1), Mux1 (for 19), Blank (for 1), Mux2 (for 19), repeatI also have effects... which take place on frame boundaries and actually normally only frame%5 boundary.... e.g. Scrollback... when a digit transitions 9->0 the display actually quickly shows 9,8,...2,1, and then 0... very nice effectHave fun!PSI think that ends up being 125us blanking and ON time 2.375ms ... clever me

author: niekproductions
author_rank: Contributor
timestamp: May 02, 2019, 07:05:16 pm
content: Great, thanks!I've designed a nixie clock before that's been working wonderfully for about five years now, but I didn't think nearly enough about this type of timing.Redesigning the whole thing now with the inclusion of everything I've learned since thenHere's the old one:Cheers