I've used HV5522 and HV5622 a lot without any issue - I always use a CD40109B level shifter to convert from 3v3V or 5V to 12V (I know many do not).
In Arduino Land there is a function called ShiftOut which does all the required clocking - it's for 8 bits as standard but can easily be re-worked for however many bits you want. I have one clock with 4 x HV5522 in series for which I made a 128 bit ShiftOut function. See here for details of the shiftout process: Arduino shiftOut(): Control chips with a 3 wire Serial Interface. (best-microcontroller-projects.com) <https://www.best-microcontroller-projects.com/arduino-shiftout.html#:~:text=Arduino%20shiftOut%20is%20a%20purely%20software%20implementation%20of,data%20input%20%28the%20equivalent%20software%20function%20is%20shiftIn%29.> It's an interesting page with scope traces to help explain. Ultimately I moved over to using SPI transfers which are driven purely by the processor but the theory is all very similar. - Richard On Saturday, 13 August 2022 at 22:28:27 UTC+1 flata...@gmail.com wrote: > You are a legend! I've looked at the schematics, very neat. > > I'm traveling on business tonight, back next weekend. Then I'll design my > own board for 4 beautiful Rz568m (present for my parents on Christmas). > > Glad I now understand how the HV5530 etc work. > > Looking forward to playing around with the code. > > I'll definitely include RTC, GPS receiver and IR motion sensor (I finally > designed and tested a circuit using the cheap Ds203 ir sensor. I'm trying > to design a microwave sensor but only with minor success so far, the > antenna is very challenging to design without proper training and > measurement tools). > > Thanks everyone for jumping in with so many suggestions. > > I'll send a pic of my clock when ready. > > > > -------- Original message -------- > From: "SWISSNIXIE - Jonathan F." <jfre...@gmail.com> > Date: 13/08/2022 22:16 (GMT+00:00) > To: neonixie-l <neoni...@googlegroups.com> > Subject: Re: [neonixie-l] Re: Nixie Clock - Direct Drive HV5530 > > Yes, the code is open source :) > > You can download it at the bottom of the page > https://www.swissnixie.com/sunixs/ > > > I programmed it in Arduino with the atmeag328, but it should be a good > start to look at the function "setOutputs" in the code, it contains the > actual shifting process. > Also it's easier to layout the outputs of the IC and cathode-pins as > "numbered" with the output number unless you are very experienced with the > code. This allows bitwise operations for creating the variable containing > the value. > For example, if your Cathode 0 is connected to output 1, and cathode 9 to > pin 10, you can use a function to shit as a single bit according to the > current digit number. If your digit is 8, you can do " 0x01<<8". If your > cathodes are randomly connected (to make an easy layout) you will need to > implement more code. > > On Saturday, 13 August 2022 at 22:35:13 UTC+2 flata...@gmail.com wrote: > >> Jonathan, >> >> I just found this, it's excellent. >> >> http://swissnixie.com/projects/SUNIX-S/SN_SUNIX_S_R1.2_WTB_SCHEMATIC.png >> >> From this post: >> https://groups.google.com/g/neonixie-l/c/S1oX30hLrmw >> >> If the code is open source, I'll just use that otherwise I'll adapt mine >> to use hv5530 and hef4104. >> >> Awesome! >> >> >> -------- Original message -------- >> From: "SWISSNIXIE - Jonathan F." <jfre...@gmail.com> >> Date: 13/08/2022 20:51 (GMT+00:00) >> To: neonixie-l <neoni...@googlegroups.com> >> Subject: Re: [neonixie-l] Re: Nixie Clock - Direct Drive HV5530 >> >> The time to shift out the bits is not critical, the clock rate is as fast >> as you implement it, there is only a minimum clock time, but no maximum one. >> Brightness should be the same as putting the tube pin directly to ground, >> the internal resistance of the mosfet in the HV5530 is in the Ohms range, >> while your anode resistor will probably will be a few kiloohms, so no >> visible issue. >> >> About voltage: >> The HV5530 is specified for 10.8 to 13.2V, but alot of people seem to use >> it with 5V logic and it works. If you want do operate ith with 12V logic, >> you need a 12V source and a level shifter. HEF4104 >> <https://www.digikey.com/en/products/detail/nexperia-usa-inc/HEF4104BT-653/1156435> >> >> could work >> >> >> On Saturday, 13 August 2022 at 19:04:21 UTC+2 flata...@gmail.com wrote: >> >>> Thanks. >>> >>> In terms of nixie brightness, is there any advantage in using serial to >>> parallel converter+shift register vs multiplexing using high voltage >>> transistors on anodes and cathodes of the nixies? Other than saving >>> component and uC pins, of course. >>> >>> -------- Original message -------- >>> From: Bill Stanley <billsta...@gmail.com> >>> Date: 13/08/2022 17:32 (GMT+00:00) >>> To: neonixie-l <neoni...@googlegroups.com> >>> Subject: [neonixie-l] Re: Nixie Clock - Direct Drive HV5530 >>> >>> I use that part for my NIXIE, Panaplex and LED displays and I also write >>> in assembly (8051, not PIC) >>> For my code, I send the serial data for NEXT time to display in the time >>> after a 1 second update. On the 1 second "hack" >>> I update the display by doing the serial to parallel pulse. >>> >>> Here is the code I use: >>> >>> ;************************************************************************ >>> ;* * >>> ;* Serial clock the data in the raw buffer to the H/W drivers. * >>> ;* Note: this routine does not strobe the data to the display. * >>> ;* * >>> ;* On Entry: None. * >>> ;* On Exit: Display H/W drivers updated from ram. * >>> ;* * >>> ;************************************************************************ >>> >>> WRT_NIXIE_HW: MOV R0,#DISP_RAW_TH ;point at start of raw >>> display ram >>> MOV R1,#12d ;12 bytes of >>> data to send >>> RAW_BYTE_LP: MOV R2,#5 ;5 bits per byte >>> MOVX A,@R0 ;get a 5 bit >>> value >>> INC R0 ;bump the pointer >>> >>> RAW_BIT_LP: RRC A ;bit 0 into carry >>> MOV DISP_DAT,C ;put the bit >>> into the I/O port >>> CALL HV_BIT_DELAY ;delay >>> SETB DISP_CLK ;clock high >>> CALL HV_BIT_DELAY ;delay >>> CLR DISP_CLK ;clock low >>> DJNZ R2,RAW_BIT_LP ;loop 5 bits >>> DJNZ R1,RAW_BYTE_LP ;loop 12 >>> bytes >>> RET ;and return >>> >>> >>> ;************************************************************************ >>> ;* * >>> ;* Update the NIXIE readouts with the data in the H/W buffers. * >>> ;* * >>> ;* On Entry: None. * >>> ;* On Exit: NIXIE displays show updated values. * >>> ;* * >>> ;************************************************************************ >>> >>> >>> UPDATE_DISP: CALL HV_BIT_DELAY ;delay >>> SETB DISP_STRB ;strobe the data >>> CALL HV_BIT_DELAY ;delay >>> CLR DISP_STRB ;un-strobe NIXIE >>> drivers >>> RET >>> >>> >>> >>> On Saturday, August 13, 2022 at 8:40:39 AM UTC-7 flata...@gmail.com >>> wrote: >>> >>>> Thank you both. >>>> >>>> Say that I want to drive high HVOUT12 on pin2 (that is binary >>>> b'00000010') of the HV5530... and reading your previous messages, do I >>>> simply...: >>>> >>>> drive pin28 (CLOCK) low >>>> drive pin31 (LE) low >>>> >>>> drive pin28 (CLOCK) high >>>> drive pin32 (DATA Input) low ; send 0 for bit 0 of b'00000010' >>>> drive pin28 (CLOCK) low >>>> drive pin28 (CLOCK) high >>>> drive pin32 (DATA Input) high ; send 1 for bit 1 of b'00000010' >>>> drive pin28 (CLOCK) low >>>> drive pin28 (CLOCK) high >>>> drive pin32 (DATA Input) low ; send 0 for bit 2 of b'00000010' >>>> drive pin28 (CLOCK) low etc >>>> etc... >>>> drive pin31 (LE) high. >>>> >>>> Of course, I'd need to do it do it within a certain time frame (nS, I >>>> suppose) >>>> >>>> Then I guess I would need a level shifter as while the input voltage is >>>> 12V, the PIC is at 3.3V (LF series). Argh. >>>> >>>> I'm starting to think whether that is really a better approach than >>>> using an 80pin or 100pin PIC with HV transistors to drive the cathodes of >>>> the Nixies (pic18f46k22 would do for instance). It would increase >>>> component >>>> count and cost of PIC etc, but it's not a commercial project, I'm only >>>> making 3 clocks in total. >>>> >>>> Indeed, I'm building a clock with Dalibor's RZ568M (beautiful!). >>>> >>>> Il giorno sabato 13 agosto 2022 alle 15:46:58 UTC+1 gregebert ha >>>> scritto: >>>> >>>>> Be sure to use a level translator to drive the 5530-type devices at >>>>> the proper signal voltages (12 VDC). Some people have driven them at 5V, >>>>> which is out-of-spec and not guaranteed to work. I use these drivers in >>>>> some of my clocks and they work very well. >>>>> >>>>> Pardon my rant below, but I've been designing IC's for a living since >>>>> the 1980's and too often I see others having problems with serial devices >>>>> : >>>>> >>>>> One thing that annoys me about the HV5530 (and similar) devices is >>>>> that the datasheet specs are incomplete for the serial data signals. The >>>>> data-in hold time (tH) is 10nsec, but there is no *minimum* propagation >>>>> time in the spec (tDLH, tDHL). The only have a maximum (100ns). What this >>>>> means is that per the datasheet, you cannot simply cascade multiple >>>>> devices. It might work if you do, but if you want to guarantee that it >>>>> will >>>>> always work, place a rising-edge flip-flop between cascaded devices). In >>>>> order to have reliable shifting, the minimum propagation-delay of the >>>>> driving device *must be greater* than the hold-time of the next >>>>> device. If there is no minimum prop-delay spec, assume it's zero (a very >>>>> safe and reasonable assumption). >>>>> >>>>> My current clock project (6-tube RZ 568m) has multiple PC boards with >>>>> ribbon cables interconnecting them. Not just for the three HV5530's that >>>>> drive the tubes, but also many other devices in the same serial chain for >>>>> reading switches and controlling lamps. After many weeks of testing with >>>>> billions of bits, there are zero bit errors.....because I made sure setup >>>>> and hold times are met. >>>>> >>>>> >>>>> On Saturday, August 13, 2022 at 6:32:31 AM UTC-7 SWISSNIXIE - Jonathan >>>>> F. wrote: >>>>> >>>>>> Hi Max, >>>>>> The HV5530 and other HV-Series IC's are "Serial to Paralell" >>>>>> converters which allow to be control 32-pins (or even more with multiple >>>>>> ic's) from single clock and data lines. They are basically normal serial >>>>>> to >>>>>> parallel converters with high voltage transistors attached. >>>>>> >>>>>> To operate these you will need a clock source (for easy way a gpio >>>>>> that goes high/low) and a data source, which means either a pin that is >>>>>> high or low at the time of clock. After you've sent the required amount >>>>>> of >>>>>> data (number of outputs on the IC) the first data will transfer to "DATA >>>>>> OUT" pin and into the next IC (if there is one). >>>>>> >>>>>> For a 6 digit clock you need 2 pcs of HV553 >>>>>> >>>>>> I cannot provice ASM code for PIC, but here is a low level code of >>>>>> ATMega: >>>>>> >>>>>> *#define thePort PORTD * >>>>>> *#define DATA PD5* >>>>>> >>>>>> *#define CLK PD7 * >>>>>> >>>>>> >>>>>> *PORTC |= _BV(PC1); //Set OE/LE Signal LOW* >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> * for (int i = 0; i < 32; i++) { thePort &= ~_BV(DATA); //Data >>>>>> LOW if ( bitRead(val_one, i) == 1) { thePort |= _BV(DATA); >>>>>> //Data >>>>>> HIGH } thePort |= _BV(CLK); //CLK HIGH thePort &= ~_BV(CLK); >>>>>> //CLK LOW }* >>>>>> *PORTC &= ~_BV(PC1); //Set OE/LE Signal HIGH* >>>>>> >>>>>> The general operation of the 5530 is as following. >>>>>> >>>>>> 1.) Drive Data pin and Clock pin LOW >>>>>> 2.) Before starting to send data, drive LE pin LOW >>>>>> 3.) For each bit you need to do a clock signal and data pin, for this: >>>>>> 3.1) Drive CLOCK High >>>>>> 3.2) Drive DATA high or low, depending if you want to turn the digit >>>>>> on or off >>>>>> 3.3) Drive CLOCK Low >>>>>> 3.4) Drive DATA Low >>>>>> 4.) This needs to be done for all Inputs of an ic, if you have two >>>>>> ic's chained you need to to it two times. >>>>>> 5.) After all Data has been sent, drive LE pin HIGH, Outputs will now >>>>>> be set to the data you've just send >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Saturday, 13 August 2022 at 12:13:24 UTC+2 flata...@gmail.com >>>>>> wrote: >>>>>> >>>>>>> Hello, >>>>>>> >>>>>>> I'm starting to design my first 6 digit nixie clock and I'd like to >>>>>>> use direct drive of the tubes (my power supply can take 6 nixies >>>>>>> without >>>>>>> multiplexing). >>>>>>> >>>>>>> So far I have built my Nixie watch, coding in ASM, worked on extreme >>>>>>> power saving etc. >>>>>>> >>>>>>> I could multiplex the nixies as I did in this project >>>>>>> https://fb.watch/eTb69SnxEP/ , but since I have a good power supply >>>>>>> I wanted to build a clock with direct drive of the tubes. >>>>>>> >>>>>>> I prefer to code in ASM (don't ask why :) ), I could use a 100pin >>>>>>> PIC18 to drive each digit individually through MMBTA92 & A42 >>>>>>> transistors. >>>>>>> However, if I want to use a PIC with a lower pin count (say 40pins), I >>>>>>> may >>>>>>> use a driver such as HV5530. >>>>>>> >>>>>>> Would I still get same brightness as a genuine direct drive as when >>>>>>> using A92&A42 transistors? I suppose the switching that happens using >>>>>>> CLK/SDA on the HV5530 is not too different than a good multiplexing. I >>>>>>> may >>>>>>> be wrong. >>>>>>> >>>>>>> And if I were do code ASM to use HV5530, does anyone have sample ASM >>>>>>> code? I managed to write myself the code to read/write time from an RTC >>>>>>> using CLK/SDA so I suppose it's very similar but I cannot figure it out >>>>>>> from the datasheet of HV5530. >>>>>>> >>>>>>> Any help is much appreciated. >>>>>>> >>>>>>> Max >>>>>>> >>>>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "neonixie-l" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to neonixie-l+...@googlegroups.com. >>> To view this discussion on the web, visit >>> https://groups.google.com/d/msgid/neonixie-l/c2e49484-d56e-4545-b635-942952d2c1f4n%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/neonixie-l/c2e49484-d56e-4545-b635-942952d2c1f4n%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "neonixie-l" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to neonixie-l+...@googlegroups.com. >> To view this discussion on the web, visit >> https://groups.google.com/d/msgid/neonixie-l/e7145848-36e9-48cc-a5c5-f5fec8fcbcdfn%40googlegroups.com >> >> <https://groups.google.com/d/msgid/neonixie-l/e7145848-36e9-48cc-a5c5-f5fec8fcbcdfn%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- > You received this message because you are subscribed to the Google Groups > "neonixie-l" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to neonixie-l+...@googlegroups.com. > To view this discussion on the web, visit > https://groups.google.com/d/msgid/neonixie-l/33c9a621-0006-4f94-998f-5f2e29a7fb6cn%40googlegroups.com > > <https://groups.google.com/d/msgid/neonixie-l/33c9a621-0006-4f94-998f-5f2e29a7fb6cn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "neonixie-l" group. To unsubscribe from this group and stop receiving emails from it, send an email to neonixie-l+unsubscr...@googlegroups.com. To view this discussion on the web, visit https://groups.google.com/d/msgid/neonixie-l/f4edcebe-36e9-4f8c-9fd0-f1500d9d9ae2n%40googlegroups.com.