Difference between revisions of "SainSmart DDS120"

From sigrok
Jump to navigation Jump to search
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[File:Dds120 mugshot.png|thumb|right|SainSmart DDS120]]
{{Infobox oscilloscope
| image              = [[File:Dds120 mugshot.png|180px]]
| name                = SainSmart DDS120
| status              = supported
| source_code_dir    = hantek-6xxx
| channels            = 2
| samplerate          = 50MHz
| samplerate_equiv    =
| bandwidth          = 20MHz
| vertical_resolution = 8bit
| triggers            = none (SW-only)
| input_impedance    = 1MΩ‖25pF
| memory              = none
| display            = none
| connectivity        = USB
| features            =
| website            = [http://www.sainsmart.com/sainsmart-dds-120-20m-50m-s-virtual-oscilloscope-silver.html sainsmart.com]
}}


The [http://www.sainsmart.com/sainsmart-dds-120-20m-50m-s-virtual-oscilloscope-silver.html SainSmart DDS120] is a USB-based, 2-channel oscilloscope with an analog bandwidth of 20MS/s and 48MS/s sampling rate.
The '''SainSmart DDS120''' is a USB-based, 2-channel oscilloscope with an analog bandwidth of 20MS/s and 50MS/s sampling rate.
 
This device appears to be a rebadge of the [[Rocktech BM102]] (or vice versa). The [[SainSmart DDS120/Info|lsusb]] is exactly the same, the PCB is exactly the same (both have a "656517" and "102LJT1402" silkscreen), and the components used appear to be the same as well.
 
The device was apparently [https://translate.google.de/translate?sl=auto&tl=en&js=y&prev=_t&hl=en&ie=UTF-8&u=https%3A%2F%2Fweb.archive.org%2Fweb%2F20140520231246%2Fhttp%3A%2F%2Fbbs.21ic.com%2Ficview-350047-1-1.html&edit-text=&act=url created by someone named "buudai"] in 2012 (also reflected in the [[SainSmart DDS120/Info|lsusb]] and in the former [https://web.archive.org/web/20130403082149/http://www.buudai.com/ buudai.com] website).


See [[SainSmart DDS120/Info]] for more details (such as '''lsusb -v''' output) about the device.
See [[SainSmart DDS120/Info]] for more details (such as '''lsusb -v''' output) about the device.
== Hardware ==


* '''USB''': [http://www.cypress.com/documentation/datasheets/cy7c68013a-cy7c68014a-cy7c68015a-cy7c68016a-ez-usb-fx2lp-usb Cypress CY7C68013A-100AXC] (FX2LP) ([http://www.cypress.com/file/138911/download datasheet])
* '''USB''': [http://www.cypress.com/documentation/datasheets/cy7c68013a-cy7c68014a-cy7c68015a-cy7c68016a-ez-usb-fx2lp-usb Cypress CY7C68013A-100AXC] (FX2LP) ([http://www.cypress.com/file/138911/download datasheet])
* '''64-kbyte I²C EEPROM''': [http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010831 Microchip 24LC641] ([http://ww1.microchip.com/downloads/en/DeviceDoc/21189f.pdf datasheet])
* '''64-kbyte I²C EEPROM''': [http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010831 Microchip 24LC64I] ([http://ww1.microchip.com/downloads/en/DeviceDoc/21189f.pdf datasheet])
* '''Crystal''': 24MHz
* '''Crystal''': 24MHz
* '''AD''': AD8065ART-R2: ([http://www.analog.com/static/imported-files/data_sheets/AD8065_8066.pdf datasheet])
* '''145 MHz FastFET Opamps''': [http://www.analog.com/en/products/amplifiers/operational-amplifiers/jfet-input-amplifiers/ad8065.html#product-overview AD8065ART-R2]: ([http://www.analog.com/static/imported-files/data_sheets/AD8065_8066.pdf datasheet])
or in newer hardware
* '''AD''': MXT2088 ([http://www.mxtronics.com/n107/n124/n181/n184/c692/attr/2630.pdf datasheet])
* '''Opamp''': Analog devices AD8065 (OPAMP)
* '''MUX''': Texas Instruments CD4052B (2 x 1:4 MUX)


== Firmware ==
'''Or in newer hardware:'''


The Sainsmart vendor firmware is contained on the i2c eeprom. The FX2 boots directly into that firmware.
* '''Dual 8bit, 100MSPS ADC''': [https://translate.google.com/translate?hl=en&sl=zh-CN&tl=en&u=http%3A%2F%2Fwww.mxtronics.com%2Fn107%2Fn124%2Fn181%2Fn184%2Fc692%2Fcontent.html MXTronix MXT2088] ([http://www.mxtronics.com/n107/n124/n181/n184/c692/attr/2630.pdf datasheet])
* '''145 MHz FastFET Opamps''': [http://www.analog.com/en/products/amplifiers/operational-amplifiers/jfet-input-amplifiers/ad8065.html#product-overview AD8065]: ([http://www.analog.com/static/imported-files/data_sheets/AD8065_8066.pdf datasheet])
* 4x '''CMOS differential 4-channel analog mux/demux with logic-level conversion''': [http://www.ti.com/product/cd4052b/description Texas Instruments CD4052B(M)] ([http://www.ti.com/lit/gpn/cd4052b datasheet])


There is an open source firmware that can be used by Sigrok. The open source firmware is missing the following planned features:
== Photos ==


* AC/DC coupling support
'''Teardown 1''':
* <1MHz, 2, 3, 5, 6, 7.5, 9.6, 10, 15, 24, 30 MHz sampling rate support
* Turn on/off the calibration pulse
* Change frequency of the calibration pulse (add 10kHz, 100kHz and 1MHz)
 
== Vendor Protocol ==
 
{| border="0" style="font-size: smaller" class="alternategrey sortable sigroktable"
|-
!Oscilloscope command
!bRequest value
!Notes
|-
|Set CH0 coupling ||0x24 ||Possible values: 0x00, 0x08 (AC-coupling, DC-coupling).
|-
|Set CH1 coupling ||0x25 ||Possible values: 0x20, 0x10 (AC-coupling, DC-coupling).
|-
|Set CH0 voltage range ||0x22 ||Possible values: 0x08, 0x04, 0x00, 0x06, 0x02 (50mV, 100mV, 200mV, 500mV, 1-5V).
|-
|Set CH1 voltage range ||0x23 ||Possible values: 0x20, 0x10, 0x00, 0x12, 0x02 (50mV, 100mV, 200mV, 500mV, 1-5V).
|-
|Set sampling rate ||0x94 ||Possible values: 0x11, 0x01, 0x10 (240kHz, 2.4MHz, 48MHz).
|-
|Trigger oscilloscope ||0x33 ||Possible values: 0x00 == start sampling.
|-
|}
 
== Photos ==


<gallery>
<gallery>
File:Dds120 mugshot.png|<small>Device, top</small>
File:DDS120 Top 20141024 0540p.jpg|<small>PCB, front</small>
File:DDS120 Top 20141024 0540p.jpg|<small>PCB, front</small>
File:Sainsmart dds120 front 1.jpg|<small>PCB, front</small>
File:Sainsmart dds120 front 1.jpg|<small>PCB, front</small>
File:Sainsmart dds120 front 2.jpg|<small>PCB, front</small>
File:Sainsmart dds120 front 2.jpg|<small>PCB, front</small>
Line 57: Line 51:
File:Sainsmart dds120 front 4.jpg|<small>PCB, front</small>
File:Sainsmart dds120 front 4.jpg|<small>PCB, front</small>
File:Sainsmart dds120 front 5.jpg|<small>PCB, front</small>
File:Sainsmart dds120 front 5.jpg|<small>PCB, front</small>
File:Sainsmart dds120 back 1.jpg|<small>PCB, back</small>
File:Sainsmart dds120 back 1.jpg|<small>PCB, back</small>
File:Sainsmart dds120 back 2.jpg|<small>PCB, back</small>
File:Sainsmart dds120 back 2.jpg|<small>PCB, back</small>
File:Sainsmart dds120 box 1.jpg|<small>Box</small>
File:Sainsmart dds120 box 1.jpg|<small>Box</small>
File:Sainsmart dds120 box 2.jpg|<small>Box</small>
File:Sainsmart dds120 box 2.jpg|<small>Box</small>
Line 66: Line 58:
</gallery>
</gallery>


== Resources ==
'''Teardown 2 (purchased 03/2016)''':


* [http://www.eevblog.com/forum/testgear/sainsmart-dds120-usb-oscilloscope-(buudai-bm102)/ EEVBlog forum thread]
<gallery>
* [http://www.360customs.de/en/2014/10/usb-oszilloskop-sainsmart-dds120-2-kanal-20mhz-50msps-buudairocktech-bm102/ Detailed description of the hardware]
File:Saintsmart dds120 sticker.jpg|<small>Sticker</small>
[[Category:Device]]
File:Saintsmart dds120 package contents.jpg|<small>Package contents</small>
[[Category:Oscilloscope]]
File:Saintsmart dds120 device top.jpg|<small>Device, top</small>
File:Saintsmart dds120 device bottom.jpg|<small>Device, bottom</small>
File:Saintsmart dds120 usb.jpg|<small>USB</small>
File:Saintsmart dds120 connectors.jpg|<small>Connectors</small>
File:Saintsmart dds120 pcb top.jpg|<small>PCB, top</small>
File:Saintsmart dds120 pcb bottom.jpg|<small>PCB, bottom</small>
File:Saintsmart dds120 mxt2088.jpg|<small>MXTronix MXT2088</small>
File:Saintsmart dds120 fx2.jpg|<small>Cypress FX2</small>
File:Saintsmart dds120 microchip 24lc64i.jpg|<small>Microchip 24LC64I</small>
File:Saintsmart dds120 ti cd4052bm.jpg|<small>TI CD4052BM</small>
File:Saintsmart dds120 ams1117-3.3.jpg|<small>AMS1117-3.3</small>
File:Saintsmart dds120 nais 210eh 347.jpg|<small>Unknown IC</small>
</gallery>


== Gain stage ==
== Protocol ==


The gain stage is 2 stage approach. -6dB and -20dB on the first stage (attentuator). The second stage is then doing the gain by 3 different resistor values switched into the feedback loop. The following does not correlate with measure on real hardware, there is a 6th gain position that is working though. It is very similar to another gain and was most likely omitted because of that.
We use an open-source firmware for this device (i.e., not the vendor firmware/protocol), hence we do not need to know the vendor protocol. There is some [[SainSmart_DDS120/Info#Vendor_firmware|historic vendor firmware/protocol info]] for those interested, though.


#Channel 0:
== Firmware ==
PC1=1; PC2=0; PC3= 0 -> Gain x0.1 = -20dB -> 0x02 (1V)
PC1=1; PC2=0; PC3= 1 -> Gain x0.2 = -14dB -> 0x0A (0.5V)
PC1=1; PC2=1; PC3= 0 -> Gain x0.4 =  -8dB -> 0x06 (0.250V)
PC1=0; PC2=0; PC3= 0 -> Gain x0.5 =  -6dB -> 0x00 (0.200V)
PC1=0; PC2=0; PC3= 1 -> Gain x1  =  0dB -> 0x08 (0.100V)
PC1=0; PC2=1; PC3= 0 -> Gain x2  =  +6dB -> 0x04 (0.050V)


#Channel 1:
In order to use this device, the [[fx2lafw|sigrok-firmware-fx2lafw]] (>= 0.1.4) firmware is required.
PE1=1; PC4=0; PC5= 0 -> Gain x0.1 = -20dB -> 0x02 (1V)
PE1=1; PC4=0; PC5= 1 -> Gain x0.2 = -14dB -> 0x22 (0.5V)
PE1=1; PC4=1; PC5= 0 -> Gain x0.4 =  -8dB -> 0x12 (0.250V)
PE1=0; PC4=0; PC5= 0 -> Gain x0.5 =  -6dB -> 0x00 (0.200V)
PE1=0; PC4=0; PC5= 1 -> Gain x1  =  0dB -> 0x20 (0.100V)
PE1=0; PC4=1; PC5= 0 -> Gain x2  =  +6dB -> 0x10 (0.050V)


== AC/DC coupling ==
The firmware was originally written by Jochen Hoenicke (see [http://sigrok.org/gitweb/?p=sigrok-firmware-fx2lafw.git;a=blob;f=README README] for details), thanks a lot!


The coupling is controlled via 2 PhotoMOS chips.
'''Note''': The firmware is '''not''' flashed into the device permanently! You only need to make it available in the usual place where [[libsigrok]] looks for firmware files, it will be used automatically (and "uploaded" to the Cypress FX2's SRAM every time you attach the device to a USB port).


#Channel 0:
See [[SainSmart_DDS120/Info#Open-source_firmware_details|this section]] for technical details about the firmware/hardware.
PE3=0 Disable AC-coupling capacitor (DC-Coupling)
PE3=1 Enable AC-coupling capacitor


#Channel 1:
== Resources ==
PE0=0 Disable AC-coupling capacitor (DC-Coupling)
PE0=1 Enable AC-coupling capacitor


== 1kHz Calibration square wave ==
* [http://www.eevblog.com/forum/testgear/sainsmart-dds120-usb-oscilloscope-(buudai-bm102)/ EEVBlog forum thread]
* [http://www.360customs.de/en/2014/10/usb-oszilloskop-sainsmart-dds120-2-kanal-20mhz-50msps-buudairocktech-bm102/ Detailed description of the hardware]
* [http://www.sainsmart.com/sainsmart-dds-120-20m-50m-s-virtual-oscilloscope-silver.html Vendor product page]


Pin PE2 controlls the level of the calibration output on the pcb. This is most likely driven by an ISR timer from the 8051 core of the FX2 chip.
[[Category:Device]]
[[Category:Oscilloscope]]
[[Category:Supported]]

Revision as of 22:08, 8 April 2017

SainSmart DDS120
Dds120 mugshot.png
Status supported
Source code hantek-6xxx
Channels 2
Samplerate 50MHz
Analog bandwidth 20MHz
Vertical resolution 8bit
Triggers none (SW-only)
Input impedance 1MΩ‖25pF
Memory none
Display none
Connectivity USB
Website sainsmart.com

The SainSmart DDS120 is a USB-based, 2-channel oscilloscope with an analog bandwidth of 20MS/s and 50MS/s sampling rate.

This device appears to be a rebadge of the Rocktech BM102 (or vice versa). The lsusb is exactly the same, the PCB is exactly the same (both have a "656517" and "102LJT1402" silkscreen), and the components used appear to be the same as well.

The device was apparently created by someone named "buudai" in 2012 (also reflected in the lsusb and in the former buudai.com website).

See SainSmart DDS120/Info for more details (such as lsusb -v output) about the device.

Hardware

Or in newer hardware:

Photos

Teardown 1:

Teardown 2 (purchased 03/2016):

Protocol

We use an open-source firmware for this device (i.e., not the vendor firmware/protocol), hence we do not need to know the vendor protocol. There is some historic vendor firmware/protocol info for those interested, though.

Firmware

In order to use this device, the sigrok-firmware-fx2lafw (>= 0.1.4) firmware is required.

The firmware was originally written by Jochen Hoenicke (see README for details), thanks a lot!

Note: The firmware is not flashed into the device permanently! You only need to make it available in the usual place where libsigrok looks for firmware files, it will be used automatically (and "uploaded" to the Cypress FX2's SRAM every time you attach the device to a USB port).

See this section for technical details about the firmware/hardware.

Resources