Saturday, April 18, 2020

Building a modern TMS2532 drop in replacement ( 4K ROM )

I've bought a few 2532 ROM's on the net and haven't had much success with them.  The problem is they are a) OLD, b) require very high voltages to burn ( 19 up to 25V ) and c) modern cheap burners do not support them.

So I thought hey, lets have a go at making my own . . . and it works really well.

You can skip to the bottom for the PCBs, BOM and Instructions.

Picking likely candidate parts


The first thing I did was source some modern EEPROMS that I thought may work. I ended up getting some AT28HC64B EEPROMS. They are 5volt tolerant and can store up to 8K of ROM.

The second thing I got were some SOIC to DIP adapters to I could prototype and burn them and put on the 4K character ROM.



A really rough schematic 

The next thing to do was to see how I could convert the AT28HC64B to match the pin out of a 2532.  This is where data sheets are really helpful

Datasheet for AT28HC64B

Datasheet for 2532

In the end I came up with this.  I did make some tweaks but it's essentially it.  The main thing I did was ground OE in stead of tying it to CE.


Let's Burn!

The first thing I did was to just burn the C64 Character ROM to the chip.  I did have an El-Cheapo burner but opted to get a more expensive GQ-4x4 for better 2532 support.  It didn't burn my 2532 EPROMs, but I have a feeling they are not any good.

I decided to use the upper 4K of the ROMs.  The ROMS have addresses from 0 to 1FFF in HEX.  This means I can put the ROM in two places 0 to FFF or 1000 to 1FFF.

The chips burnt and read correctly the first go.  I was really impressed.


Making a 2532 EPROM

 The next thing to do was to actually make it a replacement for the 2532 EPROM.  I implemented my schematic on a breadboard. Then the big test.  Could I read it back off of the chip using the 2532 Device instead of the AT28HC64 Device.  I plugged it in and hey presto it worked.

I dumped it out as a bin and did a binary compare on the read image with the c64 character rom image and it was exact.


Hold on to your chair it's testing time

I was pretty scared plugging this contraption in truth be told.  In the end however it worked beautifully.



PCB Design

My aim here is to create PCB small enough to fit in a socket and not interfere with anything and to create an adapter board so you can reprogram it with ease.

Because it is an 8K EEPROM it would also be nice to be able to jumper the upper or lower 4K.

So here is my go at the 2532 PCB.  The pair of jumpers on the right select the upper or lower 4K.  The jumpers on the left are to put the EEPROM into Read only and Output mode.

You must remove all of the jumpers to write to the EEPROM via a special adapter which also uses the 3 pins at the top.

 

Here is the adapter board for programming. 


Now all I have to do is get them manufactured.  I have a few other opensource projects I'd like to build so I'll get an order ready to go for my prototype soon!

Making the adapter board

The PCBs have arrived.  I have enough parts to make the adapter board so lets make and test it!




The adapter board allows you to burn the EEPROM using the AT28HC64B board profile in your EEPROM burner, if you were to try to burn it as a 2532 it would just catch fire!

I've soldered it up using a ZIF socket like so.


It fits very nicely into the EEPROM burner and as I'm waiting for some more AT28HC64B's I've used my prototype version to try it out and it works very well.  I did have to slow down the burner to normal speed.  I think this is because the wires that connect to the breadboard are quite long.

I can't wait to try out the EEPROM board.

Building and testing the replacement TMS2532

Finally all of the parts have arrived, so lets build.


Reading, erasing and burning the EEPROM is done with the adapter board for an AT28C64 and none of the jumpers on.
When complete you can put on the jumpers and read the board directly as a TM2532 EPROM.



Once I'd finished confirming it in the burner it's time to try it out.  It works very well indeed.



Build it yourself

You use these projects completely at your own risk!

1) TMS2532 (AT28HC64B) modern replacement EEPROM

    Note:        You cannot burn this chip as a TMS2532, you must use the adapter to
                    burn it as a AT28HC64B.
                    When burning you must remove all of the shunts!!

    BOM
  •     PCB available at PCBWay
  •     1 x AT28HC64B
  •     4 x 4.7K Ohm Resistors SMD 0805 ( pullup / pulldown resistors )
  •     2 x 12 pin headers ++ ( 0.1" / 2.54mm )
  •     4 x 2 pin headers ** ( 0.1" / 2.54mm )
  •     3 x 2 pin shunts ** ( 0.1" / 2.54mm )
   
    ** Optional ( you can solder the shunts after burning instead if you like ).


2) TMS2532 (AT28HC64B) Adapter

    Notes :    This fits between the EEPROM burner and the modern
         replacement EEPROM so you can burn it as a AT28HC64B.

    BOM
  •     PCB for Adapter at PCBWay
  •     1 x 24 pin ZIF Socket ( or you can use an ordinary Socket ) ( 0.1" / 2.54mm )
  •     1 x 4 pin header 90 angle ( 0.1" / 2.54mm )
  •     1 x 3 strand Male <=> Female jumper wire ( 0.1" / 2.54mm )

Burning the EEPROM

  1. REMOVE ALL SHUNTS from the TMS2532 (AT28HC64B)
  2. Insert the Adapter into the burner
  3. Insert the TMS2532 (AT28HC64B) into the Adapter
  4. Insert the THREE Jumper wires from the Adapter into the TMS2532 (AT28HC64B).
  5. Burn the ROM as a AT28HC64B.
    Remember this is an 8K EEPROM so your options are
  • Join 2 4K ROMS together and burn 8K starting from 0000-1FFF
  • Burn one 4K ROM in the LOW position from 0000-0FFF
  • Burn one 4K ROM in the HIGH position from 1000-1FFF
    
    The three jumper wires bypass the pullup/pulldown resistors so it can burn properly.
    It should look like this picture.


Using the EEPROM

    Once you have burnt the EEPROM remove it from the burner and install the shunts
    You will see a block of 8 pins under the 3 pin programming jumper.
    You'll notice the text 4K H / L this is the top of the board.
    Holding the board with the text at the top the pin pairs are

 High LowWE OE
 High LowWE OE

    To use the EEPROM you must shunt either the High (1000-1FFF)
    or Low (0000-0FFF) Address but NOT BOTH.

    You must shunt both WE and OE.

    Your EEPROM is ready for use.
   






No comments:

Post a Comment