Another Memory Board?
blittled
Posts: 681
Since I have one friend that has a milling machine since the UPNE and wants to try out some PCB milling and another friend that wants XMM to run Catalina I was thinking of doing another memory board. I know there are excellent ram boards such as Morpheus, Ramblade and DracBlade but I need one that will be fairly simple and work with a one sided milled PCB.
After some thought I will base it after the DracBlade but remove the LCD interface, replace the RS232 circuitry with a 4 pin header and replace the switching regulators with standard 3.3 and 5V regulators. The biggest change is using a 8255 to replace the 3 latches since the 3 ports in the 8255 can be set up so the ports are latches. The RD line of the 8255 can be tied to high since there is no need for reading from the 8255. This will lower the parts requirements. I don't think it'll be faster or use less I/O than the DracBlade but it still will work with a little code modification with Dr Acula's code.
I posted this so I can get suggestions and ideas on if this is doable. Thanks in advance.
After some thought I will base it after the DracBlade but remove the LCD interface, replace the RS232 circuitry with a 4 pin header and replace the switching regulators with standard 3.3 and 5V regulators. The biggest change is using a 8255 to replace the 3 latches since the 3 ports in the 8255 can be set up so the ports are latches. The RD line of the 8255 can be tied to high since there is no need for reading from the 8255. This will lower the parts requirements. I don't think it'll be faster or use less I/O than the DracBlade but it still will work with a little code modification with Dr Acula's code.
I posted this so I can get suggestions and ideas on if this is doable. Thanks in advance.
Comments
I've got some 8255 driver code in Z80 assembly and it is a fairly easy chip to drive.
There have been suggestions in the past to replace the RS232 with the prop download header and I think that is a very good idea.
Regulators can be anything you like and certainly linear regulators are simpler to work with and probably won't get all that warm, especially if you don't load them up with external things like a LCD display and a keyboard.
Addit: the 82C55 has a supply voltage of 3V to 6V. Hmm - 82C55, memory, propeller, eeprom. That isn't too complicated.
Addit: I didn't see the reference to the 82C55. My question is still valid since I'm first breadboarding the idea with 5V memory and 8255 that are in my junkbox.
Says 3 to 6V for the cmos version.
I think this could mean the "blittled blade" is possible without resistors. The dracblade uses 12 propeller pins, but looking at the 8255, I think you tie RD high like you say, and CS would always be on, so is that just A0, A1 and WR? This could be a very simple looking circuit.
The dracblade uses a ram chip that can run at 3V and this saves a lot of hassle with voltage conversion. If your memory is 5V, then you would need 1k resistors on the D0 to D7 data lines, but not on the address lines. Just check the threshold for a High is >3.3V. Hmm - if it isn't on the ram chip, it might be on the 82C55.
I seem to remember that the 8255 clan has a nasty habit of reseting pins if any of the ports are retasked.
Interesting approach to the RAM problem.
How much RAM do you have in mind for this?
Don't forget, when it is finished, to add your RAM driver code to Bill Henning's virtual memory system, VMCog. That way any application that uses external RAM via the VMCog API should run on your board without having to be adapted for it.
Currently the only app that I know that uses VMCog is the Zog emulator for running C/C++/FORTRAN from external RAM. But I believe Jazzed is looking to get Catalina working with VMCog as well. Perhaps Bill also has some goodies up his sleeve.
http://www.pjrc.com/tech/8051/ide/wesley.html
(In the Hardware decription section)
Your link: "How to connect an IDE disk to a [PIC] microcontroller using an 8255"
Some people really know how to torture themselves:)
Do you have a spec for the speed of the ram chip? The AS6C4008 is 55ns and needs one NOP. I looked at some 6264 chips and some are 55ns and some are 70ns. Which chips are you using?
(As an aside, heater and I discussed this a few months back - we both have drawers full of legacy memory chips. I'd love to use mine but 512k for $3.25 is just too tempting)
Just to let you know I can do double sided boards with my machine with no trouble.
512KB at 3.3V, or 5V, in one package saves a lot of layout area and costs about the same as 256 bytes did back in the old days of Nascom.
I currently have some 32K Ram I've pulled off of 486 Motherboards but I saw the AS6C4008 512K from Alliance that looks promising and can run at either 3.3V or 5V. I wonder if it would be 5V tolerant on the address lines if I run it with 3.3V?
The chip select is on another line that when low enables the 8255 and when high it goes through a 7404 inverter to enable the chip select of the memory. This is done since if the chip select of the 8255 is always low it will read in the data in the read/write to ram and can inadvertently change the addressing.
The last line is tied to the write enable of the ram so that when low it is in write mode and when high it is in read high.
The remaining lines of the 8255 are Reset which is tied through the 7404 to the Propeller's Reset since it is active when high, RD which is tied high to disable reading and WR which is tied low to always enable writing.
The ram has Output Enable which is tied high so the data bus is always active when enabled.
If this proves to be a viable layout I'll design a PCB to handle 512K Ram. I'm toying with the idea of using a 74138 to add up to 8 512K rams for 4MB of memory.
Dr.Acula: Where do you get your 512K Ram chips? I looked at Jameco and they are $5.95 each.
http://www.futureelectronics.com/en/Pages/index.aspx
Check the package DIP/surface mount when you order, but they have been as low as $3.20.