Hoe beschermt u ontwikkelingstools tegen defecte hardware
Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey
2019-04-10
Het is riskant om ontwikkelingstools, laptops en andere hulpmiddelen op elektronische hardware aan te sluiten voor tests en debugging. Er zijn directe verbindingen via UART, SPI, I2C en andere bussen nodig om te zien hoe het systeem zich gedraagt, maar het gebeurt regelmatig dat de hardware in de ontwikkelingsfase problemen vertoont. Zo kan het gebeuren dat er ongewild spanning en stroom via deze interfaces wordt verzonden, met beschadiging van tools en laptops als gevolg.
Vaak gaat het om dure tools. En dat is niet alles, er bestaat ook nog zoiets als de wet van Murphy, die voorschrijft dat hardware en tools op het slechtst mogelijke moment zullen uitvallen. Het resultaat? Vertraging in het project en extra verzendingskosten om onderdelen snel binnen te krijgen, om de testbank weer operationeel te krijgen.
In dit artikel wordt uitgelegd hoe ontwikkelaars hun tools kunnen beschermen met behulp van op goedkope isolatie-IC's gebaseerde interfaces die in minder dan 30 minuten kunnen worden ingebouwd. Ook wordt besproken hoe een isolator moet worden gekozen en worden er verschillende tips en trucs gegeven om ervoor te zorgen dat plotseling uitvallende hardware de ontwikkelingstools en laptops niet in zijn val meesleurt.
Overwegingen bij het kiezen van een isolator
Een isolator verdeelt een circuit in twee circuits, die van elkaar zijn gescheiden door een isolatiebarrière. De circuits aan weerszijden van de barrière zijn apart gevoed en geaard. De barrière werkt als een filter dat hoge spanningen en stroomstoten blokkeert, en alleen digitale informatie of gegevens van de ene kant naar de andere doorlaat via een koppelingsmechanisme. Het koppelingsmechanisme is gewoonlijk capacitief, magnetisch of optisch.
In veel gevallen zal de lezer ontdekken dat er voor elke interface die men zou willen beschermen meer dan een enkele optie bestaat. I2C-isolators worden bijvoorbeeld vaak in zowel capacitieve als magnetische varianten aangeboden. Alvorens te kiezen welke technologie we gaan gebruiken, moeten we begrijpen in wat voor omgeving we werken.
Capacitieve koppeling gebruikt een veranderend elektrisch veld om gegevens door de isolatiebarrière heen over te dragen en is daarom een goede keus bij toepassingen waar sterke magnetische velden aanwezig kunnen zijn. Capacitieve koppeling zal waarschijnlijk ook in een kleinere PCB-voetafdruk en meer energie-efficiënte werking resulteren, allebei zaken waardoor capacitieve koppeling voor veel toepassingen een goede keus is. Het is echter belangrijk om te weten dat er bij capacitieve koppeling soms problemen zijn met ruis vanwege een gedeeld signaalpad.
Magnetische koppeling gebruikt magnetische velden om gegevens door de isolatiebarrière heen over te dragen en is daarom een goede keus bij toepassingen waar sterke elektrische velden aanwezig kunnen zijn. Magnetische koppeling gebruikt vaak kleine transformators, wat helpt om ruis te bestrijden en een zeer efficiënte energieoverdracht door de barrière heen te verkrijgen.
Optische koppeling gebruikt optische impulsen om licht door een niet-geleidende barrière te sturen en is daarom de perfecte keus voor elektrische en magnetische omgevingen met veel ruis. In tegenstelling tot magnetische en capacitief gekoppelde signalen kan optische koppeling steady-state signalen door de barrière heen overdragen. De nadelen bij het gebruik van optische koppelaars zijn dat er snelheidsbeperkingen kunnen zijn en dat er meer stroom nodig is voor de werking.
Met deze verschillende technologieën en hun kenmerken in het achterhoofd, is de volgende stap om diverse verschillende busprotocollen te onderzoeken en na te gaan hoe ontwikkelingstools op de verschillende interfaces kunnen worden geïsoleerd.
Een I2C-isolator kiezen
Een geweldige manier voor ontwikkelaars om stuurprogramma's voor apparaten buiten de microcontroller te ontwikkelen, is door het een of andere bus-spy-tool te gebruiken. Via dergelijke tools kunnen ontwikkelaars het verkeer over de bus observeren. Een kwalitatief hoogwaardige, duurdere tool zal een ontwikkelaar ook de mogelijkheid geven om berichten op de bus te 'injecteren'.
Korte anekdote: ik had ooit een I2C/SPI combo-tool dat was aangesloten op een I2C-bus van de klant. Hun hardware hield ermee op en joeg 42 volt door de I2C-bus; de hardware was compleet vernield en nam mijn ontwikkelingstool met zich mee in het graf. Als ik een I2C-isolator had gebruikt om mijn tools te beschermen, dan had ik geen extra geld hoeven uitgeven voor een nieuwe tool en voor het extra snel opsturen hiervan.
Bij het kiezen van een I2C-isolator dient naar verschillende eigenschappen te worden gekeken. Ten eerste, de spanningsisolatie dient minimaal 2500 volt rms te bedragen. Dit isolatieniveau beschermt u tegen 90% of meer van de ongelukjes die zich bij embedded-ontwikkeling voor kunnen doen. Op de tweede plaats moet naar de gegevenssnelheid van de isolator worden gekeken. Standaard I2C werkt op 100 kilobits per seconde (kbps) en 400 kbps. Hoge-snelheid I2C werkt op 1000 kbps. De tool of de toepassing zal bepalend zijn voor welke isolator en welke isolatortechnologie het beste kunnen worden gekozen.
Er zijn verschillende I2C-isolators voor algemeen gebruik die prima zijn om ontwikkelingstools te beschermen. Als isolator voor algemeen gebruik is de ADUM3211ARZ-RL7 van Analog Devices bijvoorbeeld een goede optie (Afbeelding 1).

Afbeelding 1: de ADUM3211 is een twee-kanaals magnetische gekoppelde isolator voor algemeen gebruik die op maximaal 1000 kbps kan werken. (Bron afbeelding: Analog Devices)
De ADUM3211 gebruikt magnetische koppeling om gegevens door de barrière heen over te dragen op snelheden van maar liefst 1000 kbps. Deze isolator kan daarom high-speed I2C aan, maar bevat geen bidirectionele barrière. Dit betekent dat de ontwikkelingstool de bus kan controleren, maar niet naar de bus kan schrijven, iets wat voor de meeste toepassingen absoluut ok is.
Om ontwikkelingstools te beschermen die zowel de bus moeten controleren als gegevens naar de bus moeten schrijven, is de ISO1541DR I2C-isolator van Texas Instruments een uitstekende keus (Afbeelding 2). De ISO1541 gebruikt capacitieve koppeling in een SOIC-8 pakket om gegevens in twee richtingen over te dragen op maximaal 1000 kbps. De isolator bevat twee gescheiden isolatiekanalen: één voor het datasignaal (SDA) en één voor het kloksignaal (SCL).

Afbeelding 2: de ISO1541DR I2C-isolator van Texas Instruments bevat twee bidirectionele isolatiekanalen die op maximaal 1000 kbps kunnen werken. (Bron afbeelding: Texas Instruments)
Uit zowel afbeelding 1 als afbeelding 2 wordt duidelijk dat deze apparaten vereisen dat de tool-zijde zijn kant van de isolator van stroom voorziet en dat de target-zijde zijn eigen kant voedt. Als wordt vergeten om beide kanten vanaf hun respectievelijke bron te voeden, iets wat veel voorkomt, zal er geen communicatie via de barrière zijn; er moet dus tijdens de installatie voor worden gezorgd dat beide kanten worden gevoed.
Een SPI-isolator kiezen
Een SPI-bus kan iets lastiger te beschermen zijn dan een I2C-bus. De I2C-bus bevat slechts twee communicatielijnen, hoeveel apparaten er ook op de bus zijn aangesloten. De SPI-bus daarentegen bevat drie datalijnen, master out, master in en klok. Naast deze drie lijnen vereist elk apparaat dat op de SPI-bus is aangesloten ook een slave select-lijn. Iedere SPI-isolator moet dus ook verplicht diverse isolatielijnen bevatten voor de slave select-lijnen.
Er bestaan meerdere verschillende opties die goed geschikt zijn om een SPI-ontwikkelingstool te beschermen. De eerste is de ADUM3154 SPI-isolator van Analog Devices. De ADUM3154 gebruikt magnetische koppeling om gegevens door de isolatiebarrière heen over te dragen op gegevenssnelheden van maximaal 17 megabit per seconde (Mbps). Dit dekt niet alleen de maximale baudrate voor de meeste microcontroller SPI-randapparatuur van 4 Mbps, maar ook gegevenssnelheden die normaal zijn voor geheugeninterfacecontrollers. De ADUM3154 ondersteunt ook maximaal vier geïsoleerde slave selects (Afbeelding 3).

Afbeelding 3: de ADUM3154 is een vier-kanaals SPI-isolator van Analog Devices die gegevenssnelheden tot 17 Mbps kan hanteren. (Bron afbeelding: Analog Devices)
In gevallen waarin 17 Mbps niet snel genoeg is, biedt Analog Devices ook de ADUM3151BRSZ-RL7 (Afbeelding 4).

Afbeelding 4: de ADUM3151 is een zeven-kanaals SPI-isolator van Analog Devices die gegevenssnelheden tot 34 Mbps kan hanteren. (Bron afbeelding: Analog Devices)
De ADUM3151 gebruikt ook magnetische koppeling maar kan gegevenssnelheden tot 34 Mbps hanteren. Ook heeft hij vier kanalen die kunnen worden gebruikt voor slave selects.
Een Serial Wire Debug (SWD)-isolator kiezen
Een van de duurste ontwikkelingstools die een embedded software engineer gewoonlijk zal bezitten is een debug-probe. Een goede debug-probe kan enkele duizenden dollars of meer kosten. Hoewel de kans dat er iets fout gaat in de programmeringsregels klein is, is het de gok niet waard.
Een ontwikkelaar zou zijn of haar eigen isolatie-oplossing kunnen ontwikkelen om alle SWD-lijnen te beschermen, maar dat zou wel een tijdrovend en duur grapje worden. In plaats daarvan is het veel eenvoudiger om de J-Link SWD-isolator van SEGGER Microcontroller Systems (Afbeelding 5) te gebruiken.

Afbeelding 5: de J-Link SWD-isolator van SEGGER Microcontroller Systems levert 1000 volt isolatie tussen een debug-programmeur en het targetsysteem. (Bron afbeelding: SEGGER Microcontroller Systems)
De J-Link SWD biedt 1000 VDC isolatie tussen de emulator en de targethardware.
Het kiezen en bouwen van een UART-isolator
Veel ontwikkelaars beschouwen het isoleren van een kleine UART wellicht als een verspilling van tijd en geld. Een goedkope tool als het BOB-12731 USB-naar-serieel breakout-board van SparkFun Electronics kan immers gemakkelijk worden vervangen als er iets mee mocht gebeuren. Maar als er iets fout zou gaan, zou er aan de andere kant voor duizenden dollars aan computerapparatuur kunnen zijn, die wel moet worden beschermd. Het kan absoluut de moeite waard zijn om hier extra tijd en geld in te steken.
Het samenstellen van een UART-beveiligingscircuit is eenvoudig en aan de hand van vergelijkbare procedures kunnen ook andere businterfaces worden beveiligd. Op de eerste plaats moet een isolator worden gekozen. De eerder genoemde ADUM3211 is een fantastische optie omdat hij twee hoge-snelheid isolatiekanalen in tegengestelde richtingen heeft. Dit is perfect geschikt voor Tx/Rx lijnen van een UART, die vaak vlak naast elkaar lopen.
Nadat de isolator is gekozen, kan de ontwikkelaar een breakout-board als de LCQT-SOIC8-8 van Aries Electronics (Afbeelding 6) nemen. Dit is reeds voorzien van stiftlijsten en kan gemakkelijk op de BOB-12731 worden gesoldeerd.

Afbeelding 6: De LCQT-SOIC8-8 van Aries Electronics biedt een breakout voor een SOIC-8 chip die al voorzien is van draadbruggen, om een snelle verbinding met een targetapparaat tot stand te brengen. (Bron afbeelding: Aries Electronics)
Wanneer de isolator op het bord en vervolgens op de UART-adapter wordt gesoldeerd, is het belangrijk om ervoor te zorgen dat de spannings- en massapennen goed zijn uitgelijnd. Als dit niet zo is zal de isolator namelijk geen voeding krijgen. Het is ook belangrijk om ervoor te zorgen dat de richting van het isolatorkanaal correct is. Als het breakout-board of de isolator zich niet goed laten uitlijnen, kan het nodig zijn om het bord aan te passen (Afbeelding 7).

Afbeelding 7: een geassembleerd UART-isolatorcircuit dat is aangesloten op de USB-UART-omzetter, voor aangepaste geïsoleerde communicatie met het targetapparaat. (Bron afbeelding: Beningo Embedded Group)
Na te zijn geassembleerd levert de USB-UART-omzetter stroom aan de tool-kant van de isolator, terwijl het targetapparaat de target-kant van stroom voorziet. Het resultaat is een geïsoleerde bidirectionele UART-tool die tot maximaal 2500 volt beschermd is.
Tips en trucs voor de isolatie van ontwikkelingstools
Voor de bescherming van ontwikkelingstools kunnen vele technieken en isolatie-interfaces worden gebruikt. Hier volgen een aantal tips en trucs om uw investeringen te beschermen:
- Controleer het gegevensblad en zorg ervoor dat de specificatie voor spanningsisolatie aan de vereisten voldoet.
- Bestudeer de verschillende isolatiemechanismen en kies de juiste technologie voor de toepassing.
- Isoleer iedere willekeurige bus of interface die is teruggekoppeld naar de USB-poort op een laptop, dit is namelijk een potentieel schadelijk aardingspad.
- Gebruik bestaande ontwikkelingskits voor de gekozen isolator of gebruik breakout-borden om ontwikkelingstijd en -kosten te beperken.
- Bescherm een professionele debugger door een SWD isolator te gebruiken.
Conclusie
Veel ontwikkelaars van embedded systems denken er geen seconde over na voordat ze een dure ontwikkelingstool aansluiten op een hardware-onderdeel dat nog in de testfase is. Normaal gesproken zal alles goed gaan. Er zal echter een moment komen dat er iets onverwachts gebeurt, waardoor de ontwikkelingstools aan spanningen en stroomwaarden worden blootgesteld die hun specificaties te boven gaan, met schade als gevolg. Om last-minute kunst- en vliegwerk om een testbank weer operationeel te krijgen te vermijden, is het beter om een paar uur in een goede isolatie van tools te steken; met de vele isolatie-oplossingen die tegenwoordig beschikbaar zijn, zal dit u uiteindelijk een efficiënter en minder kostbaar ontwikkelingsproces opleveren.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.



