Bulk In Transaction - Epson S2R72V18 Technical Manual

Table of Contents

Advertisement

1.4.3.5

Bulk IN Transaction

The transfer type (H_CHx{x=b-e}Config_1.TranType) is set to "Bulk" and the transaction type
(H_CHx{x=a-e}Config_1.TID) is set to "IN" for the CHx{x=a-e} basic setting register. The other
basic settings are set appropriately, and transfer execution (H_CHx{x=a-e}Config_0.TranGo) is set,
subjecting the channel to hardware-based USB transfer scheduling. When the corresponding
channel is selected by scheduling, the FIFO free space and remaining frame time is determined, and
a bulk IN transaction is executed. Channel CHa is dedicated for bulk transfer, and so the basic
setting registers do not include a transfer type.
The data length expected of the data packets to be received is the smaller of
H_CHx{x=a-e}MaxPacketSize_H,L and H_CHx{x=a-e}TotalSize_HH,HL,LH,LL.
If all data is received normally in the bulk IN transaction, an ACK response is returned, and the
transaction ends. An ACK status notification (H_CHx{x=a-e}IntStat.TranACK bit) is also issued to
the firmware. The FIFO is then updated, reserving space by treating the data as already received.
If the data length received is shorter than the data length expected for the bulk IN transaction,
H_CHx{x=a-e}Config_0.TranGo is automatically cleared, ending the transfer and returning an
ACK response. The condition code (H_CHx{x=a-e}ConditionCode) is set to "DataUnderrun." A
ChangeCondition status notification (H_CHx{x=a-e}IntStat.ChangeCondition bit) is then issued to
the firmware. The FIFO is updated and the area is reserved by treating the data as already received.
If a NAK is received for the bulk IN transaction, no status notification is issued, and the FIFO is not
updated.
If STALL is received for the bulk IN transaction, H_CHx{x=a-e}Config_0.TranGo is automatically
cleared, ending the transfer, and the condition code (H_CHx{x=a-e}ConditionCode) is set to
"STALL." A ChangeCondition status notification (H_CHx{x=a-e}IntStat.ChangeCondition bit) is
then issued to the firmware. The FIFO is not updated.
If the data length received is longer than the data length expected for the bulk IN transaction,
H_CHx{x=a-e}Config_0.TranGo is automatically cleared, ending the transfer. No response is
returned. The condition code (H_CHx{x=a-e}ConditionCode) is set to "DataOverrun." A
ChangeCondition status notification (H_CHx{x=a-e}IntStat.ChangeCondition bit) is then issued to
the firmware. The FIFO is not updated.
If a toggle mismatch occurs for the bulk IN transaction, an ACK response is returned. The condition
code (H_CHx{x=a-e}ConditionCode) is set to "RetryError," and a TranErr status notification
(H_CHx{x=a-e}IntStat.TranErr bit) is issued to the firmware. The FIFO is not updated.
If a timeout error, CRC error, bit stuffing error, or PID error (including unforeseen PID) occurs for
the bulk IN transaction, no response is returned. The condition code
(H_CHx{x=a-e}ConditionCode) is set to "RetryError," and a TranErr status notification
(H_CHx{x=a-e}IntStat.TranErr bit) is issued to the firmware. The FIFO is not updated.
If an error occurs for which the condition code (H_CHx{x=a-e}ConditionCode) is set to
"RetryError," retry processing is performed. If three successive errors occur,
S2R72V18 Technical Manual (Rev.1.00)
EPSON
1. Functions
61

Advertisement

Table of Contents
loading

Table of Contents