I'm trying to replace a 27c256 ROM with a 62256 RAM, to be able to easily change the memory content. I thought this would be pretty straight forward. Not quite, it seems.

I made an simple experimental PCB which is build around the 66256 RAM chip. On one side you have the connection to the target device, of course I made sure I rewired pin 1 with pin 27 to make sure A14 is in the right place. On the other side I have a PIC MCU with a RS232 connection to a PC which takes care of the programming and verifying of the RAM chip. To start of simple I placed DIP switches betwheen the RAM chip and both sides (Target device and PIC) to make sure the two aren't interfering with each other. My idea is to replace this with some type of octal latches eventually.

After I programmed and verified the RAM chip using the PIC I isolate the 62256 from the PIC and open the DIP switches towards the target device. I make sure I keep the /WE pulled up and the /CE pulled down. The /OE is strobed by the target device just as it does when a regular ROM is connected. However the target device does not run the program.

This while the program works fine when burned to a ROM.

What am I missing/forgetting?

  • How do you maintain power to the 62256 so it doesn't lose the program? – JIm Dearden Jan 4 '15 at 16:19
  • The board is powered constantly. And the GND of the target device is wired to the board aswell. If I 'reconnect' the PIC again and read the memory it is still intact. – Felix Jan 4 '15 at 16:23
  • A storage scope or USB logic analyzer would br great, but maybe you can write a test program that is just a tight loop and see if you can verify it with a scope. You are resetting your target after the mode switch, right? Depending on your target speed, using a fast MCU (perhaps STM32F4 at 120MHz?) with a lot of internal storage to do emulation might be preferable, especially as you may be able to build in some access analyzer capability. – Chris Stratton Jan 4 '15 at 16:31
  • @ChrisStratton See below, thanks! – Felix Jan 4 '15 at 18:36
up vote 2 down vote accepted

"If I 'reconnect' the PIC again and read the memory it is still intact"

This indicates that the data is being preserved, but does not prove that it is stored in the correct locations and being presented to the target in the right order. There may be a mistake in your PIC code, or some address or data lines are swapped. So long as each data byte is held in a unique location it could read back correctly through the PIC, even if stored in the wrong memory locations or bit positions. The RAM doesn't care where the data is stored in it, but your target does!

Plug the target connector into your EPROM programmer and read the 62256. Does it contain what you expected?

  • I have to give it to you. I have spend hours today measuring a LOT of different signals. All seemed normal. After @ChrisStratton suggested to use a storage scope I began checking the data written by the PIC using a scope on the data and address busses. I noticed an abnormality in the data lines, 2 lines seemed to be swapped on the PCB. I changed the PIC code to fix it. I was just about to check the result when I read you're post. And what do you know, it works. So thanks alot! Both you and Chris Stratton! – Felix Jan 4 '15 at 18:34

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.