Discuss What is the best signal interface for PC ? in the UK Electrical Forum area at ElectriciansForums.net

so... what you are saying... to link directly the counter 7493 to this memory chip and increment each of it's data stored inside ? Like this?
And 74138 decoder is not needed at all in this case, right?
And from D0-D7 of this memory might be the outputs to link to the matrix... right?
1661530724224.png
 
That is largely correct. You still need the 74138 to switch the columns on in turn when driven by the same 1, 2, 4 outputs of the 7493. You could construct some combinational logic but that would be long winded.

Of course you could do the work of the 74138 and the eeprom in software and then feed the 5 bit 'one of 5' column word and the 7 bit row/line data word to the 16 bit outputs of the MCP23017. You then connect these outputs to the circuitry you have designed in proteus.
 
Good news:
Memory #1
I figured out how to manually program a (simpler) RAM in my simulator, thanks to youtube and a couple of google searches, staying late last night. This was the easiest.
The most important thing for me, is repetition. If I am not repeating some new stuff enough multiple times, I forget it's head and its end in a very short time. If I make it a routine, for awhile, it is impregnating in my brain and I hardly forget it. I moved relatively quickly with these RAM chips now, because I did these things some years ago, once or twice, but not doing it again consistently or repeatedly, I forget everything. Well, something remained because I moved and recognized relatively easy now what to concentrate over and I work it out somewhat fast. But I helped myself from youtube as I said. Im happy I managed to make it work in the end.
I still have problems writing and loading a *.bin or a *.hex file into the simulation chip. THe content of these files is a mystery for me. I dont think I ever did it like this. So this is brand new and very important to figure out. So far I had no luck. If anyone who is reading these things know how to do it, please advise me. I will ask on other forums as well.
1661599506892.png
 
Last edited:
Memory #2
This one was a bit tricky, and I had to look more closely into it's datasheet. And I managed to make it work. It has a bit more complicated way of MANUAL programming, I changed and play with those links there and you have to switch both of them to program and read the chip. Thats the conclusion I got it work.
1661600454624.png
 
Memory #3
This was a fail in implementation but I understood what it needs to make it work. It is by far the strangest RAM I ever encountered for manual programming.
1661600591845.png

this simulation didnt work because that pulse circuit didnt want to work at all, probably some program bug or a mistake I made but im blind to see it; so I probably have to make a 555 circuit for it. And if that doesnt work, at least I tried. Heh. Its not the circuit fault its the simulator fault this time. Sometimes I personally get SF issues from programs, because I dont know each detail of the behavior of the program. Oh well....
1661600663096.png
 
All that was last night.
But from now on, like I said and I am repeating for clarity, I have to concentrate on loading a *.bin or a *.hex file into the simulation chip. The content of these files is a mystery for me. So this is brand new and very important to figure out. So far I had no luck. If anyone who is reading these things know how to do it, please advise me. I will ask on other forums as well.
So this is the next step I will concentrate from now.
Pretty hard if you ask me.... hard to figure out how to make it work.
 
I explained this already:
I tried this circuit but for some reason Proteus simulator didnt like it and didnt run it. The capacitor didnt charged up. I will have to try with a 555 circuit, replacing this simpler one.
1661609746535.png
 
Try this simple circuit with R as 1kR and C as 50 microF

Or R as 5kR and C as 10micF.

In both cases time constant t = R x C = 50mS

If negative pulse required then use simple circuit below. If positive pulse required then invert using transistor or NOT logic gate.
 

Attachments

  • 9B4E2527-7DA0-42AC-8DF1-3959A1F5AF5E.jpeg
    314.7 KB · Views: 9
Last edited:
I explained this already:
I tried this circuit but for some reason Proteus simulator didnt like it and didnt run it. The capacitor didnt charged up. I will have to try with a 555 circuit, replacing this simpler one.
View attachment 100972
This circuit will not produce the required pulse shape and duration. I do not have time right now to explain why. It is to do with how the push button is wired in and RC time constant is only 10mS = 1KR x 10micF which is less than minimum 45mS.
 
Last edited:
nope , not good. I tested in other simulator that circuit with the transistor, which very much resembles your much simpler version and I applaud its simplicity, I like it very much actually, more than mine.
But the problem with both circuits here is that Pressed button !!! As long as I am keeping it pressed, it will "count" 0V ! Which is not good. So if im counting 10s with the button pressed down to 0V, the circuit will stay to 0V 10s. WHen I release the button, it will count another extra 50ms based on the cap and res values that I chose and reach 5V. So this behavior is NO BUENO !
What I really need is like this: Press ONCE the button and keep it pressed. But the circuit will not stay at 0V. It will jump from 5V to 0V in the moment the button made the contact, count internally those 50ms, and rise up to 5V by itself, while my button is still pressed. When I release the button from its contacts, the circuit still remains at 5V, unchanged. Only when I press the button again. and at the very first contact , the whole logic repeats again. Clear now?
I am trusting the good old 555 timer to do it. But... I didnt actually stay down to think about it. I only figure out how the logic should be, the one I just described so far.
Remember this is waaaay a SIDE mini-project or dare. Haha. Not at all the main quest Im in. Its a cute side quest. A curiosity.
 
Good day sir, Mister @marconi and others that are reading my thread, please read this page --HERE-- I put it in discussion last night but unfortunately the guys that are answering me are too undecided. Usually they are of great help but here, in this case, this specific subject is like a black cat for them. They keep some inexplicable distance.
Its not that long, is 1page and a half of reading, until that big blue screen screenshot of mine. And you can skip many unimportant points. See if it is ringing a bell for you and help me progress and push this "programming a RAM chip with an external file" to its final conclusion.
Thank you in advance!
 
Last edited:
Please answer my question. SHow me exactly how you modelled my circuit and actually connected it to CEbar. Did you pass the pulse from my circuit through those relay contacts ? Did you do as in the attachment?

S1 is is NO pushbutton for programming. S2 is the NO switch to tell the chip to operate as a RAM ie programming over. When in programming mode S2 must be open. You know already what to do with the OEbar pin for programming mode and RAM mode.
 

Attachments

  • D5EC3D2D-5744-4D07-A856-2199C3EA8F32.jpeg
    289.8 KB · Views: 13
Last edited:
This is the last circuit I made following your instructions.
I am now pretty sure how to connect the RAM chip in the next stage. No worries.
I made some very interesting advancements from 2 days in a row until today, about how to manually program a RAM. I start to get it, and also how to program a RAM from a file, which is very important.
I did not used the RAM or any relay in this last circuit. That RAM is floating there.
1661699641355.png
 
I deserve better than ‘yes’.
Check my answer in #93 ...also your immediate answer next in #94
I was completely concentrated these last 2 days, full days actually, on the loading an external file into the RAM in Proteus simulator and tonight, some minutes ago we reach the salvation conclusion. Now I can load any external file as long it is not very complicated because the editor is very old and is not that nice to edit with it, but it is doing an excellent job, and that is all that matters. I will still have to research into more modern .bin editors, so there is more to push. We have progress.
 
I actually made the entire movinglight program like I did it with arduino..... in binary format and then converted in hexa and finally converted to encrypted bin file; But because that counter is counting to 5, is only displaying only the first 5bytes in the program. Im still thinking.... I made some previeous tests before this moving thing here and I can lit every individual led in the matrix if I find its coresponding byte code. Im very close....like that.
Screenshot_7.jpg
 
Last edited:
@marconi I believe you pressed a button and switch back and forth the letters already saved in the memory. You advanced 1 step that memory location with a press of a button. I observed/remember right?
Also I need help in this detail because is a bit too hard for me. Tell me how to advance to the next character.
Thank you.
 
Tell me how to advance to the next character in the RAM ? How you did it? I believe you pressed a button to do it, but how it was wired? please detail it for me. Thank you.
 
Before I wade in with any help(?) please clarify for me how you intend your logic to scan the LEDs of the 7 x 5 matrix. ie led by led, a column of 7 LEDs column by column left to right and then repeat or a row of five leds row by row top to bottom and then repeat.

My scheme is to scan the display column by column left to right and then repeat as in the attachment. In this test sequence the complete column of 7 LEDs is lit up, column by column.
 

Attachments

  • FullSizeRender 25.mp4
    6.3 MB
Last edited:
Please clarify for me how you intend your logic to scan the LEDs of the 7 x 5 matrix.
BECAUSE I had to deal with limited (8pin Outputs) number on the memory IC, I had to be 'smart' about it.
I linked 3 pins of the RAM to the RAM Decoder 74136 that in turn is controlling 7pins for ---column--- of the matrix. Then, the rest 5pins of the RAM chip, I linked directly to ---COUNT the lines--- of the matrix.
Also the Counter 7493 is counting to 7 (not to 5 as we made it in our first example). Im happy I get to this simple result, but I tried a TON of permutations, you probably understand. I hope is clear enough.
In short, I count the LINES from top to down 7 times, and I set the column bits per each count.
And I have the feeling my circuit and my logic here is exactly complementary to your circuit. Right? In my defense, I did whatever I could to make it work... and it is working., which is good. Right? ;)
 
Last edited:
Now that you have clarified what I suspected may I suggest that you do not need to drive the 74138 by four data outputs of the RAM2732. Drive the 138 using the same 3 lines (1,2,4) of the 7493. This will still cause your display to be scanned line by line, top to bottom and then repeated. ie 7 lines

Now you have 8 data outputs. You can use the first 5 - D0 to D4 - of them to set the state of illumination state of each LED in a line. eg (00100) (010010) (10001) (10001) (11111) (10001) (10001) for the letter A

Now turn your attention to the address word which is 12 bits long A0 to A11. Use A0 to A2 (ie 1, 2 and 4) as now connected to the 7494 so that for any state of bits A3 to A11 the 7493 will cycle through 5 memory locations. These five memory locations are a unique group determined by bits A3 to A11. This means you can store in the RAM 2exp9 number of unique groups of 8 bit data outputs of which you will use 5 bits.

One could write the Address word A as ( A11, A10, A9......................A2, A1, A0) = (Character Identifier Address (9bits) Character Font Code Addresses(3bits))

The 7493 will always cycle through A2,A1 and A0 to output the 7 five bit line patterns of a character font. You only need to select which character font you want to display by setting the Character Identifier Address A11 to A3.

Thus letter A could have the Character Identifier Address 000 000 001 A2, A1, A0
Letter B could have 000 000 010 A2, A1, A0
Letter C ......000 000 011 A2, A1, A0
Letter D........000 000 100 A2, A1, A0

Thus by setting the Character Identifier Address you can pick a character to display. Of course you have to programme the five memory locations addressed by the Address Word A so that they contact the appropriate bit patterns for the seven lines which make it up.
 
Now that you have clarified what I suspected may I suggest that you do not need to drive the 74138 by four data outputs of the RAM2732. Drive the 138 using the same 3 lines (1,2,4) of the 7493. This will still cause your display to be scanned line by line, top to bottom and then repeated. ie 7 lines

Now you have 8 data outputs. You can use the first 5 - D0 to D4 - of them to set the state of illumination state of each LED in a line. eg (00100) (010010) (10001) (10001) (11111) (10001) (10001) for the letter A

Now turn your attention to the address word which is 12 bits long A0 to A11. Use A0 to A2 (ie 1, 2 and 4) as now connected to the 7494 so that for any state of bits A3 to A11 the 7493 will cycle through 7 memory locations. These 7 memory locations are a unique group determined by bits A3 to A11. This means you can store in the RAM 2exp9 number of unique groups of 8 bit data outputs of which you will use 5 bits for a line of 5 LEDs.

One could write the Address word A as ( A11, A10, A9......................A2, A1, A0) = (Character Identifier Address (9bits) Character Font Code Addresses(3bits))

The 7493 will always cycle through A2,A1 and A0 to output the 7 five bit line patterns of a character font. You only need to select which character font you want to display by setting the Character Identifier Address A11 to A3.

Thus letter A could have the Character Identifier Address 000 000 001 A2, A1, A0
Letter B could have 000 000 010 A2, A1, A0
Letter C ......000 000 011 A2, A1, A0
Letter D........000 000 100 A2, A1, A0

Thus by setting the Character Identifier Address you can pick a character to display. Of course you have to programme the seven memory locations addressed by the Address Word A - character identifier address in red- so that they contain the appropriate bit patterns for the seven lines which make up a character.
Slight correction inserted to text above.
 
Last edited:
...may I suggest that you do not need to drive the 74138 by four data outputs of the RAM2732. Drive the 138 using the same 3 lines (1,2,4) of the 7493. ...
This was truly very smart correction ! I didn't see it and I like it. I build it, tested and I confirm it works. Very logical !
- But for the rest of the explanation... uuuuggggh... I didnt understand from where I can switch the addresses. Please condense in another but very short and to the point explanation, more short than what you explained already (and I do appreciate the effort so far but I cant see any logic to follow). I read your text a couple of times with the circuit in the left, reading the circuit as well, but... really, I can not see any logical road to take. Try again, please.
- Also, in the same time I will try some more permutations, directly with the RAM chip, my usual testing way in the dark, until (IF) I find a result. I have an idea I wake up with, to try for testing.
And thank you so far.
 
I will try but not right now. What I will say though is that these technical problems, and our thinking about them, and coming up with possible solutions, and then testing them and learning from how they perform is how we learn profoundly.

I will show you in a video how I produce A and B when the ROM is addressed by the Gray codes 0000 and 0001.

(You know that this project including the use of the EEPROM is what the pupil I mentor and tutor had to solve himself - which he did with some explanations like I have provided you with - as a digital electronics project in his part-time Higher National Certificate Course (HNC) in electrical engineering. Thus, it is quite demanding so I would not beat yourself up if you find it difficult right now).
 
Here is your very smart correction. As you can see there are other 3 free nodes on the 7493 wires to the ram. Those nodes I connected to RAM A9,A10,A11, as you suggested in your explanation. As you can see it in this picture right now, the matrix is displaying correctly the letter A from the RAM. But if I connect those nodes to A9-11, it will NOT display anything. Sign that the addresses have changed.
I want to change the addresses (to iterate) from a single button, to advance 1 addr by 1 click of the button. And on each address will be a new 'letter' or a 'word of bytes'.
Im thinking to an additional demultiplexer IC linked to all the addreses and my button behind this IC. Thats the logic I can imagine at this point.
Im curious if you made your project with this exact number(and names) of chips or they were more that you didnt mentioned? Also how much time it took you to make it?
1662050086807.png
 
Last edited:
I understand the problem and what is to be done. No need for further clarifications !
So, I wish from now, good morning there and drink peacefully your English tea.
I actually throw this question to my other forum and my good american friend there completely understood me and give me straight the answer I was looking for. Read it for yourself as well since is very short and very to the point.
Led Matrix Display and switching RAM address problem - https://forum.allaboutcircuits.com/threads/led-matrix-display-and-switching-ram-address-problem.188934/
----
The clarification:
This particular 2732 EPROM memory chip has 12 address pins, (A0-A11) this means 2^12 = 4096 addresses available
And 1 character is requiring 7 addreses to be displayed, by that 74LS93 counter.
for example letter A = 70 89 8A FB 8C 8D 8E
This means 4096/7 = 585 characters to completly full up the entire memory.
There are 26 letters in the alphabet and 10 numerals from 0 to 9.
In total 36 characters to be displayed.
36*7 = 252 addreses in total for the entire set.
where 2^8 = 256, this means 8 addr pins to be used.
----
I am still looking like an idiot to the circuit and still have no clue how to proceed. Although I understand now that I have to somehow count each 7 lines for 1 character, I still need probably another counter to travel to the next 7 pack of addresses that contain the next character symbol in the memory. What should I add to 1-aquire the last address of the character and then 2-switch to the next pack of 7 addr ? Very complicated, especially for me that I am not that good with logic gates and analog IC's in general.
---
One of my greatest ideas is to add a BIG counter. One that is counting to 256 (or 252) and then it is resetting back to 0 and starts again. I need it NOT to count by itself, but somehow stop from 7 to 7. And when I press a button, it will enable to get to the next 7 pack and stop there as well. In this time, it will get to 0 and count to 7. But if it is at addr 21 for example it will count to 28 and then reset to 21 again, count up to 28 and so on. So it will strobe the character at that particular sector. All these details, I didnt figure out, I only imagine them.
 
Last edited:
To construct an 8 bit counter to connect to A11 (msb) through to A3(lsb) on the 2732 cascade two 7493s together so that Qd of the first ic connects to clkAbar of the second. Remember to connect Qa to clkB bar on each chip.

Use the pulse circuit in # to produce a negative going pulse upon depression of the push button and connect it to clkAbar of the first ic.
Ok, thank you. So it was a secondary 7493 IC linked to the same clock. Very ingenious from you mister @marconi. I will construct it.
 
My #109 For the pulse generator using a push button,

There are two independent counters. One free running to cycle through A0 to A2 and the seven lines of the 7x5 using the 74138 and then the one I just described to increment upwards on each press of the push button through A3 to A11.
 
inverted circuit movie - now counting to 5 columns instead of 7 lines as before.
Really? I can not share my facebook movie link here? aaaaah
https://www.------------/q1212q/videos/606400177655019
I uploaded it here on this website
 
Last edited:
36 characters requires 2exp6 or a 6 bit binary counter which resets when the count reaches 35 decimal or 100011 binary. The character identifier address I mentioned is 6 bits long to select one of 36 but could select one of 64 if counter clocks up,to 111111 and then goes to 000000 Since 2exp6 is 64.
 
I remembered you mentioned a couple of times and also another friend I have also mentioned a couple of times to count by column (not by lines) and count by 5 (not by 7) as I did it initially. To actually corespond to his circuit and yours.
It was hard to start change it, but after I committed to it, I did it. I rotated everything. But also the same issues I had with changing the addresses as before so I give up.. So I asked his circuit and he give it to me and I literally copied here in my proteus simulator. It had some bugs initially, from proteus point of view or wiring mistakes he did but forget about them, but I managed to correct them and make the entire thing work. Initially he output directly from the 2732 memory chip to that 4070 XOR gate array. So 7 outputs. But there were way too many wires to logically create my binary code. So I appealed to the last couple of days circuit that I was making, and choose from it this 74LS138 that literally saved my --- in this situation, in the sense that it lowered the number of pins but also let me create an 8 bit binary string (not longer than 8). Which is perfect because now I can code that binary number into hexa and create my bin file this way. Very practical chip !!! Hehe. All are.
The only problem is, that this circuit right now, is not counting anything. The clock markers are showing me it is working, but the 4516 and 2732 do not change anything in their outputs. They stay Low on all output pins. Im thinking maybe I have to change the counter all together, with my previous one, or to rewire this 4516 more correctly I suppose.
His circuit worked for him and he built it. I can also reverse the display as well, very neat function, which is working right now.
He also said he managed to scroll the letters as well,which I also want, but ... I have to wait until then, to first make it work the normal way. To count correctly through the addresses. But first to start counting, because now is freezed.
This is the progress so far.
Here is the circuit in hidef, do zoom in it to read the names.
Memory and led matrix display v7_b.jpg
 
I added this old counter from my previous save and it does count to 5 but only the first column of leds and counting to 5th led then back to first led.
Notice I left that reset wire unconnected since I have no reset pin on this chip, or I dont know the tricks I can do to smartly link it.
This is an experiment that is telling me the rest of the circuit is functioning fine.
1662226166453.png
 
I made some interesting progress but still stuck in the mud...
---video---
https://www.------------/q1212q/videos/624257272380792
Edit and insert this link into your browser address, to be able to see the video.
Unfortunatly, this website is automatically editing the link from facebook. Dont ask me why but it does it.
So edit it a bit and you can see it, its not a big deal.
1662235086426.png

1662235055985.png
 
Last edited:

Reply to What is the best signal interface for PC ? in the UK Electrical Forum area at ElectriciansForums.net

Similar Threads

Hello ! I am building for some time a cct to drive a 3digit multiplexed LCD. (from aliexpress) From the sellers on aliexpress I managed to find...
Replies
7
Views
1K
Hi there, I'm currently working on a project where I'd like to slowly fade the brightness of a series of high brightness RGBW LEDs. Basically...
Replies
3
Views
946
My view on life, in any field, is not to produce more but to consume less. Everybody told me this is a very eccentric weird mentality. Perhaps...
Replies
12
Views
2K
Hello there! To start, I have to say that I'm a very beginner with electrical stuff, I'm working in IT and today I face a challenge that I can...
Replies
2
Views
4K
I hear many views of people who believe that DPF's and CDPF's fitted to their vehicles are a problem and many people resort to removing them, or...
Replies
0
Views
8K

OFFICIAL SPONSORS

Electrical Goods - Electrical Tools - Brand Names Electrician Courses Green Electrical Goods PCB Way Electrical Goods - Electrical Tools - Brand Names Pushfit Wire Connectors Electric Underfloor Heating Electrician Courses
These Official Forum Sponsors May Provide Discounts to Regular Forum Members - If you would like to sponsor us then CLICK HERE and post a thread with who you are, and we'll send you some stats etc

YOUR Unread Posts

This website was designed, optimised and is hosted by untold.media Operating under the name Untold Media since 2001.
Back
Top
AdBlock Detected

We get it, advertisements are annoying!

Sure, ad-blocking software does a great job at blocking ads, but it also blocks useful features of our website. For the best site experience please disable your AdBlocker.

I've Disabled AdBlock