Difference between revisions of "PoLabs PoScope Basic2"

From sigrok
Jump to navigation Jump to search
(PoLabs PoScope Basic2)
 
m
(16 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[File:Polabs_poscope_basic2.png|thumb|right|PoLabs PoScope Basic2]]
The [http://poscope.com/poscope_basic_2 PoLabs PoScope Basic2] is a 16-channel, 8MHz, USB-based logic analyzer (plus oscilloscope, signal/pattern generator, and more).
The [http://poscope.com/poscope_basic_2 PoLabs PoScope Basic2] is a 16-channel, 8MHz, USB-based logic analyzer (plus oscilloscope, signal/pattern generator, and more).


See [[PoLabs PoScope Basic2/Info]] for some more details (such as '''lsusb -vvv''' output) on the device.
See [[PoLabs PoScope Basic2/Info]] for some more details (such as '''lsusb -vvv''' output) on the device.


== Components ==
== Hardware ==
 
* [http://www.silabs.com/products/mcu/usb/Pages/C8051F32x-34x.aspx Silicon Labs C8051F32x]: 8051-based microcontroller with USB and 10bit ADC ([http://www.silabs.com/pages/DownloadDoc.aspx?FILEURL=Support%20Documents/TechnicalDocs/C8051F32x.pdf&src=DocumentationWebPart datasheet])
* [http://www.components.omron.com/components/web/webfiles.nsf$FILES/family.html?ID=THAN-73FLAJ Omron G3VM-401G]: Analog switching MOS FET relay ([http://www.components.omron.com/components/web/PDFLIB.nsf/0/9681A16614D4C78185257201007DD5AA/$file/G3VM_401G_1210.pdf datasheet])
* [http://www.analog.com/en/audiovideo-products/audio-amplifiers/ad8544/products/product.html Analog Devices AD8544]: CMOS RRIO quad general-purpose opamp ([http://www.analog.com/static/imported-files/data_sheets/AD8541_8542_8544.pdf datasheet])
* Texas Instruments HC74 87K G4 A6EK (TODO)
 
== Photos ==
 
<gallery>
File:Polabs poscope basic2 device top.jpg|<small>Device, top</small>
File:Polabs poscope basic2 device bottom.jpg|<small>Device, bottom</small>
File:Polabs poscope basic2 usb la.jpg|<small>USB / LA connector</small>
File:Polabs poscope basic2 analog.jpg|<small>Analog connectors</small>
File:Polabs poscope basic2 cable.jpg|<small>LA probe cable</small>
File:Polabs poscope basic2 cable top.jpg|<small>Probe cable details</small>
File:Polabs poscope basic2 pcb front.jpg|<small>PCB, front</small>
File:Polabs poscope basic2 pcb back.jpg|<small>PCB, back</small>
File:Polabs poscope basic2 silabs f321.jpg|<small>SiLabs F321</small>
File:Polabs poscope basic2 ad8544.jpg|<small>Analog Devices AD8544</small>
File:Polabs poscope basic2 omron 401g.jpg|<small>Omron G3VM-401G</small>
File:Polabs poscope basic2 ti hc74.jpg|<small>TI HC74</small>
</gallery>
 
'''Teardown of another device''':


TODO.
<gallery>
File:Polabs poscope basic2 otherdevice pcb top.jpg|<small>PCB, top</small>
File:Polabs poscope basic2 otherdevice pcb bottom.jpg|<small>PCB, bottom</small>
File:Polabs poscope basic2 otherdevice chips.jpg|<small>Chips</small>
</gallery>


== Protocol ==
== Protocol ==
=== Starting a sampling run ===
The command for starting an acquisition is a USB control transfer (request type: vendor-specific, request: 0x07, value: 0xffa0, index: 0x0000, length: 9).
The 9 bytes of data:
{| border="0" style="font-size: smaller"
|- bgcolor="#6699ff"
!Byte
!Description
!Comments
|- bgcolor="#eeeeee"
| 0
| Samplerate divider
| (see table below)
|- bgcolor="#dddddd"
| 1
|
|
|- bgcolor="#eeeeee"
| 2
|
|
|- bgcolor="#dddddd"
| 3
|
|
|- bgcolor="#eeeeee"
| 4
|
|
|- bgcolor="#dddddd"
| 5
| Trigger mask
| Bit 0 is the mask for probe 0, bit 7 is the mask for probe 7. The same byte is used as trigger mask byte for bus A or bus B (only one at a time is possible).
|- bgcolor="#eeeeee"
| 6
|
|
|- bgcolor="#dddddd"
| 7
|
|
|- bgcolor="#eeeeee"
| 8
|
|
|}
=== Stopping a sampling run ===
=== Sample rates ===
<table><tr valign="top"><td>
'''8MHz - 4MHz''':
Buffer size is 128 bytes, only bus A is available, ...
{| border="0" style="font-size: smaller"
|- bgcolor="#6699ff"
!Samplerate
!Divider
!Request value
|- bgcolor="#eeeeee"
| 8 MHz
| 0x00
| 0xfffd
|- bgcolor="#dddddd"
| 6 MHz
| 0x01
| 0xfffc
|- bgcolor="#eeeeee"
| 4 MHz
| 0x02
| 0xfffa
|}
'''2.6MHz - 2MHz''':
Buffer size is 1160 bytes, only bus A is available, ...
{| border="0" style="font-size: smaller"
|- bgcolor="#6699ff"
!Samplerate
!Divider
!Request value
|- bgcolor="#eeeeee"
| 2.6 MHz
| 0x03
| 0xfff7
|- bgcolor="#dddddd"
| 2 MHz
| 0x04
| 0xfff4
|}
'''1MHz - 600kHz''':
Buffer size is 1544 bytes, ...
{| border="0" style="font-size: smaller"
|- bgcolor="#6699ff"
!Samplerate
!Divider
!Request value
|- bgcolor="#eeeeee"
| 1 MHz
| 0x05
| 0xffe8
|- bgcolor="#dddddd"
| 900 kHz
| 0x05
| 0xffe6
|- bgcolor="#eeeeee"
| 800 kHz
| 0x05
| 0xffe2
|- bgcolor="#dddddd"
| 700 kHz
| 0x05
| 0xffde
|- bgcolor="#eeeeee"
| 600 kHz
| 0x05
| 0xffd8
|}
</td><td>
'''500kHz and lower''':
Buffer size is only limited by the PC memory, ...
{| border="0" style="font-size: smaller"
|- bgcolor="#6699ff"
!Samplerate
!Divider
!Request value
|- bgcolor="#eeeeee"
| 500 kHz
| 0x05
| 0xffd0
|- bgcolor="#dddddd"
| 400 kHz
| 0x05
| 0xffc4
|- bgcolor="#eeeeee"
| 300 kHz
| 0x05
| 0xffb0
|- bgcolor="#dddddd"
| 250 kHz
| 0x06
| 0xffa0
|- bgcolor="#eeeeee"
| 200 kHz
| 0x06
| 0xff88
|- bgcolor="#dddddd"
| 150 kHz
| 0x06
| 0xff60
|- bgcolor="#eeeeee"
| 100 kHz
| 0x06
| 0xff10
|- bgcolor="#dddddd"
| 90 kHz
| 0x06
| 0xfef6
|- bgcolor="#eeeeee"
| 80 kHz
| 0x06
| 0xfed4
|- bgcolor="#dddddd"
| 70 kHz
| 0x06
| 0xfeaa
|- bgcolor="#eeeeee"
| 60 kHz
| 0x06
| 0xfe70
|- bgcolor="#dddddd"
| 50 kHz
| 0x06
| 0xfe20
|- bgcolor="#eeeeee"
| 40 kHz
| 0x06
| 0xfda8
|- bgcolor="#dddddd"
| 30 kHz
| 0x06
| 0xfce0
|- bgcolor="#eeeeee"
| 25 kHz
| 0x06
| 0xfc40
|- bgcolor="#dddddd"
| 20 kHz
| 0x06
| 0xfb50
|- bgcolor="#eeeeee"
| 10 kHz
| 0x06
| 0xf6a0
|- bgcolor="#dddddd"
| 9 kHz
| 0x06
| 0xf596
|- bgcolor="#eeeeee"
| 8 kHz
| 0x06
| 0xf448
|- bgcolor="#dddddd"
| 7 kHz
| 0x06
| 0xf29c
|- bgcolor="#eeeeee"
| 6 kHz
| 0x06
| 0xf060
|- bgcolor="#dddddd"
| 5 kHz
| 0x06
| 0xed40
|- bgcolor="#eeeeee"
| 4 kHz
| 0x06
| 0xe890
|- bgcolor="#dddddd"
| 3 kHz
| 0x06
| 0xe0c0
|- bgcolor="#eeeeee"
| 2.5 kHz
| 0x06
| 0xda80
|- bgcolor="#dddddd"
| 2 kHz
| 0x06
| 0xd120
|- bgcolor="#eeeeee"
| 1 kHz
| 0x06
| 0xa240
|}
</td></tr></table>
=== Sample format ===
* 8-bit sampling: One sample is one byte. Bit 0 is the value of probe A.7 (or B.7), bit 7 is the value of probe A.0 (or B.0).
* 16-bit sampling: One sample consists of two bytes. Byte 0 corresponds to bus A, byte 1 corresponds to bus B. The bit assignment is the same as above.
=== Buffer size ===
=== Pre-Trigger ===
=== Trigger settings ===
=== Get current firmware version ===
There is a command to request the current firmware version (and date) from the device. The device returns 5 bytes as response:
{| border="0" style="font-size: smaller"
|- bgcolor="#6699ff"
!Byte
!Description
!Comments
|- bgcolor="#eeeeee"
| 0
| Major firmware version
| Example: 0x03 means major version 3 (example version: 3.5).
|- bgcolor="#dddddd"
| 1
| Minor firmware version
| Example: 0x05 means minor version 5 (example version: 3.5).
|- bgcolor="#eeeeee"
| 2
| Firmware date (day)
| Example: 0x1c means 28 (example date: 28/12/07).
|- bgcolor="#dddddd"
| 3
| Firmware date (month)
| Example: 0x0c means 12 (example date: 28/12/07).
|- bgcolor="#eeeeee"
| 4
| Firmware date (year, two digits)
| Example: 0x07 means 2007 (example date: 28/12/07).
|}
So in the example of '''0x03 0x05 0x1c 0x0c 0x07''' the resulting firmware version/date is '''3.5 (28/12/07)'''.
== Resources ==


TODO.
TODO.
[[Category:Device]]
[[Category:Logic analyzer]]
[[Category:Oscilloscope]]
[[Category:Mixed-signal oscilloscope]]
[[Category:Planned]]

Revision as of 13:57, 25 November 2012

PoLabs PoScope Basic2

The PoLabs PoScope Basic2 is a 16-channel, 8MHz, USB-based logic analyzer (plus oscilloscope, signal/pattern generator, and more).

See PoLabs PoScope Basic2/Info for some more details (such as lsusb -vvv output) on the device.

Hardware

Photos

Teardown of another device:

Protocol

Starting a sampling run

The command for starting an acquisition is a USB control transfer (request type: vendor-specific, request: 0x07, value: 0xffa0, index: 0x0000, length: 9).

The 9 bytes of data:

Byte Description Comments
0 Samplerate divider (see table below)
1
2
3
4
5 Trigger mask Bit 0 is the mask for probe 0, bit 7 is the mask for probe 7. The same byte is used as trigger mask byte for bus A or bus B (only one at a time is possible).
6
7
8

Stopping a sampling run

Sample rates

8MHz - 4MHz:

Buffer size is 128 bytes, only bus A is available, ...

Samplerate Divider Request value
8 MHz 0x00 0xfffd
6 MHz 0x01 0xfffc
4 MHz 0x02 0xfffa

2.6MHz - 2MHz:

Buffer size is 1160 bytes, only bus A is available, ...

Samplerate Divider Request value
2.6 MHz 0x03 0xfff7
2 MHz 0x04 0xfff4

1MHz - 600kHz:

Buffer size is 1544 bytes, ...

Samplerate Divider Request value
1 MHz 0x05 0xffe8
900 kHz 0x05 0xffe6
800 kHz 0x05 0xffe2
700 kHz 0x05 0xffde
600 kHz 0x05 0xffd8

500kHz and lower:

Buffer size is only limited by the PC memory, ...

Samplerate Divider Request value
500 kHz 0x05 0xffd0
400 kHz 0x05 0xffc4
300 kHz 0x05 0xffb0
250 kHz 0x06 0xffa0
200 kHz 0x06 0xff88
150 kHz 0x06 0xff60
100 kHz 0x06 0xff10
90 kHz 0x06 0xfef6
80 kHz 0x06 0xfed4
70 kHz 0x06 0xfeaa
60 kHz 0x06 0xfe70
50 kHz 0x06 0xfe20
40 kHz 0x06 0xfda8
30 kHz 0x06 0xfce0
25 kHz 0x06 0xfc40
20 kHz 0x06 0xfb50
10 kHz 0x06 0xf6a0
9 kHz 0x06 0xf596
8 kHz 0x06 0xf448
7 kHz 0x06 0xf29c
6 kHz 0x06 0xf060
5 kHz 0x06 0xed40
4 kHz 0x06 0xe890
3 kHz 0x06 0xe0c0
2.5 kHz 0x06 0xda80
2 kHz 0x06 0xd120
1 kHz 0x06 0xa240

Sample format

  • 8-bit sampling: One sample is one byte. Bit 0 is the value of probe A.7 (or B.7), bit 7 is the value of probe A.0 (or B.0).
  • 16-bit sampling: One sample consists of two bytes. Byte 0 corresponds to bus A, byte 1 corresponds to bus B. The bit assignment is the same as above.

Buffer size

Pre-Trigger

Trigger settings

Get current firmware version

There is a command to request the current firmware version (and date) from the device. The device returns 5 bytes as response:

Byte Description Comments
0 Major firmware version Example: 0x03 means major version 3 (example version: 3.5).
1 Minor firmware version Example: 0x05 means minor version 5 (example version: 3.5).
2 Firmware date (day) Example: 0x1c means 28 (example date: 28/12/07).
3 Firmware date (month) Example: 0x0c means 12 (example date: 28/12/07).
4 Firmware date (year, two digits) Example: 0x07 means 2007 (example date: 28/12/07).

So in the example of 0x03 0x05 0x1c 0x0c 0x07 the resulting firmware version/date is 3.5 (28/12/07).

Resources

TODO.