Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] Reading and writing to Ram

Status
Not open for further replies.

laserjetdog

Newbie level 4
Joined
Oct 14, 2012
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,332
I am doing a project on reading and writing to ram
Chip CY7C185 64-Kbit (8 K × 8) Static RAM
Data for chip
Writing to Ram
Chip enable CE1(bar) and write enable WE(bar) set to low and CE2 set to high. The data on the eight I/O pins I/O0 to I/0 7 is then written to the location on the address pins A0 to A12.
Reading from Ram
Chip enable CE1(bar) and output enable OE(bar) set to low and we(bar) (write enable) and chip enable CE2 set to high.When this occurs the memory contents located at address lines A0 to A12 will appear at the I/O pins I/O0 to I/O7.
I have connected leds and 220ohm resistors on data pins to indicate on loading byte and when reading from ram.
I connect high and lows on data lines for byte. And when reading I disconnect them so that when reading I will turn on leds to verify output from ram is same as input byte.
I am getting no output when following directions for chip on read cycle
Any ideas ???>
Denis
 

betwixt

Super Moderator
Staff member
Joined
Jul 4, 2009
Messages
15,271
Helped
4,970
Reputation
9,962
Reaction score
4,801
Trophy points
1,393
Location
Aberdyfi, West Wales, UK
Activity points
129,640
I've never used that device but it seems you are not exactly following the sequence of control signals suggested in the data sheet. The easiest way to do it is look at the timing diagrams and simply work from left to right, controlling the logic levels acording to their placement across the page. I suspect you need to delay the /WE signal until after the CE signals are set and make it high again before removing the CE signals.

Brian.
 

FvM

Super Moderator
Staff member
Joined
Jan 22, 2008
Messages
49,399
Helped
14,438
Reputation
29,140
Reaction score
13,232
Trophy points
1,393
Location
Bochum, Germany
Activity points
284,301
"No output" means what? High-Z, 0 or 1 on the data lines?
 

laserjetdog

Newbie level 4
Joined
Oct 14, 2012
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,332
Tks for replys
FvM
No output means 0 on data lines.
Betwixt
I have made address lines A0 to A12 all low to select that address location. Is that Ok. and leave these connected all the time.
I looked at the timing diagrams.Its difficult to get the timing right when moving wires on breadboard around. That's why I was trying the setup below.
I am just using connecting wires on breadboard to set this up. I thought to write to ram all I would need to do say to write to address location would be place byte levels on data lines.
make \CE1 low and CE2 high to select chip, then touch \WE low and then to high.This would load byte on data lines to memory.
To read
Again \CE1 low and CE2 high to select chip, \WE high, With these connections made- touch \OE low- then to high and contents of memory location will appear on data lines.
The stored byte how long if I get it working should the levels appear on data lines.??
 

betwixt

Super Moderator
Staff member
Joined
Jul 4, 2009
Messages
15,271
Helped
4,970
Reputation
9,962
Reaction score
4,801
Trophy points
1,393
Location
Aberdyfi, West Wales, UK
Activity points
129,640
Its difficult to get the timing right when moving wires on breadboard around

Eek! 8-O

That is asking for trouble. At the very least, use pull-up or pull down resistors on ALL the control pins so they go to some sort of reasonable logic levels while the wires are being moved. At the moment, the simple act of pushing wies into the breadboard is probably firing hundreds if not thousands of logic level changes into the pins. For active low pins, connect a resistor of say 10K to the supply line and for active high pins connect a resistor to ground. This will ensure the pins are inactive until you force them to their active state.

If everything is working you should get data out within a few nS and being a static device it should stay there until you do something to change it.

Brian.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top