Led Matrix Display and switching EPROM address problem

dl324

Joined Mar 30, 2015
18,336
I already decided and made it as 7 line strobe. But... if is too inconvenient, I will switch to 5 columns strobe as I get many hints about it.
Implementing horizontal scrolling will be easier if you strobe columns. When I implemented scrolling, I built the entire message in an array, then I slid a 5x7 window over the array to display the message.

Scrolling vertically would be easier with row strobing. I'm using a Raspberry Pi Zero W to display the message, so I just constructed the message array to make it easier to implement vertical scrolling.
 

Thread Starter

q12x

Joined Sep 25, 2015
2,227
Implementing horizontal scrolling will be easier if you strobe columns.
I just made the modification. I didnt made the code since I had to re-wire everything. Now is counting through each of the 5 Columns.
Here is the hidef modified circuit:
Now it is like yours mister @dl324
Memory and led matrix display v7.jpg
to mister @Ian Rogers ... I included the updated save proteus file. Check it out (but with the previeous bin file before I inverted the matrix)
 

Attachments

dl324

Joined Mar 30, 2015
18,336
here is the inverted circuit I already made by myself.
I'd just have the EPROM outputs drive the rows through buffers.

1662150921834.png
I added XOR gates to give an option to invert the EPROM outputs.

I used a CD4017 to select columns. This is easily cascaded to more than 5 columns. You reset the counter when you first start displaying a character. After that, the counter will reset itself. I didn't use the 0 output so the display will be off when the counter resets.

I chose to drive the LEDs at about 100mA so that the average current will be close to the maximum continuous current allowed by the LEDs (20mA). Old LEDs from the 70's had peak currents on the order of 1A. Newer LEDs in T-1 and T-1 3/4 are significantly lower. BTW, T-1 means 1/8" diameter (T-1 3/4 = 7/32").

I showed a resistor network, but those 33 ohm resistors need to be 1W.

Maximum drain current for AO3400/1 is on the order of several amps. They're logic level devices, so will be fully on when operated from 5V.

Each time the CD4017 is incremented, you need to change A0-2 on the EPROM.

Since only 1 OR gate is used, you could replace it with 2 signal diodes.
 

dl324

Joined Mar 30, 2015
18,336
Put the entire circuit you have.
That was all I drew.

I added the EPROM and the counter to cycle through the 3 low order bits. I used a CD4516 binary counter before I realized that I'd be using the reset from the CD4017 to reset it.
1662153088452.png
I still don't know if the EPROM is going to just be a character generator, or if it will have the bit pattern for the entire message you want to display. I also haven't thought about how to scroll in hardware. I did it in software and it was straightforward. So this will only work for flashing characters (with circuitry to do appropriate pauses added). Also didn't think about ghosting issues that would require column blanking.

EDIT: This also requires the column data to be at addresses xxx001-xxx101.
 
Last edited:

dl324

Joined Mar 30, 2015
18,336
  1. The A3-11 lines go to a binary counter that cycles through the data. I still don't know how you plan to construct the message. Putting the character generator in the EPROM is what would typically be done, but you can put the bitmap for the entire message in the device. You need to add circuitry to pause between characters.
  2. Invert goes to a switch to Vcc if you need to invert the EPROM outputs.
  3. Col strobe clock controls the data and rate that columns are strobed.
  4. Reset should be taken HIGH to initialize the counters.
EDIT: Also note that I assumed that the row data would be on bits 1-7, so bit 0 is unused.
 
Last edited:

Thread Starter

q12x

Joined Sep 25, 2015
2,227
I still don't know how you plan to construct the message.
im not making a message. Im making only the characters of the alphabet.
This is how it should function: When I press a button, 1 character will be displayed. After I press the same button, the next character from the alphabet in order, it will come on display, and so on. Thats it. No monkey bizniz.
 

Thread Starter

q12x

Joined Sep 25, 2015
2,227
I will replicate your circuit and I will present it to you. It will take some time though.
 

dl324

Joined Mar 30, 2015
18,336
This is how it should function: When I press a button, 1 character will be displayed. After I press the same button, the next character from the alphabet in order, it will come on display, and so on. Thats it. No monkey bizniz.
So this circuit will serve no purpose other than to learn how to multiplex the LEDs.

In that case, you need a switch to single step the binary counter that drives the address lines above A2. You'll want to debounce it or use a 555 timer based one-shot.

If you program the EPROM with 1's representing LEDs that are to be on, you need to invert the outputs because the P channel MOSFETs require a LOW to turn them on.
 

Thread Starter

q12x

Joined Sep 25, 2015
2,227
Hidef render of mister dl324 circuit :
Now I am thinking where to put those manual 'LogicState' (the blue ones) to actually control the thing and figure out the code.
Check it please and tell me if you spot any errors. I kind of rush it.
Memory and led matrix display v7b.jpg
 

dl324

Joined Mar 30, 2015
18,336
Check it please and tell me if you spot any errors.
The inputs of the row buffers need to be tied HIGH.

What are the blue things? Are they logic indicators? Inputs? Outputs?

Out of curiosity, why are you using tri-state buffers that way?
 

Thread Starter

q12x

Joined Sep 25, 2015
2,227
What are the blue things? Are they logic indicators? Inputs? Outputs?
'LogicState' to control manually, set to High or Low. Usually Hi=5V and Lo=0V. They are Inputs that can be manually toggled.
1662157760968.png
why are you using tri-state buffers that way?
Because this simulator is not supporting or not capable of creating tristate transistors. I tried them already and they always stay either High or Low but not gray, in between like a disconnected wire.
1662158055115.png
I had to inverse the power , +5V down and gnd up, because this led matrix I have in this simulator, it matters the polarity. So to resemble your circuit as close as possible, I have to make some necessary tweaks for it to actually work.
Ive also added the NOT gates to positively control those buffers (they are actually replacements for transistors here in the sim).
And connected the LogicState 1662158700752.png for manual control.
So far I get a random 3 leds ON every logical switch I make. But at least is ON and alive. - Its alive !!!
1662158141951.png
 

Attachments

dl324

Joined Mar 30, 2015
18,336
So far I get a random 3 leds ON every logical switch I make.
The LEDs in the matrix should reflect what's on the outputs of the EPROM.

The circuit element you're using to set output Q3 of the CD4017 HIGH is causing it to be out of synch with the CD4516 (which is indicating 0).
 

Thread Starter

q12x

Joined Sep 25, 2015
2,227
Are you sure your circuit is correct?
I found some irregularities.
1662159676046.png while in your circuit: 1662159879293.png
Now, with my correction, starting from Q0 and not from Q1, I can actually navigate each column correctly.
All I get is random 3 leds around when I change the addreses.
 

dl324

Joined Mar 30, 2015
18,336
Are you sure your circuit is correct?
It depends on how you put the data in the EPROM.

I assumed that when A0-2 was 0, no valid data would be present. That way when the CD4017 is reset, nothing will be displayed. Outputs 1-5 would activate the corresponding column.
I believe your 4070 XOR gate is the problem.
It can't be a problem. Either they invert the data or they don't. You decide whether an inversion is required.
 
Top