Interfacing the Enhanced Parallel Port Version 1.0

Similar documents
SNJB College of Engineering Department of Computer Engineering

AUTOMATIONWORX. User Manual. UM EN IBS SRE 1A Order No.: INTERBUS Register Expansion Chip IBS SRE 1A

F²MC-8FX FAMILY MB95200H/210H SERIES HOW TO DO CR TRIMMING 8-BIT MICROCONTROLLER APPLICATION NOTE

IEEE 803.af Management clause 33

SiS9255. Projected Capacitive. Touch-Screen Micro Processor. Data sheet. Rev. 1.2 August 18, 2015

E SERIES. Contents CALIBRATION PROCEDURE. Version 2.0

Dosimeter Setting Device

Technical support: +49 (0)7223 /

Interrupts in Detail. A hardware and software look at interrupts

Diagnosis via Model Based Reasoning

Application Note. Using RTT on Cortex-A/R based devices. Document: AN08005 Software Version: 1.00 Revision: 1 Date: February 15, 2016

CP316 Microprocessor Sysytems and Interfacing Evaluation Results Wilfrid Laurier University

Power Management Implementation

SIPROTEC. Overcurrent Time Protection 7SJ80. Motor Protection 7SK80. Preface. Table of contents. Data in the PROFIBUS DP messages 1

Idle Mode Signalling Reduction on the S4-SGSN

PLB to FSL Bridge v1.00a

DATA SHEET LLINK TM -08 for IPG YLP series NEWSON NV Copyright Newson NV, A2G_LLink TM -08_03 page 1

Sign Language Interpretation Using Pseudo Glove

Standard Products ACT15530 CMOS Manchester Encoder / Decoder May 16, 2005

Transitioning from the CS4362 to the CS4362A or CS4365

Multiple Diagnostic Interface (MDI) User Guide

PROFIBUS Products Overview P PROFIBUS Converter/Repeater P PROFIBUS Gateway P6-3-1

Communications Accessibility with Avaya IP Office

Fitting System Instructions for Use

Dosimeter Setting Device System NRZ

Figure 1: The EVH board

When designing with these products it is important that the Designer take note of the following considerations:

Cerus P-Series General Specifications Section 15172

AMBCO 2500 AUDIOMETER SYSTEM WITH FIVE YEAR WARRANTY

For Electric Personal Dosimete Dose-i

Smart NDT Tools: A New Generation of NDT Devices

VPAT Summary. VPAT Details. Section Telecommunications Products - Detail. Date: October 8, 2014 Name of Product: BladeCenter HS23

Operation Manual for Audiometer

Cloud Condensation Nuclei Counter (CCN) Module

Manual 2500E NRT Display Unit

LogiCORE IP Fast Simplex Link (FSL) V20 Bus (v2.11c)

Hanwell Instruments Ltd. Instruction Manual

Siemens Parts SIPROTEC. Overcurrent Time Protection 7SJ80. Motor Protection 7SK80. Voltage and Frequency Protection 7RW80. Preface.

Compact Sensors 1 Host Power 2 IPMI Watchdog 3 All CPUs 4 One of CPUs 5 CPU1 6 CPU2 9 CPU1 over temp A CPU2 over temp D CPU Fault Reboot 13 LOM 14

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF MECHANICAL ENGINEERING QUESTION BANK. Subject Name: ELECTRONICS AND MICRIPROCESSORS UNIT I

iclicker+ Student Remote Voluntary Product Accessibility Template (VPAT)

Phonak Target 4.3. Desktop Fitting Guide. Content. March 2016

Analog Devices Welcomes Hittite Microwave Corporation NO CONTENT ON THE ATTACHED DOCUMENT HAS CHANGED

Table of Contents. Table of Contents

ProScript User Guide. Pharmacy Access Medicines Manager

Avaya IP Office 10.1 Telecommunication Functions

6. If I already own another brand Videophone, can I use it with the ACN Digital Phone Service? No.

RELEASED. Clearing your active insulin

Acceptable Use Policy - Phone

PROFIBUS ANALYZER INFOLETTER 14/09

Proteome Discoverer Version 1.3

TRAINING MANUAL. VIDEO Camera, Probe and Lightsource OTOSCOPES.

RDCONT A system for diabetes blood glucose data management

iclicker2 Student Remote Voluntary Product Accessibility Template (VPAT)

Trio Motion Technology Ltd. Shannon Way, Tewkesbury, Gloucestershire. GL20 8ND United Kingdom Tel: +44 (0) Fax: +44 (0)

Resource Access Protocols. LS 12, TU Dortmund

TC65B, WG6. IEC Industrial Process Control Systems Guideline for evaluating process control systems. Micaela Caserza Magro Paolo Pinceti

DTCP Volume 1 Supplement F DTCP 1394 Additional Localization (Informational Version)

N-550 TROUBLESHOOTING TROUBLE SHOOTING (N-550 PULSE OXIMETER)

Activant Acclaim. Using smit and p21adm. AIX suite: course 3 of 3

ShoreTel Network Services Portfolio FAQ

myphonak app User Guide

User Manual. RaySafe i2 dose viewer

Epilepsy Sensor Transmitter

Sleep Apnea Therapy Software Clinician Manual

Tendon pain. What can be done?

DC Unbalance Tolerance Testing in PSE s

As of: 01/10/2006 the HP Designjet 4500 Stacker addresses the Section 508 standards as described in the chart below.

RL78 POC and LVD. Renesas Electronics Corporation A Renesas Electronics Corporation. All rights reserved.

Program instructions

Medtech32 Diabetes Get Checked II Advanced Form Release Notes

NDoc Reference for the July 2012 Patient Demographic Enhancements

Summary Table Voluntary Product Accessibility Template. Supporting Features. Supports. Supports. Supports. Supports

@2004-Beyond. BodyweightPilates.com. All Rights Reserved

Mike Davies Director, Neuromorphic Computing Lab Intel Labs

VIEW AS Fit Page! PRESS PgDn to advance slides!

Total Ionizing Dose Test Report. No. 16T-RT3PE3000L-CG896-QMLPK

USER GUIDE: NEW CIR APP. Technician User Guide

Best Practices in PROFIBUS Network Diagnostics

CPSC 121 Some Sample Questions for the Final Exam

Revision History. Middle-Range CCD Scan Module

The EIB Driver. This document relates to EIB driver version 1.0

Accessibility Standards Mitel MiVoice 8528 and 8568 Digital Business Telephones

Varian Treatment. Streamlined Treatment Delivery Management Application. Specifications

Sleep Apnea Therapy Software User Manual

Demo Mode. Once you have taken the time to navigate your RPM 2 app in "Demo mode" you should be ready to pair, connect, and try your inserts.

Microphone Input LED Display T-shirt

Re: ENSC 370 Project Gerbil Functional Specifications

Diabetes Management App. Instruction Manual

OTM1 OARTEC SLIDER USER MANUAL Software Version 2.11

Desktop Fitting Guide for Phonak Brio 3

Armstrong IVS 102 Drive Specification

Timing Parameters of LPI 100BASE-TX

Why Tests Don t Pass

Voluntary Product Accessibility Template (VPAT)

MedsCheck Reviews. Ontario

Sanako Lab 100 STS USER GUIDE

888/890 Enter the Titrando world

Next Generation File Replication In GlusterFS. Jeff, Venky, Avra, Kotresh, Karthik

Transcription:

Interfacing the Enhanced Parallel Port Version 1.0 Disclaimer : While every effort has been made to make sure the information in this document is correct, the author can not be liable for any damages whatsoever for loss relating to this document. Use this information at your own risk. Table of Contents EPP - Enhanced Parallel Port Page 1 EPP Hardware Properties Page 1 The EPP Handshake Page 2 EPP Data Write Cycle Page 3 EPP Address Write Cycle Page 3 EPP Data Read Cycle Page 4 EPP Address Read Cycle Page 4 The EPP s Software Registers Page 4 EPP Programming Considerations Page 6 EPP - Enhanced Parallel Port The Enhanced Parallel Port (EPP) was designed in a joint venture between Intel, Xircom & Zenith Data Systems. EPP Ports were first specified in the EPP 1.7 standard, and then later included in the IEEE 1284 Standard released in 1994. EPP has two standards, EPP 1.7 and EPP 1.9. There are differences between the two standards which may affect the operation of devices. This is further discussed latter. EPP has a typical transfer rate in the order of 500KB/S to 2MB/S. This is achieved by allowing the hardware contained in the port to generate handshaking, strobing etc, rather that have the software do it, which was the case with Centronics. For the hobbyist, EPP is more commonly used than ECP. EPP differs from ECP by the fact that the EPP Port generates and controls all the transfers to and from the peripheral. ECP on the other hand requires the peripheral to negotiate a reverse channel and control the handshaking. This is harder to achieve with common glue logic, thus really requires a dedicated controller or ECP Peripheral Chip. EPP Hardware Properties When using EPP mode, a different set of tasks and labels are assigned to each line. These are listed below in Table 4. It's very common to see both the SPP and EPP names interchanged in Parallel Port Data Sheets and Literature. This can make it very hard to focus on what is exactly happening. Therefore all the documentation here will use the EPP names. Interfacing the Enhanced Parallel Port Page 1

Pin SPP Signal EPP Signal In/Out Function 1 Strobe Write Out A low on this line indicates a Write, High indicates a Read 2-9 Data 0-7 Data 0-7 In-Out Data Bus. Bi-directional 10 Ack Interrupt In Interrupt Line. Interrupt occurs on Positive (Rising) Edge. 11 Busy Wait In Used for handshaking. A EPP cycle can be started when low, and finished when high. 12 Paper Out / End Spare In Spare - Not Used in EPP Handshake 13 Select Spare In Spare - Not Used in EPP Handshake 14 Auto Linefeed Data Strobe Out When Low, indicates Data transfer 15 Error / Fault Spare In Spare - Note used in EPP Handshake 16 Initialize Reset Out Reset - Active Low 17 Select Printer Address Strobe Out When low, indicates Address transfer 18-25 Ground Ground GND Ground Table 1. Pin Assignments For Enhanced Parallel Port Connector. Paper Out, Select and Error are not defined in the EPP handshake. These lines can be utilised in any way by the user. The status of these lines can be determined at anytime by viewing the SPP Status Register. Unfortunately there are no spare output's. This can become a hassle regularly. The EPP Handshake In order to perform a valid exchange of data using EPP we must follow the EPP handshake. As the hardware does all the work, this handshake only requires to be used for your hardware and not for software as the case with SPP. To initiate an EPP cycle your software needs to perform only one I/O operation to the relevant EPP Register. Details on this, latter. Interfacing the Enhanced Parallel Port Page 2

EPP Data Write Cycle 1. Program writes to EPP Data Register. (Base + 4) 2. nwrite is placed low. (Low indicates write operation) 3. Data is placed on Data Lines 0-7. 4. ndata Strobe is asserted if Wait is Low 5. Host waits for Acknowledgment by nwait going high (O.K. to end cycle) Figure 1. Enhanced Parallel Port Data Write Cycle. 6. ndata Strobe is de-asserted. 7. EPP Data Write Cycle Ends. EPP Address Write Cycle 1. Program writes address to EPP's Address Register (Base + 3) 2. Write is placed low. (Low indicates write operation) 3. Address is placed on Data Lines 0-7. 4. naddress Strobe is asserted if Wait is Low Figure 2. Enhanced Parallel Port Address Write Cycle. 5. Host waits for Acknowledgment by wait going high (O.K. to end cycle) 6. naddress Strobe is De-asserted. 7. EPP Address Write Cycle Ends. Interfacing the Enhanced Parallel Port Page 3

EPP Data Read Cycle 1. Program reads EPP Data Register. (Base + 4) 2. ndata Strobe is asserted if Wait is Low 3. Host waits for Acknowledgment by nwait going high 4. Data is read from Parallel Port Pins. 5. ndata Strobe is de-asserted. Figure 3. Enhanced Parallel Port Data Read Cycle. 6. EPP Data Read Cycle Ends. EPP Address Read Cycle Figure 4. Enhanced Parallel Port Address Read Cycle. 1. Program reads EPP Address Register. (Base + 3) 2. naddr Strobe is asserted if Wait is Low 3. Host waits for Acknowledgment by nwait going high 4. Data is read from Parallel Port Pins. 5. naddr Strobe is de-asserted. 6. EPP Address Read Cycle Ends. Note If implementing EPP 1.7 Handshake (Pre IEEE 1284) the Data and Address Strobes can be asserted to start a cycle regardless of the wait state. EPP 1.9 will only start a cycle once wait is low. Both EPP 1.7 and EPP 1.9 require the wait to be high to finish a cycle. The EPP's Software Registers. The EPP Port also has a new set of registers. However 3 of them have been inherited from the Standard Parallel Port. On the next page is a table showing the new and existing registers. Interfacing the Enhanced Parallel Port Page 4

Address Port Name Read/Write Base + 0 Data Port (SPP) Write Base + 1 Status Port (SPP) Read Base + 2 Control Port (SPP) Write Base + 3 Address Port (EPP) Read/Write Base + 4 Data Port (EPP) Read/Write Base + 5 Undefined (16/32bit Transfers) - Base + 6 Undefined (32bit Transfers) - Base + 7 Undefined (32bit Transfers) - Table 2 EPP Registers As you can see, the first 3 addresses are exactly the same than the Standard Parallel Port Register and behave in exactly the same way. Therefore if you used a Enhanced Parallel Port, you can output data to Base + 0 in exactly the same fashion than you would if it was a Standard Parallel Port (SPP). If you were to connect a printer, and use compatibility mode then you would have to check to see if the port is busy and then assert & de-assert the strobe using the Control and Status Port, then wait for the Ack. If you wish to communicate with a EPP compatible device then all you have to do, is place any data you wish to send in the EPP Data Register at Base + 4 and the card will generate all the necessary handshaking required. Likewise if you wish to send an address to your device, then you use the EPP Address Register at offset +3. Both the EPP Address Register and the EPP Data Register are read / write, thus to read data from your device, you can use the same registers. However the EPP Printer Card has to initiate a read Cycle as both the ndata Strobe and naddress Strobe are outputs. Your device can signal a read request via the use of the interrupt and have your ISR perform the Read Operation. The Status Port has one little modification. Bit 0, which was reserved in the SPP register set, now becomes the EPP Time-out Bit. This bit will be set when an EPP time-out occurs. This happens when the nwait line is not deasserted within approximately 10uS (depending upon the port) of the IOW or IOR line being asserted. The IOW and IOR are the I/O Read and Write lines present on the ISA Bus. The EPP mode is very depended of the ISA bus timing. When a read cycle is performed, the port must undertake the appropriate Read/Write handshake and return the data in that ISA cycle. Of course this doesn't occur within one ISA cycle, thus the port uses the IOCHRDY (I/O Channel Ready) on the ISA bus to introduce wait states, until the cycle completes. Now imagine if a EPP Read or Write is started with no peripheral connected? The port never gets an acknowledgment (nwait), thus keeps sending requests for wait states, and your computer locks up. Therefore the EPP implements a type of watchdog, which times out after approximately 10uS. Interfacing the Enhanced Parallel Port Page 5

The three registers, Base + 5, Base + 6 and Base + 7 can be used for 16 and 32 bit read/write operations if your port supports it. This can further reduce your I/O operations. The Parallel Port can only transport 8 bits at a time, thus any 32 or 16 bit word written to the Parallel Port will be split into byte size blocks and sent via the Parallel Port's 8 data lines. EPP Programming Considerations. EPP only has two main registers and a Time-out Status Flag, What could there possibly be to set up? Before you can start any EPP cycles by reading and writing to the EPP Data and Address Ports, the port must be configured correctly. In the idle state, an EPP port should have it's naddress Strobe, ndata Strobe, nwrite and nreset lines inactive, high. Some ports require you to set this up before starting any EPP Cycle. Therefore our first task is to manually initialise these lines using the SPP Registers. Writing XXXX0100 to the control port will do this. On some cards, if the Parallel Port is placed in reverse mode, a EPP Write cycle cannot be performed. Therefore it is also wise to place the Parallel Port in forward mode before using EPP. Clearing Bit 5 of the Control Register should result in an more enjoyable programming session, without tearing your hair out. The EPP Time-out bit we have already discussed. When this bit is set, the EPP port may not function correctly. A common scenario is always reading 0xFF from either the Address or Data Cycles. This bit should be cleared for reliable operation, and constantly checked. Craig Peacock s Interfacing the PC http://www.geocities.com/siliconvalley/bay/8302/ Copyright December 1997 Craig Peacock. Any errors, ideas, criticisms or problems, please contact the author at cpeacock@senet.com.au Interfacing the Enhanced Parallel Port Page 6