The Parallel Port: Nibble Mode
A 1284 compliant peripheral device must implement the nibble mode.
To use the nibble mode, the host uses the
negotiation sequence.
To return to compatibility mode, the nibble mode has to
be terminated.
| |
/AutoFeed | |
/Ack | |
/Error | |
Select | |
PE | |
Busy | |
|
 |
| |
HostBusy | |
PtrClk | |
D0, D4, | |
D1, D5 | |
D2, D6 | |
D3, D7 | |
|
 |
| |
| |
| |
/DataAvail | |
| |
| |
| |
|
 |
Idle | |
|
|
|
|
|
|
|
|
|
|
|
|
1 | |
|
|
|
|
|
|
|
|
|
|
|
|
P signals available data |
 |
2 | |
|
|
|
|
|
|
|
|
|
|
|
|
H signals request for data |
3 | |
|
|
|
|
|
|
|
|
|
|
|
|
P places low nibble (D0,...,D3) on lines |
4 | |
|
|
|
|
|
|
|
|
|
|
|
|
P signals valid data |
5 | |
|
|
|
|
|
|
|
|
|
|
|
|
H signals reception of low nibble |
6 | |
|
|
|
|
|
|
|
|
|
|
|
|
(P may invalidate data lines) |
7 | |
|
|
|
|
|
|
|
|
|
|
|
|
P signals readiness for next nibble. |
 |
2' | |
|
|
|
|
|
|
|
|
|
|
|
|
H signals request for high nibble |
3' | |
|
|
|
|
|
|
|
|
|
|
|
|
P places high nibble (D4,...,D7) on lines |
4' | |
|
|
|
|
|
|
|
|
|
|
|
|
P signals valid data |
5' | |
|
|
|
|
|
|
|
|
|
|
|
|
H signals reception of high nibble |
6' | |
|
|
|
|
|
|
|
|
|
|
|
|
P signals whether it has more data |
7' | |
|
|
|
|
|
|
|
|
|
|
|
|
P signals end of byte. |
 |
Idle | |
|
|
|
|
|
|
|
|
|
|
|
|
Notes
-
/Error is used for two signals depending on HostBusy:
The peripheral indicates /DataAvail between bytes when HostBusy
is high, and sends D0 or D4, when
HostBusy is low.
-
Without problems, the peripheral may switch the Busy signal to
high whenever the control lines change. This
Centronics behaviour does not interfere with the nibble mode protocol.
-
In step 6, the peripheral may, but need not, change the data
lines. Most notably, the Busy signal may be switched.
-
In step 6', the same holds as in step 6, expect that the
/DataAvail signal must be set according to the
availability of more data, before going to step 7'.
-
/Init must be constantly high while in nibble
mode.
-
/Select = 1284Active must be constantly
high while in nibble mode.
-
/Strobe is not used in nibble mode and should most probably be
constantly high while in nibble mode.