<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://sigrok.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jani</id>
	<title>sigrok - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://sigrok.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jani"/>
	<link rel="alternate" type="text/html" href="https://sigrok.org/wiki/Special:Contributions/Jani"/>
	<updated>2026-05-28T00:13:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://sigrok.org/w/index.php?title=Saleae_Logic16&amp;diff=7011</id>
		<title>Saleae Logic16</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=Saleae_Logic16&amp;diff=7011"/>
		<updated>2013-08-08T15:48:53Z</updated>

		<summary type="html">&lt;p&gt;Jani: Added most likely part for I2C configuration EEPROM&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox logic analyzer&lt;br /&gt;
| image            = [[File:Saleae Logic16.jpg|180px]]&lt;br /&gt;
| name             = Saleae Logic16&lt;br /&gt;
| status           = in progress&lt;br /&gt;
| source_code_dir  = &lt;br /&gt;
| channels         = 2/4/8/16&lt;br /&gt;
| samplerate       = 100/50/25/12.5MHz&lt;br /&gt;
| samplerate_state = &amp;amp;mdash;&lt;br /&gt;
| triggers         = none (SW-only)&lt;br /&gt;
| voltages         = -0.9V &amp;amp;mdash; 6V&lt;br /&gt;
| threshold        = configurable:&amp;lt;br /&amp;gt;for 1.8V to 3.6V systems: VIH=1.4V, VIL=0.7V&amp;lt;br /&amp;gt;for 5V systems: VIH=3.6V, VIL=1.4V&lt;br /&gt;
| memory           = none&lt;br /&gt;
| compression      = yes&lt;br /&gt;
| website          = [http://www.saleae.com/logic16/ saleae.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Saleae Logic16&amp;#039;&amp;#039;&amp;#039; is a USB-based, 16-channel logic analyzer with 100/50/25/12.5MHz sampling rate (at 2/4/8/16 enabled channels). &lt;br /&gt;
&lt;br /&gt;
The case requires a &amp;#039;&amp;#039;&amp;#039;Torx T5&amp;#039;&amp;#039;&amp;#039; screwdriver to open.&lt;br /&gt;
&lt;br /&gt;
See [[Saleae Logic16/Info]] for more details (such as &amp;#039;&amp;#039;&amp;#039;lsusb -vvv&amp;#039;&amp;#039;&amp;#039; output) about the device.&lt;br /&gt;
&lt;br /&gt;
See [[Saleae Logic]] for the predecessor product of the Saleae Logic16. &lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;FPGA&amp;#039;&amp;#039;&amp;#039;: [http://www.xilinx.com/support/index.html/content/xilinx/en/supportNav/silicon_devices/fpga/spartan-3a.html Xilinx Spartan-3A XC3S200A], 200K gates ([http://www.xilinx.com/support/documentation/data_sheets/ds529.pdf datasheeet])&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;USB interface chip&amp;#039;&amp;#039;&amp;#039;: [http://www.cypress.com/?mpn=CY7C68013A-56PVXC Cypress CY7C68013A-56PVXC (FX2LP)] ([http://www.cypress.com/?docID=34060 datasheet])&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ultralow capacitance ESD protection&amp;#039;&amp;#039;&amp;#039;: 4x [http://www.st.com/web/catalog/sense_power/FM114/CL1137/SC1490/PF109008 ST DVIULC6-4SC6] ([http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00065974.pdf datasheet])&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;I2C EEPROM&amp;#039;&amp;#039;&amp;#039;: Marking: &amp;quot;B2TH&amp;quot;. [http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010774 Microchip 24AA02] has markings &amp;quot;B2??&amp;quot; in SOT-23 case ([http://ww1.microchip.com/downloads/en/DeviceDoc/21709J.pdf datasheet])&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Voltage regulators&amp;#039;&amp;#039;&amp;#039;: 2x [http://www.semtech.com/power-management/switching-regulators/sc189 Semtech SC189 Step Down Switching Regulator]. &amp;quot;189Z&amp;quot; for 3.3V and &amp;quot;189C&amp;quot; for 1.2V. ([http://www.semtech.com/images/datasheet/sc189.pdf datasheet])&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;?&amp;#039;&amp;#039;&amp;#039;: 2x Unknown 3-pin IC. Markings: &amp;quot;72Y7&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pinouts and connections:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;JTAG header (FPGA):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;J3&amp;#039;&amp;#039;&amp;#039; pin header is a JTAG connector wired to the FPGA. The pins are (from left to right, the right-most pin, pin number 1, is square):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!5&lt;br /&gt;
!4&lt;br /&gt;
!3&lt;br /&gt;
!2&lt;br /&gt;
!1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| GND&lt;br /&gt;
| TMS&lt;br /&gt;
| TCK&lt;br /&gt;
| TDO&lt;br /&gt;
| TDI&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Testpoints:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!T1&lt;br /&gt;
!T2&lt;br /&gt;
!T3&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1.2V&lt;br /&gt;
| 3.3V&lt;br /&gt;
| GND (FX2)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cypress FX2:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
{{chip_56pin&lt;br /&gt;
| 1=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 15, IO_L05P_3)&amp;lt;/span&amp;gt; PD5&lt;br /&gt;
| 2=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 13, IO_L04N_3)&amp;lt;/span&amp;gt; PD6&lt;br /&gt;
| 3=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 10, IO_L03N_3)&amp;lt;/span&amp;gt; PD7&lt;br /&gt;
| 4=GND&lt;br /&gt;
| 5=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 90, IO_0)&amp;lt;/span&amp;gt; CLKOUT&lt;br /&gt;
| 6=VCC&lt;br /&gt;
| 7=GND&lt;br /&gt;
| 8=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 3, IO_L01P_3)&amp;lt;/span&amp;gt; RDY0/*SLRD&lt;br /&gt;
| 9=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 3, IO_L01P_3)&amp;lt;/span&amp;gt; RDY1/*SLWR&lt;br /&gt;
| 10=AVCC&lt;br /&gt;
| 11=&amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;(24MHz crystal)&amp;lt;/span&amp;gt; XTALOUT&lt;br /&gt;
| 12=&amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;(24MHz crystal)&amp;lt;/span&amp;gt; XTALIN&lt;br /&gt;
| 13=AGND&lt;br /&gt;
| 14=AVCC&lt;br /&gt;
&lt;br /&gt;
| 15=&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;(USB D+)&amp;lt;/span&amp;gt; DPLUS&lt;br /&gt;
| 16=&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;(USB D-)&amp;lt;/span&amp;gt; DMINUS&lt;br /&gt;
| 17=AGND&lt;br /&gt;
| 18=VCC&lt;br /&gt;
| 19=GND&lt;br /&gt;
| 20=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 84, IO_L02N_0)&amp;lt;/span&amp;gt; *IFCLK&lt;br /&gt;
| 21=RESERVED&lt;br /&gt;
| 22=&amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;(EEPROM SCL)&amp;lt;/span&amp;gt; SCL&lt;br /&gt;
| 23=&amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;(EEPROM SDA)&amp;lt;/span&amp;gt; SDA&lt;br /&gt;
| 24=VCC&lt;br /&gt;
| 25=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 40, IO_L08P_2)&amp;lt;/span&amp;gt; PB0&lt;br /&gt;
| 26=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 78, IO_L01N_0)&amp;lt;/span&amp;gt; PB1&lt;br /&gt;
| 27=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 77, IO_L01P_0)&amp;lt;/span&amp;gt; PB2&lt;br /&gt;
| 28=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 50, IO_L11P_2)&amp;lt;/span&amp;gt; PB3&lt;br /&gt;
&lt;br /&gt;
| 29=PB4 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 46, MOSI)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 30=PB5 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 41, IO_L08N_2)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 31=PB6 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 37, IO_L07N_2)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 32=PB7 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 93, IO_L05P_0)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 33=GND&lt;br /&gt;
| 34=VCC&lt;br /&gt;
| 35=GND&lt;br /&gt;
| 36=CTL0 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 94, IO_L05N_0)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 37=CTL1 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 97, IP_0)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 38=CTL2 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 100, PROG_B)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 39=VCC&lt;br /&gt;
| 40=PA0 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 54, DONE)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 41=PA1 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 48, INIT_B)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 42=PA2 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 53, CCLK)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| 43=PA3 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 51, MISO)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 44=PA4 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 98, IO_L06P_0)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 45=PA5 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 85, IO_L03P_0)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 46=PA6 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 30, IO_L04P_2)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 47=PA7 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 9, IO_L03P_3)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 48=GND&lt;br /&gt;
| 49=RESET# &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;(3.3V via D2 (diode?))&amp;lt;/span&amp;gt;&lt;br /&gt;
| 50=VCC&lt;br /&gt;
| 51=*WAKEUP &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;(3.3V)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 52=PD0 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 6, IO_L02N_3)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 53=PD1 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 4, IO_L01N_3)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 54=PD2 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 5, IO_L02P_3)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 55=PD3 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 44, IO_L09N_2)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 56=PD4 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 12, IO_L04P_3)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Saleae Logic16.jpg|&amp;lt;small&amp;gt;Device, front&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae Logic16 bottom.jpg|&amp;lt;small&amp;gt;Device, bottom&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae Logic16 PCB top.jpg|&amp;lt;small&amp;gt;PCB, top&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae Logic16 PCB bottom.jpg|&amp;lt;small&amp;gt;PCB, bottom&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 xilinx xc3s200a.jpg|&amp;lt;small&amp;gt;Xilinx XC3S200A&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 cypress fx2lp.jpg|&amp;lt;small&amp;gt;Cypress FX2LP&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 eeprom b2th.jpg|&amp;lt;small&amp;gt;I2C EEPROM&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 dl46.jpg|&amp;lt;small&amp;gt;ST DVIULC6-4SC6&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 189z 189c.jpg|&amp;lt;small&amp;gt;Voltage regulators&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 72y7.jpg|&amp;lt;small&amp;gt;72Y7&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
The firmware for the FX2LP is embedded in the vendor application as a set of Intel HEX lines.  Each line is uploaded individually with a separate control transfer.  The firmware currently occupies the address range [0x0000-0x145d], but is uploaded out of order.  &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;TODO&amp;lt;/span&amp;gt;: Make a tool to extract the firmware from the application binary.&lt;br /&gt;
&lt;br /&gt;
See [[Saleae Logic16/Firmware]] for more details on the vendor firmware.&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Sample format&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
The samples (as received via USB) for the enabled probes (3, 6, 9, or 16) are organized as follows:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0xLL 0xLL  0xMM 0xMM  0xNN 0xNN&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0xPP 0xPP  0xQQ 0xQQ  0xRR 0xRR&amp;lt;/span&amp;gt; ...&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
In the above example, 3 probes are enabled. For each probe there are 2 bytes / 16 bits (e.g. 0xLL 0xLL for probe 0), then the next probe&amp;#039;s data is received (0xMM 0xMM for probe 1), then 0xNN 0xNN for probe 2. When 2 bytes have been received for all enabled probes, the process restarts with probe 0 again.&lt;br /&gt;
&lt;br /&gt;
The 16 bits of data per probe seem to contain the pin state of the respective probe (1: high, 0: low) at 16 different sampling points/times (which ones depends on the samplerate).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Configuration&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
Endpoint 1 is used for configuration of the analyzer.  The transfers are &amp;quot;encrypted&amp;quot; using a simple series of additions and XORs.  Two kinds of transfers are used; a 3 byte out transfer starting with 0x81 followed by a 1 byte in transfer, and a 4 byte out transfer starting with 0x80.  It&amp;#039;s quite plausible that these provide raw read/write access to memory locations.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Channel number configuration&lt;br /&gt;
|-&lt;br /&gt;
|3 channels&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x02 0x07&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x03 0x00&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|6 channels&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x02 0x3f&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x03 0x00&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|9 channels&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x02 0xff&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x03 0x01&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|16 channels&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x02 0xff&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x03 0xff&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Sampling frequency&lt;br /&gt;
|-&lt;br /&gt;
|500 kHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0xc7&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|1 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x63&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|2 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x31&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|4 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x18&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|5 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x13&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|8 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x01&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x13&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|10 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x09&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|12.5 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x07&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|16 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x01&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x09&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|25 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x03&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|32 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x01&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x04&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|40 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x01&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x03&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|50 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x01&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|80 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x01&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x01&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|100 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x00&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://downloads.saleae.com/Logic+Guide.pdf Manual]&lt;br /&gt;
* [http://www.saleae.com/downloads Vendor software]&lt;br /&gt;
* [http://community.saleae.com/ SDKs]&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Logic analyzer]]&lt;br /&gt;
[[Category:In progress]]&lt;/div&gt;</summary>
		<author><name>Jani</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=Saleae_Logic16&amp;diff=7003</id>
		<title>Saleae Logic16</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=Saleae_Logic16&amp;diff=7003"/>
		<updated>2013-08-08T06:51:06Z</updated>

		<summary type="html">&lt;p&gt;Jani: Changed JTAG connector J3 pin numbering, square pin is pin number 1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox logic analyzer&lt;br /&gt;
| image            = [[File:Saleae Logic16.jpg|180px]]&lt;br /&gt;
| name             = Saleae Logic16&lt;br /&gt;
| status           = planned&lt;br /&gt;
| source_code_dir  = &lt;br /&gt;
| channels         = 2/4/8/16&lt;br /&gt;
| samplerate       = 100/50/25/12.5MHz&lt;br /&gt;
| samplerate_state = &amp;amp;mdash;&lt;br /&gt;
| triggers         = none (SW-only)&lt;br /&gt;
| voltages         = -0.9V &amp;amp;mdash; 6V&lt;br /&gt;
| threshold        = configurable:&amp;lt;br /&amp;gt;for 1.8V to 3.6V systems: VIH=1.4V, VIL=0.7V&amp;lt;br /&amp;gt;for 5V systems: VIH=3.6V, VIL=1.4V&lt;br /&gt;
| memory           = none&lt;br /&gt;
| compression      = yes&lt;br /&gt;
| website          = [http://www.saleae.com/logic16/ saleae.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Saleae Logic16&amp;#039;&amp;#039;&amp;#039; is a USB-based, 16-channel logic analyzer with 100/50/25/12.5MHz sampling rate (at 2/4/8/16 enabled channels). &lt;br /&gt;
&lt;br /&gt;
The case requires a &amp;#039;&amp;#039;&amp;#039;Torx T5&amp;#039;&amp;#039;&amp;#039; screwdriver to open.&lt;br /&gt;
&lt;br /&gt;
See [[Saleae Logic16/Info]] for more details (such as &amp;#039;&amp;#039;&amp;#039;lsusb -vvv&amp;#039;&amp;#039;&amp;#039; output) about the device.&lt;br /&gt;
&lt;br /&gt;
See [[Saleae Logic]] for the predecessor product of the Saleae Logic16. &lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;FPGA&amp;#039;&amp;#039;&amp;#039;: [http://www.xilinx.com/support/index.html/content/xilinx/en/supportNav/silicon_devices/fpga/spartan-3a.html Xilinx Spartan-3A XC3S200A], 200K gates ([http://www.xilinx.com/support/documentation/data_sheets/ds529.pdf datasheeet])&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;USB interface chip&amp;#039;&amp;#039;&amp;#039;: [http://www.cypress.com/?mpn=CY7C68013A-56PVXC Cypress CY7C68013A-56PVXC (FX2LP)] ([http://www.cypress.com/?docID=34060 datasheet])&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ultralow capacitance ESD protection&amp;#039;&amp;#039;&amp;#039;: 4x [http://www.st.com/web/catalog/sense_power/FM114/CL1137/SC1490/PF109008 ST DVIULC6-4SC6] ([http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00065974.pdf datasheet])&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;I2C EEPROM&amp;#039;&amp;#039;&amp;#039;: Unknown. Marking: &amp;quot;B2TH&amp;quot;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Voltage regulators&amp;#039;&amp;#039;&amp;#039;: 2x [http://www.semtech.com/power-management/switching-regulators/sc189 Semtech SC189 Step Down Switching Regulator]. &amp;quot;189Z&amp;quot; for 3.3V and &amp;quot;189C&amp;quot; for 1.2V. ([http://www.semtech.com/images/datasheet/sc189.pdf datasheet])&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;?&amp;#039;&amp;#039;&amp;#039;: 2x Unknown 3-pin IC. Markings: &amp;quot;72Y7&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pinouts and connections:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;JTAG header (FPGA):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;J3&amp;#039;&amp;#039;&amp;#039; pin header is a JTAG connector wired to the FPGA. The pins are (from left to right, the right-most pin, pin number 1, is square):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!5&lt;br /&gt;
!4&lt;br /&gt;
!3&lt;br /&gt;
!2&lt;br /&gt;
!1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| GND&lt;br /&gt;
| TMS&lt;br /&gt;
| TCK&lt;br /&gt;
| TDO&lt;br /&gt;
| TDI&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Testpoints:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!T1&lt;br /&gt;
!T2&lt;br /&gt;
!T3&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1.2V&lt;br /&gt;
| 3.3V&lt;br /&gt;
| GND (FX2)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cypress FX2:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
{{chip_56pin&lt;br /&gt;
| 1=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 15, IO_L05P_3)&amp;lt;/span&amp;gt; PD5&lt;br /&gt;
| 2=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 13, IO_L04N_3)&amp;lt;/span&amp;gt; PD6&lt;br /&gt;
| 3=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 10, IO_L03N_3)&amp;lt;/span&amp;gt; PD7&lt;br /&gt;
| 4=GND&lt;br /&gt;
| 5=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 90, IO_0)&amp;lt;/span&amp;gt; CLKOUT&lt;br /&gt;
| 6=VCC&lt;br /&gt;
| 7=GND&lt;br /&gt;
| 8=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 3, IO_L01P_3)&amp;lt;/span&amp;gt; RDY0/*SLRD&lt;br /&gt;
| 9=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 3, IO_L01P_3)&amp;lt;/span&amp;gt; RDY1/*SLWR&lt;br /&gt;
| 10=AVCC&lt;br /&gt;
| 11=&amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;(24MHz crystal)&amp;lt;/span&amp;gt; XTALOUT&lt;br /&gt;
| 12=&amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;(24MHz crystal)&amp;lt;/span&amp;gt; XTALIN&lt;br /&gt;
| 13=AGND&lt;br /&gt;
| 14=AVCC&lt;br /&gt;
&lt;br /&gt;
| 15=&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;(USB D+)&amp;lt;/span&amp;gt; DPLUS&lt;br /&gt;
| 16=&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;(USB D-)&amp;lt;/span&amp;gt; DMINUS&lt;br /&gt;
| 17=AGND&lt;br /&gt;
| 18=VCC&lt;br /&gt;
| 19=GND&lt;br /&gt;
| 20=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 84, IO_L02N_0)&amp;lt;/span&amp;gt; *IFCLK&lt;br /&gt;
| 21=RESERVED&lt;br /&gt;
| 22=&amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;(EEPROM SCL)&amp;lt;/span&amp;gt; SCL&lt;br /&gt;
| 23=&amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;(EEPROM SDA)&amp;lt;/span&amp;gt; SDA&lt;br /&gt;
| 24=VCC&lt;br /&gt;
| 25=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 40, IO_L08P_2)&amp;lt;/span&amp;gt; PB0&lt;br /&gt;
| 26=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 78, IO_L01N_0)&amp;lt;/span&amp;gt; PB1&lt;br /&gt;
| 27=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 77, IO_L01P_0)&amp;lt;/span&amp;gt; PB2&lt;br /&gt;
| 28=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 50, IO_L11P_2)&amp;lt;/span&amp;gt; PB3&lt;br /&gt;
&lt;br /&gt;
| 29=PB4 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 46, MOSI)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 30=PB5 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 41, IO_L08N_2)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 31=PB6 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 37, IO_L07N_2)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 32=PB7 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 93, IO_L05P_0)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 33=GND&lt;br /&gt;
| 34=VCC&lt;br /&gt;
| 35=GND&lt;br /&gt;
| 36=CTL0 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 94, IO_L05N_0)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 37=CTL1 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 97, IP_0)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 38=CTL2 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 100, PROG_B)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 39=VCC&lt;br /&gt;
| 40=PA0 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 54, DONE)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 41=PA1 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 48, INIT_B)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 42=PA2 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 53, CCLK)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| 43=PA3 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 51, MISO)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 44=PA4 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 98, IO_L06P_0)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 45=PA5 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 85, IO_L03P_0)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 46=PA6 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 30, IO_L04P_2)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 47=PA7 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 9, IO_L03P_3)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 48=GND&lt;br /&gt;
| 49=RESET# &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;(3.3V via D2 (diode?))&amp;lt;/span&amp;gt;&lt;br /&gt;
| 50=VCC&lt;br /&gt;
| 51=*WAKEUP &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;(3.3V)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 52=PD0 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 6, IO_L02N_3)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 53=PD1 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 4, IO_L01N_3)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 54=PD2 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 5, IO_L02P_3)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 55=PD3 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 44, IO_L09N_2)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 56=PD4 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 12, IO_L04P_3)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Saleae Logic16.jpg|&amp;lt;small&amp;gt;Device, front&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae Logic16 bottom.jpg|&amp;lt;small&amp;gt;Device, bottom&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae Logic16 PCB top.jpg|&amp;lt;small&amp;gt;PCB, top&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae Logic16 PCB bottom.jpg|&amp;lt;small&amp;gt;PCB, bottom&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 xilinx xc3s200a.jpg|&amp;lt;small&amp;gt;Xilinx XC3S200A&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 cypress fx2lp.jpg|&amp;lt;small&amp;gt;Cypress FX2LP&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 eeprom b2th.jpg|&amp;lt;small&amp;gt;I2C EEPROM&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 dl46.jpg|&amp;lt;small&amp;gt;ST DVIULC6-4SC6&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 189z 189c.jpg|&amp;lt;small&amp;gt;Voltage regulators&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 72y7.jpg|&amp;lt;small&amp;gt;72Y7&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
The firmware for the FX2LP is embedded in the vendor application as a set of Intel HEX lines.  Each line is uploaded individually with a separate control transfer.  The firmware currently occupies the address range [0x0000-0x145d], but is uploaded out of order.  &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;TODO&amp;lt;/span&amp;gt;: Make a tool to extract the firmware from the application binary.&lt;br /&gt;
&lt;br /&gt;
See [[Saleae Logic16/Firmware]] for more details on the vendor firmware.&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Sample format&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
The samples (as received via USB) for the enabled probes (3, 6, 9, or 16) are organized as follows:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0xLL 0xLL  0xMM 0xMM  0xNN 0xNN&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0xPP 0xPP  0xQQ 0xQQ  0xRR 0xRR&amp;lt;/span&amp;gt; ...&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
In the above example, 3 probes are enabled. For each probe there are 2 bytes / 16 bits (e.g. 0xLL 0xLL for probe 0), then the next probe&amp;#039;s data is received (0xMM 0xMM for probe 1), then 0xNN 0xNN for probe 2. When 2 bytes have been received for all enabled probes, the process restarts with probe 0 again.&lt;br /&gt;
&lt;br /&gt;
The 16 bits of data per probe seem to contain the pin state of the respective probe (1: high, 0: low) at 16 different sampling points/times (which ones depends on the samplerate).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Configuration&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
Endpoint 1 is used for configuration of the analyzer.  The transfers are &amp;quot;encrypted&amp;quot; using a simple series of additions and XORs.  Two kinds of transfers are used; a 3 byte out transfer starting with 0x81 followed by a 1 byte in transfer, and a 4 byte out transfer starting with 0x80.  It&amp;#039;s quite plausible that these provide raw read/write access to memory locations.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Channel number configuration&lt;br /&gt;
|-&lt;br /&gt;
|3 channels&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x02 0x07&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x03 0x00&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|6 channels&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x02 0x3f&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x03 0x00&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|9 channels&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x02 0xff&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x03 0x01&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|16 channels&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x02 0xff&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x03 0xff&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Sampling frequency&lt;br /&gt;
|-&lt;br /&gt;
|500 kHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0xc7&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|1 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x63&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|2 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x31&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|4 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x18&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|5 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x13&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|8 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x01&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x13&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|10 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x09&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|12.5 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x07&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|16 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x01&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x09&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|25 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x03&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|32 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x01&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x04&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|40 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x01&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x03&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|50 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x01&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|80 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x01&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x01&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|100 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x00&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://downloads.saleae.com/Logic+Guide.pdf Manual]&lt;br /&gt;
* [http://www.saleae.com/downloads Vendor software]&lt;br /&gt;
* [http://community.saleae.com/ SDKs]&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Logic analyzer]]&lt;br /&gt;
[[Category:Planned]]&lt;/div&gt;</summary>
		<author><name>Jani</name></author>
	</entry>
	<entry>
		<id>https://sigrok.org/w/index.php?title=Saleae_Logic16&amp;diff=7002</id>
		<title>Saleae Logic16</title>
		<link rel="alternate" type="text/html" href="https://sigrok.org/w/index.php?title=Saleae_Logic16&amp;diff=7002"/>
		<updated>2013-08-08T06:35:52Z</updated>

		<summary type="html">&lt;p&gt;Jani: Added voltage regulator information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox logic analyzer&lt;br /&gt;
| image            = [[File:Saleae Logic16.jpg|180px]]&lt;br /&gt;
| name             = Saleae Logic16&lt;br /&gt;
| status           = planned&lt;br /&gt;
| source_code_dir  = &lt;br /&gt;
| channels         = 2/4/8/16&lt;br /&gt;
| samplerate       = 100/50/25/12.5MHz&lt;br /&gt;
| samplerate_state = &amp;amp;mdash;&lt;br /&gt;
| triggers         = none (SW-only)&lt;br /&gt;
| voltages         = -0.9V &amp;amp;mdash; 6V&lt;br /&gt;
| threshold        = configurable:&amp;lt;br /&amp;gt;for 1.8V to 3.6V systems: VIH=1.4V, VIL=0.7V&amp;lt;br /&amp;gt;for 5V systems: VIH=3.6V, VIL=1.4V&lt;br /&gt;
| memory           = none&lt;br /&gt;
| compression      = yes&lt;br /&gt;
| website          = [http://www.saleae.com/logic16/ saleae.com]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Saleae Logic16&amp;#039;&amp;#039;&amp;#039; is a USB-based, 16-channel logic analyzer with 100/50/25/12.5MHz sampling rate (at 2/4/8/16 enabled channels). &lt;br /&gt;
&lt;br /&gt;
The case requires a &amp;#039;&amp;#039;&amp;#039;Torx T5&amp;#039;&amp;#039;&amp;#039; screwdriver to open.&lt;br /&gt;
&lt;br /&gt;
See [[Saleae Logic16/Info]] for more details (such as &amp;#039;&amp;#039;&amp;#039;lsusb -vvv&amp;#039;&amp;#039;&amp;#039; output) about the device.&lt;br /&gt;
&lt;br /&gt;
See [[Saleae Logic]] for the predecessor product of the Saleae Logic16. &lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;FPGA&amp;#039;&amp;#039;&amp;#039;: [http://www.xilinx.com/support/index.html/content/xilinx/en/supportNav/silicon_devices/fpga/spartan-3a.html Xilinx Spartan-3A XC3S200A], 200K gates ([http://www.xilinx.com/support/documentation/data_sheets/ds529.pdf datasheeet])&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;USB interface chip&amp;#039;&amp;#039;&amp;#039;: [http://www.cypress.com/?mpn=CY7C68013A-56PVXC Cypress CY7C68013A-56PVXC (FX2LP)] ([http://www.cypress.com/?docID=34060 datasheet])&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ultralow capacitance ESD protection&amp;#039;&amp;#039;&amp;#039;: 4x [http://www.st.com/web/catalog/sense_power/FM114/CL1137/SC1490/PF109008 ST DVIULC6-4SC6] ([http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00065974.pdf datasheet])&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;I2C EEPROM&amp;#039;&amp;#039;&amp;#039;: Unknown. Marking: &amp;quot;B2TH&amp;quot;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Voltage regulators&amp;#039;&amp;#039;&amp;#039;: 2x [http://www.semtech.com/power-management/switching-regulators/sc189 Semtech SC189 Step Down Switching Regulator]. &amp;quot;189Z&amp;quot; for 3.3V and &amp;quot;189C&amp;quot; for 1.2V. ([http://www.semtech.com/images/datasheet/sc189.pdf datasheet])&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;?&amp;#039;&amp;#039;&amp;#039;: 2x Unknown 3-pin IC. Markings: &amp;quot;72Y7&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pinouts and connections:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;JTAG header (FPGA):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;J3&amp;#039;&amp;#039;&amp;#039; pin header is a JTAG connector wired to the FPGA. The pins are (from left to right, the right-most pin is square):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!1&lt;br /&gt;
!2&lt;br /&gt;
!3&lt;br /&gt;
!4&lt;br /&gt;
!5&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| GND&lt;br /&gt;
| TMS&lt;br /&gt;
| TCK&lt;br /&gt;
| TDO&lt;br /&gt;
| TDI&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Testpoints:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;font-size: smaller&amp;quot; class=&amp;quot;sigroktable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!T1&lt;br /&gt;
!T2&lt;br /&gt;
!T3&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1.2V&lt;br /&gt;
| 3.3V&lt;br /&gt;
| GND (FX2)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cypress FX2:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
{{chip_56pin&lt;br /&gt;
| 1=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 15, IO_L05P_3)&amp;lt;/span&amp;gt; PD5&lt;br /&gt;
| 2=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 13, IO_L04N_3)&amp;lt;/span&amp;gt; PD6&lt;br /&gt;
| 3=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 10, IO_L03N_3)&amp;lt;/span&amp;gt; PD7&lt;br /&gt;
| 4=GND&lt;br /&gt;
| 5=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 90, IO_0)&amp;lt;/span&amp;gt; CLKOUT&lt;br /&gt;
| 6=VCC&lt;br /&gt;
| 7=GND&lt;br /&gt;
| 8=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 3, IO_L01P_3)&amp;lt;/span&amp;gt; RDY0/*SLRD&lt;br /&gt;
| 9=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 3, IO_L01P_3)&amp;lt;/span&amp;gt; RDY1/*SLWR&lt;br /&gt;
| 10=AVCC&lt;br /&gt;
| 11=&amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;(24MHz crystal)&amp;lt;/span&amp;gt; XTALOUT&lt;br /&gt;
| 12=&amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;(24MHz crystal)&amp;lt;/span&amp;gt; XTALIN&lt;br /&gt;
| 13=AGND&lt;br /&gt;
| 14=AVCC&lt;br /&gt;
&lt;br /&gt;
| 15=&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;(USB D+)&amp;lt;/span&amp;gt; DPLUS&lt;br /&gt;
| 16=&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;(USB D-)&amp;lt;/span&amp;gt; DMINUS&lt;br /&gt;
| 17=AGND&lt;br /&gt;
| 18=VCC&lt;br /&gt;
| 19=GND&lt;br /&gt;
| 20=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 84, IO_L02N_0)&amp;lt;/span&amp;gt; *IFCLK&lt;br /&gt;
| 21=RESERVED&lt;br /&gt;
| 22=&amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;(EEPROM SCL)&amp;lt;/span&amp;gt; SCL&lt;br /&gt;
| 23=&amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;(EEPROM SDA)&amp;lt;/span&amp;gt; SDA&lt;br /&gt;
| 24=VCC&lt;br /&gt;
| 25=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 40, IO_L08P_2)&amp;lt;/span&amp;gt; PB0&lt;br /&gt;
| 26=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 78, IO_L01N_0)&amp;lt;/span&amp;gt; PB1&lt;br /&gt;
| 27=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 77, IO_L01P_0)&amp;lt;/span&amp;gt; PB2&lt;br /&gt;
| 28=&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 50, IO_L11P_2)&amp;lt;/span&amp;gt; PB3&lt;br /&gt;
&lt;br /&gt;
| 29=PB4 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 46, MOSI)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 30=PB5 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 41, IO_L08N_2)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 31=PB6 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 37, IO_L07N_2)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 32=PB7 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 93, IO_L05P_0)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 33=GND&lt;br /&gt;
| 34=VCC&lt;br /&gt;
| 35=GND&lt;br /&gt;
| 36=CTL0 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 94, IO_L05N_0)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 37=CTL1 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 97, IP_0)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 38=CTL2 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 100, PROG_B)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 39=VCC&lt;br /&gt;
| 40=PA0 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 54, DONE)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 41=PA1 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 48, INIT_B)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 42=PA2 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 53, CCLK)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| 43=PA3 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 51, MISO)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 44=PA4 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 98, IO_L06P_0)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 45=PA5 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 85, IO_L03P_0)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 46=PA6 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 30, IO_L04P_2)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 47=PA7 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 9, IO_L03P_3)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 48=GND&lt;br /&gt;
| 49=RESET# &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;(3.3V via D2 (diode?))&amp;lt;/span&amp;gt;&lt;br /&gt;
| 50=VCC&lt;br /&gt;
| 51=*WAKEUP &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;(3.3V)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 52=PD0 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 6, IO_L02N_3)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 53=PD1 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 4, IO_L01N_3)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 54=PD2 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 5, IO_L02P_3)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 55=PD3 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 44, IO_L09N_2)&amp;lt;/span&amp;gt;&lt;br /&gt;
| 56=PD4 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;(FPGA 12, IO_L04P_3)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Saleae Logic16.jpg|&amp;lt;small&amp;gt;Device, front&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae Logic16 bottom.jpg|&amp;lt;small&amp;gt;Device, bottom&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae Logic16 PCB top.jpg|&amp;lt;small&amp;gt;PCB, top&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae Logic16 PCB bottom.jpg|&amp;lt;small&amp;gt;PCB, bottom&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 xilinx xc3s200a.jpg|&amp;lt;small&amp;gt;Xilinx XC3S200A&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 cypress fx2lp.jpg|&amp;lt;small&amp;gt;Cypress FX2LP&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 eeprom b2th.jpg|&amp;lt;small&amp;gt;I2C EEPROM&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 dl46.jpg|&amp;lt;small&amp;gt;ST DVIULC6-4SC6&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 189z 189c.jpg|&amp;lt;small&amp;gt;Voltage regulators&amp;lt;/small&amp;gt;&lt;br /&gt;
File:Saleae logic16 72y7.jpg|&amp;lt;small&amp;gt;72Y7&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
The firmware for the FX2LP is embedded in the vendor application as a set of Intel HEX lines.  Each line is uploaded individually with a separate control transfer.  The firmware currently occupies the address range [0x0000-0x145d], but is uploaded out of order.  &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;TODO&amp;lt;/span&amp;gt;: Make a tool to extract the firmware from the application binary.&lt;br /&gt;
&lt;br /&gt;
See [[Saleae Logic16/Firmware]] for more details on the vendor firmware.&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Sample format&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
The samples (as received via USB) for the enabled probes (3, 6, 9, or 16) are organized as follows:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0xLL 0xLL  0xMM 0xMM  0xNN 0xNN&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0xPP 0xPP  0xQQ 0xQQ  0xRR 0xRR&amp;lt;/span&amp;gt; ...&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
In the above example, 3 probes are enabled. For each probe there are 2 bytes / 16 bits (e.g. 0xLL 0xLL for probe 0), then the next probe&amp;#039;s data is received (0xMM 0xMM for probe 1), then 0xNN 0xNN for probe 2. When 2 bytes have been received for all enabled probes, the process restarts with probe 0 again.&lt;br /&gt;
&lt;br /&gt;
The 16 bits of data per probe seem to contain the pin state of the respective probe (1: high, 0: low) at 16 different sampling points/times (which ones depends on the samplerate).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Configuration&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
Endpoint 1 is used for configuration of the analyzer.  The transfers are &amp;quot;encrypted&amp;quot; using a simple series of additions and XORs.  Two kinds of transfers are used; a 3 byte out transfer starting with 0x81 followed by a 1 byte in transfer, and a 4 byte out transfer starting with 0x80.  It&amp;#039;s quite plausible that these provide raw read/write access to memory locations.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Channel number configuration&lt;br /&gt;
|-&lt;br /&gt;
|3 channels&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x02 0x07&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x03 0x00&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|6 channels&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x02 0x3f&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x03 0x00&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|9 channels&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x02 0xff&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x03 0x01&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|16 channels&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x02 0xff&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x03 0xff&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Sampling frequency&lt;br /&gt;
|-&lt;br /&gt;
|500 kHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0xc7&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|1 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x63&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|2 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x31&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|4 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x18&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|5 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x13&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|8 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x01&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x13&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|10 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x09&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|12.5 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x07&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|16 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x01&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x09&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|25 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x03&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|32 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x01&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x04&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|40 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x01&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x03&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|50 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x01&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|80 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x01&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x01&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|100 MHz&lt;br /&gt;
|&amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;0x80 0x01 0x0a 0x00&amp;lt;/span&amp;gt;   &amp;lt;span style=&amp;quot;background-color: cyan&amp;quot;&amp;gt;0x80 0x01 0x04 0x00&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [http://downloads.saleae.com/Logic+Guide.pdf Manual]&lt;br /&gt;
* [http://www.saleae.com/downloads Vendor software]&lt;br /&gt;
* [http://community.saleae.com/ SDKs]&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;br /&gt;
[[Category:Logic analyzer]]&lt;br /&gt;
[[Category:Planned]]&lt;/div&gt;</summary>
		<author><name>Jani</name></author>
	</entry>
</feed>