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
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 C4 | Ceramic Capacitor | capacitance 100nF; voltage 35V |
C5 | Electrolytic Capacitor | capacitance 22µF; voltage 20V |
C6 | Electrolytic Capacitor | capacitance 10µF; voltage 20V |
DI1 | Rectifier Diode 1n4148 | type Rectifier; package diode-1N4001 |
DI2 | Diode 1n4148 | variant 1n4148; package diode-1n4148 |
IC1 | Voltage Regulator AP1117E50G | features LDO; voltage 5v; chip AP1117E50G-13; package sot223 |
IC2 | CD74HC11 | pins 14; package DIP |
IC3 | CD74HC30E | pins 14; package DIP |
IC4 | CD74HC02 | pins 14; package DIP |
IC5 | 8255A | pins 40; package DIP |
J1 | Shrouded IDC Header | pins 26; right angle double row header |
J2 | double row female header | pins 14x2 (or 10x2 pin and 4x2pin) female headers) |
J3 | double row female header | pins 2x2 female header |
R1 | 4.7kΩ Resistor | circuit type Bussed; resistance 4.7kΩ; pins 9; package SIP-9; Label 472J |
R2 | 4.7kΩ Resistor | circuit type Bussed; resistance 4.7kΩ; pins 9; package SIP-9; Label 472J |
R3 | 4.7kΩ Resistor | circuit type Bussed; resistance 4.7kΩ; pins 5; package SIP-5; Label 472J |
R4 | 4.7kΩ Resistor | circuit type Bussed; resistance 4.7kΩ; pins 5; package SIP-5; Label 472J |
A1 - B2 | ZX BUS - Male Header | pins 2x2; right angled double row pin header before slot |
A1 - B2 | ZX BUS - Male Header | pins 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 - A2 | ZX BUS Female Header | pins 2x2; straight double row pin female header before slot |
B1 - A2 | ZX BUS - Female Header | pins 20x2; straight double row pin female header after slot |
Card Edge | ZX81 Edge Connector | pins 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
|
---|---|---|
J1 | double row male header | pins 14x2 double row (2 single row 14pin) male headers) |
LED1 - LED16 | Red (633nm) LED | package 3 mm; color (transparent) Red |
R1 - R2 | 470Ω Resistor | circuit 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
|
---|---|---|
J1 | Shrouded IDC Header | pins 26; shrouded male Header |
J2 - J3 | Generic Male Header | pins 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