usbcore package¶
Subpackages¶
- usbcore.cpu package
- usbcore.rx package
- Submodules
- usbcore.rx.bitstuff module
- usbcore.rx.bitstuff_test module
- usbcore.rx.clock module
- usbcore.rx.clock_test module
- usbcore.rx.crc module
- usbcore.rx.crc_test module
- usbcore.rx.detect module
- usbcore.rx.detect_test module
- usbcore.rx.nrzi module
- usbcore.rx.nrzi_test module
- usbcore.rx.pipeline module
- usbcore.rx.pipeline_test module
- usbcore.rx.shifter module
- usbcore.rx.shifter_test module
- Module contents
- usbcore.sm package
- usbcore.tx package
- Submodules
- usbcore.tx.bitstuff module
- usbcore.tx.bitstuff_test module
- usbcore.tx.crc module
- usbcore.tx.crc_test module
- usbcore.tx.nrzi module
- usbcore.tx.nrzi_test module
- usbcore.tx.pipeline module
- usbcore.tx.pipeline_test module
- usbcore.tx.shifter module
- usbcore.tx.shifter_test module
- usbcore.tx.tester module
- Module contents
- usbcore.utils package
Submodules¶
usbcore.endpoint module¶
usbcore.io module¶
usbcore.pid module¶
-
class
usbcore.pid.PID[source]¶ Bases:
enum.IntEnum>>> bin(PID.SETUP.value) '0b1101' >>> PID.SETUP.encode() 'KKKKJJJJJJJJJJJJKKKKKKKKJJJJKKKK'
>>> for p in PID: ... print("%-10s" % p, "%x" % p.value, "%02x" % p.byte(), p.encode(1)) PID.SETUP d 2d KJJJKKJK PID.OUT 1 e1 KJKJKKKK PID.IN 9 69 KJKKJJJK PID.SOF 5 a5 KJJKJJKK PID.DATA0 3 c3 KKJKJKKK PID.DATA1 b 4b KKJJKJJK PID.DATA2 7 87 KKKJKJKK PID.MDATA f 0f KKKKJKJK PID.ACK 2 d2 JJKJJKKK PID.NAK a 5a JJKKKJJK PID.STALL e 1e JJJJJKJK PID.NYET 6 96 JJJKKJKK PID.PRE c 3c JKKKKKJK PID.SPLIT 8 78 JKJJJJJK PID.PING 4 b4 JKKJJJKK PID.RESERVED 0 f0 JKJKKKKK
-
SETUP= 13¶
-
OUT= 1¶
-
IN= 9¶
-
SOF= 5¶
-
DATA0= 3¶
-
DATA1= 11¶
-
DATA2= 7¶
-
MDATA= 15¶
-
ACK= 2¶
-
NAK= 10¶
-
STALL= 14¶
-
NYET= 6¶
-
PRE= 12¶
-
ERR= 12¶
-
SPLIT= 8¶
-
PING= 4¶
-
RESERVED= 0¶
-
-
class
usbcore.pid.PIDTypes[source]¶ Bases:
enum.IntEnum>>> # Token PIDs >>> PIDTypes.token(PID.SETUP), PIDTypes.data(PID.SETUP), PIDTypes.handshake(PID.SETUP) (True, False, False) >>> PIDTypes.token(PID.OUT), PIDTypes.data(PID.OUT), PIDTypes.handshake(PID.OUT) (True, False, False) >>> PIDTypes.token(PID.IN), PIDTypes.data(PID.IN), PIDTypes.handshake(PID.IN) (True, False, False) >>> PIDTypes.token(PID.SOF), PIDTypes.data(PID.SOF), PIDTypes.handshake(PID.SOF) (True, False, False)
>>> # Data PIDs >>> PIDTypes.token(PID.DATA0), PIDTypes.data(PID.DATA0), PIDTypes.handshake(PID.DATA0) (False, True, False) >>> PIDTypes.token(PID.DATA1), PIDTypes.data(PID.DATA1), PIDTypes.handshake(PID.DATA1) (False, True, False) >>> # USB2.0 Data PIDs >>> PIDTypes.token(PID.DATA2), PIDTypes.data(PID.DATA2), PIDTypes.handshake(PID.DATA2) (False, True, False) >>> PIDTypes.token(PID.MDATA), PIDTypes.data(PID.MDATA), PIDTypes.handshake(PID.MDATA) (False, True, False)
>>> # Handshake PIDs >>> PIDTypes.token(PID.ACK), PIDTypes.data(PID.ACK), PIDTypes.handshake(PID.ACK) (False, False, True) >>> PIDTypes.token(PID.NAK), PIDTypes.data(PID.NAK), PIDTypes.handshake(PID.NAK) (False, False, True) >>> PIDTypes.token(PID.STALL), PIDTypes.data(PID.STALL), PIDTypes.handshake(PID.STALL) (False, False, True) >>> # USB2.0 Handshake PIDs >>> PIDTypes.token(PID.NYET), PIDTypes.data(PID.NYET), PIDTypes.handshake(PID.NYET) (False, False, True)
>>> # Special PIDs >>> PIDTypes.token(PID.PRE), PIDTypes.data(PID.PRE), PIDTypes.handshake(PID.PRE) (False, False, False)
-
TOKEN= 1¶
-
DATA= 3¶
-
HANDSHAKE= 2¶
-
SPECIAL= 0¶
-
TYPE_MASK= 3¶
-