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?
fonte
The soul of a new machine
Tracy Kidder diz (parafraseando) que homens das cavernas usavam um osciloscópio para ver por que o fogo não queimava. :-)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.
fonte
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.
fonte
Existem boas respostas para essa pergunta semelhante: analisador de lógica para iniciantes?
fonte
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).
fonte
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…
fonte
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
fonte
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.
fonte