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+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/neonixie-l/95a1d27d-7fdc-4a2d-846d-432d6ac1217an%40googlegroups.com.

Reply via email to