; USB Bus Protocol Definition File ; This file defines the transfers to/from a custom USB device ; [Protocol] name = USBBus bitwise [DEBUG] ;DebugOn ; Uncomment this to turn on Debug Packets [Packet] [Start] type = event event = 1 ; Setup/In or Out found [End] type = event event = 6 ; ACK, NAK or Stall found or no handshake found [Decode] [Fields] ; Any Packet - No Response Fields Sync.8.i, PID.8.L, Addr.7l.d, EP.4l.d, CRC5.5.i, ; Token [4] ; No Handshake ; Setup - Nakd Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, ; Token Sync.8.i, HS.8=01011010b.L ; Handshake ; IN - Nakd Fields Sync.8.i, PID.8=10010110b.L, Addr.7L.d, EP.4L.d, CRC5.5.i, ; Token Sync.8.i, HS.8=01011010b.L ; Handshake ; IN - Stall Fields Sync.8.i, PID.8=10010110b.L, Addr.7L.d, EP.4L.d, CRC5.5.i, ; Token Sync.8.i, HS.8=01111000b.L ; Handshake ; OUT - Nakd Fields Sync.8.i, PID.8=10000111b.L, Addr.7L.d, EP.4L.d, CRC5.5.i, ; Token Sync.8.i, HS.8=01011010b.L ; Handshake ; OUT - Stall Fields Sync.8.i, PID.8=10000111b.L, Addr.7L.d, EP.4L.d, CRC5.5.i, ; Token Sync.8.i, HS.8=01111000b.L ; Handshake ; Setup Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, Sync.8.i, PID.8.L, SETUP_DATA.64L.H, CRC16.16.i, [4] Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, Sync.8.i, PID.8.L, Recipient.5L.L, Req_Type.2L=0.$Standard, DIR.1.L, Sdt_Req.8L=0.$Get Status, Value.16L.h, Index.16L.H, Length.16L.H, CRC16.16.i, Sync.8.i, HS.8.L Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, Sync.8.i, PID.8.L, Recipient.5L.L, Req_Type.2L=0.$Standard, DIR.1.L, Sdt_Req.8L=1.$Clear Feature, Value.16L.h, Index.16L.H, Length.16L.H, CRC16.16.i, Sync.8.i, HS.8.L Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, Sync.8.i, PID.8.L, Recipient.5L.L, Req_Type.2L=0.$Standard, DIR.1.L, Sdt_Req.8L=3.$Set Feature, Value.16L.h, Index.16L.H, Length.16L.H, CRC16.16.i, Sync.8.i, HS.8.L Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, Sync.8.i, PID.8.L, Recipient.5L.L, Req_Type.2L=0.$Standard, DIR.1.L, Sdt_Req.8L=5.$Set Address, Address.16L.h, Length.16L.i, Length.16L.i, CRC16.16.i, Sync.8.i, HS.8.L Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, Sync.8.i, PID.8.L, Recipient.5L.L, Req_Type.2L=0.$Standard, DIR.1.L, Sdt_Req.8L=6.$Get Descriptor, ValueL.8L.I, Type.8L.L, Index.16L.H, Length.16L.H, CRC16.16.i, Sync.8.i, HS.8.L Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, Sync.8.i, PID.8.L, Recipient.5L.L, Req_Type.2L=0.$Standard, DIR.1.L, Sdt_Req.8L=7.$Set Descriptor, Value.16L.h, Index.16L.H, Length.16L.H, CRC16.16.i, Sync.8.i, HS.8.L Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, Sync.8.i, PID.8.L, Recipient.5L.L, Req_Type.2L=0.$Standard, DIR.1.L, Sdt_Req.8L=8.$Get Configuration, Value.16L.h, Index.16L.H, Length.16L.H, CRC16.16.i, Sync.8.i, HS.8.L Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, Sync.8.i, PID.8.L, Recipient.5L.L, Req_Type.2L=0.$Standard, DIR.1.L, Sdt_Req.8L=9.$Set Configuration, Config.16L.h, Length.16L.i, Length.16L.i, CRC16.16.i, Sync.8.i, HS.8.L Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, Sync.8.i, PID.8.L, Recipient.5L.L, Req_Type.2L=0.$Standard, DIR.1.L, Sdt_Req.8L=10.$Get Interface, Value.16L.h, Index.16L.H, Length.16L.H, CRC16.16.i, Sync.8.i, HS.8.L Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, Sync.8.i, PID.8.L, Recipient.5L.L, Req_Type.2L=0.$Standard, DIR.1.L, Sdt_Req.8L=11.$Set Interface, AltSetting.16L.h, Interface.16L.H, Length.16L.H, CRC16.16.i, Sync.8.i, HS.8.L Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, Sync.8.i, PID.8.L, Recipient.5L.L, Req_Type.2L=0.$Standard, DIR.1.L, Sdt_Req.8L=12.$Sync Frame, Value.16L.h, Index.16L.H, Length.16L.H, CRC16.16.i, Sync.8.i, HS.8.L Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, Sync.8.i, PID.8.L, Recipient.5L.L, Req_Type.2L=1.$Dev Class, DIR.1.L, Request.8L.h, Value.16L.h, Index.16L.H, Length.16L.H, CRC16.16.i, Sync.8.i, HS.8.L Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, Sync.8.i, PID.8.L, Recipient.5L.L, Req_Type.2L=2.$Custom, DIR.1.L, Cstm_Req.8L=1.$Send Addr, Value.16L.h, Index.16L.H, Length.16L.H, CRC16.16.i, Sync.8.i, HS.8.L Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, Sync.8.i, PID.8.L, Recipient.5L.L, Req_Type.2L=2.$Custom, DIR.1.L, Cstm_Req.8L=2.$Send Data, Value.16L.h, Index.16L.H, Length.16L.H, CRC16.16.i, Sync.8.i, HS.8.L Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, Sync.8.i, PID.8.L, Recipient.5L.L, Req_Type.2L.d, DIR.1.L, Cstm_Req.8L.d, Value.16L.h, Index.16L.H, Length.16L.H, CRC16.16.i, Sync.8.i, HS.8.L ; Catch all Fields Sync.8.i, PID.8=10110100b.L, Addr.7l.d, EP.4l.d, CRC5.5.i, Sync.8.i, PID.8.L, __________________----------_________________SETUP_DATA__________________----------_________________.64L.H, CRC16.16.i, Sync.8.i, HS.8.L ;Decode packet that unable be decoded by above fields ; IN - OK Fields Sync.8.i, PID.8=10010110b.L, Addr.7L.d, EP.4L.d, CRC5.5.i, ; Token Sync.8.i, PID.8.L, InData.NL.h, CRC16.16.i, ; Data Sync.8.i, HS.8.L ; Handshake ; IN - No response Fields Sync.8.i, PID.8=10010110b.L, Addr.7L.d, EP.4L.d, CRC5.5.i, ; Token Sync.8.i, PID.8.L, InData.NL.h, CRC16.16.i, ; Data [4] ; Handshake ; OUT - OK Fields Sync.8.i, PID.8=10000111b.L, Addr.7L.d, EP.4L.d, CRC5.5.i, ; Token Sync.8.i, PID.8.L, OutData.NL.h, CRC16.16.i, ; Data Sync.8.i, HS.8.L ; Handshake ; OUT - No response Fields Sync.8.i, PID.8=10000111b.L, Addr.7L.d, EP.4L.d, CRC5.5.i, ; Token Sync.8.i, PID.8.L, OutData.NL.h, CRC16.16.i, ; Data [4] ; Handshake ; Catch all Fields Data.NL.h Lookup Type [1]=$Device [2]=$Config [3]=$String [4]=$Interface [5]=$Endpoint [6]=$DevQualifier [7]=$Others Lookup PID [11000011b]=$DATA0 [11010010b]=$DATA1 [01001011b]=$ACK [01011010b]=$NAK [01111000b]=$STALL [10110100b]=$SETUP [10000111b]=$OUT [10010110b]=$IN [10100101b]=$SOF Lookup HS [01001011b]=$ACK [01011010b]=$NAK [01111000b]=$STALL Lookup DIR [0] = $H->D [1] = $H<-D Lookup Recipient [0] = $Device [1] = $Interface [2] = $Endpoint