venerdì , 22 Novembre 2019
iten
Home » Elettronica » Recensioni » Recensione #2: Analizzatore di stati logici Zeroplus LAP-C

Recensione #2: Analizzatore di stati logici Zeroplus LAP-C

L'analizzatore di stati logici è uno strumento che non può mancare nel laboratorio di chi si occupa di elettronica digitale. Forse, per gli "elettronici digitali" l'analizzatore di stati logici è più importante dell'oscilloscopio, e spesso è l'unico strumento che permette di capire cosa sta succedendo ad un dato dispositivo. La sua utilità massima si manifesta quando si comincia a lavorare con un nuovo IC: anche se i datasheet forniti dai costruttori sono super completi, prima di capire realmente come interfacciarsi con un dispositivo bisogna stare li ad impazzire per ore e ore (a volte anche per giorni, fidatevi), cercando di scoprire come dialogarci e quali sequenze esatte di comandi inviare. E questo anche se i dispositivi usano protocolli che dovrebbero essere standard come l'I²C o l'SPI: l'interpretazione del protocollo e delle sue temporizzazioni possono mettere a dura prova anche il programmatore più smaliziato. Un analizzatore di stati logici semplifica tremendamente il processo di debugging, ed è un investimento che si ripaga nel giro di qualche ora. Io stesso ho comprato per disperazione l'analizzatore di cui vi parlo in questo post dopo aver passato 7 giorni nel tentativo vano di mettere a punto il firmware pilota del convertitore analogico digitale ADS1247 di Texas Instruments. E grazie all'analizzatore in una giornata ho capito gli errori che commettevo ed ho finalizzato il lavoro.
Tuttavia il budget necessario per acquistare un analizzatore a sé stante delle marche più blasonate è molto alto, certamente non alla portata di un hobbista ma anche di alcune aziende che non necessariamente si occupano di sviluppo di elettronica come core business principale. Ed ecco che una soluzione come quello dello Zeroplus LAP-C può essere una vera e propria manna caduta dal cielo, ad prezzo che sicuramente lo rendono un prodotto accessibile al grande pubblico.

Che cos'è un analizzatore di stati logici e a cosa serve?

Se siete giunti su questo blog probabilmente già conoscete a cosa serve esattamente un analizzatore di stati logici e siete interessati solo a capire come funziona il modello oggetto di questa recensione. In questo caso, saltate tranquillamente questo paragrafo molto introduttivo.

Un analizzatore di stati logici è uno strumento elettronico di acquisizione che si occupa di tracciare la variazione di stato di un dato dispositivo in un intervallo temporale. Così come un oscilloscopio permette di visualizzare su di un grafico bidimensionale la variazione nel tempo di un segnale elettrico e fare misure quantitative, un analizzatore di stati permette di tracciare le variazioni di stato di un dispositivo digitale - assumo che sia abbastanza chiaro che i dispositivi digitali possono essere visti come macchine a stati finiti che durante la loro attività variano per l'appunto il loro stato, e lo fanno attraverso la variazione del livello di segnale entro determinati intervalli che permettono di associare uno "0" logico allo stato basso e un "1" logico allo stato alto. Lo stato logico può essere interno al dispositivo (ad esempio lo stato di una delle migliaia di porte logiche contenuto in un microcontrollore), così come "esterno". Quest'ultimo è il caso più interessante ai fini dell'uso di un analizzatore di stati. Infatti, i dispositivi digitali dialogano con altri dispositivi digitali per mezzo di protocolli (come l'I²C e l'SPI), e i segnali trasmessi ad una data frequenza tra questi dispositivi, e la loro variazione di stato, delineano il funzionamento del protocollo e del dispositivo stesso.

Facciamo un esempio concreto. Consideriamo il protocollo I²C che è un protocollo di comunicazione seriale a due fili (si parla per l'appunto di Two Wire Interface - TWI): il canale SDA è addetto alla trasmissione dei dati, mentre il canale SCL è addetto alla distribuzione del clock, che serve per sincronizzare lo scambio dati tra i due dispositivi (tenete a mente che in elettronica l'asincronia la fa da padrona, e il clock è l'unico elemento di sincronizzazione efficiente per assicurarsi che i dispositivi scambiano correttamente dati).
Il protocollo I²C prevede che ogni comando con i relativi parametri sia preceduto da una condizione di START e terminato da una di STOP. La condizione di START si ottiene portando il canale SDA al livello logico 0 mentre il clock si trova alto (livello logico 1), mentre la condizione di STOP si ottiene portando il canale SDA al livello logico alto mentre il clock si trova alto.

 

L'analizzatore di stati logici permette di tacciare simultaneamente un certo numero di canali e plottare su un grafico temporale la variazione di stato di questi canali. Ad esempio, nel caso del I²C, permette di analizzare in contemporanea i canali SDA e SCL e risalire quindi al messaggio che i dispositivi si stanno scambiando. Inoltre, gli analizzatori logici hanno funzioni software che permettono di analizzare il protocollo specifico e non solo visualizzare la variazione degli stati.

 

 

Dato che il protocollo di per sé non dice nulla su poi come il dispositivo vuole essere effettivamente usato (i comandi, le temporizzazioni, ecc). Ad esempio, una EEPROM della serie 24L ha il suo protocollo costruito sull'I²C, gli analizzatori più evoluti hanno degli specifici analizzatori di protocollo che permettono con estrema facilità di tracciare il comportamento specifico di quel particolare dispositivo.
Capite come, quindi, un analizzatore sia uno strumento utilissimo nel tenere traccia delle variazioni di stato durante la comunicazione fra dispositivi digitali, e quale sia il suo aiuto effettivo nel debuggare un circuito o una parte di esso.

Zeroplus LAP-C 16064

L'analizzatore di stati logici di cui vi parlo è prodotto dalla taiwanese Zeroplus ed è un analizzatore del tipo PC-Based, ossia non è uno strumento autonomo ma richiede l'uso di un PC e di un software dedicato (che purtroppo gira solo su Windows) per analizzare i dati acquisiti dal dispositivo. Nello specifico, io ho acquistato il modello LAP-C 16064, dotato di 16 canali di acquisizione e 64Kbit per canale di memoria,e con una frequenza di campionamento massima con clock esterno di 75Mhz. I prodotti Zeroplus in Italia sono commercializzati da Robot-Italy.com e il modello in oggetto viene venduto per meno di 190€.
Diciamo subito che, per chi vuole un giudizio immediato sul prodotto senza attendere oltre, sicuramente fa il suo lavoro e vale tutti i soldi che costa, e probabilmente anche di più. Quindi se siete in dubbio sull'acquisto, procedete senza esitazioni. Ma andiamo nel dettaglio.

L'analizzatore viene fornito in una pratica custodia semirigida, con tutti i probe necessari per acquisire dai 16 canali, i cavi di connessione ai probe, i cavi e i probe di grounding e un cavo USB. Presenti, inoltre, CD e manuale di istruzioni, anche se vi consiglio di scaricare gratuitamente il software più aggiornato dal sito web della Zeroplus.  L'analizzatore si presenta sotto forma di scatola, dove da un lato abbiamo la porta USB per la connessione al PC e dall'altro tutte le uscite per collegare i probe. La qualità dei materiali è alta, e sicuramente non è un prodotto "artigianale", ma si presenta piuttosto bene e con rifiniture professionali. Se proprio vogliamo essere pignoli, la qualità dei probe non è eccelsa, e la punta tende a rovinarsi molto facilmente.

Il funzionamento dell'analizzatore in quanto tale è molto semplice: si collegano i probe e i cavi di grounding, e a loro volta si collegano alla massa del dispositivo da debuggare; allo stesso modo si collegano i probe ai canali da tenere sotto traccia. Fatto ciò, tutto il lavoro si svolge esclusivamente dal software sul PC.

Il software della Zeroplus sulle prime può dare problemi, trattandosi di un prodotto molto complesso e che si adatta a tutta la gamma degli strumenti prodotti da Zeroplus. Sicuramente si rimane spiaziati d'avanti alla mole di pulsanti e opzioni disponibili. Per cominciare esistono in rete alcune guide.  Robot-Italy pubblica un tutorial in italiano, mentre su Youtube la Zeroplus ha caricato dei video di esempio molto utili. Tuttavia, concedetevi un po' di tempo per capire a pieno lo strumento, soprattutto se non avete mai lavorato prima con un analizzatore di stati logici.

Come dicevo nel precedente paragrafo, un analizzatore deve essere in grado di fornire anche l'analisi del protocollo specifico, altrimenti un buon oscilloscopio può svolgere (quasi) lo stesso compito. Il software di Zeroplus permette di analizzare i protocolli per mezzo di plug-in che si acquistano a parte. Ne sono disponibili una quantità enorme: circa 70. Nel modello LAP-C 16064 escono gratis i seguenti protocolli: I²C, UART, SPI e 7-Segment LCD. La buona notizia è che c'è un offerta praticamente "permanente" che vi permette di scegliere dopo l'acquisto gratis fino a 30 protocolli, e con 30 protocolli si copre praticamente tutto. Si acquista, invece, a parte il protocol analyzer trigger, che vi permette di impostare dei trigger quando si verifica un certo evento collegato al protocollo (ad esempio viene inviato un dato comando). Costa 43€, anche se io ad oggi una reale esigenza non l'ho avuta e non l'ho comprato.

Come detto in precedenza, il modello LAP-C 16064 ha 16 canali con 64Kbit di acquisizione per canale. Il mio consiglio, se avete la possibilità di spendere qualcosina in più, è di prendere il modello con 128Kbit di memoria per canale. E vi spiego perché. L'analizzatore ha due modalità di acquisizione dati: una senza compressione e una con compressione. Nella modalità senza compressione, l'analizzatore acquisisce i dati dividendo la memoria disponibile per la frequenza di campionamento, che deve essere almeno 4 volte superiore a quella a cui opera il dispositivo che state analizzando. Quindi, a prescindere se c'è o meno una variazione di stato, l'analizzatore acquisisce sempre una volta scaduto l'intervallo di campionamento (ad esempio, 100kHz significano 100.000 campionature al secondo). Nella modalità compressa, invece, l'analizzatore memorizza soltanto quando c'è una variazione di stato del canale, e oltre alla variazione registra l'offset temporale. Con questa modalità si possono acquisire fino a 256 volte i dati che si otterrebbero nella modalità normale. Tuttavia, la mia esperienza è che la modalità con compressione non è molto precisa e possono esserci problemi soprattutto quando il clock non ha una generazione precisissima. Mi spiego meglio. Mi è capitato di dover adoperare un dispositivo su I²C interfacciato da un micro che non gestisce in hardware il protocollo I²C. La tecnica adoperata in questo caso è quella del bit-banging, e usando l'acquisizione con compressione succedeva che l'analizzatore del protocollo non riusciva a decodificare correttamente il protocollo, cosa che non accadeva con la modalità normale. Il motivo è da ricercare nel fatto che il clock, generato con dei busy wait (delay) nel firmware, non aveva un'oscillazione fissa, ma delle variazioni di qualche µs che impattavano sull'analizzatore del protocollo. Quindi, potendo, comprate il modello con 128Kbit di memoria. In caso negativo, il 64Kbit funzionerà egregiamente, ma vi preannuncio che potrete scontrarvi col problema che vi ho segnalato.

Conclusioni

Meno di 200€ per uno strumento che può tornare molto utile in tantissime occasioni, far risparmiare tempo e magari denaro, è una cosa che fino a qualche anno fa si poteva fare solo nei sogni. Il LAP-C 16064 è uno strumento che fa il suo dovere e dà ad una platea vastissima la possibilità di avere un analizzatore di stati logici. Certo non ha le comodità di un analizzatore autonomo ma richiede un PC e un software dedicato, ma sinceramente non si muore per questo. E poi, scusate se mi ripeto, oggi come oggi con meno di 200€ vorrei capire cosa ci si aspetta di comprare. Unico suggerimento: se potete spendere di più, comprate la versione con 128Kbit di memoria per canale.


Check Also

Recensione #4: Stazione saldante JBC CD-2B

Internet è piena di stazioni saldanti a meno di €100. Si tratta di prodotti cinesi, …

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.