JaredCabot/siglent-sds2000x-hd

Operar, programar (SCPI via USB/LAN), capturar formas de onda, verificar e realizar manutenção nos osciloscópios Siglent SDS2000X HD de 12 bits (SDS2104X/2204X/2354X/2504X HD): gatilhos, decodificação, MSO, FFT, energia, diagrama de Bode, AWG.

O que é siglent-sds2000x-hd?

Este skill fornece um guia abrangente e detalhado para operar, controlar remotamente e fazer manutenção dos osciloscópios da série Siglent SDS2000X HD, que são instrumentos de 4 canais e 12 bits. Ele cobre desde a conexão via USB ou LAN usando protocolos como VXI-11, socket raw e VNC, até comandos SCPI para configuração de sistemas vertical e horizontal, disparo, decodificação de protocolos seriais, módulo de canais digitais (MSO), medições, FFT, análise de potência, diagrama de Bode e gerador de forma de onda arbitrária (AWG). O documento inclui uma tabela de referência rápida dos manuais oficiais (UM, PG, QS, SM, DS), uma seção crucial de 'coisas que pegam' que alerta sobre armadilhas comuns, como a necessidade de transferências WORD para dados de 12 bits, a precisão padrão de 3 dígitos significativos e os limites de níveis e thresholds. Ele também oferece um driver Python e receitas práticas, sendo uma ferramenta indispensável para engenheiros e técnicos que precisam automatizar testes, capturar formas de onda, verificar desempenho e solucionar problemas com esses osciloscópios, garantindo precisão e evitando erros comuns de programação.

Funciona com~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/JaredCabot/claude-instrument-skills/tree/HEAD/siglent-sds2000x-hd

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Siglent SDS2000X HD: operação, controle remoto e manutenção

A família SDS2000X HD é composta por osciloscópios de 4 canais e 12 bits: SDS2104X HD (100 MHz), SDS2204X HD (200 MHz), SDS2354X HD (350 MHz) e SDS2504X HD (500 MHz). 2 GSa/s, 200 Mpts/canal, tela sensível ao toque de 10,1 pol 1024 x 600, 16 canais digitais opcionais, gerador de forma de onda arbitrário (AWG) de 25 MHz monocanal opcional, disparo e decodificação serial, análise de potência e diagrama de Bode.

Fontes:

Ref. curtaDocumentoUse para
UMSDS2000X HD Series User Manual EN01B (302 pp.)Painel frontal, todos os menus, comportamento
PGSDS Series Programming Guide EN11G (855 pp.)SCPI. Guia multimodelo; o suporte ao SDS2000X HD requer firmware 1.2.0.2 ou posterior
QSSDS2000X HD Quick Start EN01CVersão resumida do UM; notas sobre autocalibração e calibração rápida
SMSDS2000X HD Service Manual EN01AVerificação de desempenho, desmontagem, pontos de teste na placa
DSSDS2000X HD Datasheet EN01A (não é um dos quatro manuais; obtido de uma cópia de distribuidor)Especificações; os manuais remetem à folha de dados para especificações. Existe uma versão mais nova EN02B; as figuras podem ter mudado de posição

As referências de página são números de página impressos ("PG p.482", "UM p.73").

Nada aqui foi verificado em um instrumento real ainda. O PG cobre dez famílias de modelos, e muitas de suas tabelas perderam o layout de linhas na extração de texto; onde um valor do SDS2000X HD teve que ser reconstruído, este arquivo informa isso. Qualquer coisa marcada como UNVERIFIED é uma pista para testar. Quando a bancada discordar deste arquivo, acredite na bancada e atualize o skill.

Conteúdo

  1. Instrumento de relance
  2. Coisas que pegam
  3. Conectando
  4. Convenções SCPI, sincronização e erros
  5. Painel frontal e tela sensível ao toque
  6. Sistema vertical
  7. Sistema horizontal, aquisição, sequência, histórico, zoom
  8. Disparo (trigger)
  9. Disparo e decodificação serial
  10. Canais digitais (MSO)
  11. Medições, cursores, contador, DVM
  12. Matemática e FFT
  13. Pesquisa, navegação, teste de máscara, histograma
  14. Análise de potência e diagrama de Bode
  15. Formas de onda de referência, formas de onda de memória, salvar e recuperar
  16. Display
  17. Gerador de forma de onda (AWG)
  18. Leitura de dados de forma de onda
  19. Sistema, LAN, opções, firmware, autocalibração
  20. Verificação de desempenho
  21. Manutenção e solução de problemas
  22. Driver Python
  23. Receitas
  24. Discrepâncias do manual

1. Instrumento de relance

ItemValorFonte
Canais4 analógicos + gatilho EXT; 16 digitais com SDS2000HD-16LA e a sonda SPL2016UM p.34-35, 64
ADC12 bitsDS
Taxa de amostragem2 GSa/s entrelaçado, 1 GSa/s não entrelaçadoDS, SM p.28
Memória200 Mpts/canal entrelaçado, 100 Mpts/canal não entrelaçado; 20 / 10 Mpts em Average e ERES (DS)UM p.73, DS
Taxa de atualizaçãoaté 100.000 wfm/s normal, 500.000 wfm/s sequênciaDS, UM p.77
Sequência / Históricoaté 80.000 segmentos / quadros, intervalo mínimo de disparo de 2 µsUM p.77, 80
V/div0,5 mV a 10 V/div em 1 MΩ; 0,5 mV a 1 V/div em 50 Ω (sonda 1X)DS
Faixa vertical8 divisõesUM p.40
Limites de largura de banda20 MHz, 200 MHz (hardware)UM p.60-61
Entrada1 MΩ ±2% ∥ 16 pF ±2 pF, ou 50 Ω ±1%. Máx. 400 Vpk (DC+AC, DC a 10 kHz) em 1 MΩ; 5 Vrms em 50 ΩDS, SM p.46
Precisão do ganho DCEspecificação ±0,5% (5 mV a 10 V/div), ±1,5% (0,5 a 4,95 mV/div) (DS). Limite de verificação de desempenho ±0,6% (5,8 mV a 10 V/div), ±1,5% (1 a 4,45 mV/div) (SM p.28-32)DS, SM
Precisão do offset±(0,5% do offset + 0,5% da escala total + 1 mV)SM p.33
Base de tempo1 ns/div a 1000 s/div; ±2 ppm inicial, ±0,5 ppm envelhecimento de primeiro anoDS
Distorção entre canais≤ 100 psSM p.45
Faixa do nível de disparo±4,1 div em torno do centro da tela (canais); EXT ±0,61 V; EXT/5 ±3,05 VPG p.492, DS
Holdoff8 ns a 30 s, ou 1 a 10^8 eventosPG
Digital500 MSa/s, 50 Mpts/canal, dois grupos de limiar D0-D7 e D8-D15, -10 a +10 VDS, UM p.69
AWG (opção FG)1 canal, 25 MHz, 125 MSa/s, 14 bits, 16 kpts arb, ±1,5 V em 50 Ω (±3 V em alta impedância)DS, UM p.271
FFTaté 2 Mpts (2^21)UM p.198
DisplayTFT 10,1 pol, 1024 x 600, multitoque capacitivoDS
I/OUSB 2.0 host 2x frontal, 1x traseiro; USB 2.0 device (USBTMC); LAN 10/100; entrada EXT trig; Aux Out; saída AWGUM p.34-35
Alimentação100-240 V 50/60 Hz, 120 W máx.SM p.9
Ambiente0 a 50 °C operação; 5-90% UR a 30 °C, 50% a 40 °C; ≤ 3000 mSM p.7

Figuras analógicas dependentes do modelo (DS, típico): tempo de subida 1 / 1,7 / 3,5 ns e ruído 65 / 55 / 50 µVrms em 1 mV/div 50 Ω para os modelos de 350 / 200 / 100 MHz.

Entrelaçamento. Os canais são pareados como CH1/CH2 e CH3/CH4. Se apenas um canal de cada par estiver ligado, esse canal opera a 2 GSa/s com 200 Mpts. Se ambos os canais de um par estiverem ligados, o par cai para 1 GSa/s e 100 Mpts. Portanto, CH1 + CH3 ainda está entrelaçado; CH1 + CH2 não está. O UM chama isso de modo "canal único" e "dois canais" (UM p.73), o SM de "entrelaçado" e "não entrelaçado" (SM p.28). No modelo de 500 MHz, um filtro anti-aliasing de ~350 MHz é ativado automaticamente sempre que a taxa for ≤ 1 GSa/s (UM p.42).

Painel frontal (UM p.34): C1-C4 BNC, compensação de sonda (1 kHz, onda quadrada 0-3 V) e ilhó de aterramento, 2 x USB host, conector de sonda digital, tecla de energia (laranja = standby, branco = ligado, SM p.57). Traseiro (UM p.35): EXT TRIG, Aux Out (saída de disparo por padrão; pulso de passa/falha quando o teste de máscara está ativo), saída WaveGen, LAN, USB device, USB host, entrada AC. As carcaças dos BNC estão no potencial do chassi (terra) (SM p.10). Não há entrada ou saída de referência de 10 MHz.

Opções (UM, DS):

OpçãoDesbloqueia
SDS2000HD-FGAWG embutido (hardware instalado, bloqueado por licença). Também necessário para o SAG1021I externo
SDS2000HD-16LA16 canais digitais (necessita da sonda SPL2016)
SDS2000HD-PAAnálise de potência
-I2S, -1553B, -FlexRay, -CANFD, -SENT, -Manch (nomes DS)Protocolos seriais além dos padrão I2C, SPI, UART, CAN, LIN
BW1T2, BW1T3, BW1T5, BW2T3, BW2T5, BW3T5 (nomes DS)Upgrades de largura de banda (100/200/350 para 200/350/500 MHz)

As licenças são inseridas em Utility > Menu > Software Options (tipo, chave, Install e, em seguida, reinicializar, QS p.34), ou a partir de um arquivo de licença na raiz de um pendrive USB. Uma licença "Temporária" não instalada funciona até 30 vezes (UM p.292). A decodificação de canais digitais requer tanto a 16LA quanto a licença do protocolo (UM p.65).

2. Coisas que pegam

  1. Dados de 12 bits precisam de transferências WORD. :WAVeform:WIDTh padrão é BYTE (COMM_TYPE padrão do preâmbulo é 0 = byte, PG p.754), o que descarta os bits baixos. Envie :WAV:WIDT WORD antes de :WAV:DATA?. Words são int16 com sinal, LSB primeiro por padrão, alinhados à esquerda com os bits baixos preenchidos com zero. Escalone com o code_per_div do preâmbulo (offset 0xA4), nunca com um 25, 30 ou 7680 codificado (PG p.753, 758).

  2. Apenas *IDN?, *OPC? e *RST são documentados (PG p.29). Não há fila de erros, *CLS, *ESR? ou *STB? documentados. Números fora da faixa geralmente são limitados sem aviso (:ACQ:SRAT, :TIM:SCAL, zoom, cursores de porta). Após qualquer configuração importante, leia-a de volta. :SYSTem:ERRor?, *ESR? e o legado INR? (usado no próprio exemplo C# do PG) valem a pena tentar, UNVERIFIED.

  3. A precisão da consulta padrão é de 3 dígitos significativos. :FORMat:DATA define quantos dígitos as respostas NR3 carregam: SINGle = 7, DOUBle = 14, CUSTom,<1-64> (PG p.34). No padrão, :TRIG:FREQ? retorna "1.00E+07" para um sinal de 9,99998 MHz. Envie :FORM:DATA DOUB logo após conectar.

  4. As strings de status têm maiúsculas e minúsculas misturadas, com apóstrofo. :TRIGger:STATus? retorna Arm, Ready, Auto, Trig'd, Stop ou Roll (PG p.483). Compare exatamente ou converta ambos para maiúsculas.

  5. *OPC? bloqueia a interface até que as operações pendentes terminem (PG p.30) e o PG nunca diz que ele espera por uma aquisição. Para uma única captura, envie :TRIG:MODE SINGle e consulte :TRIG:STAT? até que retorne Stop. Isso é o que o exemplo C# do PG faz (PG p.827-828).

  6. Configurações com duas fontes da verdade. As configurações de disparo serial e decodificação são completamente separadas (UM p.117). Alterar a taxa de transmissão da decodificação não altera a do disparo. Copie com :DECode:BUS<n>:COPY FROMtrigger (disparo para decodificação) ou TOTRigger (decodificação para disparo) e copie novamente após cada alteração. O próprio exemplo do PG para COPY descreve a direção ao contrário (PG p.143); confie nas definições dos parâmetros.

  7. Limiares e níveis são limitados a ±4,1 divisões da escala e offset atuais do canal ([-4,1*vdiv - offset, 4,1*vdiv - offset]). Isso se aplica a níveis de disparo, limiares de decodificação, níveis de pesquisa e nível do contador. Defina V/div e offset primeiro, depois o nível. Valores fora são limitados ou rejeitados, o PG não diz qual.

  8. O entrelaçamento altera a memória e a taxa. Ligar o segundo canal de um par (CH1+CH2 ou CH3+CH4) reduz pela metade a taxa de amostragem e a memória. :ACQ:MDEPth aceita apenas os tokens para o modo atual: 20k|200k|2M|20M|200M quando entrelaçado, 10k|100k|1M|10M|100M quando não (PG p.40). Defina os canais primeiro, depois a profundidade da memória. Alterar V/div ou o modo de entrelaçamento também aciona uma calibração ADC em segundo plano que interrompe brevemente a aquisição (QS p.34).

  9. Durante a execução, a análise usa apenas o registro na tela. Medições, matemática, decodificação e pesquisa ignoram amostras fora da tela até que você pressione Stop, mesmo no modo Fixed Memory (UM p.76).

  10. Average e ERES não estão disponíveis no modo sequência (PG p.47), limitam a profundidade da memória (PG p.41; 20/10 Mpts conforme DS), e ERES reduz a largura de banda: 3 bits deixam 0,007 x Fs (UM p.75).

  11. :CHANnel<n>:SCALe? é escalonado pela sonda (PG p.58), assim como os offsets e níveis que você envia. Defina :CHAN<n>:PROBe antes da escala, offset e nível de disparo. O V/div e offset do preâmbulo da forma de onda excluem a sonda; multiplique pelo fator da sonda em 0x148 para obter volts na ponta da sonda.

  12. Sondas passivas precisam de 1 MΩ. Em 50 Ω, uma sonda 10X não lê nada útil, e a entrada de 50 Ω não é uma entrada de alta potência (UM p.62; 5 Vrms máx. conforme DS). Não mude um canal com um sinal de alta tensão ativo para 50 Ω a partir de um script.

  13. Campos hexadecimais são enviados como decimal, e "don't care" é um a mais que o máximo. :TRIG:CAN:ID 125935441 para 0x7819F51. Bytes de dados: 256 = 0xXX. Endereço IIC 1024, ID CAN de 11 bits 2048, ID de 29 bits 536870912, ID LIN 64, ID FlexRay 2048 (PG p.640-712).

  14. Enumerações mal impressas. BITorder está impresso {LSM|MSB}; envie LSB. :TRIGger:TYPE e :SEARch:MODE aceitam PULSE (não o nome do subsistema PULSe). A polaridade Manchester está impressa PULarity; envie POLarity. A borda de latch SPI é :TRIGger:SPI:LATChedge, não ...:SPI:CLK:LATChedge (PG p.653, 484, 228, 661).

  15. Algumas consultas aceitam argumentos. :TRIG:PATT:LEV? C2 e :TRIG:DEL:LEV? C2 retornam C2,<value>; :MEAS:SIMP:VAL? PKPK; :MEAS:ADV:P1:STAT? MEAN. Várias consultas retornam a palavra OFF em vez de um número quando as estatísticas estão desligadas (:COUN:STAT:VAL?, :MEAS:ADV:P<n>:STAT?). O PG não diz o que uma medição inválida retorna: proteja toda conversão float().

  16. O remoto não bloqueia o painel a menos que você peça. :SYSTem:REMote ON bloqueia as teclas e a tela sensível ao toque; OFF as libera (PG p.467). Um script que trava com REMote ON deixa o osciloscópio bloqueado até que seja limpo.

  17. Caminhos de arquivo não são verificados em relação ao tipo. :SAVE:... nunca infere o formato a partir da extensão. Um caminho sem prefixo vai para U-disk0/. Prefixos: local/, net_storage/, U-disk0/, U-disk1/ (PG p.407-413). :RECall:SERase exclui todos os arquivos de usuário armazenados dentro do osciloscópio (PG p.397).

  18. As atualizações de firmware não devem perder energia. Um corte de energia durante uma atualização pode deixar o osciloscópio incapaz de inicializar (UM p.294). A recuperação é feita por um pacote de recuperação USB da Siglent (SM p.57).

  19. Os padrões documentados estão quase ausentes. O PG não informa padrões para disparo, decodificação ou contador. Defina cada parâmetro do qual uma medição depende.

3. Conectando

USB: porta USB Device traseira (tipo B). Ela enumera como USBTMC com o ID do fabricante da Siglent 0xF4EC (exemplo PG p.813 USB0::0xF4EC::0xEE38::<serial>::INSTR; o ID do produto 0xEE38 é um exemplo, então enumere em vez de codificar). No Windows, instale o NI-VISA (o Runtime Engine é suficiente, PG p.19) ou use pyvisa-py com libusb.

LAN: Utility > Menu > I/O > LAN Config, DHCP ou IP estático, máscara, gateway e DNS (UM p.289-290). Os equivalentes SCPI usam strings entre aspas: :SYST:COMM:LAN:TYPE STATIC, :SYST:COMM:LAN:IPAD "192.168.1.50", :SYST:COMM:LAN:SMAS "255.255.255.0", :SYST:COMM:LAN:GAT "192.168.1.1", :SYST:COMM:LAN:MAC? (PG p.455-458).

ProtocoloEndereçoNotas
VXI-11 (VISA)TCPIP0::<ip>::INSTR (também TCPIP::<ip>::inst0::INSTR)Os exemplos do PG usam ambos
Socket rawPorta TCP 5025Comandos terminam com \n. Respostas terminam com \n; blocos binários terminam com 0A 0A
TelnetPorta TCP 5024Prompt SCPI>; sair com Ctrl+] depois quit (PG p.24)
Webhttp://<ip>Tela remota ao vivo, screenshot, download de forma de onda BIN/CSV, conversor bin-to-CSV, atualização de firmware (UM p.299). Senha de até 20 bytes: Utility > Menu > I/O > Web Server
VNCporta 5900-5999:SYST:COMM:VNCPort 5901. Dê a cada instrumento Siglent sua própria porta (UM p.290)
LXILXI 1.5 (Device Spec 2016)LAN Reset restaura DHCP, ping, mDNS e limpa a senha da web (UM p.289)

Emulação: Utility > Menu > I/O > Emulation definido como "Tektronix" altera o conjunto SCPI para um compatível com Tek (UM p.291). Deixe em Siglent para qualquer coisa neste arquivo.

Configuração PyVISA adequada para transferências de forma de onda (PG p.837):

import pyvisa
rm = pyvisa.ResourceManager()            # ou ResourceManager('@py')
sds = rm.open_resource("TCPIP0::192.168.1.50::INSTR")
sds.timeout = 10000                      # ms, por leitura; uma peça WORD de 10 Mpts é 20 MB (~2 s em LAN 100M)
sds.chunk_size = 20 * 1024 * 1024
sds.write_termination = "\n"
# Deixe read_termination desconfigurado: com ele configurado, o VISA para as leituras binárias no
# primeiro byte 0x0A dentro da forma de onda. Remova as respostas de texto você mesmo.
print(sds.query("*IDN?").strip())  # Sigl

…

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Habilidades Relacionadas