手里有个比较早的时候买的100M的逻辑分析仪,参数在当时是比较高的了, 在3/6/9/16 通道时分别可达100/50/32/16MHz的采样率,用的USB2.0高速接口。是国内一家厂商山寨的Saleae Logic16。可惜后面自动升级固件之后,不能使用了。也不能浪费,拆开来分析分析,学习下吧。
常见的JTAG的盒子,直接用一字螺丝刀撬开即可。
可以看到PCB
使用UsbTreeView.exe可以查看设备的枚举信息,使用的是厂商自定义设备协议
枚举内容如下
- =========================== USB Port1 ===========================
- Connection Status : 0x01 (Device is connected)
- Port Chain : 2-1
- Properties : 0x01
- IsUserConnectable : yes
- PortIsDebugCapable : no
- PortHasMultiCompanions : no
- PortConnectorIsTypeC : no
- ConnectionIndex : 0x01 (Port 1)
- CompanionIndex : 0
- CompanionHubSymLnk : USB#ROOT_HUB30#4&302b2024&0&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
- CompanionPortNumber : 0x0D (Port 13)
- -> CompanionPortChain : 2-13
- ========================== Summary =========================
- Vendor ID : 0x21A9 (Saleae LLC)
- Product ID : 0x1001
- USB Version : 2.0
- Port maximum Speed : High-Speed (Companion Port 2-13 supports SuperSpeed)
- Device maximum Speed : High-Speed
- Device Connection Speed : High-Speed
- Self powered : no
- Demanded Current : 100 mA
- Used Endpoints : 1
- ======================== USB Device ========================
- +++++++++++++++++ Device Information ++++++++++++++++++
- Device Description : Saleae Logic16 USB Logic Analyzer
- Device Path 1 : \\?\USB#VID_21A9&PID_1001#5&244f8fa8&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
- Device Path 2 : \\?\USB#VID_21A9&PID_1001#5&244f8fa8&0&1#{dee824ef-729b-4a0e-9c14-b7117d33a817} (GUID_DEVINTERFACE_WINUSB)
- Device Path 3 : \\?\USB#VID_21A9&PID_1001#5&244f8fa8&0&1#{a6782bce-4376-4de2-8096-70aa9e8fed19}
- Device Path 4 : \\?\USB#VID_21A9&PID_1001#5&244f8fa8&0&1#{d509886e-3aa5-11df-861e-86b356d89593}
- Kernel Name : \Device\USBPDO-7
- Device ID : USB\VID_21A9&PID_1001\5&244F8FA8&0&1
- Hardware IDs : USB\VID_21A9&PID_1001&REV_0000 USB\VID_21A9&PID_1001
- Driver KeyName : {36fc9e60-c465-11cf-8056-444553540000}\0036 (GUID_DEVCLASS_USB)
- Driver : \SystemRoot\System32\drivers\WinUsb.sys (Version: 10.0.22621.608 Date: 2022-10-03)
- Driver Inf : C:\WINDOWS\inf\oem36.inf
- Legacy BusType : PNPBus
- Class : USB
- Class GUID : {36fc9e60-c465-11cf-8056-444553540000} (GUID_DEVCLASS_USB)
- Service : WinUSB
- Enumerator : USB
- Location Info : Port_#0001.Hub_#0002
- Location IDs : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(1), ACPI(_SB_)#ACPI(PC00)#ACPI(XHCI)#ACPI(RHUB)#ACPI(HS01)
- Container ID : {21622f66-2b81-11ee-9f00-e20af6a8ada3}
- Manufacturer Info : Saleae LLC
- Capabilities : 0x04 (Removable)
- Status : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
- Problem Code : 0
- Address : 1
- Power State : D0 (supported: D0, D3, wake from D0)
- +++++++++++++++++ Registry USB Flags +++++++++++++++++
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags
- GlobalDisableSerNumGen : REG_BINARY 00
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\21A910010000
- osvc : REG_BINARY 00 00
- ---------------- Connection Information ---------------
- Connection Index : 0x01 (Port 1)
- Connection Status : 0x01 (DeviceConnected)
- Current Config Value : 0x01 (Configuration 1)
- Device Address : 0x0D (13)
- Is Hub : 0x00 (no)
- Device Bus Speed : 0x02 (High-Speed)
- Number Of Open Pipes : 0x00 (0 pipes to data endpoints)
- Data (HexDump) : 01 00 00 00 12 01 00 02 FF FF FF 40 A9 21 01 10 ...........@.!..
- 00 00 00 00 00 01 01 02 00 0D 00 00 00 00 00 01 ................
- 00 00 00 ...
- --------------- Connection Information V2 -------------
- Connection Index : 0x01 (1)
- Length : 0x10 (16 bytes)
- SupportedUsbProtocols : 0x03
- Usb110 : 1 (yes, port supports USB 1.1)
- Usb200 : 1 (yes, port supports USB 2.0)
- Usb300 : 0 (no, port not supports USB 3.0) -> but Companion Port 2-13 does
- ReservedMBZ : 0x00
- Flags : 0x00
- DevIsOpAtSsOrHigher : 0 (Device is not operating at SuperSpeed or higher)
- DevIsSsCapOrHigher : 0 (Device is not SuperSpeed capable or higher)
- DevIsOpAtSsPlusOrHigher : 0 (Device is not operating at SuperSpeedPlus or higher)
- DevIsSsPlusCapOrHigher : 0 (Device is not SuperSpeedPlus capable or higher)
- ReservedMBZ : 0x00
- Data (HexDump) : 01 00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 ................
- ---------------------- Device Descriptor ----------------------
- bLength : 0x12 (18 bytes)
- bDescriptorType : 0x01 (Device Descriptor)
- bcdUSB : 0x200 (USB Version 2.0)
- bDeviceClass : 0xFF (Vendor Specific)
- bDeviceSubClass : 0xFF
- bDeviceProtocol : 0xFF
- bMaxPacketSize0 : 0x40 (64 bytes)
- idVendor : 0x21A9 (Saleae LLC)
- idProduct : 0x1001
- bcdDevice : 0x0000
- iManufacturer : 0x00 (No String Descriptor)
- iProduct : 0x00 (No String Descriptor)
- iSerialNumber : 0x00 (No String Descriptor)
- bNumConfigurations : 0x01 (1 Configuration)
- Data (HexDump) : 12 01 00 02 FF FF FF 40 A9 21 01 10 00 00 00 00 .......@.!......
- 00 01 ..
- ------------------ Configuration Descriptor -------------------
- bLength : 0x09 (9 bytes)
- bDescriptorType : 0x02 (Configuration Descriptor)
- wTotalLength : 0x00AB (171 bytes)
- bNumInterfaces : 0x01 (1 Interface)
- bConfigurationValue : 0x01 (Configuration 1)
- iConfiguration : 0x00 (No String Descriptor)
- bmAttributes : 0x80
- D7: Reserved, set 1 : 0x01
- D6: Self Powered : 0x00 (no)
- D5: Remote Wakeup : 0x00 (no)
- D4..0: Reserved, set 0 : 0x00
- MaxPower : 0x32 (100 mA)
- Data (HexDump) : 09 02 AB 00 01 01 00 80 32 09 04 00 00 00 FF FF ........2.......
- FF 00 09 04 00 01 06 FF FF FF 00 07 05 01 02 00 ................
- 02 00 07 05 81 02 00 02 00 07 05 02 02 00 02 00 ................
- 07 05 04 02 00 02 00 07 05 86 02 00 02 00 07 05 ................
- 88 02 00 02 00 09 04 00 02 06 FF FF FF 00 07 05 ................
- 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 03 ..@......@......
- 00 02 01 07 05 04 02 00 02 00 07 05 86 03 00 02 ................
- 01 07 05 88 02 00 02 00 09 04 00 03 06 FF FF FF ................
- 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 .....@......@...
- 05 02 01 00 02 01 07 05 04 02 00 02 00 07 05 86 ................
- 01 00 02 01 07 05 88 02 00 02 00 ...........
- ---------------- Interface Descriptor -----------------
- bLength : 0x09 (9 bytes)
- bDescriptorType : 0x04 (Interface Descriptor)
- bInterfaceNumber : 0x00 (Interface 0)
- bAlternateSetting : 0x00
- bNumEndpoints : 0x00 (Default Control Pipe only)
- bInterfaceClass : 0xFF (Vendor Specific)
- bInterfaceSubClass : 0xFF
- bInterfaceProtocol : 0xFF
- iInterface : 0x00 (No String Descriptor)
- Data (HexDump) : 09 04 00 00 00 FF FF FF 00 .........
- ---------------- Interface Descriptor -----------------
- bLength : 0x09 (9 bytes)
- bDescriptorType : 0x04 (Interface Descriptor)
- bInterfaceNumber : 0x00 (Interface 0)
- bAlternateSetting : 0x01
- bNumEndpoints : 0x06 (6 Endpoints)
- bInterfaceClass : 0xFF (Vendor Specific)
- bInterfaceSubClass : 0xFF
- bInterfaceProtocol : 0xFF
- iInterface : 0x00 (No String Descriptor)
- Data (HexDump) : 09 04 00 01 06 FF FF FF 00 .........
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0200 (max 512 bytes)
- bInterval : 0x00 (never NAKs)
- Data (HexDump) : 07 05 01 02 00 02 00 .......
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0200 (max 512 bytes)
- bInterval : 0x00 (never NAKs)
- Data (HexDump) : 07 05 81 02 00 02 00 .......
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x02 (Direction=OUT EndpointID=2)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0200 (max 512 bytes)
- bInterval : 0x00 (never NAKs)
- Data (HexDump) : 07 05 02 02 00 02 00 .......
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x04 (Direction=OUT EndpointID=4)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0200 (max 512 bytes)
- bInterval : 0x00 (never NAKs)
- Data (HexDump) : 07 05 04 02 00 02 00 .......
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x86 (Direction=IN EndpointID=6)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0200 (max 512 bytes)
- bInterval : 0x00 (never NAKs)
- Data (HexDump) : 07 05 86 02 00 02 00 .......
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x88 (Direction=IN EndpointID=8)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0200 (max 512 bytes)
- bInterval : 0x00 (never NAKs)
- Data (HexDump) : 07 05 88 02 00 02 00 .......
- ---------------- Interface Descriptor -----------------
- bLength : 0x09 (9 bytes)
- bDescriptorType : 0x04 (Interface Descriptor)
- bInterfaceNumber : 0x00 (Interface 0)
- bAlternateSetting : 0x02
- bNumEndpoints : 0x06 (6 Endpoints)
- bInterfaceClass : 0xFF (Vendor Specific)
- bInterfaceSubClass : 0xFF
- bInterfaceProtocol : 0xFF
- iInterface : 0x00 (No String Descriptor)
- Data (HexDump) : 09 04 00 02 06 FF FF FF 00 .........
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
- bmAttributes : 0x03 (TransferType=Interrupt)
- wMaxPacketSize : 0x0040
- Bits 15..13 : 0x00 (reserved, must be zero)
- Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
- Bits 10..0 : 0x40 (64 bytes per packet)
- bInterval : 0x01 (1 microframe -> 0.125 ms)
- Data (HexDump) : 07 05 01 03 40 00 01 ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
- bmAttributes : 0x03 (TransferType=Interrupt)
- wMaxPacketSize : 0x0040
- Bits 15..13 : 0x00 (reserved, must be zero)
- Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
- Bits 10..0 : 0x40 (64 bytes per packet)
- bInterval : 0x01 (1 microframe -> 0.125 ms)
- Data (HexDump) : 07 05 81 03 40 00 01 ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x02 (Direction=OUT EndpointID=2)
- bmAttributes : 0x03 (TransferType=Interrupt)
- wMaxPacketSize : 0x0200
- Bits 15..13 : 0x00 (reserved, must be zero)
- Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
- Bits 10..0 : 0x200 (512 bytes per packet)
- bInterval : 0x01 (1 microframe -> 0.125 ms)
- Data (HexDump) : 07 05 02 03 00 02 01 .......
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x04 (Direction=OUT EndpointID=4)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0200 (max 512 bytes)
- bInterval : 0x00 (never NAKs)
- Data (HexDump) : 07 05 04 02 00 02 00 .......
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x86 (Direction=IN EndpointID=6)
- bmAttributes : 0x03 (TransferType=Interrupt)
- wMaxPacketSize : 0x0200
- Bits 15..13 : 0x00 (reserved, must be zero)
- Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
- Bits 10..0 : 0x200 (512 bytes per packet)
- bInterval : 0x01 (1 microframe -> 0.125 ms)
- Data (HexDump) : 07 05 86 03 00 02 01 .......
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x88 (Direction=IN EndpointID=8)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0200 (max 512 bytes)
- bInterval : 0x00 (never NAKs)
- Data (HexDump) : 07 05 88 02 00 02 00 .......
- ---------------- Interface Descriptor -----------------
- bLength : 0x09 (9 bytes)
- bDescriptorType : 0x04 (Interface Descriptor)
- bInterfaceNumber : 0x00 (Interface 0)
- bAlternateSetting : 0x03
- bNumEndpoints : 0x06 (6 Endpoints)
- bInterfaceClass : 0xFF (Vendor Specific)
- bInterfaceSubClass : 0xFF
- bInterfaceProtocol : 0xFF
- iInterface : 0x00 (No String Descriptor)
- Data (HexDump) : 09 04 00 03 06 FF FF FF 00 .........
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
- bmAttributes : 0x03 (TransferType=Interrupt)
- wMaxPacketSize : 0x0040
- Bits 15..13 : 0x00 (reserved, must be zero)
- Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
- Bits 10..0 : 0x40 (64 bytes per packet)
- bInterval : 0x01 (1 microframe -> 0.125 ms)
- Data (HexDump) : 07 05 01 03 40 00 01 ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
- bmAttributes : 0x03 (TransferType=Interrupt)
- wMaxPacketSize : 0x0040
- Bits 15..13 : 0x00 (reserved, must be zero)
- Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
- Bits 10..0 : 0x40 (64 bytes per packet)
- bInterval : 0x01 (1 microframe -> 0.125 ms)
- Data (HexDump) : 07 05 81 03 40 00 01 ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x02 (Direction=OUT EndpointID=2)
- bmAttributes : 0x01 (TransferType=Isochronous SyncType=None EndpointType=Data)
- wMaxPacketSize : 0x0200
- Bits 15..13 : 0x00 (reserved, must be zero)
- Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
- Bits 10..0 : 0x200 (512 bytes per packet)
- bInterval : 0x01 (1 microframe -> 0.125 ms)
- Data (HexDump) : 07 05 02 01 00 02 01 .......
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x04 (Direction=OUT EndpointID=4)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0200 (max 512 bytes)
- bInterval : 0x00 (never NAKs)
- Data (HexDump) : 07 05 04 02 00 02 00 .......
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x86 (Direction=IN EndpointID=6)
- bmAttributes : 0x01 (TransferType=Isochronous SyncType=None EndpointType=Data)
- wMaxPacketSize : 0x0200
- Bits 15..13 : 0x00 (reserved, must be zero)
- Bits 12..11 : 0x00 (0 additional transactions per microframe -> allows 1..1024 bytes per packet)
- Bits 10..0 : 0x200 (512 bytes per packet)
- bInterval : 0x01 (1 microframe -> 0.125 ms)
- Data (HexDump) : 07 05 86 01 00 02 01 .......
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x88 (Direction=IN EndpointID=8)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0200 (max 512 bytes)
- bInterval : 0x00 (never NAKs)
- Data (HexDump) : 07 05 88 02 00 02 00 .......
- --------- Device Qualifier Descriptor (for Full-Speed) --------
- bLength : 0x0A (10 bytes)
- bDescriptorType : 0x06 (Device_qualifier Descriptor)
- bcdUSB : 0x200 (USB Version 2.00)
- bDeviceClass : 0xFF (Vendor Specific)
- bDeviceSubClass : 0xFF
- bDeviceProtocol : 0xFF
- bMaxPacketSize0 : 0x40 (64 Bytes)
- bNumConfigurations : 0x01 (1 other-speed configuration)
- bReserved : 0x00
- Data (HexDump) : 0A 06 00 02 FF FF FF 40 01 00 .......@..
- ------------ Other Speed Configuration Descriptor -------------
- bLength : 0x09 (9 bytes)
- bDescriptorType : 0x07 (Other_speed_configuration Descriptor)
- wTotalLength : 0x00AB (171 bytes)
- bNumInterfaces : 0x01 (1 Interface)
- bConfigurationValue : 0x01 (Configuration 1)
- iConfiguration : 0x00 (No String Descriptor)
- bmAttributes : 0x80
- D7: Reserved, set 1 : 0x01
- D6: Self Powered : 0x00 (no)
- D5: Remote Wakeup : 0x00 (no)
- D4..0: Reserved, set 0 : 0x00
- MaxPower : 0x32 (100 mA)
- Data (HexDump) : 09 07 AB 00 01 01 00 80 32 09 04 00 00 00 FF FF ........2.......
- FF 00 09 04 00 01 06 FF FF FF 00 07 05 01 02 40 ...............@
- 00 00 07 05 81 02 40 00 00 07 05 02 02 40 00 00 ......@......@..
- 07 05 04 02 40 00 00 07 05 86 02 40 00 00 07 05 ....@......@....
- 88 02 40 00 00 09 04 00 02 06 FF FF FF 00 07 05 ..@.............
- 01 03 40 00 0A 07 05 81 03 40 00 0A 07 05 02 03 ..@......@......
- 40 00 0A 07 05 04 02 40 00 00 07 05 86 03 40 00 @......@......@.
- 0A 07 05 88 02 40 00 00 09 04 00 03 06 FF FF FF .....@..........
- 00 07 05 01 03 40 00 0A 07 05 81 03 40 00 0A 07 .....@......@...
- 05 02 01 40 00 01 07 05 04 02 40 00 00 07 05 86 ...@......@.....
- 01 40 00 01 07 05 88 02 40 00 00 .@......@..
- ---------------- Interface Descriptor -----------------
- bLength : 0x09 (9 bytes)
- bDescriptorType : 0x04 (Interface Descriptor)
- bInterfaceNumber : 0x00 (Interface 0)
- bAlternateSetting : 0x00
- bNumEndpoints : 0x00 (Default Control Pipe only)
- bInterfaceClass : 0xFF (Vendor Specific)
- bInterfaceSubClass : 0xFF
- bInterfaceProtocol : 0xFF
- iInterface : 0x00 (No String Descriptor)
- Data (HexDump) : 09 04 00 00 00 FF FF FF 00 .........
- ---------------- Interface Descriptor -----------------
- bLength : 0x09 (9 bytes)
- bDescriptorType : 0x04 (Interface Descriptor)
- bInterfaceNumber : 0x00 (Interface 0)
- bAlternateSetting : 0x01
- bNumEndpoints : 0x06 (6 Endpoints)
- bInterfaceClass : 0xFF (Vendor Specific)
- bInterfaceSubClass : 0xFF
- bInterfaceProtocol : 0xFF
- iInterface : 0x00 (No String Descriptor)
- Data (HexDump) : 09 04 00 01 06 FF FF FF 00 .........
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x00 (ignored)
- Data (HexDump) : 07 05 01 02 40 00 00 ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x00 (ignored)
- Data (HexDump) : 07 05 81 02 40 00 00 ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x02 (Direction=OUT EndpointID=2)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x00 (ignored)
- Data (HexDump) : 07 05 02 02 40 00 00 ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x04 (Direction=OUT EndpointID=4)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x00 (ignored)
- Data (HexDump) : 07 05 04 02 40 00 00 ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x86 (Direction=IN EndpointID=6)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x00 (ignored)
- Data (HexDump) : 07 05 86 02 40 00 00 ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x88 (Direction=IN EndpointID=8)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x00 (ignored)
- Data (HexDump) : 07 05 88 02 40 00 00 ....@..
- ---------------- Interface Descriptor -----------------
- bLength : 0x09 (9 bytes)
- bDescriptorType : 0x04 (Interface Descriptor)
- bInterfaceNumber : 0x00 (Interface 0)
- bAlternateSetting : 0x02
- bNumEndpoints : 0x06 (6 Endpoints)
- bInterfaceClass : 0xFF (Vendor Specific)
- bInterfaceSubClass : 0xFF
- bInterfaceProtocol : 0xFF
- iInterface : 0x00 (No String Descriptor)
- Data (HexDump) : 09 04 00 02 06 FF FF FF 00 .........
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
- bmAttributes : 0x03 (TransferType=Interrupt)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x0A (10 ms)
- Data (HexDump) : 07 05 01 03 40 00 0A ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
- bmAttributes : 0x03 (TransferType=Interrupt)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x0A (10 ms)
- Data (HexDump) : 07 05 81 03 40 00 0A ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x02 (Direction=OUT EndpointID=2)
- bmAttributes : 0x03 (TransferType=Interrupt)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x0A (10 ms)
- Data (HexDump) : 07 05 02 03 40 00 0A ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x04 (Direction=OUT EndpointID=4)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x00 (ignored)
- Data (HexDump) : 07 05 04 02 40 00 00 ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x86 (Direction=IN EndpointID=6)
- bmAttributes : 0x03 (TransferType=Interrupt)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x0A (10 ms)
- Data (HexDump) : 07 05 86 03 40 00 0A ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x88 (Direction=IN EndpointID=8)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x00 (ignored)
- Data (HexDump) : 07 05 88 02 40 00 00 ....@..
- ---------------- Interface Descriptor -----------------
- bLength : 0x09 (9 bytes)
- bDescriptorType : 0x04 (Interface Descriptor)
- bInterfaceNumber : 0x00 (Interface 0)
- bAlternateSetting : 0x03
- bNumEndpoints : 0x06 (6 Endpoints)
- bInterfaceClass : 0xFF (Vendor Specific)
- bInterfaceSubClass : 0xFF
- bInterfaceProtocol : 0xFF
- iInterface : 0x00 (No String Descriptor)
- Data (HexDump) : 09 04 00 03 06 FF FF FF 00 .........
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
- bmAttributes : 0x03 (TransferType=Interrupt)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x0A (10 ms)
- Data (HexDump) : 07 05 01 03 40 00 0A ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
- bmAttributes : 0x03 (TransferType=Interrupt)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x0A (10 ms)
- Data (HexDump) : 07 05 81 03 40 00 0A ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x02 (Direction=OUT EndpointID=2)
- bmAttributes : 0x01 (TransferType=Isochronous SyncType=None EndpointType=Data)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x01 (1 ms)
- Data (HexDump) : 07 05 02 01 40 00 01 ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x04 (Direction=OUT EndpointID=4)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x00 (ignored)
- Data (HexDump) : 07 05 04 02 40 00 00 ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x86 (Direction=IN EndpointID=6)
- bmAttributes : 0x01 (TransferType=Isochronous SyncType=None EndpointType=Data)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x01 (1 ms)
- Data (HexDump) : 07 05 86 01 40 00 01 ....@..
- ----------------- Endpoint Descriptor -----------------
- bLength : 0x07 (7 bytes)
- bDescriptorType : 0x05 (Endpoint Descriptor)
- bEndpointAddress : 0x88 (Direction=IN EndpointID=8)
- bmAttributes : 0x02 (TransferType=Bulk)
- wMaxPacketSize : 0x0040 (64 bytes)
- bInterval : 0x00 (ignored)
- Data (HexDump) : 07 05 88 02 40 00 00 ....@..
- -------------------- String Descriptors -------------------
- none
根据枚举信息画出如下拓扑结构
使用了3各接口对应不同的传输方式,每种使用了6各端点。接口0:0没有端点。
用的Xilinx(现在属于AMD) 的Spartan-3A XC3S200A, 拥有200K 门逻辑
用的Altera (现在属于Intel)的EPM3032A, 600 门逻辑, 32 宏单元.
其中J3是EPM3032A的JTAG调试口,定义如下
1 | 2 | 3 | 4 | 5 | 6 |
TMS | TDI | TCK | TDO | GND | 3.3V |
EPM3032A的引脚使用如下
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
JTAG TDI | I/O (FX2 PA7) | I/O (FX2 PA6) | GND | I/O (FX2 PA5) | I/O (FX2 PA4) | JTAG TMS | I/O (FX2 PA3) | VCC | I/O (FX2 PA2) | GND |
12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
I/O (FX2 PA1) | I/O (FX2 PA0) | I/O (FPGA PROG_B) | I/O (FPGA 94, IO_L05N_0) | GND | VCC | I/O (FPGA 85, IO_L03P_0) | I/O (FX2 CTL2) | I/O (FX2 CTL1) | I/O (FX2 CTL0) | I/O (FPGA 51, DIN/MISO) |
23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
I/O (NC?) | GND | I/O (FPGA 97, IP0) | JTAG TCK | I/O (FPGA 53, CCLK) | I/O (NC?) | VCC | GND | I/O (FPGA 3, IO_L01P_3) | JTAG TDO | I/O (NC?) |
34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |
I/O (NC?) | I/O (NC?) | GND | I/O (NC?) | I/O (NC?) | I/O (NC?) | I/O (NC?) | VCC | I/O (NC?) | I/O (NC?) | I/O (NC?) |
用的Cypress (现在属于英飞凌)的CY7C68013A-56PVXC (FX2LP) ,该芯片有个很牛逼的功能,就是直接将引脚的信号通过USB包发送出去,完全不需要额外的控制器参与,这也是很多低成本的逻辑分析仪的方案,无需其他的FPGA,CPLD和MCU,就一片该芯片即可。
用的Atmel(现在属于Microchip)的24LC02BI,支持400K的速度,工业级,2Kbit的容量。
EEPROM接到CY7C68013A用于配置USB通讯。
地址为A0-A2都是0所以IIC地址为0x50
W2的跳线帽用于配置WP写保护。
用的AMS的 AMS1117-3.3,这是最常用的3.3V电源芯片了。
用的AMS的 AMS1117-1.2
at88sc0104没有焊接
使用的24MHz无源晶体
使用了CPLD和FPGA做IO处理。
Saleae的逻辑分析仪当年确实很火,主要是性价比高,上位机做的很好,出了很多山寨的板子。尤其这个100M的型号,当时是热门型号,通过拆解可以看到使用了CPLD+FPGA+USB接口IC的方案,硬件设计没有什么特殊的,核心技术在嵌入式软件和上位机,这也是国产仪器的一个弱点,不过现在国产的也有很多性价比比较高的逻分,示波器等仪器,这方面也做的越来越好了。