7 seg. display unstable

Discussion in 'General Electronics Chat' started by jamjes, Jun 28, 2010.

  1. jamjes

    Thread Starter Member

    May 10, 2010
    35
    0
    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)
     
    Last edited: Jul 2, 2010
  2. Bosparra

    Member

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

    Thread Starter Member

    May 10, 2010
    35
    0
    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?
     
  4. Bosparra

    Member

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

    Thread Starter Member

    May 10, 2010
    35
    0
    I'll have a go. Thanks :)
     
  6. SgtWookie

    Expert

    Jul 17, 2007
    22,182
    1,728
    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.
     
  7. jamjes

    Thread Starter Member

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

    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:
     
  8. jamjes

    Thread Starter Member

    May 10, 2010
    35
    0
    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?
     
  9. eblc1388

    Senior Member

    Nov 28, 2008
    1,542
    102
    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.

    [​IMG]
     
  10. jamjes

    Thread Starter Member

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

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

    Will update tomorrow.
     
  11. SgtWookie

    Expert

    Jul 17, 2007
    22,182
    1,728
    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.
     
  12. jamjes

    Thread Starter Member

    May 10, 2010
    35
    0
    I've tried a couple of different values on one of the MC14094's: 3k3, 4k7, 11k. No difference as of yet :/

    I've now removed these short circuits.

    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.

    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........
     
  13. MMcLaren

    Well-Known Member

    Feb 14, 2010
    759
    116
    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
     
  14. MMcLaren

    Well-Known Member

    Feb 14, 2010
    759
    116
    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
     
    Last edited: Jun 29, 2010
  15. jamjes

    Thread Starter Member

    May 10, 2010
    35
    0
    Thanks, Mike:

    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.

    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.

    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...

    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.
     
  16. jamjes

    Thread Starter Member

    May 10, 2010
    35
    0
    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)
     
    Last edited: Jun 30, 2010
  17. jamjes

    Thread Starter Member

    May 10, 2010
    35
    0
    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.........
     
Loading...