Difference between revisions of "PoLabs PoScope Basic2"

From sigrok
Jump to navigation Jump to search
m
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[File:Polabs poscope basic2 device top.jpg|thumb|right|PoLabs PoScope Basic2]]
[[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 [https://www.poscope.com/product/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 -v''' 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.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])
Line 27: Line 27:
File:Polabs poscope basic2 omron 401g.jpg|<small>Omron G3VM-401G</small>
File:Polabs poscope basic2 omron 401g.jpg|<small>Omron G3VM-401G</small>
File:Polabs poscope basic2 ti hc74.jpg|<small>TI HC74</small>
File:Polabs poscope basic2 ti hc74.jpg|<small>TI HC74</small>
</gallery>
'''Teardown of another device''':
<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>
</gallery>


Line 33: Line 41:
=== Starting a sampling run ===
=== Starting a sampling run ===


The command for starting an acquisition seems to be a 9-byte sequence.
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"
{| border="0" style="font-size: smaller"
Line 81: Line 91:


=== Sample rates ===
=== Sample rates ===
<table><tr valign="top"><td>


'''8MHz - 4MHz''':
'''8MHz - 4MHz''':
Line 90: Line 102:
!Samplerate
!Samplerate
!Divider
!Divider
!Request value
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 8 MHz
| 8 MHz
| 0x00
| 0x00
| 0xfffd
|- bgcolor="#dddddd"
|- bgcolor="#dddddd"
| 6 MHz
| 6 MHz
| 0x01
| 0x01
| 0xfffc
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 4 MHz
| 4 MHz
| 0x02
| 0x02
| 0xfffa
|}
|}


Line 109: Line 125:
!Samplerate
!Samplerate
!Divider
!Divider
!Request value
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 2.6 MHz
| 2.6 MHz
| 0x03
| 0x03
| 0xfff7
|- bgcolor="#dddddd"
|- bgcolor="#dddddd"
| 2 MHz
| 2 MHz
| 0x04
| 0x04
| 0xfff4
|}
|}


Line 125: Line 144:
!Samplerate
!Samplerate
!Divider
!Divider
!Request value
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 1 MHz
| 1 MHz
| 0x05
| 0x05
| 0xffe8
|- bgcolor="#dddddd"
|- bgcolor="#dddddd"
| 900 kHz
| 900 kHz
| 0x05
| 0x05
| 0xffe6
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 800 kHz
| 800 kHz
| 0x05
| 0x05
| 0xffe2
|- bgcolor="#dddddd"
|- bgcolor="#dddddd"
| 700 kHz
| 700 kHz
| 0x05
| 0x05
| 0xffde
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 600 kHz
| 600 kHz
| 0x05
| 0x05
| 0xffd8
|}
|}
</td><td>


'''500kHz and lower''':
'''500kHz and lower''':
Line 150: Line 177:
!Samplerate
!Samplerate
!Divider
!Divider
!Request value
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 500 kHz
| 500 kHz
| 0x05
| 0x05
| 0xffd0
|- bgcolor="#dddddd"
|- bgcolor="#dddddd"
| 400 kHz
| 400 kHz
| 0x05
| 0x05
| 0xffc4
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 300 kHz
| 300 kHz
| 0x05
| 0x05
| 0xffb0
|- bgcolor="#dddddd"
|- bgcolor="#dddddd"
| 250 kHz
| 250 kHz
| 0x06
| 0x06
| 0xffa0
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 200 kHz
| 200 kHz
| ...
| 0x06
| 0xff88
|- bgcolor="#dddddd"
|- bgcolor="#dddddd"
| 150 kHz
| 150 kHz
| ...
| 0x06
| 0xff60
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 100 kHz
| 100 kHz
| ...
| 0x06
| 0xff10
|- bgcolor="#dddddd"
|- bgcolor="#dddddd"
| 90 kHz
| 90 kHz
| ...
| 0x06
| 0xfef6
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 80 kHz
| 80 kHz
| ...
| 0x06
| 0xfed4
|- bgcolor="#dddddd"
|- bgcolor="#dddddd"
| 70 kHz
| 70 kHz
| ...
| 0x06
| 0xfeaa
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 60 kHz
| 60 kHz
| ...
| 0x06
| 0xfe70
|- bgcolor="#dddddd"
|- bgcolor="#dddddd"
| 50 kHz
| 50 kHz
| ...
| 0x06
| 0xfe20
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 40 kHz
| 40 kHz
| ...
| 0x06
| 0xfda8
|- bgcolor="#dddddd"
|- bgcolor="#dddddd"
| 30 kHz
| 30 kHz
| ...
| 0x06
| 0xfce0
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 25 kHz
| 25 kHz
| ...
| 0x06
| 0xfc40
|- bgcolor="#dddddd"
|- bgcolor="#dddddd"
| 20 kHz
| 20 kHz
| ...
| 0x06
| 0xfb50
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 10 kHz
| 10 kHz
| ...
| 0x06
| 0xf6a0
|- bgcolor="#dddddd"
|- bgcolor="#dddddd"
| 9 kHz
| 9 kHz
| ...
| 0x06
| 0xf596
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 8 kHz
| 8 kHz
| ...
| 0x06
| 0xf448
|- bgcolor="#dddddd"
|- bgcolor="#dddddd"
| 7 kHz
| 7 kHz
| ...
| 0x06
| 0xf29c
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 6 kHz
| 6 kHz
| ...
| 0x06
| 0xf060
|- bgcolor="#dddddd"
|- bgcolor="#dddddd"
| 5 kHz
| 5 kHz
| ...
| 0x06
| 0xed40
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 4 kHz
| 4 kHz
| ...
| 0x06
| 0xe890
|- bgcolor="#dddddd"
|- bgcolor="#dddddd"
| 3 kHz
| 3 kHz
| ...
| 0x06
| 0xe0c0
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 2.5 kHz
| 2.5 kHz
| ...
| 0x06
| 0xda80
|- bgcolor="#dddddd"
|- bgcolor="#dddddd"
| 2 kHz
| 2 kHz
| ...
| 0x06
| 0xd120
|- bgcolor="#eeeeee"
|- bgcolor="#eeeeee"
| 1 kHz
| 1 kHz
| ...
| 0x06
| 0xa240
|}
|}
</td></tr></table>


=== Sample format ===
=== 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 ===
=== Buffer size ===
Line 240: Line 300:


=== Trigger settings ===
=== 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 ==
* [https://www.poscope.com/product/poscope-basic-2/ Product page]
[[Category:Device]]
[[Category:Logic analyzer]]
[[Category:Oscilloscope]]
[[Category:Mixed-signal oscilloscope]]
[[Category:Planned]]

Latest revision as of 00:03, 6 January 2020

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 -v 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