Difference between revisions of "Sysclk LWLA1016/Protocol"

From sigrok
Jump to navigation Jump to search
(Start documenting the LWLA1016 protocol)
 
(Add detail on FPGA bitstreams)
Line 4: Line 4:


As with the LWLA1034, the FPGA bitstream is loaded via bulk transfer to USB end point 4. The format seems to be exactly the same, too.
As with the LWLA1034, the FPGA bitstream is loaded via bulk transfer to USB end point 4. The format seems to be exactly the same, too.
The Windows software ships four separate executables: One for running with 16 channels at up to 100 MSps, one for 8 channels at up to 200 MSps, and one for 8 channels at 250 MSps. A fourth executable runs the LWLA1016 in frequency counter mode. Each of the executables downloads its own bitstream to the FPGA.


=== Application Behavior ===
=== Application Behavior ===
Line 15: Line 17:
=== Firmware Extraction ===
=== Firmware Extraction ===


At least one firmware blob belonging to the LWLA1016 can be found even in the LWLA1034 installer executable. There is also a second bitstream near to it which probably belongs to the LWLA1016 as well. However, the firmware extraction tool should work with whatever installer is actually shipped with the LWLA1016, which is unlikely to be the LWLA1034 one.
The FPGA bitstreams are stored in RBF (Raw Binary File) format, as with the LWLA1034. The bitstreams can be extracted from various DLLs installed with the Windows software (an extraction tool will be provided until we get permission to distribute the firmware). Unfortunately, unlike with the LWLA1034, the LWLA1016 firmware cannot be easily extracted from the installer executable without installing the software first.


== Control Commands ==
== Control Commands ==

Revision as of 21:14, 29 June 2015

The basic structure of the SysClk LWLA1016 protocol is similar to the Sysclk LWLA1034/Protocol. As one would expect, it looks very much like an earlier iteration of the LWLA1034 protocol. It appears to lack the specialized commands the LWLA1034 has for reading memory and capture setup/status. Most of the functionality seems to be implemented on top of basic register reads and writes, using the same commands as the LWLA1034 for those.

FPGA Configuration

As with the LWLA1034, the FPGA bitstream is loaded via bulk transfer to USB end point 4. The format seems to be exactly the same, too.

The Windows software ships four separate executables: One for running with 16 channels at up to 100 MSps, one for 8 channels at up to 200 MSps, and one for 8 channels at 250 MSps. A fourth executable runs the LWLA1016 in frequency counter mode. Each of the executables downloads its own bitstream to the FPGA.

Application Behavior

The vendor software transfers a new bitstream to the FPGA

  1. on application start,
  2. ... (TODO).

Selecting specific device configurations may require downloading other bitstream variants to the device. TODO: Make sure all modes are covered.

Firmware Extraction

The FPGA bitstreams are stored in RBF (Raw Binary File) format, as with the LWLA1034. The bitstreams can be extracted from various DLLs installed with the Windows software (an extraction tool will be provided until we get permission to distribute the firmware). Unfortunately, unlike with the LWLA1034, the LWLA1016 firmware cannot be easily extracted from the installer executable without installing the software first.

Control Commands

As with the LWLA1034, control commands are sent via bulk transfer to USB end point 2, with the response (if any) coming in from end point 6.

For the most part, the LWLA1016 protocol seems to consist of basic register read and write commands. Unlike with the LWLA1034, it looks like capture setup, capture status polling and reading from memory are implemented on top of simple register reads and writes.

Command 0001: Read Register

Apparently identical to command 1 in the LWLA1034 protocol.

Registers

Some of the register addresses appearing in the protocol also occur in the LWLA1034 protocol, although it seems that their purpose may not be the same. Other registers appear to be specific to the LWLA1016.

Address Value
1010 ???
1070 ???
107C ???
10B0 ???
10B8 ???
10BC ???

Command 0002: Write Register

Apparently identical to command 2 in the LWLA1034 protocol.

Registers

Some of the register addresses appearing in the protocol also occur in the LWLA1034 protocol, although it seems that their purpose may not be the same. Other registers appear to be specific to the LWLA1016.

Address Value
1000 ???
1010 ???
107C ???
10B0 ???
10B4 ???
10B8 ???
10BC ???

Command 0003: Read ???

This command reads something from the device. It does not occur in the LWLA1034 protocol.

Command

Fixed (?) length of 4 words (8 bytes).

Response

The response to the command as sent by the vendor software consists of 8 words (16 bytes).