# Fuzzy digits when driving with TPIC6B595

I designed a schematic and PCB of a simple Nixie clock and I hope that someone will be able to explain what's happening.

The problem is that when I'm driving the cathodes with TPIC6B595 shift register, some of the digits are not readable/fuzzy. It's worth noticing that on different tubes different digits get fuzzy, eg. cathode 0 and 7, the rest is okay.

Example of a well displayed digit

HV is 180 V DC, series resistors are 2x10k, I'm switching on the anode voltage using a pair of MPSA42 and 92.

I checked individual tubes with a resistor and HV power supply - they're all ok. I checked the TPIC6B595 outputs with a LED and series resistor - they're all ok, I'm driving one cathode at a time, one of them is always lit, I'm filling the registers first, then turning on the anode supply.

The displayed sequence is 0-3-4-5-6-7-8-9-0-..., because cathodes 1 and 2 are connected to the next register, which is always filled with 0's. This is for test purpose only, as I have only two shift registers soldered to the PCB for now.

Here is the code:

void test_load_and_latch_two_registers(uint8_t output_number){
if(output_number > 7) return;

// second register fill with 0
for(j = 0; j < 8; j++)
{
set_shift_register_clock(GPIO_PIN_RESET);
HAL_Delay(1);
set_data(GPIO_PIN_RESET);
HAL_Delay(1);
set_shift_register_clock(GPIO_PIN_SET);
HAL_Delay(1);
}

set_shift_register_clock(GPIO_PIN_RESET);

// first register fill with data
for(j = 0; j < 8; j++)
{
set_shift_register_clock(GPIO_PIN_RESET);
HAL_Delay(1);
if(value_to_load & (1 << j)) set_data(GPIO_PIN_SET);
else set_data(GPIO_PIN_RESET);
HAL_Delay(1);
set_shift_register_clock(GPIO_PIN_SET);
HAL_Delay(1);
}

set_shift_register_clock(GPIO_PIN_RESET);

latch_shift_register();

HAL_Delay(1000);}


I would be grateful for any hints on this. I suppose there's a problem with floating cathodes voltage, but have no idea what is happening in this circuit.

Edit 1: Video: https://youtu.be/ibOdviAl_b4 Digit 7 is not displayed correctly. If I check this tube directly with a resistor and HV power supply, digit 7 lights up correctly. Replacing tubes result in a different digit being blurry.

Edit 2: I measured voltages when a single digit is displayed in two cases.

Digit 5 displayed correctly:

• A - 135 V
• C0 - 123 V
• C1 - 66 V
• C2 - 124 V
• C3 - 54 V
• C4 - 102 V
• C5 - 0 V
• C6 - 54 V
• C7 - 103 V
• C8 - 54 V
• C9 - 54 V

Digit 0 displayed incorrectly:

• A - 169 V
• C0 - 0 V
• C1 - 58 V
• C2 - 82 V
• C3 - 54 V
• C4 - 54 V
• C5 - 54 V
• C6 - 53 V
• C7 - 53 V
• C8 - 54 V
• C9 - 54 V

As far as I understand, the off cathodes voltages in ideal case should be equal around anode voltage, but the internal clamping of TPIC6B595 should drop this floating voltage to around 50-55 V. But it seems that it doesn't work like that.

EDIT: I was able to solve the problem - some nixie pins didn't make a contact with PCB pads and were left floating. Now everything works as expected.

• I have not looked at your code. Have you tried changing HAL_Delay to 2? – Spehro Pefhany Jan 31 '20 at 22:12
• Yes, I tried, unfortunately without success. I'm afraid it's more an electrical problem instead of firmware. I added a video showing the problem. – Adam Feb 1 '20 at 10:23