Jump to content
IGNORED

512k SRAM upgrade V1.3


HiassofT

Recommended Posts

Short answer: yes.

 

As a bare minimum on the XL series you need to bend up PIA pin 17 (PB7) and the MMU pin, the GAL logic controls the selftest input pin of the MMU.

 

On the XE series you also have to bend up PIA pins 12-15 so the on-board extended RAM gets disabled.

 

In short: better bend up all PIA pins mentioned in the docs, then you are on the safe side.

 

so long,

 

Hias

 

Excellent - that was exactly what I needed to know,

 

Many thanks Hias!!!

Link to comment
Share on other sites

Hias has already explained how the relative simplicity of the GAL chip he used here made implementing '512k Compy' emulation impossible. I wonder if the same drawbacks make building a 1mb 'SRAM v1.4' with little modification to the basic circuit a similarly impossible task?

Edited by morelenmir
Link to comment
Share on other sites

Hias has already explained how the relative simplicity of the GAL chip he used here made implementing '512k Compy' emulation impossible. I wonder if the same drawbacks make building a 1mb 'SRAM v1.4' with little modification to the basic circuit a similarly impossible task?

One problem is availability of SRAM chips: the largest 5V DIP chips you can buy are 512kx8 (unless I missed something). So you'd need a stack of 2 chips and another IO on the GAL for the second chipselect.

 

The bigger problem is lack of IOs on the GAL. We'd need at least another 2 IOs for BASIC enable input/output - like for PB7/selftest. But there are no larger GALs than 22V10 and most larger ©PLDS then come in SMT packages.

 

So a 1MB upgrade would have been a lot more complicated and expensive - and not as easy to build anymore.

 

so long,

 

Hias

  • Like 1
Link to comment
Share on other sites

One problem is availability of SRAM chips: the largest 5V DIP chips you can buy are 512kx8 (unless I missed something). So you'd need a stack of 2 chips and another IO on the GAL for the second chipselect.

 

The bigger problem is lack of IOs on the GAL. We'd need at least another 2 IOs for BASIC enable input/output - like for PB7/selftest. But there are no larger GALs than 22V10 and most larger ©PLDS then come in SMT packages.

 

So a 1MB upgrade would have been a lot more complicated and expensive - and not as easy to build anymore.

 

so long,

 

Hias

 

I see what you mean - its a question of balancing the degree of difficulty involved against the likely reward... Life in a nutshell really!!!

 

And besides that.... 576k is a lot of memory. For me it is one of the coolest memory upgrades available and I would not opt for a bigger memory expansion.

 

I agree entirely, at least in regards the coolness factor!!! Aside from the rigours of using stripboard I can't say how much I have enjoyed putting this little project together this week. To be honest I've even enjoyed the stripboarding part in its own way, although I wish there were an 'Eagle' for stripboard - maybe I should give 'VeeCAD' or 'LochMaster' a try? It has genuinely taken me right back to my childhood.

 

576K ought to be enough for anybody. :)

 

I know - this 'Client32' networking fad is never going to take off!!!

Link to comment
Share on other sites

  • 1 month later...

Well... Given I started this thread asking for advice and received a very great deal of fascinating guidance from you chaps, I feel I should conclude my description of SRAM v1.3 mod process as I experienced it with as much detail as possible.

 

When I last posted I had drawn out a practical circuit on graph paper to guide the strip-board assembly. When it came to actually transferring this drawing to the real world I encountered a couple of not insoluble, but significant hiccups.

 

First of all, by necessity I bought the cheapest strip-board I could find on eBay. In contrast, when I built things as a child I had always raided my father's electronics stash for parts and he clearly had invested a little more wisely in spares. His superior stock had tracks that were very slightly concave, dished 'in' to the material of the board with a very small radius and each through-hole was marginally recessed as well. This spacial arrangement encouraged the liquid solder to stay put around the component leg you were attaching. The board I got from eBay had absolutely flat tracks and it was challenging to get the solder to collect and then cool in the right place. Obviously not a critical problem by any means, but worth noting for the future.

 

When it came time to break tracks I discovered the tool I had for that purpose did not like eBay strip-board either and would not cut. Instead I improvised by putting a 7mm general HSS drill bit in to the Flexi-shaft accessory for my Dremel and used it to break the tracks instead. This approach really worked well and made short work of both the copper and also any stray mounds of solder that had built up as a result of the earlier issue. I remember as a child for some reason looking on the track-breaking process as a colossal pain in the neck. The Dremel makes it simple and I will certainly do it this way for future projects.

 

Other than these two extremely minor problems I found it pretty easy to throw my design together, only hitting stumbling blocks when I noticed I had misplaced a series of pull-up resistors from the GAL for some reason - probably tiredness - and had to reposition them slightly upwards by three holes each. I used sockets for all three IC's, pin-headers to connect the various address, data and signal lines to the mod, then jumpers to control the board's memory layout and provide a cut-out for the battery backup if necessary. This is the board I ended up with:

 

post-31546-0-06828300-1472662060_thumb.jpg - Component side: rather neat even if I do say so myself!

 

post-31546-0-34809400-1472662063_thumb.jpg - Track side: somewhat less neat...

 

At this point I am pretty sure everything was in the proper place and electronically sound. I must also stress what follows is entirely my own experience. I have absolutely no doubt whatsoever that the original design is perfect; many of you chaps have successfully built and installed a 'SRAM v1.3' yourself and it goes without saying that Hias is a master electronics craftsman without peer. None of the problems I encountered from here onwards were the result of either the electronic design of the mod nor the advice I received - all the failings were entirely my own and due to a lack of skill, imagination and some shortfall of luck. In no way should what I will go on to relate be taken as even slight criticism of the device itself.

 

So - the SRAM v1.3 requires that it be patched in to all the Atari's address and data lines along with a couple of attendant timing and switching signals. Moreover the design document suggests this be achieved by soldered the various components directly on to the Atari motherboard itself, piggybacking signals and running patches where necessary. I have always been averse to this type of 'architectural soldering' as the approach was recently and cleverly described to me. Not only does it lead to quite a bit of clutter but I was fitting this mod with an eye to it being a medium-term inexpensive stop-gap while I could save up for one of the professionally produced units like the Ultimate1MB, the Antonia 4MB or the RAM 320XE/576. Therefore I wanted the mod to be easily and quickly removable with a minimum opportunity for damaging the Atari while doing so. I think Hias himself was also thinking along these lines to some extent when he first put it together because he does mention making a PCB for the SRAM v1.3 as a valid option. This is primarily why I went the strip-board route. Unfortunately I was just 'saving up trouble' for myself, although I did not realize it at the time.

 

As mentioned there are 16 address lines, 8 data lines and another 8 signalling and timing lines to patch - 32 in total and that is quite a lot! For the sake of simplicity I decided to mainly access the required signals from the CPU chip itself with only a handful of others coming from the PIA, the LS08 and the 'Freddie' IC. I cannibalized an old 'rainbow' Arduino ribbon cable, chopping off the male DuPont plugs and leaving the female sockets in place at the other end. This would provide me with reliable and removable connections to the SRAM v1.3's pin-headers while making it possible to solder on to the shoulders of the CPU legs. I used a light hobby vice to grip the chips firmly but without damage and got stuck in. However by the time I had made perhaps 15 patches I encountered the obvious problem - the CPU was starting to look like a Sea Anemone with springy wire tentacles! It was hard to access the next leg in turn and worse still when I had to turn the chip over for the patches to the other row. Plugging the chips back in was also a little tricky, but nothing like the cats-cradle madness of trying to correctly run each patch to its proper pin-header on the SRAM v1.3 !!! The Arduino cable was far from a top-quality source of wire and the joints I had made to the IC's quickly work-hardened as I wove the wires around each other. Before I had everything connected up several of the wires broke off from the CPU and had to be laboriously reattached. This happened several times in a row and I started to feel like the proverbial little Dutch boy with his fingers in the dyke! Nonetheless with perseverance I finally got everything seemingly attached and powered up, got a normal picture for a fraction of a moment and then... The machine locked up. That was it. I forced myself to go over all the joints again that evening but ended up in no better shape. Chucking it in, I came back the next day with the same result. I just could not get all the wires properly connected, all at the same time; the joints always work-hardened and broke off or at best proved electrically unreliable.

 

After a few days away from the project I had the sudden inspiration to solder pin-headers down each row of the chip's legs at their shoulders - taking care that they could still fully slot in to their sockets - and then use DuPunt plugs to make a firm mechanical and electrical connection here as well. This struck me as quite a brainwave and occurred one evening in bed while listening to 'Welcome to Nightvale' - an odd connection in itself!!! The down side to this was it became necessary to make 32 new DuPont joints and this is not easy without the proper crimping tool (which even second-hand from eBay runs in access of £80). I was running low on patience and mental energy and no doubt did not do the best job imaginable. After two more laborious evenings I had everything done and could connect it all up solidly. I still needed to weave a Lovecraftian mess of wires, but at least nothing dropped off mid way! Power on... and success!!! The machine booted and taking great care I attached my keyboard and fired up XRAM. More success!!! It saw the new 512kB and began checking out the RAM... And then I must have nudged something because at that point the machine locked up. My language was not repeatable!!! To be frank by that point I had really had enough of the whole thing. Maybe I could have found a crimper that made better connections without costing my soul, indeed maybe I could have thought up another dodge around that whole issue. However whatever I tried would have called for more supplies and I had already spent more than £40 on a supposedly quick and easy project. I was done. A few weeks later I ended up buying a new Ultimate1MB from Lotharek.

 

So, I would sum up my experience in one line by saying 'The SRAM v1.3 is an excellent design which I personally could not get hooked up'. Thinking constructively; if I were to go back to it then I would certainly use 'Eagle' or 'TinyCAD' to build a real PCB and send it off for professional etching. As part of that design I would use a pass-through DIL-40 plug or Harting cable that directly connected the mod board to the CPU socket and then transferred the CPU to the mod. This would make it simple to patch in to the appropriate signals with no chance of a bad connection. Failing this I would perhaps try the fancy double-sided strip-board and use double-ended Verro pins to make a similar arrangement. If all else failed I would use the 'wire-wrap' style of DIL socket whose long legs would stick well through the strip-board and again allow a pass-through to be formed.

  • Like 4
Link to comment
Share on other sites

I started down this same path several years ago (maybe it was still at V1.2?), but quickly lost interest. I found renewed interest when Mega-Hz started selling his 512K board. It is essentially the same upgrade, but a lot more "installer-friendly," coming with two PCB's. There are still several connections to be made, but much simplified. I used that in a "souped up" 600XL for several years, and then ultimately replaced it with an Ultimate 1MB (which was finally replaced with Simius' Antonia). Although the Ultimate offers more features, in my experience it is "touchy" as to what machines it will perform well in, and to boot, I had a Candle V2, so I had to go through the Xilinx cpld update. Not terrible, but not fun, either. The Mega-Hz 512K was absolutely solid from day one. Here's the link, although you may have to use Google's Translate.

 

http://www.mega-hz.de/Angebote/512K/512k.html

 

-Larry

 

Edit: his pics show three boards, but I don't remember getting a PIA adapter board with mine. I was thinking that my connections were directly to the PIA. (?)

Link to comment
Share on other sites

I started down this same path several years ago (maybe it was still at V1.2?), but quickly lost interest. I found renewed interest when Mega-Hz started selling his 512K board. It is essentially the same upgrade, but a lot more "installer-friendly," coming with two PCB's. There are still several connections to be made, but much simplified. I used that in a "souped up" 600XL for several years, and then ultimately replaced it with an Ultimate 1MB (which was finally replaced with Simius' Antonia). Although the Ultimate offers more features, in my experience it is "touchy" as to what machines it will perform well in, and to boot, I had a Candle V2, so I had to go through the Xilinx cpld update. Not terrible, but not fun, either. The Mega-Hz 512K was absolutely solid from day one. Here's the link, although you may have to use Google's Translate.

 

http://www.mega-hz.de/Angebote/512K/512k.html

 

-Larry

 

Edit: his pics show three boards, but I don't remember getting a PIA adapter board with mine. I was thinking that my connections were directly to the PIA. (?)

 

It looks like he decided on the pass-through method as well. I actually underestimated the number of patches necessary - its more like 38 plus the VCC and GND connections! That is such a large mass of wire that I really don't think you could do it otherwise, not and actually close your case! I guess there is a board for the CPU and a board to hold the GAL. I can also see how a third board to the PIA could be useful just for the pull-up resistors. Otherwise you have to be creative with positioning and soldering them physically over the top of the chip, then connecting various patches back to the SRAM and GAL.

Link to comment
Share on other sites

@morelenmir

 

Wow that looked very nice.

 

I did this upgrade too, but I glued the gall upside down inside the case and I piggy-back mounted the SRAM on the BASIC rom and for the rest it was a million wires. (I did not do the battery backup, and I also did not do the jumpers).

 

Although it was a giant pile of wires, I must say this Hias upgrade is fabulous. It is rock solid and it absolutely never fails.

 

But I must say: well done, it looks awesome.

  • Like 1
Link to comment
Share on other sites

@morelenmir

 

Wow that looked very nice.

 

I did this upgrade too, but I glued the gall upside down inside the case and I piggy-back mounted the SRAM on the BASIC rom and for the rest it was a million wires. (I did not do the battery backup, and I also did not do the jumpers).

 

Although it was a giant pile of wires, I must say this Hias upgrade is fabulous. It is rock solid and it absolutely never fails.

 

But I must say: well done, it looks awesome.

 

You are extremely kind ProWizard!!! I think the strip-board project itself went fairly well and I am actually wondering if I could attach it to the Atari 400 I have spare instead. I would certainly still need some kind of pass-through arrangement for the majority of the signals though.

 

As you say; by all accounts the design is fantastic and I agree with that assessment entirely - very lean, several configurations and also offering optional battery backup if you want it. I really miss that last feature even on the Ultimate1MB itself.

  • Like 1
Link to comment
Share on other sites

  • 4 years later...

I know I'm resurrecting an old topic, but I'm not really clear on a few things. 

 

Does the 600XL need to be upgraded to 64k first?  I saw it mentioned in some of the threads, but the documentation on HiassofT's nor Mega-Hz's website make any mention of 600XL needing to be upgraded first.

Has anyone tried using the ATF22V10C-15PU GAL?  Any incompatibilities with the code.

Lastly, I don't have a GAL programmer, and since I'm not going to really make more than a couple of these, can I get these programmed from someone? 

 

Thanks

 

Link to comment
Share on other sites

22 minutes ago, HiassofT said:

Using an ATF22V10C should work, but I haven't tested it myself.

Worked fine in our project, we used the 15 ns version (ATF22V10C-15PU) and they're cheap at less than $2.

576NUCplus_XRAM_schema.thumb.png.1451167726ae5703a74e8a39bc9bdcde.png

 

Keep in mind that this is slightly different connection-wise then Hias's 512k SRAM V1.3 upgrade, but in principle it should be the same requirements as far as the ATF22V10C PLD is concerned.

 

Link to comment
Share on other sites

47 minutes ago, wildstar87 said:

Is there any way for the upgrade to be used like the Lotharek upgrade, in that the original memory is entirely bypassed?

No. The design goal of this upgrade was to provide a simple and easy to build RAM upgrade in addition to the base memory. Replacing the base 64k memory as well would have complicated things a lot.

 

so long,

 

Hias

Link to comment
Share on other sites

1 hour ago, wildstar87 said:

Is there any way for the upgrade to be used like the Lotharek upgrade, in that the original memory is entirely bypassed?

tf_hh sells a 576KB SRAM upgrade for the 600XL that includes 64KB base + 512KB extended RAM, it connects to the ANTIC socket. Unfortunately it is out of stock at this time.

 

http://www.van-radecke.de/STUFF/tfhh_HW_info.pdf

Link to comment
Share on other sites

1 hour ago, wildstar87 said:

Well part of the reason I wanted to do it, was just to build it myself.

 

In theory, what would it take to have it replace base memory as well?  I might try modifying it myself, but it really is also for my curiosity.

You could take a look at the schematics of mytek's 576NUC+, it uses SRAM for both 64K(UM61512A) base + 512K(AS6C4008-55PCN) extended RAM. 

 

The latter has 5 connections to the EMMU, I think this is a modified version and don't know if would work with a stock EMMU.

Link to comment
Share on other sites

It is pretty much a matter of programming the GAL. The most effective way to make changes is to plug the board into the CPU and connect a 20-pin flat cable to the new board from the MMU socket. No added wiring - plug and play.

 

Looks something like this: (this is not a memory upgrade...)

 

Bob

DSC01813.thumb.JPG.5ecf25a63db1da25dc909f07617bf75e.JPG

Link to comment
Share on other sites

  • 3 weeks later...
19 hours ago, wildstar87 said:

Is the GAL EMMU code available somewhere?

For the 576NUC+ version of this extended memory upgrade this is the PLD EMMU code that was used thanks to @tf_hh: 576NUC_512K_EMMU.jed

Uses Microchip/Atmel ATF22V10C-15PU PLD.

 

And here's the 576NUC+ schematic with @tf_hh's implementation (reference page 2): 576NUCplus_schema_only_3-3-2021.pdf

 

Keep in mind that this is an altered version of Hias's circuit and GAL code and is therefore incompatible, but it's one that has been extensively tested and works well.

 

Edit: For @HiassofT's version, here's a link to his website which has links to the GAL jed, GAL source, and schematic (scroll down to see it): https://www.horus.com/~hias/atari/

Edit2: The TL866 Plus will program the ATF22V10C-15PU, but the older MiniPro TL866C will not.

 

Edited by mytek
Added link to HiassofT's Atari 8bit world website
  • Like 3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...