RetroBrew Computers Forum
Discussion forum for the RetroBrew Computers community.

Home » RBC Forums » General Discussion » Project CheapBus (My latest crazy idea)
Project CheapBus [message #5555] Mon, 19 November 2018 07:56 Go to next message
ab0tj is currently offline  ab0tj
Messages: 57
Registered: October 2015
Location: Colorado
Member
For a while now I've been eyeing the RC2014 system, mainly because I thought it would be nice to be able to create board designs that take advantage of the $2 PCB specials out of China. Every time I look at the bus specs I'm a little bit underwhelmed, though. So lately I have been working on my own bus design. I call it "CheapBus" because the goal was to be able to get prototype boards for about $5 (excluding parts of course, so PCB+connector). Here's the "feature list":

- Basically a bastardized version of the ISA bus, allowing the user to take advantage of a lot peripheral chips designed for the PC compatibles
- Standard board size is 100x100mm, the usual limit for the "$2 special" from Chinese board houses. I have been using surface mount devices quite a bit lately so this should be plenty of room
- Uses a 120-pin connector that is just over $3 in single quantities. I debated on using a PCI card-edge style connector, but this would actually increase costs as the edge connector should be gold plated.
- Includes all the standard ATX voltage rails, 3.3V being nice to have for a lot of newer devices that I might want to interface to the system
- Includes a SMBus-style I2C bus. The backplane I've been working on has an ATTiny microcontroller on this bus that can monitor system voltages, control system power, etc.
- 16 data lines and 24 address lines (fully latched), can address up to 16MB.
- Has a line similar to the S100 phantom line, allowing memory mapped IO to easily overlap system memory.
- Supports controller-driven or bus mastering DMA
- Active termination at both ends of the bus

Why not just use ECB, you might ask? That's a fair question, but it doesn't have some things I'd like to have for future projects I have in mind. It won't hurt my feelings if nobody else wants to use it Laughing I have been working on the backplane first, attached is what I have so far. I may need to redesign the termination circuit... I copied it from the RetroBrew S100 backplane and the LM4250 op-amp seems hard to come by these days.

Once I finally get them manufactured, I'll have a couple extra backplane and breakout boards if anyone wants to join in the "beta test".
Re: Project CheapBus [message #5585 is a reply to message #5555] Thu, 22 November 2018 14:56 Go to previous messageGo to next message
etchedpixels is currently offline  etchedpixels
Messages: 223
Registered: October 2015
Senior Member
The ISA bus was replaced a long time ago with a thing called the LPC (low pin count) bus. That's what is used for all the ISA glue and ISA equivalent logic in PCs. It still actually lurks in some systems today. The LPC bus gets rid of a lot of the crap and nonsense on the ISA bus that almost nobody used (including the DMA, weird voltages and the like). It's a weird bus in itself so not a good model but unfortunately it means that pretty much every post 1998 useful looking single chip PC device (multi I/O etc) is actually LPC not ISA and designed to be soldered to the motherboard.

There were ISA slots or adapters on some of the Russian Z80 based ZX spectrum machines (Scorpion SMUC for example). Several of those machines were basically Z80 with minimal ISA bus.

You'd save a lot of complexity staying 8bit - the 16bit ISA bus is horrible and has some really difficult to meet timings for 16bit devices. Plus almost no device used the upper address bits so those aren't needed. The original PC cards only decoded 10bits so almost nothing else ever bothered to use higher ones. ISA is not a pretty bus. It's a product of history with 16bit support nailed on as an afterthought and even things like the clock rate not actually standards defined.

RC2014 is perhaps too simple but my dealings with ISA bus are not filled with fondness.


Alan
Re: Project CheapBus [message #5586 is a reply to message #5585] Thu, 22 November 2018 15:31 Go to previous messageGo to next message
ab0tj is currently offline  ab0tj
Messages: 57
Registered: October 2015
Location: Colorado
Member
I actually started with something that looked more like the S100 bus pinout, but I kept changing things and in the end it looked a lot more like ISA. When I started looking at DMA was when it really evolved in that direction. 16-bit and DMA are part of what I wanted to play around with in this project, so I'd rather not drop those. Same thing with the address lines, memory will be on the bus so I'll need all 24. As far as timings go, I have some leeway there since I'm starting from scratch. I'm not saying you're wrong, I just don't know a better way to do it Very Happy
Re: Project CheapBus [message #5756 is a reply to message #5555] Mon, 17 December 2018 07:39 Go to previous messageGo to next message
ab0tj is currently offline  ab0tj
Messages: 57
Registered: October 2015
Location: Colorado
Member
So at this point I have a functional backplane and breakout board Very Happy

Maybe someone that is more fluent in analog electronics can help me out, though. The termination circuit was copied from a classic design as seen here and here, verbatim other than using two 560-ohm resistors (one at each end of the bus) instead of 270 ohm resistors at one end of the bus. Attached is my implementation of the circuit. Powered from 12V, I can get a stable 2.7 volts out of it until I short more than two data lines to ground or pull more than two up to 5V, when it starts to go out of regulation. Seems like this circuit should be able to source or sink a lot more current than that. Am I doing something wrong?

[Updated on: Mon, 17 December 2018 07:46]

Report message to a moderator

Re: Project CheapBus [message #5760 is a reply to message #5555] Mon, 17 December 2018 20:15 Go to previous messageGo to next message
ab0tj is currently offline  ab0tj
Messages: 57
Registered: October 2015
Location: Colorado
Member
Ok, I figured it out. I used the wrong footprint for the TIP29 and TIP30 transistors so they were not contributing to sourcing or sinking current. After cutting the leads and rearranging them it seems to be working as expected.

EDIT: Looks like this is a problem on the 9-slot S100 backplane as well, the TIP29 and TIP30 are BCE, not EBC

[Updated on: Tue, 18 December 2018 20:55]

Report message to a moderator

Re: Project CheapBus [message #5815 is a reply to message #5555] Thu, 03 January 2019 14:00 Go to previous messageGo to next message
ab0tj is currently offline  ab0tj
Messages: 57
Registered: October 2015
Location: Colorado
Member
Continuing down this path of doing whatever the heck I want even if it isn't especially practical, I placed an order for 5 boards today:

- 8085 CPU board with an MMU allowing it to access the entire 24 bit memory space
- DRAM board, supporting a 16MB 72-pin SODIMM module
- Ethernet board with the same WIZ830MJ module I've been using on the S100 bus
- A Raspberry Pi based board that will handle console, disk, and loading the memory contents at boot (ROM and more retro-friendly disk and console can come later)
- A board that supplies a 8259 interrupt controller, 8254 timer, and DS12885 real-time clock
  • Attachment: 8085Board.png
    (Size: 107.10KB, Downloaded 158 times)
  • Attachment: DRAMBoard.png
    (Size: 99.10KB, Downloaded 134 times)
  • Attachment: Ethernet.png
    (Size: 100.57KB, Downloaded 141 times)
  • Attachment: PiBoard.png
    (Size: 117.79KB, Downloaded 120 times)
  • Attachment: PPRBoard.png
    (Size: 103.84KB, Downloaded 119 times)
Re: Project CheapBus [message #5824 is a reply to message #5555] Wed, 09 January 2019 11:07 Go to previous messageGo to next message
ab0tj is currently offline  ab0tj
Messages: 57
Registered: October 2015
Location: Colorado
Member
Got some gifts from China today. It's amazing how quickly these things go from a file to a physical item in the mail.
Re: Project CheapBus [message #5932 is a reply to message #5555] Tue, 05 February 2019 14:16 Go to previous messageGo to next message
ab0tj is currently offline  ab0tj
Messages: 57
Registered: October 2015
Location: Colorado
Member
Making some progress... But I found a couple screw-ups so I had to place another parts order.
Re: Project CheapBus [message #6004 is a reply to message #5555] Sat, 23 February 2019 12:48 Go to previous messageGo to next message
ab0tj is currently offline  ab0tj
Messages: 57
Registered: October 2015
Location: Colorado
Member
IT'S ALIVE!!!

The only board I wasn't able to get working is the 16MB DRAM board... But I'll keep working with it. For now I have a breadboarded 512k SRAM in place while I wait on PCBs for an 8MB SRAM design.
CP/M 3 (non-banked for now) is up and running.
Re: Project CheapBus [message #6005 is a reply to message #6004] Sat, 23 February 2019 14:17 Go to previous messageGo to next message
etchedpixels is currently offline  etchedpixels
Messages: 223
Registered: October 2015
Senior Member
NiceĀ·.. although I am intrigued what you are going to do that can use 8MB on an 8085 system ?

Alan
Re: Project CheapBus [message #6007 is a reply to message #6005] Sat, 23 February 2019 15:28 Go to previous messageGo to next message
ab0tj is currently offline  ab0tj
Messages: 57
Registered: October 2015
Location: Colorado
Member
Probably nothing. Laughing The CPU board has a MMU that can access the full 16MB address space, but aside from a few extra pages for CP/M it will mostly be wasted on the 8085. My plan is to build some CPU boards that can make better use of it, though, like 80286, 68030, etc. The RAM board(s) can support both 8 and 16 bit data paths.
Re: Project CheapBus [message #6008 is a reply to message #6004] Sat, 23 February 2019 18:37 Go to previous messageGo to next message
b1ackmai1er is currently offline  b1ackmai1er
Messages: 265
Registered: November 2017
Senior Member
That's an amazing amount of developement for 1 person Smile
Re: Project CheapBus [message #6274 is a reply to message #5555] Sun, 28 April 2019 08:10 Go to previous messageGo to next message
ab0tj is currently offline  ab0tj
Messages: 57
Registered: October 2015
Location: Colorado
Member
So the DRAM board was a fail, at least so far. I will probably revisit that one at some point but until then I built a SRAM board that can do up to 8MB. It works well after some errata fixes.

I recently got the RTC, timer and interrupts working. Today I'm going to look at adding RTC support to my CP/M bios.
Re: Project CheapBus [message #6748 is a reply to message #5555] Sun, 10 November 2019 14:57 Go to previous messageGo to next message
ab0tj is currently offline  ab0tj
Messages: 57
Registered: October 2015
Location: Colorado
Member
Since CP/M has been working fine, I'm now bringing this thing into the 16 bit era! End goal is MS-DOS compatibility with EMS memory support.

I somehow used the wrong footprint for the bus connector so it ended up on the back side of the board. I guess that means I'll have to respin this one at least once, but so far it appears to be working. Now time to write some software to support it...

[Updated on: Sun, 10 November 2019 14:59]

Report message to a moderator

Re: Project CheapBus [message #6837 is a reply to message #6748] Sun, 24 November 2019 14:36 Go to previous messageGo to next message
kkeeley is currently offline  kkeeley
Messages: 17
Registered: July 2017
Junior Member
This looks like a really interesting project, are you planning to have the schematics and other information available for others to see.
Re: Project CheapBus [message #6838 is a reply to message #6837] Sun, 24 November 2019 15:09 Go to previous message
ab0tj is currently offline  ab0tj
Messages: 57
Registered: October 2015
Location: Colorado
Member
kkeeley wrote on Sun, 24 November 2019 15:36
This looks like a really interesting project, are you planning to have the schematics and other information available for others to see.
I've actually been working on that part lately... https://github.com/ab0tj/MiniSys
Previous Topic: CP/M on AVR (ATmega88)
Next Topic: Multicomp Cyclone II-C FPGA CP/M Xmodem program


Current Time: Mon Dec 09 04:50:40 PST 2019

Total time taken to generate the page: 0.01173 seconds