Expand k8055 with shift registers or other ic

hello,

i’m pretty new to the whole electronic scene so i decided to buy this experimental board to do some learning.
Everything is pretty straight forward, connected a lot of stuff (resistors, leds, transistors etc…) but now i wanted to add a shift register IC component.

My first question is, can this board handle such component?

(like the 74HC4094 where i connected all 8 outputs to leds, if i connect the pin 2 and 3 to a digital output and start pushing the data all led’s light up or all leds are off… i’ve already searched the whole forum and internet. After a lot of reading i understand that such an ic needs to be in sync with some kind of ‘pulse’ before sending the data)

Or am i using the wrong kind of IC, and there are ic’s that do work with this board?

Any help or information about where to search is welcome :slight_smile:

Yes, you can connect CMOS logic circuits to the digital outputs of the K8055.
Please remember that the digital outputs of the K8055 are open collector outputs and there are pull-up resistors needed to the outputs.
For more info about the K8055 output connection please see this thread: viewtopic.php?f=3&t=4057

You could use one of the digital outputs to provide a clock signal to the 74HC4094, or use an asynchronous shift register like the 74HC164 in which the clock and strobe functions are combined.

The 74HC164 has two serial inputs (pins 1 and 2), either is active when the other is held high (actually the inputs perform a NAND function on the levels applied to them).

K8055 output 1 is serial data out S1 (pin 1 on the 74HC164), and K8055 output 2 is serial data out S2 (pin 2). K8055 output 3 is the memory reset (active low, pin 9) and K8055 output 4 is the clock (pin 8).

To use this (using data input S1) you would:
[ol][li]Make output 3 high (to disable the memory reset;[/li]
[li]Make K8055 output 2 high (to enable input S1);[/li]
[li]Set output 1 (S1) high or low depending on the data;[/li]
[li]Bring output 4 (the clock) high, and then low, to strobe the data and shift the output registers;[/li][/ol]

Repeat steps 3 and 4 as needed to get your job done, bring K0855 output 3 low, then high, to clear the outputs.

To use serial data input 2 bring output 1 high, and use output 2 for the data.

That is nice to hear - that it’s possible.

But i already made the collectors ‘inverted’ so the 5v external power supply would be ‘cut off’ when the digital port is enabled.

I made a simple schematic about my implementation:

But when i do this:

LOW the strobe

HIGH or LOW pin 2 (data)
HIGH pin 3 (CP)
LOW pin 3
Repeat this 8 times to fill the register…

HIGH the strobe

Even tried it with EO default HIGH insted of default LOW in this example.

But nothing happens…
But if i HIGH pin 2 and 3 all the leds will light up…
And if i ‘touch’ pin 2 and 3 without the wires connected the led’s are randomized :wink: so something is working (with my static energy) but not when i connect it all.
I hope somebody here has enough knowledge of these 74HCxxxx shifters to explain to me where i’m going wrong :slight_smile:

Sorry for my question being a bit of a novice/stupid question, but i really would love to have these shifters working so i can continue and learn.

[quote=“cliffyk”]You could use one of the digital outputs to provide a clock signal to the 74HC4094, or use an asynchronous shift register like the 74HC164 in which the clock and strobe functions are combined.
[/quote]

Thank you for your explanation. I will also look into this async 74VHC164 IC.
(i already ordered a few different 74hcxxxx to start testing/learning)

Could you also shed a light on my implementation of the 74HC4094?

Using the 4094, the clock needs to be a steady repetitive signal, also as shown in your schematic the input pins are all tied directly to the +5.0V line–this keeps them high regardless of how you set the K8055 outputs.

However, to start from the beginning, you first will need an external +5.0V power source as the K8055 ADC output cannot supply sufficient current to power all 8 LEDs,

Here’s a schematic using a 74HC4094, just one output is shown for simplicity:

Resistors R1…R4 are pull-up resistors needed to keep the 4094 inputs high when the K8055 output is “high” (or actually not low, as it is an open collector output).

The K8055 outputs are as follows:
[ol][li] 74HC4094 enable;[/li]
[li]74HC4094 data strobe;[/li]
[li]74HC4094 data;[/li]
[li]74HC4094 clock;[/li][/ol]

To utilise this, the process would be as follows:
[ol]
[li]Bring K8055 output 2 high to enable the input strobe;[/li]
[li]Set the desired data bit on K8055 output 3;[/li]
[li]Toggle the K8055 output 4 high then low to record the data and shift the registers;[/li]
[li]Bring K8055 output 1 high as desired to enable the outputs;[/li][/ol]

Bringing output 2 (strobe) low would lock the state of the outputs.

It is important that the output data be supplied in synchronization with the clock, as any data transitions that occur between the clock’s rising pulse, and high/low/high (or low/high/low) data transition that occurs withing one clock cycle will not be brought into the shift register.

I believe this makes the '4094, and any synchronous shift register, a hassle to use for what it appears you wish to do. Although it might be possible to use the clock signal asynchronously to toggle the


Note: Referring to the 74HC164 partial schematic I posted earlier, you would also need the external power source and the pull-up resistors–used in a similar manner to what is shown above.

Thanks cliffyk!!

It works wonders, i just connected everything like your schematic made a simple program to ‘program’ the 74HC4094 and it works.
Now understand the ‘clock’ more - and i’m going to chain some together for my next project :slight_smile: this is great.

Just for my understanding;
When i set my output to ‘HIGH’ on the k8055 the DigitalOutPin it’s connected to on the 74HC4094 is set to ‘LOW’?

[quote]When i set my output to ‘HIGH’ on the k8055 the DigitalOutPin it’s connected to on the 74HC4094 is set to ‘LOW’?[/quote]Yes, this is the case. The digital outputs are “active low” - the output transistor is conducting when the output is set “ON”.

Whoops–forgot to mention that.

I have been doing this stuff for so many years now (45+) that my brain automatically turns things like that around, and when doing design work I think in logic levels–be they active high or active low.

I am curious as to why you wish to do this?

Do you have a specific project, or is it just a self-education exercise (which is to my mind a more noble goal)?

[quote=“cliffyk”]I am curious as to why you wish to do this?

Do you have a specific project, or is it just a self-education exercise (which is to my mind a more noble goal)?[/quote]

I recently bought a notebook where it’s possible to replace the keyboard with a keyboard that has a backlight in it (but no physical connection).
So i tried to DIY-project this keyboard and noticed that i needed some parts that would function just like a transistor (didn’t know that back then) - since i’m a software programmer in real life i also think in logic, but only on screen - not with real parts.
And i noticed that it’s pretty the same.
So i bought some little startkits and learned some more - bought this interface card to be able to create software too - and it all goes pretty well.

I’d like to create (and completely understand) two things, the first one is a big RGB LED matrix build into a table.
Something simular to this: youtube.com/watch?v=IO5Y13S4rsU
I have some great idea’s about integrating this into my home with the television and audio :slight_smile:

After that i’d really would like to create a big 16x16x16 LED Cube, with RGB colours; similar to this:
youtube.com/watch?v=Aj3_v7xCyJ0

So yes there is a pretty big noble goal to all of this, but in steps :slight_smile: Hope this answers your curiosity :wink: