Nations Technologies Inc.
Tel
:
+86-755-86309900
:
Address: Nations Tower, #109 Baoshen Road, Hi-tech Park North.
Nanshan District, Shenzhen, 518057, P.R.China
602
/
631
corresponding to ADDR3_RX_0/CNT3_RX_0, the software will not toggle SW_BUF (SW_BUF = 0). If there is
another OUT data packet transmission on the USB bus at this time, the USB device will automatically reply the NAK
handshake signal to indicate flow control until the application finishes processing the data in buffer0 corresponding
to ADDR3_RX_0/CNT3_RX_0, and the software toggle SW_BUF = 1. In this case, the DATTOG and SW_BUF
values are different. If there is another OUT data packet transmission on the USB bus, the USB device can receive
data normally, and fill the received data into buffer0 corresponding to ADDR3_RX_0/CNT3_RX_0, and the
application can process the buffer1 corresponding to ADDR3_RX_1/CNT3_RX_1. As shown in Figure 26-4 below.
Figure 26-4 Double buffered bulk endpoint example
Application
USB transfer completed
hardware toggle: DATTOG=0
SW_BUF == 0
Yes
Usb bus
The Tx buffer of endpoint 3
(buffer0)
The Rx buffer of endpoint 3
(buffer1)
512 bytes packet buffer
DATTOG=1
SW_BUF=0
Usb bus
The Tx buffer of endpoint 3
(buffer0)
The Rx buffer of endpoint 3
(buffer1)
512 bytes packet buffer
DATTOG=0
SW_BUF=0
NAK
Application
Usb bus
The Tx buffer of endpoint 3
(buffer0)
The Rx buffer of endpoint 3
(buffer1)
512 bytes packet buffer
DATTOG=0
SW_BUF=1
Application
Software toggle: SW_BUF=1
No