Melhores ferramentas para depurar circuitos digitais simples?


10

Eu sou um desenvolvedor de software profissional que está acostumado ao luxo de depuradores integrados. Há algum tempo, venho experimentando a plataforma Arduino. No entanto, acho que tentar fazer interface com componentes como um sensor de temperatura digital Dallas DS1820 é como mexer no escuro.

Assumindo um orçamento de cerca de US $ 200, que tipo de ferramentas existem para me ajudar a visualizar o que está acontecendo? Eu observei o Link Instruments MSO-19, mas sinceramente não sei muito sobre a diferença entre um osciloscópio e um analisador lógico.

Como sei que o dispositivo que compro será capaz de medir os tipos de componentes (simples) que estou usando?

Respostas:


9

essencialmente, um osciloscópio fornece uma leitura graduada da tensão na linha, enquanto um analisador lógico apenas informa se é 0 ou "alto" (o valor de "alto" pode ser 5V, 3.3V ou 1.8V, dependendo da seu circuito). Você verá frequentemente que os analisadores lógicos têm muito mais canais (linhas que podem ser lidas simultaneamente) do que os osciloscópios, devido à menor resolução necessária.

Quanto a um dispositivo específico, ouvi grandes coisas sobre a Saleae Logic . É amostrado a 24 MHz; isso significa que verifica se a tensão em uma sonda específica é alta ou baixa 24 milhões de vezes por segundo. O software também parece ter algum conhecimento dos protocolos incorporados comuns para ajudar na depuração. Eu imagino que 24MHz seria suficiente para o trabalho do arduino, pois a velocidade máxima do clock do Atmegaxx8 é 20MHz.


Após meio dia de mais pesquisas, posso dizer que a Saleae Logic deve me ajudar com 90% das idéias que tenho, por enquanto. O software parece polido e intuitivo para um "outsider" de hardware como eu. Eu posso ver como um osciloscópio seria imensamente útil, mas para os tipos de projetos simples, um analisador lógico USB parece uma boa desvantagem.
Owen Thomas

Em The soul of a new machineTracy Kidder diz (parafraseando) que homens das cavernas usavam um osciloscópio para ver por que o fogo não queimava. :-)
stevenvh

9

isso é apenas uma adição à resposta de penjuin, pois ela não se encaixava em um comentário e sua resposta geralmente está correta. Só quero esclarecer uma implicação em sua resposta.

Tenha muito cuidado ao escolher um dispositivo de medição com base em sua largura de banda / taxa de amostragem. Um dispositivo com uma taxa de amostragem de 25 mhz não pode captar com precisão um sinal de relógio digital de 25 mhz, nem mesmo fechar.

Se você pegar um sinal de relógio digital em 25mhz e alimentá-lo em um osciloscópio com uma largura de banda de 25mhz, verá algo próximo a uma onda senoidal. Um osciloscópio com taxa de amostragem de 25mhz provavelmente mostraria um nível de corrente contínua, já que, por Nyquist, o sinal de maior frequência que esse osciloscópio poderia amostrar seria de 12,5mhz.

Uma onda quadrada contém a frequência fundamental, que é sua taxa de clock, por exemplo, 25 mhz. Ele também contém grandes harmônicos ímpares, que dão a sua forma quadrada, para observar com precisão um sinal de relógio digital de 25 mhz, você precisaria não apenas olhar para 25 mhz, mas também 75, 125, 175, 225, etc. Até onde você precisa subir com a precisão desejada ou até a taxa de giro do transceptor.

Embora isso seja um pouco menos importante para um analisador lógico, ainda é muito importante. O analisador lógico está procurando um 'alto' e um 'baixo' acima ou abaixo de algum limite. Se o que é visto entrando for uma onda senoidal, você verá estados alto e baixo artificialmente curtos e espaços artificialmente longos entre os bits. Isso pode ser um pouco dependente da arquitetura do analisador.

Isso pode impossibilitar o diagnóstico de problemas relacionados a vários modos de transmissão. Por exemplo, o SPI possui 4 modos diferentes, com base nos dados válidos nas bordas do relógio em ascensão ou queda e também na polaridade dos dados (é alto 1 ou 0?). Outros protocolos de transmissão também têm esse problema (I2S e formatos de áudio relacionados, por exemplo). Se você não consegue identificar com precisão quando as transições de borda ocorrem, é quase impossível determinar se o barramento está agindo dentro das especificações.

Geralmente, você precisa de taxas de largura de banda / amostragem muito mais altas que a taxa de dados de destino pretendida. Se você quiser amostrar um barramento I2C de 40khz, um analisador lógico com uma taxa de amostragem de 100mhz é mais que suficiente. Se você precisar amostrar um barramento SPI de 25 mhz, precisará de um escopo / analisador com uma largura de banda muito maior, algo próximo a 500 mhz se precisar de precisão real, além de uma taxa de amostragem que permita a medição nessa faixa de frequência.

Portanto, o dispositivo penjuin recomendado com uma taxa de amostragem de 24 mhz provavelmente só pode fornecer medições precisas de sinais digitais inferiores a ~ 2 mhz, com uma taxa de variação apreciável para essa taxa de dados.


3
você está absolutamente correto, isso me escapou completamente da mente. Para ajudar a ilustrar ainda mais esse efeito, alimentei uma onda quadrada de 1khz no meu osciloscópio e fiz um despejo de tela da transformação de Fourier resultante (o eixo x é a frequência basicamente): i.imgur.com/lJvtD.png . Os harmônicos são os picos repetidos.
Jeremy

11
ilustração perfeita do @penjuin. Apenas para esclarecer minha resposta para o owen, o dispositivo recomendado por penjuin provavelmente é muito capaz de lidar com um ardunio, pois você provavelmente nunca precisará lidar com uma interface rodando a> 2mhz com essa classe de dispositivo. Eu só queria ter certeza de que ele não aceitasse isso como regra geral e acabasse mordendo-o se ele seguir adiante para dispositivos / interfaces de velocidade mais alta.
Mark

11
Um analisador lógico com limite variável configurado corretamente geralmente fornece resolução suficiente para analisar a lógica apenas em alguns fatores mais altos que a frequência do sinal. O problema existe porque o controlador que recebe o sinal muda para zero lógico para algo abaixo de 1,2V (por exemplo) e 1 lógico para algo acima de 2,2V (por exemplo) enquanto o analisador lógico pode alternar para 1,7V, fazendo o tempo menos preciso. Em muitos casos, uma taxa de amostragem 2-3 vezes mais rápida em um circuito digital é suficiente para entender o que está acontecendo.
Wouter Simons

@ wouter simons cuidado para não confundir largura de banda e taxa de amostragem (na verdade, limpei o uso de minhas palavras também na resposta). Uma taxa de amostragem de 2x a frequência do seu sinal é o mínimo necessário para detectar esse sinal. Nas práticas, os escopos e, especialmente, os analisadores costumam exagerar muito. Por exemplo, meu escopo tek tem uma largura de banda de 100 MHz, mas amostras de 2,5 GHz.
Mark

Ótima resposta. Eu segui sua postagem muito bem e provavelmente ainda posso medir o que eu quero com um dos dispositivos mais baratos por aí. Vou ficar de olho nas limitações à medida que explorar componentes mais complicados.
Owen Thomas

8

Se você planeja trabalhar principalmente em circuitos digitais, o analisador lógico é o que você deseja. Os osciloscópios se destacam por mostrar relativamente poucos sinais analógicos (por exemplo, 2-4) em detalhes, enquanto os analisadores lógicos, uma vez que se preocupam principalmente com alto-baixo-baixo, geralmente têm muito mais entradas.

Você certamente pode usar um O-scope como um analisador lógico, mas a vantagem com o último é que é mais fácil entender o cenário geral ao assistir a dezenas de sinais simultaneamente.



2

No que diz respeito aos analisadores lógicos, escrevi uma comparação básica dos (relativamente) baratos:

Comparação de analisadores lógicos baseados em PC

Uma coisa a ser observada sobre a velocidade de amostragem: uma regra geral é que você geralmente precisa de pelo menos 4x sua taxa de dados para obter uma leitura precisa, e até 10x é melhor. Portanto, se você deseja monitorar um sinal de 8 MHz (que você pode gerar facilmente a partir de um AVR barato em SPI, por exemplo), convém um analisador de taxa de amostragem de 32 a 80 MHz. Isso se aplica somente ao capturar no modo 'assíncrono'. Se você estiver capturando no modo 'síncrono' (por exemplo, com um sinal de relógio), sua taxa de amostragem precisará apenas corresponder à taxa do sinal de relógio. Por exemplo, nesse caso, a amostragem síncrona de 8 MHz seria suficiente para capturar um sinal SPI de 8 MHz (já que ele possui um sinal de clock dedicado).


1

Eu tenho um MSO-19 e gosto muito dele. Eu gostaria que tivesse mais de um canal analógico, mas funciona como um osciloscópio e como um analisador lógico. Pelo preço, acho que é um bom equipamento (e roda bem no VMWare no OS X). O o'scope me ajudou a ver o que realmente está acontecendo em uma parte do circuito e não mostra apenas o estado alto / baixo de uma linha digital, como faz um analisador lógico. É um voltímetro muito mais preciso (e com resposta mais rápida) do que o multímetro padrão. Seria muito bom se pudesse decodificar dados seriais, em vez de apenas I2C e SPI…


1

Essa resposta provavelmente não é muito útil para você usar o ardunio, mas é uma resposta para a pergunta geral.

Eu uso muito as funções de analisador lógico do meu pickit2. Claramente, ele é destinado à programação de PICs, mas também possui um modo de analisador lógico de 3 canais que eu uso o tempo todo para observar sinais digitais. Ainda o uso para isso, mesmo usando o Cortex-M3 para meus projetos atuais. Claramente, é uma ferramenta extremamente primitiva pelo padrão de equipamento adequado, mas mesmo assim acho incrivelmente útil

Eu usei para depurar circuitos I2C e sinais de saída de TV também, por exemplo, veja meu post aqui


1

Isso é muito legal e muito barato: http://www.seeedstudio.com/depot/preorder-open-workbench-logic-sniffer-p-612.html?cPath=75

Possui taxa de amostragem decente e você pode oferecer suporte a um projeto de HW aberto e legal. Parece que ele ainda está em um estágio beta, portanto pode não ser a melhor coisa se você quiser apenas conectar algo e fazê-lo funcionar.


Acabei de comprar isso há um mês, já que estava trabalhando principalmente com um netbook, tive problemas com o tamanho da tela do meu computador para poder clicar no botão "capturar", mas se você tiver um laptop ou computador de tamanho normal, poderá vai ficar bem. Não o usei extensivamente, mas gosto do pouco que gosto e o preço também é bom!
precisa saber é o seguinte

Estou usando esse LA bastante e, como esse é meu primeiro LA, provavelmente estou usando menos de 50% da energia / funcionalidade que ele fornece. Comparando vários outros LAs de baixo custo, achei que era um dos melhores LAs de valor agregado. O software não é ruim. Na verdade, achei que era bastante bom para meus propósitos. Se você quiser ver como eu o usei, basta clicar no meu perfil e ver as perguntas que fiz.
icarus74
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.