Braintechnology USB-LPS

From sigrok
Revision as of 16:51, 10 November 2012 by Mrnuke (talk | contribs)
Jump to navigation Jump to search
Braintechnology USB-LPS

The Braintechnology USB-LPS is a Cypress FX2 based 16-channel, 24MHz, USB-based logic analyzer and signal/pattern generator.

See Braintechnology USB-LPS/Info for some more details (such as lsusb -vvv output) on the device.

In sigrok, the open-source fx2lafw firmware and driver is used for this device.

Hardware

  • Cypress CY7C68013A-56PVXC (FX2)
  • Atmel ATTiny13-20SU
  • LD33 (3.3V voltage regulator)
  • 24MHz crystal

Photos

Protocol

Firmware upload

The FX2 firmware (3072 bytes in size) is uploaded before every sampling run. Certain bytes in the firmware differ depending on the selected sampling rate.

Starting a sampling run

The host seems to send: 0x00 0x01 0x00 0x00 0x00

Stopping a sampling run

The host seems to send: 0x00 0x00 0x00 0x00 0x00

Sample rates

Sampling with 8 probes:

Samplerate Divider Other byte
24 MHz 0x01 0xee
16 MHz 0x02 0xee
15 MHz 0x01 0xae
12 MHz 0x03 0xee
10 MHz 0x02 0xae
8 MHz 0x05 0xee
6 MHz 0x07 0xee
5 MHz 0x05 0xae
4 MHz 0x0b 0xee
3 MHz 0x0f 0xee
2.5 MHz 0x0b 0xae
2 MHz 0x17 0xee
1.5 MHz 0x1f 0xee
1 MHz 0x2f 0xee
800 kHz 0x3b 0xee
750 kHz 0x3f 0xee
600 kHz 0x4f 0xee
500 kHz 0x5f 0xee
400 kHz 0x77 0xee
300 kHz 0x9f 0xee
250 kHz 0xbf 0xee
200 kHz 0xef 0xee
150 kHz 0xc7 0xae
120 kHz 0xf9 0xae

Sampling with 16 probes:

Samplerate Divider Other byte
 
 
 
12 MHz 0x03 0xee
10 MHz 0x02 0xae
8 MHz 0x05 0xee
6 MHz 0x07 0xee
5 MHz 0x05 0xae
4 MHz 0x0b 0xee
3 MHz 0x0f 0xee
2.5 MHz 0x0b 0xae
2 MHz 0x17 0xee
1.5 MHz 0x1f 0xee
1 MHz 0x2f 0xee
800 kHz 0x3b 0xee
750 kHz 0x3f 0xee
600 kHz 0x4f 0xee
500 kHz 0x5f 0xee
400 kHz 0x77 0xee
300 kHz 0x9f 0xee
250 kHz 0xbf 0xee
200 kHz 0xef 0xee
150 kHz 0xc7 0xae
120 kHz 0xf9 0xae

The byte values for sampling with 8 or 16 probes are thus identical, the only difference is that the sampling rates 24/16/15MHz are not available when 16 probes are used.

Sample format

  • 8 bit sampling: Every sample is a byte, bit 0 is the value of probe 0, bit 7 is the value of probe 7.
  • 16 bit sampling: Every sample consists of two bytes.
    • First byte: Bit 0 is the value of probe 0, bit 7 is the value of probe 7.
    • Second byte: Bit 0 is the value of probe 8, bit 7 is the value of probe 15.

Buffer size

Not relevant to the protocol, happens purely in software, on the PC side (by sending the "stop acquisition" command at the correct point in time).

The original software allows setting a buffer size to 1-2433 MB, in 1MB steps. This is simply the amount of data streamed from the device to the PC (there is no device-internal buffer/memory).

Pre-Trigger value

Not relevant to the protocol, happens purely in software, on the PC side.

The original software has a pretrigger setting (a scrollbar); it's unclear whether this is an absolute value or a percentage or something else.

Trigger settings

Not relevant to the protocol, happens purely in software, on the PC side.

The original software allows setting per-probe triggers (4 levels deep). At each level the trigger for that probe can be low, high, or dont-care.

Resources

TODO.