Come isolare gli strumenti di sviluppo da hardware difettoso

Di Jacob Beningo

Contributo di Editori nordamericani di DigiKey

È rischioso collegare uno strumento di sviluppo, laptop e altre risorse ad hardware elettronico a fini di test e di debug. Anche se le connessioni dirette su UART, SPI, I2C e altri bus sono necessarie per monitorare il comportamento del sistema, spesso l'hardware in corso di sviluppo può accusare dei guasti. Quindi potrebbe inviare tensioni e correnti indesiderate su queste interfacce e danneggiare strumenti e laptop.

Strumenti che sono spesso costosi. E come se ciò non bastasse, come insegna la "legge di Murphy" l'hardware e gli strumenti si guastano nel momento peggiore possibile. Il progetto subirà quindi dei ritardi e la spedizione urgente per rimettere tutto in funzione quanto prima possibile farà lievitare i costi.

Questo articolo illustrerà come gli sviluppatori possono proteggere l'investimento fatto negli strumenti utilizzando interfacce basate su circuiti integrati di isolamento poco costosi realizzabili in meno di 30 minuti. Spiegherà anche come scegliere questi isolatori, darà diversi consigli e insegnerà alcuni trucchi per assicurare che, se l'hardware si guasta, non accada lo stesso agli strumenti di sviluppo e ai laptop.

Considerazioni per la scelta di un isolatore

Un isolatore divide un circuito in due circuiti separati da una barriera di isolamento. I circuiti su ogni lato della barriera sono alimentati e messi a terra separatamente. La barriera funge da filtro che blocca le alte tensioni e i transitori, permettendo solo la trasmissione di informazioni o dati digitali da un lato all'altro attraverso un meccanismo di accoppiamento. Il meccanismo di accoppiamento è in genere di tipo capacitivo, magnetico o ottico.

In molti casi, per qualsiasi interfaccia si voglia proteggere esiste più di una singola opzione. Ad esempio, gli isolatori I2C spesso vengono offerti sia nella variante capacitiva che in quella magnetica. Prima di scegliere la tecnologia, occorre capire l'ambiente in cui lavoriamo.

L'accoppiamento capacitivo utilizza un campo elettrico variabile per trasmettere dati attraverso la barriera di isolamento ed è quindi un'ottima scelta nelle applicazioni in cui ci possono essere intensi campi magnetici. L'accoppiamento capacitivo tende inoltre a ridurre l'ingombro sulla scheda e di solito garantisce un funzionamento più efficiente dal punto di vista energetico, due ragioni che ne fanno una buona scelta per molte applicazioni. È importante notare, tuttavia, che l'accoppiamento capacitivo a volte ha problemi di rumore a causa di un percorso del segnale condiviso.

L'accoppiamento magnetico utilizza campi elettrici variabili per trasmettere dati attraverso la barriera di isolamento ed è quindi un'ottima scelta nelle applicazioni in cui ci possono essere intensi campi elettrici. L'accoppiamento magnetico spesso utilizza piccoli trasformatori, utili per la reiezione del rumore e per trasferire in modo altamente efficiente l'energia attraverso la barriera.

L'accoppiamento ottico utilizza impulsi ottici per trasmettere la luce attraverso una barriera non conduttiva, ed è quindi la scelta perfetta per ambienti elettrici e magnetici rumorosi. A differenza dei segnali ad accoppiamento magnetico e capacitivo, l'accoppiamento ottico può trasmettere segnali di stato stazionario attraverso la barriera. Gli accoppiatori ottici hanno però lo svantaggio di avere una velocità limitata e richiedono maggiore potenza per funzionare.

Avendo presenti queste diverse tecnologie e le rispettive caratteristiche, il passo successivo è quello di esaminare più protocolli bus diversi e vedere come isolare gli strumenti di sviluppo sulle varie interfacce.

Scegliere un isolatore I2C

Un ottimo modo a disposizione per sviluppare driver per dispositivi a parte i microcontroller è quello di utilizzare un qualche strumento spia del bus. Questi strumenti consentono allo sviluppatore di monitorare il traffico del bus. Uno strumento di alta qualità e più costoso permetterà anche di iniettare messaggi sul bus.

Un piccolo aneddoto: tempo fa avevo uno strumento combinato I2C/SPI collegato al bus I2C di un cliente. L'hardware del cliente si è guastato e ha scaricato 42 V attraverso il bus I2C, con il risultato di distruggere non solo l'hardware ma anche il mio strumento di sviluppo. Se avessi usato un isolatore I2C per proteggere i miei strumenti, mi sarei risparmiato i soldi per comprarne uno nuovo e per la spedizione urgente.

Al momento di scegliere un isolatore I2C occorre tener conto di diverse caratteristiche. In primo luogo, l'isolamento dovrebbe essere di almeno 2500 V rms. Questo livello di isolamento proteggerà contro il 90% o più degli incidenti associati inevitabilmente allo sviluppo. In secondo luogo, occorre esaminare la velocità dati dell'isolatore. I2C standard funziona a 100 kbps e a 400 kbps. I2C ad alta velocità funziona a 1000 kbps. L'isolatore e la tecnologia di isolamento più appropriati dipenderanno dallo strumento o dall'applicazione.

Esistono diversi isolatori I2C per uso generale che proteggono in modo adeguato gli strumenti di sviluppo. Per un isolatore per uso generale, ADUM3211ARZ-RL7 di Analog Devices rappresenta una valida opzione (Figura 1).

Schema dell'isolatore ad accoppiamento magnetico a due canali per uso generale ADUM3211 di Analog Devices

Figura 1: ADUM3211 è un isolatore ad accoppiamento magnetico a due canali per uso generale in grado di funzionare fino a 1000 kbps. (Immagine per gentile concessione di Analog Devices)

ADUM3211 usa l'accoppiamento magnetico per trasferire i dati attraverso la barriera a velocità fino a 1000 kbps. Questo isolatore può pertanto gestire I2C ad alta velocità ma non prevede una barriera bidirezionale. Ciò significa che lo strumento di sviluppo può monitorare il bus, ma non è in grado di scrivere su di esso, cosa che per la maggior parte delle applicazioni non presenta problemi.

Per proteggere gli strumenti di sviluppo che devono sia monitorare i dati che iniettarli nel bus, l'isolatore I2C ISO1541DR di Texas Instruments rappresenta una scelta eccellente (Figura 2). ISO1541 utilizza l'accoppiamento capacitivo in un contenitore SOIC-8 per trasmettere dati bidirezionali fino a 1000 kbps. L'isolatore contiene due canali di isolamento separati: uno per il segnale dati (SDA) e uno per il segnale di clock (SCL).

Schema dell'isolatore I2C ISO1541DR di Texas Instruments

Figura 2: L'isolatore I2C ISO1541DR di Texas Instruments contiene due canali di isolamento bidirezionali in grado di funzionare fino a 1000 kbps. (Immagine per gentile concessione di Texas Instruments)

Tenere presente, con riferimento sia alla Figura 1 che alla Figura 2, che questi dispositivi richiedono che il lato dello strumento fornisca alimentazione al suo lato dell'isolatore e che il lato di destinazione alimenti il proprio lato. Spesso ci si dimentica di alimentarli dalle rispettive fonti, il che spiega l'assenza di comunicazione attraverso la barriera. Pertanto, durante l'installazione è necessario prestare attenzione ad alimentare entrambi i lati.

Scegliere un isolatore SPI

Il bus SPI può essere un po' più difficile da proteggere rispetto al bus I2C. Il bus I2C contiene solo due linee di comunicazione, indipendentemente dal numero di dispositivi connessi ad esso. Il bus SPI, invece, contiene tre linee dati per uscita master, entrata master e clock. Oltre a queste tre, ogni dispositivo collegato al bus SPI richiede una linea di selezione slave. Ogni isolatore SPI deve necessariamente contenere anche diverse linee di isolamento per le linee di selezione degli slave.

Esistono diverse opzioni idonee per proteggere uno strumento di sviluppo SPI. La prima è l'isolatore SPI ADUM3154 di Analog Devices. ADUM3154 utilizza l'accoppiamento magnetico per trasmettere dati attraverso la barriera di isolamento a velocità dati fino a 17 Mbps. Questo valore copre non solo la velocità di trasmissione massima di 4 Mbps per la maggior parte delle periferiche SPI dei microcontroller, ma anche le velocità dati che sono comuni per i controller di interfaccia di memoria. ADUM3154 supporta inoltre fino a quattro selezioni di slave isolati (Figura 3).

Schema dell'isolatore SPI a quattro canali ADUM3154 di Analog Devices

Figura 3: ADUM3154 è un isolatore SPI a quattro canali di Analog Devices in grado di gestire velocità dati fino a 17 Mbps. (Immagine per gentile concessione di Analog Devices)

Nei casi in cui 17 Mbps non siano sufficienti, Analog Devices offre anche ADUM3151BRSZ-RL7 (Figura 4).

Schema dell'isolatore SPI a quattro canali ADUM3151 di Analog Devices

Figura 4: ADUM3151 è un isolatore SPI a sette canali di Analog Devices in grado di gestire velocità dati fino a 34 Mbps. (Immagine per gentile concessione di Analog Devices)

Anche ADUM3151 usa l'accoppiamento magnetico ma può gestire velocità dati fino a 34 Mbps. Ha anche quattro canali che possono essere utilizzati per le selezioni slave.

Scegliere un isolatore Serial Wire Debug (SWD)

Uno degli strumenti di sviluppo più costosi che di solito un ingegnere di software embedded ha a disposizione è una sonda di debug. Una buona sonda di debug può costare anche parecchie migliaia di euro. Anche se le probabilità che qualcosa vada storto sulle linee di programmazione sono minime, non vale la pena rischiare.

Uno sviluppatore potrebbe sviluppare una propria soluzione di isolamento per proteggere tutte le linee SWD, ma sarebbe un'operazione un po' dispendiosa in termini di tempo e denaro. Una soluzione semplice consiste invece nell'usare l'isolatore SWD J-Link di SEGGER Microcontroller Systems (Figura 5).

Immagine dell'isolatore SWD J-Link di SEGGER Microcontroller Systems

Figura 5: L'isolatore SWD J-Link di SEGGER Microcontroller Systems fornisce 1000 V di isolamento tra un programmatore di debug e il sistema di destinazione. (Immagine per gentile concessione di SEGGER Microcontroller Systems)

SWD J-Link fornisce un isolamento di 1000 Vc.c. tra l'emulatore e l'hardware di destinazione.

Scegliere e costruire un isolatore per UART

Molti sviluppatori potrebbero pensare che isolare un piccolo UART sia uno spreco di tempo e denaro. Dopo tutto, sarebbe facile sostituire uno strumento economico come la scheda di breakout da USB a seriale BOB-12731 di SparkFun Electronics, se avesse dei problemi. Tuttavia, se qualcosa andasse storto, dall'altra parte potrebbero esserci attrezzature informatiche del valore di diverse migliaia di euro che dovrebbero essere protette. Quindi, il tempo e i soldi in più sarebbero ben spesi.

Assemblare un circuito di protezione UART è semplice e si possono seguire procedure analoghe per proteggere anche altre interfacce bus. In primo luogo, occorre selezionare un isolatore. ADUM3211, che abbiamo visto in precedenza, è un'ottima opzione perché ha due canali di isolamento ad alta velocità che sono in direzioni opposte. È perfetto per le linee Tx/Rx di un UART, che spesso sono l'una accanto all'altra.

Dopo aver scelto l'isolatore, uno sviluppatore può prendere una scheda di breakout come LCQT-SOIC8-8 di Aries Electronics (Figura 6). Comprende già le basette e può essere facilmente saldata su BOB-12731.

Immagine di LCQT-SOIC8-8 di Aries Electronics

Figura 6: LCQT-SOIC8-8 di Aries Electronics fornisce un breakout per un chip SOIC-8 che è già provvisto di ponticelli su scheda per una connessione rapida con il dispositivo di destinazione. (Immagine per gentile concessione di Aries Electronics)

Quando si salda l'isolatore sulla scheda e poi sull'adattatore UART, è importante assicurarsi che i pin di tensione e di messa a terra siano allineati correttamente. In caso contrario, l'isolatore non verrà alimentato. È inoltre importante assicurarsi che la direzione del canale dell'isolatore sia quella giusta. Se la scheda di breakout o l'isolatore non sono allineati correttamente, potrebbe essere necessario personalizzare una scheda (Figura 7).

Immagine del circuito isolatore per UART

Figura 7: Circuito isolatore per UART assemblato e collegato al convertitore USB-UART, che fornisce comunicazioni isolate personalizzate con il dispositivo di destinazione. (Immagine per gentile concessione di Beningo Embedded Group)

Una volta assemblato, il convertitore USB-UART fornisce alimentazione al lato strumento dell'isolatore, mentre il dispositivo di destinazione alimenterà il lato di destinazione. Il risultato è uno strumento UART bidirezionale isolato protetto fino a 2500 V.

Suggerimenti e consigli per l'isolamento di uno strumento di sviluppo

Esistono molte tecniche e interfacce di isolamento per proteggere gli strumenti di sviluppo. Ecco alcuni suggerimenti e consigli per proteggere tali investimenti:

  • Esaminare la scheda tecnica e assicurarsi che le specifiche di isolamento della tensione soddisfino le proprie esigenze.
  • Studiare i diversi meccanismi di isolamento e fare attenzione a scegliere la tecnologia giusta per l'applicazione.
  • Isolare qualsiasi bus o interfaccia che si collega alla porta USB di un laptop, in quanto si tratta di un percorso di terra potenzialmente dannoso.
  • Sfruttare i kit di sviluppo esistenti per l'isolatore selezionato o utilizzare schede di breakout per semplificare i tempi e ridurre i costi di sviluppo.
  • Proteggere un debugger professionale utilizzando un isolatore SWD.

Conclusione

Molti sviluppatori di sistemi embedded non ci pensano due volte a collegare un costoso strumento di sviluppo a un dispositivo hardware sotto test. In genere non ci saranno problemi. Tuttavia, prima o poi potrebbe accadere qualcosa di inaspettato e gli strumenti di sviluppo saranno sottoposti a tensioni e correnti che superano le loro specifiche, con i danni che ne conseguono. Per evitare una corsa contro il tempo per rimettere in funzione un banco di lavoro è sufficiente dedicare qualche ora a isolare correttamente gli strumenti utilizzando le numerose soluzioni di isolamento oggi disponibili. Il risultato sarà un processo di lavoro più efficiente e meno costoso.

 
DigiKey logo

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.

Informazioni su questo autore

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo è un consulente software embedded e attualmente lavora con clienti in più di una decina di paesi per trasformare radicalmente le loro attività migliorando la qualità dei prodotti, i costi e il time-to-market. Ha pubblicato più di 200 articoli sulle tecniche di sviluppo di software embedded, è un relatore e un istruttore tecnico e ha conseguito tre lauree, tra cui un master in ingegneria presso University of Michigan. Risponde all'indirizzo jacob@beningo.com, ha un sito web personale www.beningo.com e produce una Newsletter mensile Embedded Bytes cui è possibile iscriversi.

Informazioni su questo editore

Editori nordamericani di DigiKey