Showing posts with label EPROM. Show all posts
Showing posts with label EPROM. Show all posts

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.
   






Tuesday, October 1, 2019

Burning C64 ROMs ( part 2 ) : Cartridge ROMs and the Versa ZIF 64 cart

<== Read part 1

Ray Carlson's website often refers to the Jupiter Lander Cart being a great tool to identify bad Kernel ROMs.  So I searched around the internet for two things.

1) Why the cartridge was good for this diagnostic and a good reference came from the C64 Preservation website on the Commodore Max and Ultimax carts.

2) How could I make a cart and have a bit of fun at the same time, ultimately I settled on BWACK's VersaZIF64 github project and the original project Versa64Cart for the documentation pdf.

Building this project gave me another great excuse the burn some more roms using my Xgpro TL866II Plus and play with my eraser from Big Moon (or the scary skin cancer box).


VersaZIF64

I built this project pretty quickly by uploading the Gerbers to PCBWay and then ordering all of the BOM items from Digikey.  I thought as I was going to get 5 PCB's anyhow, I might as well build them all.

It was really easy to do everything as it was all documented very nicely in the github repository.

Burning the ROM

In the Versa64Cart git repository there is a great PDF on how to setup your cart after you've built it. It explains how to convert the .crt file to a .bin file for burning, how to get the config from the .crt file and then how to set the switches on your cart to get the rom to run.

The ROM itself is a Ceramic DIP 28 with a little window in it so it can be erased using UV light.  This particular chip is a 27C64 which holds a whopping 8K ( the smallest single image I can use for C64 carts ).  I also have some 27C128's which I can jam 16K images on (or 2 x 8K images).



Diagnostics

So how does this cart compare the my other carts and will it actually be useful. Well it so happens that I have a black screen C64 that generates a PAL signal (not as bad as the last repair I did). So these will be be my new test suite for my next C64 black screen repair.
Ultimate 64 - This works with the c64 only when the menu is entered (otherwise I get a black screen).  The keyboard works but games don't load and the drive resets when the C64 resets.
On the last black screen repair a similar result was seen with a good kernel rom and a bad CIA1, but the text was a bit garbled.  In this case the text is perfect and the keyboard works fine.



Dead Test Cart - This doesn't work. There is no white flashing so the RAM is possibly good?



Jupiter Lander - This starts up fine then gets some corruption after the title screen









Saturday, August 31, 2019

Burning C64 ROMs ( part 1 ) : Kernel ROMs

I've always wanted to try to burn new EPROMS for my C64.  I remember as a kid pulling apart my carts and pretending I could mod all sorts of stuff into them.  Well now I can . . . sort of.

As part of my trouble shooting it looked like the Kernel/Basic ROM was shot so I thought I'd have a go at burning one.  Turns out it's actually pretty easy with the right equipment (It also turned out the Kernel ROM on the board was fine after all).

I bought myself a "TL866 II plus" and some 27128 EPROMS from Ebay.

This site has the C64 ROM images and which EPROMS are compatible:
https://ist.uwaterloo.ca/~schepers/roms.html



The UV Erasable ROMs I got were actually ST27c128 which the software didn't have an entry for, but I read on the internet that if you just use the AMD AM27C128 and turn off the "Check ID" it works fine, and it does.



Read part 2 ==>