SC737 – RCBus Interrupt Module

SC737 is a 50 Hz interrupt generator module designed for the RCBus.

Downloads

Errata

  • Nothing known

Suppliers

KitsWebsiteFromCurrency
Small Computers DirectSCDirectUKGBP
Stephen C CousinsTindieUKUSD
Small Computer CentralLectronzUKEuro/USD
PCBsWebsiteFromCurrency
Small Computers DirectSCDirectUKGBP
Stephen C CousinsTindieUKUSD
Small Computer CentralLectronzUKEuro/USD
Assembled and TestedWebsiteFromCurrency
Not available
Components
See parts list
Small Computers Direct does not collect VAT for EU countries
Tindie does not collect VAT for EU countries
Lectronz does collect EU VAT for orders up to 150 EUR

Parts List

ReferenceQtyComponent
PCB1SC737, v1.0, PCB
C1 to C88Capacitor, ceramic, 100 nF
C9 to C102Capacitor, ceramic, 18 pF
JP11Header, male, 2 row x 8 pin, angled
JP21Header, male, 2 row x 3 pin, straight
Jumper9Jumper shunt
P11Header, male, 2 row x 40 pin, angled
R11Resistor, 1k, 0.25W
R21Resistor, 1M, 0.25W
RN11Resistor network, 8x100k, SIL, 9-pin
Screw (for spacer)1Machine screw, 6mm, M3
Spacer1Spacer, 10mm, M3, nylon
U1174HCT688
U2174HCT32
U3174HCT74
U4174HCT125
U5 to U7374HCT393
U8174HCT04
X11Oscillator, 3.2768 MHz
IC socket 20-pin
U1
1Socket, DIP, 20-pin
IC socket 14-pin
U2 to U8
7Socket, DIP, 14-pin
Component details and sourcing

Printed Circuit Board

User Guide

SC737 is a module dedicated to generating a 50 Hz (20 ms) tick interrupt. It occupies a single I/O address, which is set with jumpers.

At reset, the 50 Hz interrupt is disabled. Writing bit 7 high to the module’s I/O address enables the interrupt, and writing bit 7 low disables the interrupt.

Reading the I/O address returns the interrupt request status and a 50 Hz counter. If the module is requesting an interrupt, bit 7 is low. To clear the interrupt request bit, write bit 7 low, then high. A two bit counter, bits 0 and 1, increments each time the 50 Hz timer rolls over. This allows simple software to poll the timer in order to wait for the next 50 Hz event. It also enables software to detect missed interrupts.

The module’s I/O address is set with jumpers (JP1). The module responds to input/output addresses matching the address set with these jumpers. When a jumper shunt is fitted, that bit must be a 1 (high voltage). When the shunt is not fitted, that bit must be a 0 (low voltage). The card has tight address decoding and only occupies a single input/output port address. Typically, the address will be 0x0F which is selected by fitting jumper shunts to JP1 bits 0, 1, 2 and 3.

The module provides a choice of three bus pins as the destination for the interrupt signal generated. JP2 is used to select the required bus pin. The standard interrupt signal is bus pin 22 (/INT). The alternatives are pin 37 (USER1, assigned as /INT1) and pin 77 (USER5, assigned as /INT2).

This module does not offer interrupt mode 2 support, so typically it is used in interrupt mode 1. It is possible to create a system where the interrupt signals, /INT1 and /INT2, are detected by a module that can generate mode 2 interrupts from simple interrupt signals. Typically, this is achieved with a Z80 family peripheral such as a Z80 CTC, a Z80 PIO, or a processor with additional interrupt pins, such as the Z180.

Software writers should be aware that the 50 Hz signal is not synchronised to the Z80 instruction cycle. Thus, the 50 Hz count bits and the interrupt request bit can change at literally any time, such as the middle of an I/O port read. As a result, it is possible (but rare) that 1/ an interrupt can be missed during the narrow window the interrupt request is being cleared, and 2/ the ripple counter bits could be inconsistent with one bit having settled and the other still in the process of changing. The fix for this is to wait until two consecutive reads return the same value, ignoring the unused bits 2 to 6. A stable counter value can be compared with the last stable counter value to determine the number of clock ticks that have passed. This can be used to detect missed interrupts.

Input/output port functions
RCBus I/O Address ReadWrite
Configurable *1







Input bits
0: Clock tick count 0
1: Clock tick count 1
2: not used
3: not used
4: not used
5: not used
6: not used
7: Interrupt request
Output bits
0: Not used
1: Not used
2: Not used
3: Not used
4: Not used
5: Not used
6: Not used
7: Interrupt enable
  1. The RCBus I/O base address should be set to match the software you are using. Typically, this is 0x0F (jumper shunts fitted for bits 0 to 3).
Jumper options
JumperFunction
JP1Set module’s RCBus I/O address
The default is 0x0F
JP2Select destination for INTERRUPT signal
JP2.1 Connect INTERRUPT to RCBus pin 22 (/INT)
JP2.2 Connect INTERRUPT to RCBus pin 37 (/INT1)
JP2.3 Connect INTERRUPT to RCBus pin 77 ( /INT2)
The default is JP2.1 (/INT)

Assembly Guide

Below is the suggested order of assembly. A general guide to assembling circuit boards can be found here.

  1. Resistors R1 (1k) and R2 (1M)
    These can be fitted either way around
  2. Decoupling capacitors C1 to C8 (100 nF)
    These can be fitted either way around
  3. Decoupling capacitors C9 to C10 (18 pF)
    These can be fitted either way around
  4. Sockets for U1 to U8
    Fit such that the notch in the socket matches the curve in the outline on the PCB silkscreen
  5. Crystal X1 (3.2768 MHz)
    This can be fitted either way around
  6. Resistor network RN1 (8 x 100k)
    These must be fitted the correct way around whereby the dot on the component matches the dot on the PCB silkscreen
  7. Bus header P1
    Make sure the pins are parallel to the PCB so that the board is vertical when it is fitted into a backplane socket
  8. Header pins JP1 (2 row x 8 pin, angled)
  9. Header pins JP2 (2 row x 3 pin, straight)
  10. Insert the integrated circuits into their sockets
    Make sure the notch in the component is at the end indicated by the notch in the socket and the curve on the PCB silkscreen
  11. Fit the nylon spacer in the mounting hole

Fit jumper shunts in the positions shown below. All other jumpers are optional and should only be fitted if the feature is required.

Compatibility

This module conforms to the RCBus specification v1.0 for RCBus-2014 and RCBus-Z80.

The RCBus specification includes RCBus-2014 (both RC2014 standard 40-pin bus and RC2014 enhanced 60-pin bus) and also the full 80-pin RCBus. The 80-pin RCBus provides support for advanced Z80 features, such as the interrupt daisy-chain, as well as support for other processor families.

The table below indicates electrical compatibility with each backplane type (40, 60 and 80 pin)

Backplane?Compatibility notes
RCBus 80-pinFully supported
RCBus 60-pin
(RC2014 enhanced)
Limitations:
Optional signal /INT2
not available
RCBus 40-pin
(RC2014 standard)
Limitations:
Optional signal /INT2
not available

Notes

  • This product is designed for hobby use and is not suitable for industrial, commercial, or safety-critical applications.
  • The product contains small parts and is not suitable for young children.

Homebrew 8-bit retro computing