7 seg. display unstable

Thread Starter

jamjes

Joined May 10, 2010
35
Hi guys

I'm building a UV box project with 4 7-segment displays as a readout (as it turns out, this is overkill, but oh well, it kinda looks funky :D ).

each 7-segment is controlled by a SIPO/SO IC, MC14094BCP. And they are controlled by a PICAXE microcontroller.

It has been working perfectly for the last couple of hours, but now 2 or 3 of the segments have started fading in and out randomly. It's not the whole thing, just individual segments. And it's independent of whether the display is changing/being updated.

I've spent hours checking the solder connections and checking continuity.. it all seems to be okay, and yet the flickering continues. I've tried putting capacitors of different values over the Vdd/Vss pins of the SIPO's, but no luck.

So my question is: in your experience what can cause such random things?


(I will upload a circuit diagram when I can, probably a few hours yet)
 

Attachments

Last edited:

Bosparra

Joined Feb 17, 2010
79
The output of the MC14094BCP is tri-state, do you have pull up resistors on the output pins?
 

Thread Starter

jamjes

Joined May 10, 2010
35
The output of the MC14094BCP is tri-state, do you have pull up resistors on the output pins?
Ah. No I don't. For some reason I seemed to think keeping strobe high would prevent this pitfall (think I got confused from a previous datasheet)

So if I add resistors to each parallel data line out of the MC14094BCP, to Vcc, before the 7-segments, this should cure the problem?
 

Bosparra

Joined Feb 17, 2010
79
That would be a start, hopefully that is the problem. A pull-up value of 4k7 should do the trick.
 

SgtWookie

Joined Jul 17, 2007
22,201
Failing to use proper supply bypass capacitors is a major cause of instability with any IC.
Use a 0.1uF (100nF) metal poly or ceramic capacitor across Vdd/Vss or Vcc/Vee/GND pins. The leads should be as short as possible.

You didn't post a schematic, so it's hard to guess what else might be going on.
 

Thread Starter

jamjes

Joined May 10, 2010
35
I haven't tried the resistor yet, will do in due course.

Failing to use proper supply bypass capacitors is a major cause of instability with any IC.
Use a 0.1uF (100nF) metal poly or ceramic capacitor across Vdd/Vss or Vcc/Vee/GND pins. The leads should be as short as possible.

You didn't post a schematic, so it's hard to guess what else might be going on.
I'm on a bit of a budget so I don't have 0.1uF caps at the moment, I tried with some 330nF Metal poly ones -- would they be okay? It didn't seem to make a difference.

This is my first attempt at Eagle too...... .errr.. please don't be horrified :eek:
 

Attachments

Thread Starter

jamjes

Joined May 10, 2010
35
I forgot to add:

Vcc is +15v from a block powerpack (5A)

Voltage out of L7812 is 11.86v
Voltage out of L7805 is 5.00v


The microcontrollers, in their start state (which has flickering on the display) is UV LEDs off, display showing 0000, speaker silent, and I'm not pushing any buttons. So the only thing IC2 does is send "0000" to IC1 which then sends out the pulses to "DATA LINE" and "CLOCK".

If that makes any sense?
 

eblc1388

Joined Nov 28, 2008
1,543
You've short circuited one of the outputs of the MC14094B by connecting the QS' to 0V.

You only have to take care of any unconnected inputs of a CMOS IC and can usually leave all outputs as it is if they are not being used in the design.

 

Attachments

Thread Starter

jamjes

Joined May 10, 2010
35
Ah! That might cause a problem.

Thank you Mr Chung. I'll give that a go too :)

Will update tomorrow.
 

SgtWookie

Joined Jul 17, 2007
22,201
You don't have a base resistor on Q1? Ouch! Your poor, poor PICAXE will get mighty toasty. :( You need 220 Ohms between the PICAXE pin 5 and the the transistor's base.

That may limit the current available to your LEDs too much, as the transistor may have a large Vce due to not being saturated.

A logic-level N-ch MOSFET would be a much better choice. There would be little load on the PICAXE I/O pin, and Vgs would be quite low.

You need current limiting resistors between the MC14094 outputs and the 7-segment anodes. You probably have permanently damaged either/both the MC14094's and/or the 7-segment displays.
 

Thread Starter

jamjes

Joined May 10, 2010
35
That would be a start, hopefully that is the problem. A pull-up value of 4k7 should do the trick.
I've tried a couple of different values on one of the MC14094's: 3k3, 4k7, 11k. No difference as of yet :/

You've short circuited one of the outputs of the MC14094B by connecting the QS' to 0V.
I've now removed these short circuits.

You don't have a base resistor on Q1? Ouch! Your poor, poor PICAXE will get mighty toasty. :( You need 220 Ohms between the PICAXE pin 5 and the the transistor's base.
They're cool to touch, and the transistors, but I will take your advice and put in a resistor. There really should be one there.

You need current limiting resistors between the MC14094 outputs and the 7-segment anodes. You probably have permanently damaged either/both the MC14094's and/or the 7-segment displays.
It should have shouldn't it. but...

This is interesting... One of the segments in particular keeps flickering, so I unsoldered that connection and measured 5v output from the MC14094 on that pin and measured 5mA when its connected to that flickering anode segment. but it doesn't even light up that brightly, none of them do. (I need something like 10mA per segment, which is just what the datasheet says the MC14094 can deliver per pin. In any case, I can see the numbers.)

I think I'm going insane: so I do a sanity check: I run through the pins of the segment anodes with +2.1v and they all light up like expected, more brightly than with the MC14094's.

--

From the datasheet, I've also tried using the 50pF / 1k resistor combination it suggests for the output pins which seemed to clear up the flicking a little.


So still at wits end here :/ I will continue trying...

OTH, I could find a non-tri state device........
 

MMcLaren

Joined Feb 14, 2010
842
You mentioned that in the "idle state" the PICAXE is sending "0000" to the shift registers. Since you've got a shift register dedicated to each display you probably meant that you simply send the "0000" bit pattern once, correct? You're not sending the "0000" bit pattern repeatedly, are you?

Also, may I ask why you're using an output to turn the displays on and off? Is it to blank the display while you're loading the shift registers? If so, did you consider driving the "strobe" line instead? When "strobe" is low you can load the shift registers with 32 bits of data without messing up the display. Then you would pulse the "strobe" pin high then low to latch the shift register data onto the outputs. Right now with "strobe" tied high the shift register data goes immediately to the outputs which would mess up the displays (if you weren't turning them off).

Regards, Mike
 

MMcLaren

Joined Feb 14, 2010
842
Are the '14094s socketed and if so have you tried moving the '14094s around to see if the flickering segments follow the '14094s?

Are you using the decimal point segments on the displays?

I wonder if something like this might work (using 14094's instead of the 74HC595s)?

Regards, Mike
 

Attachments

Last edited:

Thread Starter

jamjes

Joined May 10, 2010
35
Thanks, Mike:

You mentioned that in the "idle state" the PICAXE is sending "0000" to the shift registers. Since you've got a shift register dedicated to each display you probably meant that you simply send the "0000" bit pattern once, correct? You're not sending the "0000" bit pattern repeatedly, are you?
That is correct, it is sent once and the MC's keep their value.

The buttons are used to set the time value, so I can easily check each segment by cycling through some values.

Also, may I ask why you're using an output to turn the displays on and off? Is it to blank the display while you're loading the shift registers? If so, did you consider driving the "strobe" line instead? When "strobe" is low you can load the shift registers with 32 bits of data without messing up the display. Then you would pulse the "strobe" pin high then low to latch the shift register data onto the outputs. Right now with "strobe" tied high the shift register data goes immediately to the outputs which would mess up the displays (if you weren't turning them off).
That is exactly what I wanted :)
At the time when I designed the circuit, I thought the easiest way was to turn off the display quickly through the transistor, change all the digits, and then turn back on again.
As you might suspect, this leads to a rather clunky visual change on the display. So I shall be changing to using the "strobe" pins in the future :D

That said, in its current state the device is usable, but the random segment flickering is still present.

Are the '14094s socketed and if so have you tried moving the '14094s around to see if the flickering segments follow the '14094s?
Yeah I've tried moving them around. 1 segment in particular is very bad flickering, so I tried swapping the chips around to see if the bad segment followed, but it doesn't.

So I guess that limits the problem in some way...

Are you using the decimal point segments on the displays?
The 2nd display is the DP so the whole thing is "MM.SS"

All 8 segments (7 + DP) are connected to the Q1-Q8 lines, so I can use the decimal point if needed. The PICAXE sends 4 bytes in total to update the display.

I can post the PICAXE code if needed.
 

Thread Starter

jamjes

Joined May 10, 2010
35
I did a test setup as a further sanity check. (attached)

Vcc is 4.74v

Q1 = 1.42v
Q2 = 1.43v
Q3 = 1.42v
Q4 = 1.39v, 4.23mA
Q5 = 1.43v
Q6 = 1.45v, 4.34mA
Q7 = 1.43v
Q8 = 1.40v


But when connected in my project circuit to the display I get ...

Segment A, flickering, 1.45v
Segment B, fully on, 1.79v
Segment C, dim, 1.68v
Segment F, off, 0.57v

from the MC14094B pins. (They are all meant to be lit)
 

Attachments

Last edited:

Thread Starter

jamjes

Joined May 10, 2010
35
Well my display is now stable after doing 2 things:

(1)
I took MMcLaren's advice and rigged up the strobe instead of the transistor blanking the display. Now its a nice and smooth transition between updates :)

(2)
I realised that, half-way through the project, I had run out of solder and started using another, but they aren't the same. One is 40/60 tin/lead and the other is 60/40 tin/lead.

From what I can find online, 40/60 could cause a problem because it is brittle? If I'm putting IC's in/out of the holders, bending the board a little..?

I resoldered the last display segment that had the flickering problem the most, but with 60/40. And now it works fine.

So anyone know if this is plausible?

I can guess you might think it was just the resoldering and the type of solder was academic -- but I had already checked the connections and made sure they were good many times.

Either that or the flickering will return.........
 
Top