USB DATA Toggle
For bulk and interrupt transfers, the data toggle resets <0> only on Set Configuration, Set Interface, and Clear Feature(Endpoint Halt).
For isochronous transfers, the data toggle always is <0> and no ACK
For control transfers,
OUT Endpoint : hardware clears toggle bit at the reception of a SETUP PID addressed to this endpoint.< to received setup data packet DATA0>
IN Endpoint : hardware sets toggle bit at the reception of a SETUP PID addressed to this endpoint. <to send data or status packet DATA1>
SETUP : DATA0 : ACK <--hardware clears toggle bit
IN: DATA1:ACK <--hardware sets toggle bit
OUT:DATA1:ACK <--hardware clears toggle bit from DATA0 to DATA1
SETUP : DATA0 : ACK <--hardware clears toggle bit
OUT: DATA1:ACK <--hardware toggle toggle bit
IN:DATA1:ACK <--hardware sets toggle bit
SETUP : DATA0 : ACK <--hardware clears toggle bit
IN:DATA1:ACK <--hardware sets toggle bit