Dual Port RAM Board

Dual Port RAM Board Photo

I saw some inexpensive Dual Port RAMs on eBay (IDT7006) and came up with the idea for this project.  It provides a 16K bank of RAM which sits in two 8K banks on the System Computer which can be written to and read from a PC via USB.  An Arduino Nano provides the PC-USB interface.

SW1 selects the two 8K banks, they do not need to be adjacent but one must be odd and the other even.  SW2 write protects the RAM.

No special software is required on the PC, communication is simply using a terminal program e.g. RealTerm (baud rate set to 115200)

The format of commands is as follows:

Command Format Description
Intel Write 10<address>00<data> writes <data> to <address> in RAM, in Intel Hex format, usually from a file
Echo e<0 or 1> toggles the echo state
Intel Read i<address><nbytes> reads the specified number of bytes from RAM, outputs in Intel Hex format
Debug m<0 or 1>  toggles messages state
Offset o<address> adds an offset to write addresses
Read r<address><nbytes> reads the specified number of bytes from RAM
Write w<address><data>  writes <data> to <address> in RAM
XON/XOFF x<0 or 1> toggles XON/XOFF handshaking state
Reset z resets target

the command 'letter' can be in upper or lower case
<0 or 1> '0' disables, '1' enables feature - if no parameter is specified feature is toggled
<address> up to 4-digits long, upper or lower case hex value
<nbytes> is the number of bytes to read, defaults to 1 (r) or 0x10 (i) if not specified
<data> 1 or 2-digits, upper or lower case hex values

values can be separated by spaces and/or commas
commands can be terminated in CR, LF or CRLF

When sending and receiving files XON/XOFF needs to be enabled both in the terminal program and Dual Port RAM to prevent overrun.

Schematic

Bill Of Materials

Front Panel Drilling

Blank PCB

Dual Port RAM Board PCB

 

Arduino Code

Back to Replica Boards

Acorn Home Page