Building a microcomputer - you can help

Discussion in 'Computer Hardware' started by vmlinuz, Jun 9, 2018.

  1. vmlinuz

    vmlinuz
    Expand Collapse

    Joined:
    Mar 2, 2014
    Messages:
    2,409
    Hello,

    I decided to make a thread for my 68010 microcomputer project. Here, I will post schematics, requests for help with certain circuits, as well as various musings about the project. Here are the planned system specs:

    Processor: MC68010, 8 MHz
    Memory: 640K static RAM, 128K ROM BIOS, 64K kernel scratchpad or I/O area (read only in user mode), 192K kernel-exclusive memory (any access attempt will trip a bus error in user mode) = 1024K total memory
    Bus: 100-pin Direct Expansion Interface (DXI) - 24-bit address, 16-bit data, 8 IRQ's
    I/O: MC68450 DMA controller - two or four channels depending on model
    Virtual memory: no
    Peripherals: to be determined
    Operating system: ROM BASIC, some kind of 16/32-bit MS-DOS remake

    And here is where I need help: I need a bus timeout circuit. Here is how that works.

    • The circuit has one input, /AS. It drives two outputs, /TIMEOUT and /BERR.
    • The CPU asserts /AS (drives it low) whenever it begins a bus cycle - including an interrupt acknowledge. It needs notification in the event of a bus error, which is done by grounding /BERR. A bus error includes access to an invalid address or a request to a device that is not ready (if /HALT is asserted by an external device when the bus error is signaled, the bus cycle will be retried when /HALT is negated; otherwise, an exception occurs).
    • There needs to be some kind of time limit on how long /AS may be asserted; this ensures the system will not lock up due to an unresponsive device or spurious interrupt.
    • By default, the bus timeout circuit places its outputs /TIMEOUT and /BERR into high impedance, as the lines are driven externally. However, if /AS is asserted for longer than, say, 50 milliseconds (about 400,000 clock cycles assuming my math is correct), the circuit will drive /BERR low. It will also drive /TIMEOUT low so that devices know that the bus error was not the result of a catastrophic failure, but a normal part of system operation. These outputs will be released to high impedance and the timer will be reset as soon as /AS is rescinded.

    UPDATE: problem solved!

    Here is my earliest progress on the CPU board:

    upload_2018-6-9_17-14-4.png

    Your input is much appreciated!
     
    #1 vmlinuz, Jun 9, 2018
    Last edited: Jun 11, 2018
    • Like Like x 1
  2. vmlinuz

    vmlinuz
    Expand Collapse

    Joined:
    Mar 2, 2014
    Messages:
    2,409
    upload_2018-6-9_23-1-47.png

    Added the interrupt encoder. Some wires are colored for clarity - there is no color coding, it's just so you can see what's what. Next step is the interrupt acknowledge decoder - that will be much easier, as I won't have to pull any more lines high. The IRQ being acknowledged is encoded on pins A1-A3 (least significant bit on A1), so a simple 3-to-7 decoder will do the trick.
     
    • Like Like x 1
  3. vmlinuz

    vmlinuz
    Expand Collapse

    Joined:
    Mar 2, 2014
    Messages:
    2,409
    upload_2018-6-10_20-57-52.png

    What a mess... but hey, we have interrupt acknowledge lines now!
     
    • Like Like x 1
  4. vmlinuz

    vmlinuz
    Expand Collapse

    Joined:
    Mar 2, 2014
    Messages:
    2,409
    upload_2018-6-11_14-50-2.png

    Behold the Super Orange Machine. It is a bus error timer. If /AS is asserted for longer than about 50 milliseconds, /TIMEOUT is asserted; and /TIMEOUT is rescinded, and the timer is reset by the PNP transistor, as soon as /AS is rescinded.

    UPDATE: there is an issue, DO NOT BUILD THE SUPORMA AS DEPICTED ABOVE! This is the correct schematic i hope

    upload_2018-6-11_15-0-4.png

    UPDATE: The system actually features two Suporma's - the first one is the bus timeout, and the second one holds the CPU and external devices in the reset state for four seconds upon power-up. This gives everything time to stabilize its internal circuitry, plus it takes up more space in Ness' inventory for an added challenge.

    upload_2018-6-11_19-25-0.png
     
    #4 vmlinuz, Jun 11, 2018
    Last edited: Jun 12, 2018
    • Like Like x 1
  5. vmlinuz

    vmlinuz
    Expand Collapse

    Joined:
    Mar 2, 2014
    Messages:
    2,409
    It's still alive! And here is the final schematic for the 7180 Bus Driver Unit!

    upload_2018-7-1_21-23-28.png
     
    • Like Like x 1
  6. BannedByAndroid

    BannedByAndroid
    Expand Collapse

    Joined:
    Jan 29, 2017
    Messages:
    1,236
    Whoa. Loved it. Keep up the good work!
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice