2MB Fast Linear SRAM

Code: DB213

An alternative to the RCBus 2MB linear memory module, this module uses a specially designed interface to allow for high speed memory operation. Break the 64K barrier with this high speed memory module designed for the ozRaptor module

The ozRaptor module supports up to two of these modules, to allow for up to 4MB of linear direct access 0 wait state memory.

General Description

A key feature of the eZ80 CPU is its 24bit addressing capability allowing programs to be written that can utilise up to 16MB of memory natively. No paging or banking hardware needed. No need for applications to be developed that limit themselves to 64K or complex paging mechanisms.

Unlike standard Z80 memory modules that only works with a 16-bit address, the Fast 2MB Linear RAM module is specifically designed to take full advantage of the eZ80’s 24-bit address space. It provides a continuous 2MB block of memory that can be directly accessed by the eZ80, making it possible to build or port larger programs.

Key features

Other technical notes

Images

Software Status

There are currently a number of software projects under development to take advantage of this memory module.

* The languages enable the writing of application to take full advantage of the extended memory module. The ports are still under active development. See their respective repos for details of porting progress.

Although it may be possible to use the official Zilog ZDS II development studio to create your own ‘applications’ - this is not a recommended approach.

The EZ80.COM and EXE.COM applications can be downloaded from the one of the official releases on the github repo : https://codeberg.org/dinoboards/ez80-for-rc/releases. Download the releases.zip under the Assets section of the release you want to use. Within that zip file you find the compiled applications. These are standard CP/M applications and will only execute on an eZ80 CPU.

Testing the memory

The EZ80.COM CP/M application can be used to verify your memory module is working. Once you have copied it onto your system (typically with xmodem) you can run it to scan, test and adjust the timings of the memory.

Running EZ80.COM with no arguments will report timings:

C>EZ80
              CPU frequency: 25000000 Hz
            Z80 Environment: eZ80's Z80 Compatibility
      On-chip Flash W/S: 1  (80ns)
        Main Memory B/C: 3  (360ns)
Extended Memory CS0 W/S: 2  (120ns)
Extended Memory CS1 W/S: 0  (40ns)
                I/O B/C: 4  (480ns)
         TMR1 Tick rate: 60 (Counter: 218)

To get a list of command line options, run with the -? argument

C>EZ80 -?
Usage: ez80 [options]
Options:
  -F=<number>W      Set On-chip Flash Wait States
  -M=<number>[W|B]  Set Main Memory Wait States or Bus Cycles (CS3)
  -M0=<number>[W|B] Set Extended Memory Wait States or Bus Cycles (CS0)
  -M1=<number>[W|B] Set Extended Memory Wait States or Bus Cycles (CS1)
                    Wait States: 0-7, Bus Cycles: 1-15
  -I=<number>[W|B]  Set I/O Wait States or Bus Cycles (CS2)
  -S                Scan extended memory
  -P                Measure Main Memory Performance
  -T=<number>       Set tick frequency rate (50 or 60)
  -? /?             Show this help message

As shown in the help above, to scan and verify your extended memory is working run with the -S option:

C>EZ80 -S
Searching for memory installed from 0x200000 to 0x7F0000
512K bank at 0x200000: None
512K bank at 0x280000: None
512K bank at 0x300000: None
512K bank at 0x380000: None
512K bank at 0x400000: OK
512K bank at 0x480000: OK
512K bank at 0x500000: OK
512K bank at 0x580000: OK
512K bank at 0x600000: OK
512K bank at 0x680000: OK
512K bank at 0x700000: OK
512K bank at 0x780000: OK

4096kb available at 0x400000

Memory @ 0x400000: 8192.00 KB/s

What’s included in this kit

This kit will include all the required parts for the module (PCB, SMD capacitors, and SMD integrated circuits)

This kit can also be supplied with the SMD parts already soldered for you.

Bill of Materials

Quantity Component Self Sourcing*
5 1uF (0805 imperial SMD) Digikey: CL21B105KOFNNNG
1 74AHCT138 (16-SOIC) Digikey: SN74AHCT138DR
1 to 4 CY7C1049GN-10VXIT (36-SOJ) Digikey: CY7C1049GN-10VXIT
2 Right Angle 2x20 Header Digikey: 2057-PH2RA-40-UA-ND
Mouser: 649-68020-140HLF
1 PCB  

What else do I need to make this work?

Jumpers/Headers

J0..J3 - MEMORY ADDRESS CONFIGURATION

J0 to J3 are pads that need to be bridge to enable a specific memory address operations. The module support 2 memory ranges.

Solder and short the top two pads of each, to configure the memory for address range 0x400000 to 0x05FFFF

And short the bottom two pads of each, to configure the memory for address range 0x060000 to 0x7FFFF

WARNING: Its important not to insert two memory modules into an ozRaptor base configured for the same address range. This will conflict and possible damage the RAM or the eZ80 CPU.

WARNING: Do not short all three pads, as this would also cause operational conflicts.

Resources

Assembly Guide

The module can be ordered with all SMD parts soldered. Or if you prefer, you can solder the chips and capacitors yourself.

This module's components are all SMD parts (except for the right hand connector headers).

The SMD parts can be soldered with a conventional soldering iron. If this will be your first attempt to solder SMD components you will need to take your time and pay attention to the points below. (you may wish to practice on a cheap throw away board)

The specific parts have been chosen specifically to assist in visual hand soldering.

  1. The decoupling capacitor are 0805 (imperial), which can be easily seen and positioned using tweezers.
  2. The SRAM chips are in a 36-SOJ Small Outline J-Lead package. These have leads that curl under the IC. The pitch of the pins are 1.27mm, which is half the pitch (2.54mm) of a typical through hole IC.

Soldering item order

  1. Solder each SRAM chip, one at a time, verifying the connections before moving to the next SRAM chip.

  2. After the SRAM chips are done, solder the 74AHCT138 decoder IC.

  3. After all the ICs are done & connection continuity verified, only then proceed with soldering the capacitors.

  4. And finally, solder the 3 set of headers (2x20, 2x3 and 2x16).


NOTE 1 - HAND SOLDERING COMPONENTS - TOOLS

The following tools and equipment is recommended:

SMD soldering tools
  • A soldering iron with a small tip.
  • Small diameter soldering wire - say around 0.5mm.
  • Some tweezers for picking and moving the SMD parts.
  • A tube of no-clean flux. Recommend syringe dispensing container.
  • Some PCB/flux cleaning fluid such as isopropyl alcohol.
  • Visual aid - depending on your eyesight a decent magnify lamp may be all you need.
  • A multimeter to check continuity and potential bridging.

NOTE 2 - CLEAN THE PCB FIRST

Before starting, clean the PCB using a cleaner such isopropyl alcohol.


NOTE 3 - FIRST SRAM CHIP

  1. Pre-tin one top pad of the SRAM footprint.
  2. Place the IC into position - ensuring its aligned. While holding a small downward pressure on the chip, re-heat the pad to weld the pin.
  3. Review the chip's position - if not satisfied with it position, re-apply heat the to pin and carefully tap your IC into position.
  4. Place some flux on the opposite pin.
  5. Place a small amount of solder on the tip of the iron.
  6. And now place the tip onto the pin - solder should now flow and weld the pin.
  7. Double check your IC is aligned - and re-align if needed.

On the initial 2 joint soldering, ensure the chip is pushed down against the PCB - otherwise it might ‘float’ a little and prevent a good soldering.

If you get some pins bridging - for the moment, just ignore it - just focus on ensuring the IC is positioned correctly.


NOTE 4 - COMPLETE THE SOLDERING OF ALL THE PINS.

There are numerous approached you can use to solder the remaining pins.

Soldering with wire only:

  1. Place the tip of the iron on the pad and pin and pre-heat the joint.
  2. Remove the iron.
  3. Place your solder wire onto the joint, and re-apply the iron. You want the inner flux of the wire to melt into the pad to ensure a good join.
  4. If you feel there is insufficient solder on the joint, repeat the above steps.

Soldering with flux:

  1. Apply some flux to the pins/pads.
  2. Apply a small amount of solder to the tip of your iron.
  3. Place the iron at the join and let the solder flow.
  4. Remember to clean your iron's tip at least every 2 or 3 joints.
  5. You may also want to clean flux and add new flux as you progress.

NOTE 5 - CHECK CONTINUITY

Using your multimeter, in continuity mode, check that each pin of the IC are connected to the corresponding pad of the free RAM footprints. Also check that each pin is not shorting with it neighbouring pin.

> When placing a probe on the IC's pin - do not press hard against the pin - as this might give you a false positive if the pin is floating and is not actually soldered.

Almost all pins of each IC is connected in parallel. The only pins that are not connected are:

PIN 6 - this pin should connect to the center pad of J0
PIN 36 - (top right pin) is N/C
PIN 19 - (bottom right pin) is also N/C

All other pins should mirror to the other RAM chip's footprint.

If you identify any pins that are not connected - apply some flux and flow a tiny amount of additional solder.

If you identify any bridging - apply some flux and draw excess solder with a clean iron tip.

After each SRAM chip is done & verified, proceed to solder the next item.


NOTE 6 - SOLDERING CAPACITORS

  1. Apply flux to each pad of the capacitor's footprint.
  2. Using the tweezer, place a capacitor onto the footprint.
  3. Apply a small amount of solder to the tip of the iron.
  4. Using the tweezer to hold the capacitor in place, place the iron on the joint and let the solder flow.
  5. Apply new clean flux to the other side & repeat an application of solder.

Do not fuss if the capacitor is a little wonky. But using your multimeter in continuity mode, confirm the two ends of the capacitor are not shorted. (5V & GND)

Disclaimer

Please note that this is a kit, produced by a non-expert (me) for hackers, DIYers’ and retro lovers, to tinker with. Please exercise caution and follow good safety practices. You will be working with sharp knives, a hot soldering iron, and small metal components. Be mindful of the risks involved in the build process. I will do my best to answer any questions you may have.

This kit is provided as-is, with no guarantees or warranties. By assembling and using this kit, you acknowledge that you do so at your own risk.