I migliori strumenti per il debug di semplici circuiti digitali?


10

Sono uno sviluppatore di software professionale che è abituato ai lussi dei debugger integrati. Per un po 'di tempo, ho sperimentato la piattaforma Arduino. Tuttavia, trovo che tentare di interfacciarsi con componenti come un sensore di temperatura digitale Dallas DS1820 è come armeggiare al buio.

Supponendo un budget limitato di circa $ 200, che tipo di strumenti ci sono per aiutarmi a visualizzare cosa sta succedendo? Ho esaminato il Link Instruments MSO-19, ma sinceramente non so molto della differenza tra un oscilloscopio e un analizzatore logico.

Come faccio a sapere che il dispositivo che acquisto sarà in grado di misurare i tipi di (semplici) componenti che sto usando?

Risposte:


9

in sostanza, un oscilloscopio fornisce una lettura graduale della tensione sulla linea mentre un analizzatore logico ti dirà solo se è 0 o "alto" (il valore di "alto" potrebbe potenzialmente essere 5 V, 3,3 V o 1,8 V a seconda di il tuo circuito). Vedrai spesso che gli analizzatori logici hanno molti più canali (linee che possono essere lette contemporaneamente) rispetto agli oscilloscopi a causa della risoluzione più bassa richiesta.

Per quanto riguarda un dispositivo specifico, ho sentito grandi cose sulla Saleae Logic . Campiona a 24MHz; questo significa che controlla se la tensione su una particolare sonda è alta o bassa 24 milioni di volte al secondo. Il software sembra anche avere una certa conoscenza dei protocolli incorporati comuni per facilitare il debug. Immagino che 24MHz sarebbero sufficienti per il lavoro di Arduino poiché la velocità di clock massima dell'Atmegaxx8 è di 20MHz.


Dopo una mezza giornata di ulteriori ricerche, posso dire che Saleae Logic dovrebbe aiutarmi con il 90% delle idee che ho, per ora. Il software sembra raffinato e intuitivo per un "outsider" hardware come me. Vedo come un oscilloscopio sarebbe immensamente utile, ma per i tipi di progetti semplici, un analizzatore di logica USB sembra un buon compromesso.
Owen Thomas,

In The soul of a new machineTracy Kidder afferma (parafrasando) che gli uomini delle caverne hanno usato un oscilloscopio per capire perché il fuoco non sarebbe bruciato. :-)
stevenvh,

9

questa è solo un'aggiunta alla risposta del penjuin in quanto non rientrava in un commento e la sua risposta è generalmente corretta. Voglio solo chiarire un'implicazione nella sua risposta.

Fare molta attenzione a scegliere un dispositivo di misurazione basato sulla sua larghezza di banda / frequenza di campionamento. Un dispositivo con una frequenza di campionamento di 25 mhz non può campionare con precisione un segnale di orologio digitale da 25 mhz, nemmeno chiudere.

Se prendi un segnale di orologio digitale a 25mhz e lo immetti in un o-scope con una larghezza di banda di 25mhz vedrai qualcosa vicino a un'onda sinusoidale. Un ambito con una frequenza di campionamento di 25 mhz mostrerebbe probabilmente un livello DC poiché per Nyquist, il segnale di frequenza più alta che un tale ambito potrebbe campionare sarebbe di 12,5 mhz.

Un'onda quadra contiene la frequenza fondamentale che è la sua frequenza di clock, per questo esempio 25mhz. Contiene anche armoniche dispari di grandi dimensioni che danno la sua forma quadrata, per guardare un segnale di orologio digitale da 25 mhz con precisione dovresti non solo guardare 25 mhz ma 75, 125, 175, 225, ecc. Quanto lontano devi andare su alla precisione desiderata o fino alla velocità di risposta del ricetrasmettitore.

Mentre questo è leggermente meno importante per un analizzatore di logica è ancora molto importante. L'analizzatore logico sta cercando un "alto" e un "basso" sopra o sotto una certa soglia. Se ciò che vede entrare è un'onda sinusoidale, vedrai stati alti e bassi artificialmente corti e spazi artificialmente lunghi tra i bit. Ciò può dipendere in qualche modo dall'architettura dell'analizzatore.

Ciò può rendere impossibile la diagnosi di problemi relativi a varie modalità di trasmissione. Ad esempio, SPI ha 4 diverse modalità in base alla validità dei dati sui fronti di clock in aumento o in diminuzione e anche sulla polarità dei dati (è alto 1 o 0?). Anche altri protocolli di trasmissione presentano questo problema (I2S e relativi formati audio, ad esempio). Se non è possibile identificare con precisione quando avvengono le transizioni dei bordi, è quasi impossibile determinare se il bus agisce secondo le specifiche.

In genere, è necessario disporre di una larghezza di banda / velocità di campionamento molto più elevate della velocità dei dati target prevista. Se si desidera campionare un bus I2C da 40 kHz, un analizzatore logico con una frequenza di campionamento di 100 mhz è più che sufficiente. Se è necessario campionare un bus SPI da 25 mhz, è necessario disporre di un oscilloscopio / analizzatore con una larghezza di banda molto più elevata, qualcosa di simile a 500 mhz se è necessaria una precisione reale, nonché una frequenza di campionamento che consente la misurazione in tale intervallo di frequenza.

Quindi il penjuin del dispositivo consigliato con una frequenza di campionamento di 24mhz può probabilmente fornire solo misurazioni accurate di segnali digitali che sono inferiori a ~ 2mhz con una velocità di risposta apprezzabile a quella velocità di dati.


3
hai assolutamente ragione, questo mi è completamente sfuggito di mente. Per aiutare a illustrare ulteriormente questo effetto, ho inserito un'onda quadra di 1 khz nel mio oscilloscopio e ho preso un dump dello schermo della trasformata di Fourier risultante (l'asse x è la frequenza in pratica): i.imgur.com/lJvtD.png . Le armoniche sono i picchi che si ripetono.
Jeremy,

1
@penjuin illustrazione perfetta. Giusto per chiarire la mia risposta all'owen, il dispositivo con penjuin raccomandato è probabilmente molto in grado di gestire un ardunio, poiché probabilmente non avrai mai bisogno di avere a che fare con un'interfaccia a> 2mhz con quella classe di dispositivi. Volevo solo assicurarmi che non lo prendesse come una regola empirica e che finisse per morderlo se in seguito passasse a dispositivi / interfacce a velocità più elevata.
Segna il

1
Un analizzatore di logica con soglia variabile configurata correttamente di solito fornisce una risoluzione sufficiente per analizzare la logica solo a pochi fattori superiori alla frequenza del segnale. Il problema esiste in quanto il controller che riceve il segnale passerà allo zero logico per qualsiasi valore inferiore a 1,2 V (ad esempio) e alla logica 1 per qualsiasi valore superiore a 2,2 V (ad esempio) mentre l'analizzatore logico potrebbe commutare a 1,7 V rendendo tempistica meno precisa. In molti casi una frequenza di campionamento di circa 2-3 volte più veloce in un circuito digitale è sufficiente per capire cosa sta succedendo.
Wouter Simons,

@wouter simons sta attento a non confondere la larghezza di banda e la frequenza di campionamento (in realtà ho ripulito anche il mio uso delle parole nella risposta). Una frequenza di campionamento pari a 2 volte la frequenza del segnale è il minimo indispensabile per rilevare quel segnale. In pratica, gli ambiti e in particolare gli analizzatori in genere superano molto. Ad esempio, il mio ambito tek ha una larghezza di banda di 100 mhz ma campioni a 2,5 ghz.
Segna il

Bella risposta. Ho seguito bene il tuo post e probabilmente posso ancora misurare ciò che voglio con uno dei dispositivi più economici là fuori. Terrò d'occhio le limitazioni mentre esploro componenti più complicati.
Owen Thomas,

8

Se hai intenzione di lavorare principalmente su circuiti digitali, l'analizzatore logico è ciò che desideri. Gli oscilloscopi eccellono nel mostrare relativamente pochi (ad es. 2-4) segnali analogici in dettaglio, mentre gli analizzatori logici, poiché si occupano principalmente di alto-basso, di solito hanno molti più ingressi.

Puoi certamente usare un O-scope come analizzatore logico, ma il vantaggio con quest'ultimo è che è più facile ottenere "il quadro generale" essendo in grado di guardare dozzine di segnali contemporaneamente.



2

Per quanto riguarda gli analizzatori logici, ho scritto un confronto di base di quelli (relativamente) economici:

Confronto di analizzatori logici basati su PC

Una cosa da notare sulla velocità di campionamento, una regola empirica è che in genere è necessario almeno 4 volte la velocità dei dati per ottenere una lettura accurata e fino a 10 volte è meglio. Quindi, se vuoi monitorare un segnale a 8 MHz (che puoi facilmente generare da un AVR economico in SPI per esempio), vorresti un analizzatore di frequenza di campionamento da 32-80 MHz. Questo vale solo quando si scatta in modalità "asincrona". Se si sta effettuando l'acquisizione in modalità "sincrona" (ad es. Con un segnale di clock), la frequenza di campionamento deve corrispondere solo alla frequenza del segnale di clock. Quindi, ad esempio, in quel caso, il campionamento sincrono a 8 MHz sarebbe sufficiente per catturare un segnale SPI a 8 MHz (poiché ha un segnale di clock dedicato).


1

Possiedo un MSO-19 e mi piace moltissimo. Vorrei che avesse più di un canale analogico, ma funziona sia come oscilloscopio che come analizzatore logico. Per il prezzo, penso che sia un bel dispositivo (e funziona bene in VMWare su OS X). L'o'scope mi ha aiutato a vedere cosa sta realmente accadendo in una parte del circuito e non ti mostra solo lo stato alto / basso di una linea digitale, come fa un analizzatore di logica. È un voltmetro molto più preciso (e con una risposta più rapida) rispetto al multimetro standard. Sarebbe davvero bello se potesse decodificare i dati seriali, invece di I2C e SPI ...


1

Questa risposta probabilmente non ti è molto utile usando ardunio ma è una risposta alla domanda generale.

Uso molto le funzioni dell'analizzatore logico del mio pickit2. Chiaramente è pensato per la programmazione di PIC ma ha anche una modalità di analizzatore logico a 3 canali che uso sempre per guardare i segnali digitali. Lo uso ancora per quello, anche se sto usando Cortex-M3 per i miei progetti attuali. Chiaramente è uno strumento estremamente primitivo per lo standard dell'attrezzatura adeguata, ma anche così lo trovo incredibilmente utile

L'ho usato per il debug dei circuiti I2C e anche dei segnali di uscita TV, ad esempio vedere il mio post qui


1

Questo è piuttosto interessante e molto economico: http://www.seeedstudio.com/depot/preorder-open-workbench-logic-sniffer-p-612.html?cPath=75

Ha una frequenza di campionamento decente e puoi supportare un progetto HW fresco e aperto. Sembra che sia ancora in una sorta di fase beta, quindi potrebbe non essere la cosa migliore se vuoi semplicemente collegare qualcosa e farlo funzionare.


L'ho comprato un mese fa, dato che stavo lavorando principalmente con un netbook, ho avuto problemi con le dimensioni dello schermo del mio computer per poter fare clic sul pulsante "cattura", ma se hai un laptop o un desktop di dimensioni normali hai starò bene. Non l'ho usato ampiamente, ma il poco che ho mi piace e anche il prezzo è buono!
onaclov2000,

Sto usando questo LA un bel po ', e poiché questo è il mio primo LA, probabilmente sto usando meno del 50% della potenza / funzionalità che fornisce. Confrontando vari altri LA a basso costo, ho scoperto che era uno dei migliori LA a basso costo. Il software non è male. In effetti l'ho trovato abbastanza buono per i miei scopi. Se vuoi vedere come l'ho usato, fai clic sul mio profilo e vedi le domande che ho posto.
Icarus74,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.