Difference between revisions of "Hantek 4032L/Info"

From sigrok
Jump to navigation Jump to search
(Created)
 
(Added USB-powered conersion instruction)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== USB descriptors ==
== lsusb ==
 
<small>
$ '''lsusb -v'''
Bus 002 Device 008: ID '''04b5:4032 ROHM LSI Systems USA, LLC'''
Device Descriptor:
  bLength                18
  bDescriptorType        1
  bcdUSB              2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass        0
  bDeviceProtocol        0
  bMaxPacketSize0        64
  idVendor          0x04b5 '''ROHM LSI Systems USA, LLC'''
  idProduct          0x4032
  bcdDevice            0.00
  iManufacturer          1 '''ODM'''
  iProduct                2 '''LA-4032'''
  iSerial                0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                9
    bDescriptorType        2
    wTotalLength          32
    bNumInterfaces          1
    bConfigurationValue    1
    iConfiguration          0
    bmAttributes        0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              500mA
    Interface Descriptor:
      bLength                9
      bDescriptorType        4
      bInterfaceNumber        0
      bAlternateSetting      0
      bNumEndpoints          2
      bInterfaceClass      255 '''Vendor Specific Class'''
      bInterfaceSubClass      0
      bInterfaceProtocol      0
      iInterface              0
      Endpoint Descriptor:
        bLength                7
        bDescriptorType        5
        bEndpointAddress    0x02  '''EP 2 OUT'''
        bmAttributes            2
          Transfer Type            '''Bulk'''
          Synch Type              None
          Usage Type              Data
        wMaxPacketSize    0x0200  1x 512 bytes
        bInterval              0
      Endpoint Descriptor:
        bLength                7
        bDescriptorType        5
        bEndpointAddress    0x86  '''EP 6 IN'''
        bmAttributes            2
          Transfer Type            '''Bulk'''
          Synch Type              None
          Usage Type              Data
        wMaxPacketSize    0x0200  1x 512 bytes
        bInterval              0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType        6
  bcdUSB              2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass        0
  bDeviceProtocol        0
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:    0x0000
  (Bus Powered)
</small>
 
Another set of USB info (Windows?):


<small>
<small>
Line 48: Line 122:
</small>
</small>


== PCB testpoints ==
== Pinouts ==
 
=== JP2 JTAG ===
 
  XC6SLX16 JTAG port
 
  1 - GND
  2 - TMS
  3 - TDO
  4 - TDI
  5 - TCK
  6 - +3.3V
 
=== JP5 WRITE ===
 
  MX25L4005 write protect disable
 
  1 - nWP
  2 - +3.3V
 
=== JP6 RST ===
 
  XC6SLX16 configuration reset
 
  1 - PROGRAM_B
  2 - GND
 
=== JP7 FLASH_SPI ===
 
  MX25L4005 ISP
 
  1 - +3.3V
  2 - CK
  3 - DIN
  4 - DOUT
  5 - nCS
  6 - GND
 
=== USBXI ===
 
  USB, external trigger
 
  Top:
  1  - n/c
  2  - n/c
  3  - n/c
  4  - n/c
  5  - n/c
  6  - n/c
  7  - n/c
  KEY
  8  - GND
  9  - n/c
  10 - n/c
  11 - n/c
  12 - GND
  13 - n/c
  14 - GND
  15 - USB D+
  16 - USB D-
  17 - USB VBUS
  18 - USB VBUS


=== JTAG ===
  Bottom:
  1  - n/c
  2  - n/c
  3  - n/c
  4  - n/c
  5  - n/c
  6  - n/c
  7  - n/c
  KEY
  8  - n/c
  9  - n/c
  10 - n/c
  11 - ExtTrigOut LVCMOS3V3
  12 - ExtTrigIn  LVCMOS3V3
  13 - GND
  14 - n/c
  15 - n/c
  16 - GND
  17 - n/c
  18 - n/c


TODO.
== Modding ==


=== SPI FLASH ===
In stock configuration both FX2LP and FPGA boots from their serial EEPROMs, but with a small hw patch it is possible to boot both parts from PC:
* lift U3 pin 5 to disable FX2LP EEPROM boot
* remove R102 and solder it between R102's left pad (this is FPGA's M1 pin) and C135's left pad (this is Vcc) to switch FPGA config mode to Slave Serial. FX2LP's PC5 is FPGA's PROGRAM_B, PC3 is DATA, PC1 is CLOCK, PC0 must be driven high (this is SPI FLASH nCS)


TODO.
4032L's current consumption is well within the 0.5A USB 2.0 limit, so it's possible to toss the wall brick and convert the LA to USB power:
* solder a jumper in unpopulated R279 position
* cover the external power connector with some sticker to prevent simultaneous power accidents

Latest revision as of 15:51, 30 July 2018

lsusb

$ lsusb -v
Bus 002 Device 008: ID 04b5:4032 ROHM LSI Systems USA, LLC
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x04b5 ROHM LSI Systems USA, LLC
  idProduct          0x4032 
  bcdDevice            0.00
  iManufacturer           1 ODM
  iProduct                2 LA-4032
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)

Another set of USB info (Windows?):

 Device Descriptor:
   bcdUSB:             0x0200
   bDeviceClass:         0x00
   bDeviceSubClass:      0x00
   bDeviceProtocol:      0x00
   bMaxPacketSize0:      0x40 (64)
   idVendor:           0x04B5 (ROHM LSI Systems USA, LLC)
   idProduct:          0x4032
   bcdDevice:          0x0000
   iManufacturer:        0x01
       0x0409: "ODM   "
   iProduct:             0x02
       0x0409: "LA-4032"
   iSerialNumber:        0x00
   bNumConfigurations:   0x01
 
 Configuration Descriptor:
   wTotalLength:       0x0020
   bNumInterfaces:       0x01
   bConfigurationValue:  0x01
   iConfiguration:       0x00
   bmAttributes:         0xA0 (Bus Powered Remote Wakeup)
   MaxPower:             0xFA (500 Ma)
 
 Interface Descriptor:
   bInterfaceNumber:     0x00
   bAlternateSetting:    0x00
   bNumEndpoints:        0x02
   bInterfaceClass:      0xFF
   bInterfaceSubClass:   0x00
   bInterfaceProtocol:   0x00
   iInterface:           0x00

 Endpoint Descriptor:
   bEndpointAddress:     0x02
   Transfer Type:        Bulk
   wMaxPacketSize:     0x0200 (512)
   bInterval:            0x00
 
 Endpoint Descriptor:
   bEndpointAddress:     0x86
   Transfer Type:        Bulk
   wMaxPacketSize:     0x0200 (512)
   bInterval:            0x00

Pinouts

JP2 JTAG

 XC6SLX16 JTAG port
 
 1 - GND
 2 - TMS
 3 - TDO
 4 - TDI
 5 - TCK
 6 - +3.3V

JP5 WRITE

 MX25L4005 write protect disable
 
 1 - nWP
 2 - +3.3V

JP6 RST

 XC6SLX16 configuration reset
 
 1 - PROGRAM_B
 2 - GND

JP7 FLASH_SPI

 MX25L4005 ISP
 
 1 - +3.3V
 2 - CK
 3 - DIN
 4 - DOUT
 5 - nCS
 6 - GND

USBXI

 USB, external trigger
 Top:
 1  - n/c
 2  - n/c
 3  - n/c
 4  - n/c
 5  - n/c
 6  - n/c
 7  - n/c
 KEY
 8  - GND
 9  - n/c
 10 - n/c
 11 - n/c
 12 - GND
 13 - n/c
 14 - GND
 15 - USB D+
 16 - USB D-
 17 - USB VBUS
 18 - USB VBUS
 Bottom:
 1  - n/c
 2  - n/c
 3  - n/c
 4  - n/c
 5  - n/c
 6  - n/c
 7  - n/c
 KEY
 8  - n/c
 9  - n/c
 10 - n/c
 11 - ExtTrigOut LVCMOS3V3
 12 - ExtTrigIn  LVCMOS3V3
 13 - GND
 14 - n/c
 15 - n/c
 16 - GND
 17 - n/c
 18 - n/c

Modding

In stock configuration both FX2LP and FPGA boots from their serial EEPROMs, but with a small hw patch it is possible to boot both parts from PC:

  • lift U3 pin 5 to disable FX2LP EEPROM boot
  • remove R102 and solder it between R102's left pad (this is FPGA's M1 pin) and C135's left pad (this is Vcc) to switch FPGA config mode to Slave Serial. FX2LP's PC5 is FPGA's PROGRAM_B, PC3 is DATA, PC1 is CLOCK, PC0 must be driven high (this is SPI FLASH nCS)

4032L's current consumption is well within the 0.5A USB 2.0 limit, so it's possible to toss the wall brick and convert the LA to USB power:

  • solder a jumper in unpopulated R279 position
  • cover the external power connector with some sticker to prevent simultaneous power accidents