<b>a) Control-IN transfer</b>
- Transaction (packet) sequence:
    SETUP - IN - IN -...- IN - OUT
            (data stage)       (status stage)
- setup stage
   SETUP packet is received by Control-OUT EP
   This packet is handled by "Control Out Handler" - left main path
   MCU set "Control State" to USB_TRANSMIT
- data stage
   MCU interpret SETUP packet in mainloop, fill IN buffer with appropriate data
   IN transaction is received by Control-IN EP
   D12 returns a packet filled to IN buffer in the mainloop
   After sending the packet, "Control IN Handler" is called by interrupt
- status stage
   OUT packet (ZLP) is received by Control-OUT EP
   This packet is handled by "Control Out Handler" - rightmost small path
   MCU set "Control State" to USB_IDLE

<b>a) Control-OUT transfer (with data stage)</b>
- Transaction (packet) sequence:
    SETUP - OUT - OUT -...- OUT - IN
            (data stage)          (status stage)
- setup stage
   SETUP packet is received by Control-OUT EP
   This packet is handled by "Control Out Handler" - left main path
   MCU set "Control State" to USB_RECEIVE
- data stage
   MCU interpret SETUP packet in mainloop, prepare to receive data
   OUT packet is received by Control-OUT EP
   This packet is handled by "Control Out Handler" - center path
   When all data is received, MCU set "Control State" to USB_IDLE
   MCU handle the command told by host 
- status stage
   MCU set ZLP to Control-IN EP in mainloop
   IN transaction is received by Control-IN EP
   D12 returns ZLP
   After sending the packet, "Control IN Handler" is called by interrupt
   "Control IN Handler" return immediately, because "Control State" is USB_IDLE

<b>a) Control-OUT transfer (without data stage)</b>
- Transaction (packet) sequence:
    SETUP - IN
            (status stage)
- setup stage
   SETUP packet is received by Control-OUT EP
   This packet is handled by "Control Out Handler" - left main path
   MCU set "Control State" to USB_IDLE, because of no data
- status stage
   MCU interpret SETUP packet in mainloop, handle the command told by host 
   MCU set ZLP to Control-IN EP in mainloop
   IN transaction is received by Control-IN EP
   D12 returns ZLP
   After sending the packet, "Control IN Handler" is called by interrupt
   "Control IN Handler" return immediately, because "Control State" is USB_IDLE