Difference between revisions of "InsideGadgets Logic Observer"
 (Created page with "{{Infobox logic analyzer | image            =  | name             = insideGadgets Logic Observer | status           = supported | source_code_dir  =  | channels         = 8 |...")  | 
				|||
| (2 intermediate revisions by the same user not shown) | |||
| Line 2: | Line 2: | ||
| image            =    | | image            =    | ||
| name             = insideGadgets Logic Observer  | | name             = insideGadgets Logic Observer  | ||
| status           =   | | status           = planned  | ||
| source_code_dir  =    | | source_code_dir  =    | ||
| channels         = 8  | | channels         = 8  | ||
| Line 45: | Line 45: | ||
|-  | |-  | ||
| 0  | | 0  | ||
|   | | Bitmask of the channels to trigger on. All channels marked according to the trigger level must match before a trigger is considered to have fired.  | ||
|-  | |-  | ||
| 1  | | 1  | ||
| Line 51: | Line 51: | ||
|-  | |-  | ||
| 2  | | 2  | ||
|   | | Delay after trigger, in milliseconds.  | ||
|-  | |-  | ||
| 3  | | 3  | ||
|   | | Trigger count: number of times the trigger must fire before the capture starts.  | ||
|-  | |-  | ||
| 4  | | valign="top" | 4  | ||
|   | | Sample rate, as follows:  | ||
{| border="0" style="font-size: smaller;" class="alternategrey "  | |||
|-  | |||
! Value  | |||
! Sample rate  | |||
|-  | |||
| 80  | |||
| 50 MS/S  | |||
|-  | |||
| 0  | |||
| 10 MS/S  | |||
|-  | |||
| 1  | |||
| 5 MS/S  | |||
|-  | |||
| 3  | |||
| 2.5 MS/S  | |||
|-  | |||
| 9  | |||
| 1 MS/S  | |||
|-  | |||
| 19  | |||
| 500 KS/S  | |||
|-  | |||
| 39  | |||
| 250 KS/S  | |||
|-  | |||
| 99  | |||
| 100 KS/S  | |||
|}  | |||
|-  | |-  | ||
| 5  | | 5  | ||
| Line 70: | Line 99: | ||
=== USB_STATUS (3) ===  | === USB_STATUS (3) ===  | ||
Returns a 2-byte status field. The first byte indicates whether capturing has finished (1) or not (0). The second byte is always 0.  | |||
=== USB_CANCEL (4) ===  | === USB_CANCEL (4) ===  | ||
This cancels a capture in progress.  | |||
== Resources ==  | == Resources ==  | ||
Latest revision as of 18:08, 23 August 2015
| Status | planned | 
|---|---|
| Channels | 8 | 
| Samplerate | 50MHz | 
| Samplerate (state) | — | 
| Triggers | high, low | 
| Min/max voltage | 2V — 5.5V | 
| Threshold voltage | ? | 
| Memory | 131ksamples/ch | 
| Compression | none | 
| Website | insidegadgets.com | 
The insideGadgets Logic Observer is an 8-channel logic analyzer with up to 50MHz sampling rate. It is a mostly open project with all source code (CPLD, MCU) available, as well as a schematic of the PCB.
See insideGadgets Logic Observer/Info for more details (such as lsusb -v output) about the device.
Hardware
Protocol
The device is controlled entirely via USB control messages. The command is encoded in the request value of the control message; value and index are unused.
The following requests are defined:
USB_TRANSFER (1)
This tells the device to transfer the samples captured in memory to the host. This is called multiple times; the buffer memory is transferred 254 bytes at a time, with the address increasing automatically. The address is reset when a capture is started or settings are updated.
USB_SETTINGS (2)
Send new settings to the device. The settings consist of the following eight bytes sent along with the control request:
| Byte | Description | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Bitmask of the channels to trigger on. All channels marked according to the trigger level must match before a trigger is considered to have fired. | ||||||||||||||||||
| 1 | Level to trigger on (0 or 1). | ||||||||||||||||||
| 2 | Delay after trigger, in milliseconds. | ||||||||||||||||||
| 3 | Trigger count: number of times the trigger must fire before the capture starts. | ||||||||||||||||||
| 4 | Sample rate, as follows:
  | ||||||||||||||||||
| 5 | Number of samples to capture | ||||||||||||||||||
| 6 | Start capture flag: a capture is started if this is not 0. | ||||||||||||||||||
| 7 | Always 0. | 
USB_STATUS (3)
Returns a 2-byte status field. The first byte indicates whether capturing has finished (1) or not (0). The second byte is always 0.
USB_CANCEL (4)
This cancels a capture in progress.