• Hello MLAers! We've re-enabled auto-approval for accounts. If you are still waiting on account approval, please check this thread for more information.

Another IIci ROM hack

My understanding is that the data bus (D0 to D31) is directly wired to everything -- ROM, RAM, everything else imaginable. Whatever is being addressed is allowed to put stuff on the bus for the CPU to read.
That was my understanding as well.

The ROM has chip select/output enable pins to tell it when to output data and it has its own address space. A0 of the ROM socket is not wired directly to A0 of the CPU, but rather through some kind of address decoding logic so that it knows the addresses from $40000000 to $50000000 should be passed on to the ROM SIMM's A0 through A20 or whatever.
It's time for me to crack the books and unlimber the continuity tester again.

I think RAM behaves slightly differently in regard to where you tell it what to read/write (I've never really looked that up and I should), but it's still the same idea -- I'm fairly sure the RAM socket only has the RAM space wired up. Otherwise, how would each RAM chip know that it's supposed to listen to the section of the machine's address space reserved for RAM as opposed to the address space reserved for ROM or the sound chip or whatever else?
My understanding was that all memory runs through a controller, Paging (whatever that is) is done by the MMU. I'll need to check on that out. More is accessible through the RAM interface than meets the eye. Video Out solutions for the PB100 were wedged into the system through its RAM expansion slot as one example.

Anyway, I haven't researched it much, this is just what I'm thinking off the top of my head. It's very possible I'm forgetting something, but that's just how I'm seeing it in my head...
The pics in my head show all the Data and Addressing lines hooked up to the 72 pin SIMM, the differences being the Row Address Select and Bank select lines, IIRC. 32 bits of address space is 32 bits of address space AFAIK. As you said, how that's chopped up via the decoding circuitry is a different story . . .

. . . but that's where the patch wiring I mentioned enters the picture! }:)

 
Thanks for the info on your PSOP parts trag! I actually can't make the SIMM any bigger, or much bigger anyway. It will run into clearance problems in the SE/30 otherwise--at least that's what I understood when I was designing the original SIMM. I would be interested in leaving pads for both TSOP and PSOP on a SIMM if I could get them to fit, but it looks like the TSOP and PSOP pinouts are totally different so it would require some trace routing.
I'm not sure if you misunderstood me here, so apologies if I'm reiterating something you already understood.

I was not suggesting that you put both TSOP and PSOP pads on the SIMM.

The Micron part you are looking at using is also available in the PSOP package. So, instead of getting the TSOP version of the Micron part, you could get the PSOP version of the Micron part. Although you would need to check whether anyone actually sells the PSOP version. According to Micron's datasheet, they definitely make the PSOP (SO44) version.

And, if you're using the PSOP version of the Micron part, then your SIMM would also work with the HY29F800 PSOP chips which I have, as the pinouts are a JEDEC standard.

However, using the PSOP version of the chip would make the SIMM larger, because the PSOP parts are larger than the TSOP parts -- but not nearly as much larger as trying to squeeze both TSOP and PSOP on the same SIMM.

For example:

KansasROM.jpg.c1664824ed7cf26698f9f8addf6b52e8.jpg


Although the above is a 160 pin DIMM, rather than a 64 pin SIMM.

 
Last edited by a moderator:
I was going to ask the same question about the feasibility of level shifting, so I'm glad you already asked it jt! I don't know anything about level shifting.There are 32 data lines and 24 other shared control lines (21 address lines plus WE,CE,OE), so I'd need a total of 56 pins level shifted. It could be done right near the bottom of the SIMM near the pads that go into the socket. If there are chips with 16, looks like it would take four of them total. I think the easier route (and what I'll probably do) is stick with 5V parts though.
Doh. I was thinking about level shifting at each chip, and of course level shifting at the SIMM I/Os makes more sense -- uses about half as many level shifters. But it does increase expense, and more importantly, the amount of soldering to assemble the thing.

 
Ah, thanks for the clarification trag! I misunderstood what you were saying.

That's a great idea, but I couldn't find anywhere that had the PSOP version of the Micron part. I know it exists, but I just can't find it available anywhere :(

I appreciate the suggestion, and I'm sorry I can't help lower your stock of the 8 megabit chips you have with this route, but I think I'm already far enough down the path of the TSOP part that I'll use it. I feel good knowing I will have completely maxed out the ROM SIMM capability by using the entire 8 MB address space. Soldering may end up being a challenge with the fine pitch...we'll see when I get there. I'm assuming that plenty of flux and solder wick should help me out. It probably won't be as annoying as the PLCC surface mount sockets though, and I could use the practice with fine pitch soldering :)

 
Haha, I don't think the fine pitch soldering should be too bad...it's probably more convenient to do it that way than the toaster oven for me :)

I've done a ton of manual tweaks. I'm not done yet, but I've moved many traces around to allow more of the SIMM to be covered by the ground copper pours on the top and bottom:

pic2.png

 
There are some great YouTube videos about fine-pitch soldering. You do not and should not have to solder pins individually, except for soldering the corners at first to keep the chip in place. You will soon see that this is WAAAAAY easier than when you soldered PLCC sockets onto the previous revision.

What type of soldering iron do you have? This is the one that I bought, and it works very well for this:

http://www.amazon.com/Weller-WES51-Analog-Soldering-Station/dp/B000BRC2XU

I set it to 75° or so for this sort of thing.

Removing the TSOPs is easy too. You can heat everything up with a pain peeler gun and give it a tap to knock the chips off, or you can use something called ChipQuik. (free samples available!)

 
Last edited by a moderator:
Yeah -- that's how I solder the AT90USB646 on the programmer board too. Soldering these new chips will basically be the same task except with a finer pitch so I have to be more exact with placement and bridges across pins are more likely to happen.

I have a Hakko FX-888, looks like it has very similar capabilities for temperature settings. I also have some ChipQuik, it's amazing (but expensive)!

 
For chips like those, I just run a bead of solder down each row of pins and make sure the whole bead and every pin gets hot enough. Using extra flux helps. Then come back through afterwards with desolder braid and remove any excess. It seems to work surprisingly well for fine pitch soldering.

 
Agreed--in fact, I'd say flux is the key that makes it all work. I guess the solder has some flux built in, but putting some liquid flux around the pins before soldering seems to help immensely.

 
Here's my work tonight on the PCB:

pic3.png

It may look like the copper areas have shrunk, but that's because I increased the isolation for them to 16 mils. Before I increased the isolation, I had actually added extra copper. I'm getting pretty close to having something ready to order :)

 
Ooh, looking good... I want to (in annoying commercial voice-over): "Collect all three! Order now!" :b&w:

 
Haha, that's right! Well, I hope this SIMM works well enough to allow you to collect all three!

I think I'm done laying it out.

pic4.png

And of course here are the 3D renderings to see what it will look like:

ROMSIMM-TRY3.png

ROMSIMM-TRY3-2.png

The more I look at the datasheet for the chip, the more I'm pretty sure this is going to work. The chip can do 16- or 8-bit data mode. I force it into 8-bit mode by connecting the byte/word mode selection pin to ground. In this mode, the D15 pin on the chip becomes a byte select pin (high or low byte), essentially becoming the lowest address line.

To unlock the existing 2 MB chips, you write an unlock sequence: $AA to $555555... (filling up all of the address lines with that pattern), then $55 to $AAAAAA... (filling up the address lines with that pattern). Then there's a command set for other stuff.

To unlock these new chips, you write this sequence instead: $AA to $AAAAAA... and $55 to $555555... it's the exact same commands, but the addresses are reversed. I *believe* this is due to the extra byte select pin and my software will actually treat it correctly because the pins starting at A0 do match that pattern, but I don't know for sure. If it doesn't match, it'll be a simple patch to the programmer board's firmware to fix the command patterns for the bigger SIMM.

 
ARRRR!!!!! I'll be wanting one to complete me SIMM booty, matey.

I spy lots of room for the Pirates of SIMM Slottage logo, if not the LED(s) on one side, me bucko! [}:)] ]'>

 
How about just one LED and an eye patch? :?:

Now if someone figures out how to convince me IIsi it be somethin' else, we can Rocketize the little snark! [}:)] ]'>

 
I just don't feel good about the LED right now. I want to make sure the board works without anything extra. If it works OK, then in the second batch I might think about LEDs and stuff like that. I guess it's kind of the same way I did it last time.

But I did add the Jolly Roger to the silkscreen :)

ROMSIMM-TRY3-decorated.png

ROMSIMM-TRY3-decorated-2.png

 
Woooooohoooo! This thread is just crazy. :)

I just sent off gerber files to Seeed Studio for this new board. I cleaned a few more traces at the bottom, and I'm ready to go now. Can't wait to put one together and try it out!

This is also the first SIMM I have done with EAGLE rather than FreePCB, so it's quite a major change. Hopefully it works out OK. The generated gerbers look fine to me at first glance!

 
CONGRATS! What color is it going to be? Blue would be nice and then Black if they finally have it available for the final version w/LED.

Got linkage for Eagle, how much is your license for it? Would FreePCB be enough to do a RAM/SIMM Layout?

 
Back
Top