Electronics > Beginners

EPROM pin replacement compatibility questions

<< < (3/4) > >>

analogix:

--- Quote from: helius on August 24, 2019, 05:12:50 pm ---You can use any address bits you like for bank switching, and arbitrarily re-arrange the address bits (as long as the image you burn to the EPROM is swizzled similarly). There are no special pipelining or page mode requirements on these memories, so any address pin is as good as another.

--- End quote ---

So both schematics will work equally well, but the DIP switch combinations will be different?
What's the method for finding out the DIP combinations in relation to the address pins? Are there tables to be found somewhere?

helius:
Unless I am overlooking something really obvious, I don't think that there is anything special about the DIP switches; they simply act to pull one address pin low (or high).

When you burn an image to an EPROM, the burner sees the address pins in reverse lexicographic order (A15, A14, A13, ... , A3, A2, A1, A0) and the least-significant address bits vary most quickly. So the first byte in the file is at address 0b000000000000000, the next is at 0b000000000000001, and so on.

But there is no particular reason that your application needs to use the pins in the same way. You could use them in the order (A8, A7, A6, A15, A14, A13, A12, A11, A10, A9, A5, A4, A3, A2, A1, A0) if that made the circuit simpler to lay out. Or in the reverse order, or any permutation. At that point, you have two choices for how to burn the image. The first and most intuitive is to plug your adapter, with DIP switches, into the EPROM burner and burn your banks as separate 2732 images (changing the DIPs appropriately). Now you are guaranteed to burn the image in the same way that the application will see it.

The second way is to pre-swizzle the ROM file to send each byte to its "image" in the new chip. The way you would do this is to write a program that takes in a ROM file and loops over each byte, with a counter going up from 0; each byte then gets written out to the target ROM file at a position that you calculate by swapping the address bit of the application with the address bit of the ROM.

oPossum:

--- Quote from: analogix on August 24, 2019, 03:55:19 pm ---I always thought you had to use the most significant bits (MSB) for bank-switching. I've also been told to use pullup resistors, not pulldown. Perhaps there are different ways of doing this....

--- End quote ---

If you use a rotary BCD switch, then using the switch for Vcc and pulldown resistors is required to keep the blocks in the order shown in the diagram you posted. Using the switch for ground and pullup resistors puts the blocks in opposite order from 15 at the bottom to 0 at the top. The diagram you posted showed only half the capacity of the EPROM being used, so the msb is grounded.

analogix:
My mistake (I earlier referred to the 2732 being 2K and the 2764 as 4K -they're twice that).
But the rest should be correct (16 banks of 2732 data (4K) fitting inside a 27512 (64K) and likewise for the 2764/27010). Source: Dataman EPROM memory size chart.

Regarding the rest of what you oPossum and helius write: I'll have to study that in more detail as a lot of this is new to me, but it's certainly useful to know that there are more ways to hook this up so I can possibly redesign it with physical size contraints in mind.

As for programming the 27512/27010:
I'll first join together the appropriate 16 files (BIN files meant to be burnt into 2732 or 2764 chips) using the following DOS command (only 4 files in the examples below):


--- Code: ---copy /b FILE_1.BIN+FILE_2.BIN+FILE_3.BIN+FILE_4.BIN COMBINED_1234.BIN

--- End code ---
or in UNIX (Mac):


--- Code: ---cat FILE_1.BIN FILE_2.BIN FILE_3.BIN FILE_4.BIN > COMBINED_1234.BIN

--- End code ---

With the new EPROMs ready, I should end up with "FILE_1.BIN" as the first/lowest address file and "FILE_16.BIN" as the last/highest file, accessable with the DIP switch combination and I should be able to burn the 27512 or 27010 chips the usual way using the merged files.

DIP switch settings:
I was told by someone else that with the EPROMs prepared that way above along with my schematic (the ones with the 4 highest address bits connected to the DIP switch/pulldown resistors) it's simply a matter of counting upwards in binary code from 0 to 15 with the DIP switch combinations.

oPossum: you suggest using a BCD switch in your schematic, but doesn't BCD refer to rotary DIP switches with just 10 positions? While "Hexidecimal" types have 16 positions.

(from Grayhill 94H series datasheet).

oPossum:

--- Quote from: analogix on August 25, 2019, 10:53:34 am ---oPossum: you suggest using a BCD switch in your schematic, but doesn't BCD refer to rotary DIP switches with just 10 positions? While "Hexidecimal" types have 16 positions.

--- End quote ---

If the switch is marked 0 to 15 then I would call it BCD. Decimal digits are 0 to 9, but decimal numbers can have may digits.
If the switch is marked 0 to 9, A to F then I would call it hexidecimal.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod