ZXIO V2 Kit for the ZX81 - Build Guide

Leave a Comment
The ZXIO V2 is a memory-mapped input/output (I/O) board designed for the ZX81, based around the 8255A-PPI (Programmable Peripheral Interface) IC. This I/O board emphasises simplicity: it is easy to build, easy to connect and interface with, and is accessible from ZX81 BASIC; which is a considerable plus on a ZX81.

The board is the culmination of a project documented in a six-part series on the ZX81 Keyboard Adventure blog. The reasons behind its creation and sample usage are explored in detail within those feature articles. This documentation present here will primarily focus on the assembly of the interface and peripherals as provided in the ZX81 ZXIO V2 Experimenters Kit

ZXIO V2 8255A Experimenters Kit

ZXIO V2 IO 8255A Experimenters Kit Complete
The ZX81 ZXIO V2 Experimenters Kit

What's in the Kit?

  • ZXIO V2 PCB and parts: The main component of the kit and brains of the operation.
  • ZX BUS Expander PCB and parts: A ZX81 BUS extension card, the ZXIO or other cards of similar design can be attached to this board.
  • ZX IO LED Board and parts: A unique expansion board designed to be mounted directly to the ZXIO V2 expansion headers. 
  • ZXIO Breakout Board and parts: Designed to be used in conjunction with a breadboard for experimentation and prototyping. (Breadboard not included). 
  • IDC ribbon Cable.

Sections

  • Assembly
    • ZXIO V2 Assembly
    • ZX BUS Expander Assembly
    • ZXIO LED Board Assembly
    • ZXIO Breakout Board Assembly
  • Testing the ZXIO V2
  • ZXIO V2 Connectivity

ZXIO V2 Assembly

ZXIO V2 PCB Layout

Assembly Instructions

  • Smallest to Largest Components
    • Resistors: These should be placed and soldered first. All resistors used in the ZXIO V2 kit are SIPS. All resistors on the main IO Board should be labeled with "472" in the descriptor, indicating a resistance value of 4.7kΩ.
    • Diodes: Ensure correct orientation before soldering.
  • Integrated Circuits (ICs)
    • SMD IC1: The Voltage Regulator; you have the option to use solder paste or regular solder and an iron for soldering.
    • Through-Hole ICs: Insert, ensuring correct orientation, and soldering. If sockets are being used, they should be mounted, and the ICs inserted at the final stage of assembly.
  • Other Passive Components
    • Capacitors: Place and solder, checking polarity.
  • Connectors and Headers
    • Place and solder connectors, headers, and any other interfacing components.
    • With the ZX-BUS connectors, ensure that the right-angled male pin headers are positioned so that the longer end of the connectors faces downwards and they are at a right angle to the main PCB.

Assembly List

Label
Part Type
Properties
C1 to C4Ceramic Capacitorcapacitance 100nF; voltage 35V
C5Electrolytic Capacitorcapacitance 22µF; voltage 20V
C6Electrolytic Capacitorcapacitance 10µF; voltage 20V
DI1Rectifier Diode 1n4148type Rectifier; package diode-1N4001
DI2Diode 1n4148variant 1n4148; package diode-1n4148
IC1Voltage Regulator AP1117E50Gfeatures LDO; voltage 5v; chip AP1117E50G-13; package sot223
IC2CD74HC11pins 14; package DIP 
IC3CD74HC30Epins 14; package DIP 
IC4CD74HC02pins 14; package DIP 
IC58255Apins 40; package DIP 
J1Shrouded IDC Headerpins 26; right angle double row header
J2double row female headerpins 14x2 (or 10x2 pin and 4x2pin) female headers)
J3double row female headerpins 2x2 female header
R14.7kΩ Resistorcircuit type Bussed; resistance 4.7kΩ; pins 9; package SIP-9; Label 472J
R24.7kΩ Resistorcircuit type Bussed; resistance 4.7kΩ; pins 9; package SIP-9; Label 472J
R34.7kΩ Resistorcircuit type Bussed; resistance 4.7kΩ; pins 5; package SIP-5; Label 472J
R44.7kΩ Resistorcircuit type Bussed; resistance 4.7kΩ; pins 5; package SIP-5; Label 472J
A1 - B2ZX BUS - Male Headerpins 2x2; right angled double row pin header before slot
A1 - B2ZX BUS - Male Headerpins 20x2; right angled double row pin header after slot


ZXIO ZX BUS Expander Assembly

ZX81 Bus Expander PCB

Assembly Instructions

  • Connectors and Headers
    • Place and solder connectors, headers.
    • The ZX81 Edge Connector is keyed, so ensure it is attached to the length of the board without the cutout. Note that the pins on the rear of the connector will need to be pre-bent before attaching.

Assembly List

Label
Part Type
Properties
B1 - A2ZX BUS Female Headerpins 2x2; straight double row pin female header before slot
B1 - A2ZX BUS - Female Headerpins 20x2; straight double row pin female header after slot
Card EdgeZX81 Edge Connectorpins 22(23)x2; straight double row pin Edge Connector with 1x2 Key Slot


ZXIO LED Board Assembly

ZXIO LED Board

Assembly Instructions

  • Smallest to Largest Components
    • Resistors: These should be placed and soldered first. All resistors used in the ZXIO V2 kit are SIPS. All resistors on the LED Board should be labeled with "471" in the descriptor, indicating a resistance value of 470Ω.
    • LEDs: Ensure correct orientation before soldering.
  • Connectors and Headers
    • Place and solder connectors, headers. Note that these should be mounted on the back of the board for connection to the main ZX-IO V2 Board.

Assembly List

Label
Part Type
Properties
J1double row male headerpins 14x2 double row (2 single row 14pin) male headers)
LED1 - LED16Red (633nm) LEDpackage 3 mm; color (transparent) Red
R1 - R2470Ω Resistorcircuit type Bussed; resistance 470Ω; pins 9; package SIP-9; Label 471J


ZXIO Breakout Board Assembly

ZXIO Breakout Board

Assembly Instructions

  • Connectors and Headers
    • Shrouded Male Header should be attached to the front to the PCB.
    • Single-row pin headers should be mounted on the back of the board for connection, specifically designed to be plugged into a breadboard for experimentation purposes.

Assembly List

Label
Part Type
Properties
J1Shrouded IDC Headerpins 26; shrouded male Header
J2 - J3Generic Male Headerpins 13; straight single row pin header


Testing the ZXIO V2 and Examples

ZXIO LED Board Example

The most straightforward method for testing ZXIO involves utilising the LED Board. The provided simple test program illuminates LEDs on both the A and B columns of the plugin board. Line 10 initialises the 8255A IC for output mode, and lines 40 to 50 output values to Port A (address 49148) and Port B (address 49149).

ZXIO V2 LED Test Program

ZXIO Breakout Board and Hitachi LCD Module Example

An HD44780 LCD panel is widely used in embedded systems compatible with a wide range of microcontrollers and can be interfaced using a 4-bit or 8-bit command set. We'll be using full 8-bit input mode for testing.

The HD44780 LCD Module can be connected to the ZXIO V2 utilising the Breakout Board and a BreadBoard. Refer to the connection diagram below. Details on the ZXIO V2 pinouts can be found in the ZXIO V2 Connectivity Section of this document.

ZXIO V2 Breakout Board and Hitachi HD44780 Circuit Diagram

To transmit data to the LCD, we must first configure Port A and Port B on the 8255A IC for output mode. This can be done by POKEing the control register at address 49151 with a value of 128. Once complete, we can begin transmitting control codes. The Enable line is set high via Port B pin (address 49149), while the control codes are transmitted through Port A (address 49148). After each code, the Enable lines is brought low.

As we'll convert our message "HELLO EIGHT BITS" from the ZX81 Character Set into ASCII before transmitting it to the LCD. We begin by setting the Enable and Register Select lines to high via Port B. Next, we send a character from our message string to Port A, and after transmission, set the Enable line back to low.

ZX81 Code to drive LCD in 8bit Mode

The Hitachi HD44780 LCD Module example above is based on a development project for the ZXIO V2, for addtional information please refer to the blog post ZXIO Interface for the ZX81: Part 5


ZXIO V2 Connectivity

The ZXIO Breakout Board (via the IDC headrs) is designed to serve as the primary interface for development purposes, with the on-board expansion headers intended for mounting add-on boards. Of course, there is nothing preventing the on-board headers from being used as a simple plug board.

Signals present on the Main On-Board Header and IDC Headers are shared. You can easily program the interface to use various ports or portions of ports to avoid addressing conflicts. It is recommended to thoroughly understand the general usage of the 8255A-PPI for optimal configuration and conflict avoidance.

Note that while the ZXIO V2 interface provides +5 volts on the Main and IDC Headers, if your experiments require more than 500 milliamps of power, you should source power from an external source.

IDC Headers

The pinout of the IDC Header on the ZXIO V2 Main Board and ZXIO Breakout Board exposes all signals from the 8255A-PPI, plus ground and 5-volt lines. Signal pins are active high.

On-Board Expansion Headers

There are 2 expansion headers on the main ZXIO V2 designed for plug in expansion boards.
  • The Main Header as with the IDC headers exposes all signals from the 8255A-PPI, plus ground and 5-volt lines. Signal pins are active high.
  • The Pass-Through Header routes signals directly from the ZX81, for use in advanced projects and expansion boards. These signals are not routed to the IDC headers.

Female Pin Header Pinouts as Viewed from the Front of the ZXIO V2

0 comments:

Post a Comment