Produkter med en I2C-buss kräver ibland isolering av höga spänningar för att klara säkerhets- och tillförlitlighetskraven. En lösning med diskreta optiska isolatorer är lätt att implementera och kan erbjuda flexibilitet och kostnads-besparingar i många tillämpningar.
Ladda ner artikeln här (länk, pdf). Fler tekniska rapporter finns på etn.se/expert |
I2C-bussen (Inter-Integrated Cir-cuit) utvecklades i början av 1980-talet för att göra det möjligt att kommunicera mellan en CPU och kringut-rustning. Ursprungligen var den avsedd för kommunikation med kort räckvidd på kortnivå för konfiguration, övervakning och styrning men har med tiden fått betydligt fler användningsområden samtidigt som den maximala datatakten utökas till 100 kbit/s i standardläge, 1Mbit/s i så kallad Fast Mode Plus och 5 Mbit/s i Ultra-Fast Mode Plus.
Standarden specificerar en tvåtrådsanslutning bestående av dubbelriktade data- och klockförbindelser som kan implementeras kost-nadseffektivt. I2C:s enkelhet och effektivitet har lett till att de underliggande kommunikationsprinciperna kommit till användning i stan-darder som SMBbus och PMBus.
I2C-bussen har vanligtvis en kontroller i form av en MCU eller SoC plus en eller flera målenheter. Kontrollerns in- och utgångar är av ty-pen open-collector som kan dra ned data- (SDA) och klockledningarna (SCL) till en logiskt låg nivå. Ledningarna behöver ett pull-up mot-stånd för att flera kontroll- och målenheter ska kunna samexistera utan att orsaka busskonflikt.
Styrenheten använder SDA-linjen för att välja den enhet som ska adresseras och vilket register hos enheten den vill få tillgång till. En-heten returnerar den begärda informationen över SDA-anslutningen. Den använder också SDA-anslutningen för att bekräfta korrekt mot-tagning av begäran (ACK) genom att hålla SDA låg eller konstatera utebliven mottagning (NACK) genom att låta SDA dras högt.
SCL-linjen styr hastigheten på datakommunikationen över bussen. Denna signal är typiskt enkelriktad, även om en enhet kan ges mer tid att svara på en begäran om det behövs, genom att hålla både SCL och SDA låga samtidigt som ett ACK genereras. Detta fenomen är känt som klocksträckning.
Krav på isolering
I takt med att populariteten för I2C har ökat, har dess användningsområden utökats till tillämpningar med längre kommunikationsavstånd. I dessa situationer är det ganska vanligt att skillnader i den lokala jordpotentialen mellan anslutna enheter påverkar systemets brusmargi-naler. Dessutom kan kritiska värden som den maximala negativa I/O-spänningen överskridas.
I2C används också för kommunikation mellan kretsar som inte kan ges gemensam jordreferens, det gäller inom industriell auto-mation och frekvensomriktare, styrenheter för motorer, växelriktare för solpaneler och medicinska system som kräver säkerhets-isolering mellan I2C-signalerna och nätströmmen.
Dessa situationer kräver ett enkelt sätt att isolera I2C-anslutningarna. Det finns integrerade digitala isolatorkretsar att köpa men även om de är lätta att använda, kan de vara dyra i inköp och är svåra att ersätta om det uppstår leveransproblem.
En isolerad anslutning kan designas med vanliga optokopplare även om det finns vissa komplikationer att ta hänsyn till. En är att SDA- och SCL-förbindelserna är dubbelriktade medan optokopplare vanligtvis är enkelriktade. Dessutom måste de valda enheterna ha öppna kollektorutgångar för att det ska gå att styra bussen på korrekt sätt.
De måste också kunna uppfylla tidskraven i I2C-specifikationen. En aspekt är ACK/NACK-svaret från mål- till styrenhet. Den signalen måste vara giltig efter en setuptid (tVD; ACK) på mellan 3,45 µs i standardläge (100 kHz) och 0,45 µs i Fast Mode Plus (1 MHz). Det finns också tidsbegränsningar för datainställning. En målenhet måste ställa in SDA-signalen inom 250 ns efter den fallande flanken på föregå-ende klockbit i standard-läge (enligt Tabell 11 I2C-specifikation 1), och inom 50 ns för Fast Mode Plus.
Figur 1 visar hur två stycken optokopplare kan placeras i SDA- och SDL-förbindelserna för att ge isolering och samtidigt bevara den dub-belriktade kommunikationen.
Designens funktion
SDA- och SCL-signalvägarna fungerar identiskt. Om vi tittar på SDA-vägen så drar motståndet R1 upp SDA-signalen från den icke-isolerade sidan (NIS) till matningen, medan R8 drar upp SDA på den isolerade sidan (IS). Resistansvärdena beror på den använda matningsspänning-en, den kapacitiva last som kontrollenheten eller målet upplever plus optoisolatorns utgångsegenskaper. I2C-specifikationen definierar de maximala och minsta värdena:
Rp(max) = tr/(0,8473 × Cb)
och
R(p(min)) = (VDD-VOL(max))/IOL
där tr är den maximalt tillåtna stigtiden för det valda driftsättet och Cb är den uppskattade busskapacitansen. VOL och IOL är opto-isolatorns utgångsspänning och -ström vid låg nivå.
Kretsen är i sitt defaultläge med SDA dragen högt på båda sidorna. När NIS SDA-signalen dras låg flyter ström genom R4 och lysdioden på optokopplaren IC2. Detta skickar nolltillståndet till IS SDA-signalen när den dras låg av utgången från IC2 och småsignalsbarriärdioden D2. Den omvända polimplementeringen av lysdioden i IC1 förhindrar att nolltillståndet återgår till NIS-sidan och undviker därigenom ett permanent nolltillstånd. Eftersom kretsen är symmetrisk övergår ett nolltillstånd som genereras vid SDA på IS till NIS på motsvarande sätt.
Denna lösning kräver 20 komponenter inklusive fyra optokopplare, fyra dioder och tillhörande passiva komponenter. Dioderna separe-rar sändsignalen från retursignalen i de dubbelriktade SDA- och SCL-kanalerna. De bör ha låg kapacitans som hos Schottkydioder för att ge lågt brus och låg distorsion. Det gäller särskilt vid de snabbaste datatakterna. Småsignaltyper räcker. De bör också ha låg framåtspänning (VF) för att säkerställa att den låga signalnivån uppfyller I2C-specifikationen (VIL = 0,3 VDD).
Bland lämpliga optoisolatorer med öppen kollektor ger Toshiba TLP2362 3750 Vrms isolation och uppfyller specifikationerna för I2C-bussen. Dess maximala dataöverföringshastighet är 10 Mbit/s. Genom att veta att den maximala utgående lågspänningen VOL från TLP2362 är 0,6 V (0,2 V typiskt), ger en SBD med 0,3 V VF att VIL är inom specifikation även med VDD på 3,3 V. Lämpliga dioder från Toshiba inkluderar DSF01S30L och DSR01S30SL. Det behövs bara en enda keramisk kondensator på 1 µF för bypassfunktionen mellan varje mat-ning till TLP2362 för att stabilisera driften av utgångslogiken.
Kretsar med I2C-buss kan variera mycket så det är viktigt att kontrollera att de kan leverera den ström som krävs av optoisolatorns in-terna lysdiod i denna lösning. Tröskelströmmen IFHL på ingången för TLP2362 är maximalt 5,0 mA (typiskt 1,0 mA). Om det krävs en lägre ström har TLP2363, som arbetar vid 3,3V, en maximal IFHL på 2,4 mA (typiskt 0,9 mA).
Om det behövs större isolationsspänning och krypavstånd kan samma design modifieras för att använda TLP2768 som ger 5 000 V. Om klockhastigheten skulle vara ett problem kan den snabbare TLP2368 övervägas. TLP2309 kan användas med högre logiska nivåer, från 3 V till 30 V, för att exempelvis isolera LIN-bussen direkt.
Figur 2 visar den vågform som passerar genom optokopplaren. Dess rena form med en nästan symmetrisk fördröjning på cirka 60 ns ligger väl inom kraven för den snabbare varianten av I2C med 400 kbit/s.
Slutsats
Kretsar som innehåller hela funktionen är det vanligaste valet för att isolera I2C-bussar men den som vill ha större flexibilitet -eller lägre kostnad kan välja en lösning med diskreta opto-isolatorer. De uppfyller I2C-specifikationerna och har den nödvändiga konfigurationen på utgångarna med öppen kollektor. ■