|
|
The basic idea: Using
ATA interfaces to attach application-specific circuitry.
Why?
- Even the most contemporary motherboards support
ATA ports.
- As ATA is the mainstream drive interface,
long-term availability should be taken for granted.
- The ATA programming interface is simply a
small register file, accessible by I/O instructions. ATA registers
can be accessed directly (under DOS or Linux) or via comparatively
simple port drivers.
- The legacy ATA interface (Parallel ATA) is
essentially a modified ISA bus. Hence it is easy to develop I/O
adapter hardware.
- Parallel ATA (PATA) is still supported on
new motherboards in small form factors (like Mini-ITX or Nano-ITX),
particularly as it is still a mainstream interface for optical drives.
Such small form factor motherboards could be used instead of typical
industrial platforms (like PC/104, EBX, EPIC, PICMG and the like)
which are considerably more expensive.
- Typical ATA I/O adapters will fit into small
CPLDs. Eventually, the application-specific circuitry proper could
be implemented within the same CPLD, too.
- It is possible to provide ATA interface adapters
for attachment of widely available I/O hardware, like Opto 22 compatible
racks, ISA or PCI I/O cards, and PC/104 modules.
- Serial ATA (SATA) support can be provided
(for example, by using readily available protocol converter
ICs).
I/O Board 05a
|
8255 Tester / Opto 22 Exerciser 06a
|
|
|
Industrial PC 06a
|
ATA IO Trainer 06a
|
|
|
ATA-to-ISA Board 07a
|
This 1 U industrial PC contains
a MiniITX motherbard and an ATA I/O card 05a. Here the system
is being tested by means of the 8255 Tester / Opto 22 Exerciser
06a.
|
MiniITX
|
|
|
|
|
|
NanoITX
|
The small case contains a
NanoITX motherboard and a GPIO ATA adapter connected
to a makeshift experimental platform.
|
|
|
|
|
PicoITX
|
The PicoITX motherboard is
connected to an ATA-to-ISA bus adapter supporting ISA slots
as well as PC/104 modules. The educational robot above is
controlled via a legacy ISA card. The vintage joysticks
are attached via a PC/104 GPIO module.
|
|
|
Application examples:
- ATA front end function blocks for attaching
own application-specific circuitry.
- ATA I/O port adapters behaving like typical
microcontroller I/O ports.
- ATA I/O adapters supporting attachment of
industry standard peripheral circuits or emulating such circuits
(the good old 8255 being an obvious example).
- ATA I/O adapters emulating industry standard
bus protocols, like ISA (PC/104) or PCI.
ATA IO projects:
Development platform: Xilinx ISE 8.1. IC family:
Xilinx XC9500.
ATA IO Adapter 05a. Five general-purpose
8-bit-ports. Fits in
XC95108. Project
-- Schematic
-- Description
ATA IO Adapter 05ax. Like 05a, but
supports selective addressing completely.
Requires at least XC95144. Project
-- Schematic
-- Description
ATA IO Adapter 8255_01. Three 8-bit-ports.
Emulates the vintage 8255 in mode 0. Project
-- Schematic
-- Description
ATA IO Adapter 8255_02. Five
8-bit-ports. The first three emulate the 8255 in a restricted
mode 0 (control register cannot be read back). The remaining two are
general purpose ports similar to those of the adapter 05a. Project
-- Schematic
-- Description
-- Descriptions are still in German. Will be replaced
by and by . . . . --
ATA-to-ISA Bus Adapter 06a. Emulates
an 8-bit ISA Bus (I/O cycles and interrupt signalization). ISA timing
controlled by software.
Project
-- Schematic
-- Description
-- Theory of operation
ATA-to-ISA Bus Adapter 06c. Emulates
an 8-bit ISA Bus (I/O cycles and interrupt signalization). ISA timing
controlled by hardware.
Project
-- Schematic
-- Description
-- Theory of operation
ATA front end 01a.
A functional block for attaching a parallel ATA (PATA) interface.
Project
-- Theory of operation
Useful macros. Project
|
|
|
News:
A picture gallery
Additional
illustrations. ATA I/O vs. well-established
solutions.
Code examples:
A short introduction
into the principles of ATA I/O programming
Declaration of physical
ATA addresses (example related to attachment on the secondary (legacy)
ATA port)
Declaration of port addresses
(example related to the ATA I/O adapter 05a attached as slave device)
The basic I/O routines
for accessing the ATA I/O adapter 05a
Schematics of experimental boards:
ATA-to-ISA
Board 07a. This board accommodates an adapter
ATA-to-ISA 06c, two ISA slots and one PC/104 connector
I/O Board 05a.
This Board accommodates a CPLD which can be programmed
freely (among others, to be an ATA I/O adapter 05a or an 8255 supplemented
by two universal ports)
Descriptions of ATA I/O adapter circuits:
ATA I/O port
adapter 05a / 05 ax. Five general-purpose
8 bit I/O ports.
ATA I/O adapter
8255a. Three 8255-like I/O ports. Optionally
two additional general-purpose I/O ports.
|
|