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.