128K banked flash ROM cartridge

for bbc micro/electron hardware, peripherals & programming issues (NOT emulators!)
User avatar
davidb
Posts: 1901
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

128K banked flash ROM cartridge

Postby davidb » Thu Oct 19, 2017 4:51 pm

I posted a message in the Today I received thread about some cartridges I had partly designed and ordered from a PCB manufacturer.
Image
The design is a bit like the one in the Simple Electron flash cartridge with 39SF010 + 74HCT00 thread except that it also uses a couple of flip-flops in a SN74LS147N to allow address lines A15 and A16 to be set using the ROM paging register at FC73.

Wrestling with the circuit layout, I put the NAND and flip-flops on the front of the board which makes it difficult to fit into a cartridge case. Later revisions of the design in the repository moved those chips to the rear of the board and also shrunk it by about a third. The design I ordered (tagged with r1 in the repository) can be ordered from Aisler.

Just to be clear, I don't make any money from orders made on that site, so I don't object to people using other services to get boards produced as long as they follow the terms of the license. I may well put the design on OSH Park as well so that anyone who wants to get some made has a choice of manufacturer.

I put all the components in sockets on the first board. I'll solder them directly onto the second one to see if it will fit into a case. One of the original ideas behind this was to see how cheaply ROM cartridges could be made by regular people without access to trade prices or facilities. I have another design for a smaller board, like this one, only a bit larger and with DIL components, that can be made more cheaply. I also have some ideas about cartridge cases that I'll have to look into.

User avatar
myelin
Posts: 202
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: 128K banked flash ROM cartridge

Postby myelin » Thu Oct 19, 2017 6:54 pm

Nice work! First time I've seen anyone using the &FC73 paging register... that'll be interesting to play with!
SW/EE from New Zealand, now in San Francisco: http://myelin.nz/
Having fun making hardware projects for the Electron!
So far: 32k flash cart, USB cart interface, 3-cart expansion, Elk PiTubeDirect. Later: Dual ported ram cart.

paulb
Posts: 784
Joined: Mon Jan 20, 2014 9:02 pm

Re: 128K banked flash ROM cartridge

Postby paulb » Thu Oct 19, 2017 7:14 pm

myelin wrote:Nice work! First time I've seen anyone using the &FC73 paging register... that'll be interesting to play with!


Dave and I discussed other mechanisms for having a slot-specific paging register. Unfortunately (but understandably), the output enable signals are relevant only to accesses within the [&8000, &C000) range, and so you cannot use them to enable or disable the paging register access. Adding more logic and various tricks defeats the point of using this incredibly convenient paging register mechanism.

If &FE05 were decoded and exposed as some kind of "slot enable" signal, less specific than the output enable signals and only concerned with the value in &FE05 corresponding to the two sideways ROM banks in each slot, then this would permit some logic that would only permit updates via &FC73 if someone had selected one of those banks first.

Not that we can do much about this in the Plus 1 or the cartridge specification now, but it is worth thinking about for new hardware.

User avatar
myelin
Posts: 202
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: 128K banked flash ROM cartridge

Postby myelin » Thu Oct 19, 2017 9:01 pm

paulb wrote:Dave and I discussed other mechanisms for having a slot-specific paging register. Unfortunately (but understandably), the output enable signals are relevant only to accesses within the [&8000, &C000) range, and so you cannot use them to enable or disable the paging register access. Adding more logic and various tricks defeats the point of using this incredibly convenient paging register mechanism.

If &FE05 were decoded and exposed as some kind of "slot enable" signal, less specific than the output enable signals and only concerned with the value in &FE05 corresponding to the two sideways ROM banks in each slot, then this would permit some logic that would only permit updates via &FC73 if someone had selected one of those banks first.

Not that we can do much about this in the Plus 1 or the cartridge specification now, but it is worth thinking about for new hardware.

Yeah, that's an interesting puzzle. The /FC73 line in the cartridge interface would be much more useful if it only went low for the currently selected cartridge.

/INFC and /INFD go low when the CPU is accessing &FCxx and &FDxx, so if you want to have your paging register at a different address, you can use anywhere in either of those two pages (with &FCxx being more customary, given that those two pages are presumably meant to mirror the two pages made available over the BBC Micro's 1MHz bus).

Something interesting that I've spotted when looking at &FCxx accesses on a logic analyzer is that they all happen at 1MHz; the Electron slows down when accessing &FCxx/&FDxx, like a Beeb would when working with the 1MHz Bus. So if you want faster registers or registers that are local to a cartridge, they would really have to go in the &8000-BFFF range. Most ROM images don't go all the way to the end, so putting a register at &BFFF might not be a terrible idea if you want it to be local to the cartridge.

Of course, detecting accesses to an address like that means comparing 13 address lines, which means at least two more chips (or moving them all into a little CPLD). It could work pretty well though :)
SW/EE from New Zealand, now in San Francisco: http://myelin.nz/
Having fun making hardware projects for the Electron!
So far: 32k flash cart, USB cart interface, 3-cart expansion, Elk PiTubeDirect. Later: Dual ported ram cart.

User avatar
daveejhitchins
Posts: 3691
Joined: Wed Jun 13, 2012 5:23 pm
Location: Newton Aycliffe, County Durham

Re: 128K banked flash ROM cartridge

Postby daveejhitchins » Thu Oct 19, 2017 9:04 pm

David, if you use SOIC packages for the components on the rear of the board and solder-in the main IC on the front you should be able to fit the board into a standard cartridge Case.

I have a case design that will accept my PCBs and a standard Acorn Cartridge PCB. I've had Issues, to be sure . . . e.g. The original Acorn case has a 1mm thick front cover. I initially had 1.5mm. Didn't work! I now have a 1mm thick design (just the central part where the large parts usually sit). I can get all my boards in there, when using low profile IC sockets. The board I can't get to fit is the dual ROM board. Standard EPROMs are just too big. I do have a lead on even lower profile IC sockets, however, the moq and lead time is ridiculous! I'll release the .stl files for the case I have, once I'm happy with them. Would still like to to do a few tweaks . . . Here are a few photos:
IMG_2075.jpg
The above image shows the step between the 1.5mm and 1mm areas.
IMG_2074.jpg
IMG_2073.jpg
IMG_2072.jpg
IMG_2071.jpg
IMG_2070.jpg
IMG_2069.jpg
IMG_2077.jpg
IMG_2076.jpg
The countersunk screws are flush with the back of the case, so no scratching of the plastic in the cartridge slot.

Dave H :D
Last edited by daveejhitchins on Fri Oct 20, 2017 10:39 am, edited 2 times in total.
Parts: UM6502CE, GAL22V10D, GAL16V8D, AS6C62256A, TC514400AZ, WD1772, R6522, TMS27C512, AT28C256
Products: ARA II, ABR, ATI, AP6, MGC, AP5 . . .
For a price list, contact me at: Retro Hardware AT dave ej hitchins DOT plus DOT com

paulb
Posts: 784
Joined: Mon Jan 20, 2014 9:02 pm

Re: 128K banked flash ROM cartridge

Postby paulb » Thu Oct 19, 2017 9:08 pm

myelin wrote:Yeah, that's an interesting puzzle. The /FC73 line in the cartridge interface would be much more useful if it only went low for the currently selected cartridge.


Exactly.

myelin wrote:/INFC and /INFD go low when the CPU is accessing &FCxx and &FDxx, so if you want to have your paging register at a different address, you can use anywhere in either of those two pages (with &FCxx being more customary, given that those two pages are presumably meant to mirror the two pages made available over the BBC Micro's 1MHz bus).


Yes, but it means some extra decoding and the resulting register is still "global", of course.

myelin wrote:Something interesting that I've spotted when looking at &FCxx accesses on a logic analyzer is that they all happen at 1MHz; the Electron slows down when accessing &FCxx/&FDxx, like a Beeb would when working with the 1MHz Bus. So if you want faster registers or registers that are local to a cartridge, they would really have to go in the &8000-BFFF range. Most ROM images don't go all the way to the end, so putting a register at &BFFF might not be a terrible idea if you want it to be local to the cartridge.

Of course, detecting accesses to an address like that means comparing 13 address lines, which means at least two more chips (or moving them all into a little CPLD). It could work pretty well though :)


Yes, I was going to suggest this, but it seems like a huge amount of extra effort to provide a different solution for something that could have been done with two signals, one already being available, one almost being available.

User avatar
myelin
Posts: 202
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: 128K banked flash ROM cartridge

Postby myelin » Thu Oct 19, 2017 10:01 pm

paulb wrote:Yes, I was going to suggest this, but it seems like a huge amount of extra effort to provide a different solution for something that could have been done with two signals, one already being available, one almost being available.

I feel like so many things boil down to that. "It's possible... but if I'm going to put in that much effort, why not do this other thing instead?"

(This is why I'm currently working on a mezzanine board that'll go in between the 6502 and its socket, and let me do pretty much all my Electron/BBC experiments on the same board...)
SW/EE from New Zealand, now in San Francisco: http://myelin.nz/
Having fun making hardware projects for the Electron!
So far: 32k flash cart, USB cart interface, 3-cart expansion, Elk PiTubeDirect. Later: Dual ported ram cart.

User avatar
davidb
Posts: 1901
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: 128K banked flash ROM cartridge

Postby davidb » Fri Oct 20, 2017 12:26 am

daveejhitchins wrote:David, if you use SOIC packages for the components on the rear of the board and solder-in the main IC on the front you should be able to fit the board into a standard cartridge Case.

I was thinking about using SOIC packages but wondered if I'd be able to solder them. My next step will be to solder the DIL components to the second PCB and see how that fits in an existing case.

I know that I'll be unable to reflash the ROM once I've done that - unless I get hold of something to let me reflash it via the edge connector - so I'm working on putting games on there I'll be happy to play, plus a fancy menu. :D

You seem to have sorted out your case supply now. Have you calculated how much it costs to make each case?

User avatar
daveejhitchins
Posts: 3691
Joined: Wed Jun 13, 2012 5:23 pm
Location: Newton Aycliffe, County Durham

Re: 128K banked flash ROM cartridge

Postby daveejhitchins » Fri Oct 20, 2017 10:31 am

davidb wrote:You seem to have sorted out your case supply now. Have you calculated how much it costs to make each case?
Most/All (?) slicers give you a reasonable idea of length and time to print. I'm using Simplify3D and with my current PLA supply the price works out at around £2 for the material taking 3Hrs for a complete case - Just short of 12m of 1.75mm PLA.

The time taken, listed above, is as reported by Simplify3D. It actually takes longer, however, I've not timed it accurately, as yet, but it's significant! I'm going to quiz Simply3D about the discrepancy.

Dave H :D
Parts: UM6502CE, GAL22V10D, GAL16V8D, AS6C62256A, TC514400AZ, WD1772, R6522, TMS27C512, AT28C256
Products: ARA II, ABR, ATI, AP6, MGC, AP5 . . .
For a price list, contact me at: Retro Hardware AT dave ej hitchins DOT plus DOT com

User avatar
davidb
Posts: 1901
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: 128K banked flash ROM cartridge

Postby davidb » Fri Oct 20, 2017 11:16 pm

I spent too much time playing with menu software (see this video) to do some soldering. At least I now have something that I'm reasonably happy with that I can solder into a cartridge. :)

User avatar
davidb
Posts: 1901
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: 128K banked flash ROM cartridge

Postby davidb » Tue Nov 21, 2017 3:18 pm

davidb wrote:The design I ordered (tagged with r1 in the repository) can be ordered from Aisler.

To add to this, I should say that one of the three boards didn't function correctly. I think the edge connector isn't connected properly to the tracks. I thought I would mention that because it's not clear whether it's a spurious issue with just that board or a symptom of a problem with their production process.

If I was looking to make more boards, I would probably try OSHPark just to see if the results are better, though I might be tempted to upload my even smaller board and try that instead. Right now, I don't have a good reason to do that, especially since the flash ROMs I have are 512K and I'd like to do something more with them than just fill them with existing games or tools.


Return to “hardware”

Who is online

Users browsing this forum: No registered users and 6 guests