The Parallel Port: Negotiation Sequence



Signal Flow

A 1284 compliant peripheral device must implement the negotiation sequence, because this is how reverse channel and advanced modes are activated.

   /Select   /AutoFeed   D0,...,D7   /Strobe   /Ack   /Error   Select   PE  
   1284Active   HostBusy      HostClk   PtrClk   /DataAvail   XFlag   AckDataReq  
1  
  u  
  
  u  
  
  u  
  
  u  
  
  u  
  
  u  
  
  u  
  
  u  
   No extended 1284 mode must be active
2  
  ul  
  
  uh  
  
  u  
  
  uh  
  
  u  
  
  u  
  
  u  
  
  u  
   H ensures sane state of control lines
black separator
3  
  l  
  
  h  
  
  uk  
  
  h  
  
  u  
  
  u  
  
  u  
  
  u  
   H places negotiation byte on data lines
4  
  lh  
  
  hl  
  
  k  
  
  h  
  
  u  
  
  u  
  
  u  
  
  u  
   H requests negotiation
5  
  h  
  
  l  
  
  k  
  
  h  
  
  ul  
  
  uh  
  
  uh  
  
  uh  
   P acknowledges negotiation
6  
  h  
  
  l  
  
  k  
  
  hl  
  
  l  
  
  h  
  
  h  
  
  h  
   H strobes negotiation byte into P
7  
  h  
  
  l  
  
  k  
  
  l  
  
  l  
  
  h  
  
  h  
  
  h  
   H waits (for >= 0.5us?)
8  
  h  
  
  lh  
  
  k  
  
  lh  
  
  l  
  
  h  
  
  h  
  
  h  
   H requests answer
9  
  h  
  
  h  
  
  k  
  
  h  
  
  l  
  
  hk  
  
  hk  
  
  hl  
   P places abilities on bus
10  
  h  
  
  h  
  
  k  
  
  h  
  
  lh  
  
  k  
  
  k  
  
  l  
   P signals valid answer
black separator
11  
  h  
  
  h  
  
  k  
  
  h  
  
  h  
  
  k  
  
  k  
  
  l  
  

Notes


Negotiation Byte

The negotiation byte is a combination of bits that the host uses to negotiate a mode, select a sub-device, and possibly request a device ID from the peripheral.

D7 D6 D5 D4 D3 D2 D1 D0
0 0 reserved
1 0 0 0 EPP mode
0 0 1 0 ECP mode without RLE
0 1 1 0 ECP mode with RLE
0 0 0 1 Byte mode
0 0 0 0 Nibble mode
0 no device ID requested
1 device ID requested
0 without extensibility link
1 with extensibility link

Content

Index

January 14th, 2013
Comments? Suggestions? Corrections? You can drop me a line.
zpentrabvagiktu@theiling.de
Schwerpunktpraxis