Galvanické oddělení I2C

Pro jeden ze svých plánovaných projektů (měřidlo 10S Li-Ion baterie) jsem potřeboval nějak vyřešit galvanické oddělení sběrnice I2C. Po nějakém tom pátrání na internetu jsem objevil modul s čipem ADuM1201. Pro plnohodnotnou komunikaci po I2C je ale k dispozici ADuM1250, ten lze ale sehnat pouze jako samostatný SMD čip.

Modul s ADuM1250

Modul s tímto IO lze naprosto snadno sehnat na Aliexpressu i v ČR např. na arduino-shop.cz. Nikde jsem ale nedohledal, k čemu a jak se vlastně dá použít - i když jsem o to nakonec ani nijak urputně neusiloval. Obvod umí dvě jednosměrné komunikační linky, jednu směrem ven, druhou směrem zpět. Byl by tedy vhodný pro oddělení komunikačních linek typu COM (tj. podobné jako RS-232 a RS-485).

Obvod ADuM1250

Tento IO má prakticky shodné vývodové zapojení jako ADuM1201, rozdíl je v tom, že jeho obě komunikační linky jsou obousměrné. Obvod je přímo navržen právě pro oddělení sběrnice I2C. Nabízí se tedy možnost z modulu s ADuM1201 odpájet původní čip a nahradit jej 1250. Pro informaci přikládám odstavce z katalogového listu obvodu, které se týkají doporučeného zapojení IO:

Schéma typického zapojení

Obrázek ukazuje typické schéma zapojení včetně pull-up rezistorů na obou stranách sběrnice (index 1 a 2). Je třeba zapojit blokovací kondenzátory o hodnotě 10-100nF mezi VDD1 a GND1 a VDD2 a GND2. Rezistor 200ohm je vyžadován pro odolnost obvodu proti zablokování (latch-up) při okolní teplotě 105-125°C.

Kapacitní zátěž při nízkých rychlostech

ADuM1250 / ADuM1251 jsou navrženy pro provoz na rychlosti až 1 Mbps. Vzhledem k limitaci proudu na vstupní straně (index 1), provoz při 1 Mbps omezuje kapacitu, která může být provozována při minimální hodnotě pull-up, na 40pF. Většina aplikací pracuje při 100 kb/s ve standardním režimu nebo 400 kb/s v rychlém režimu. Při těchto nižších provozních rychlostech lze omezení kapacitní zátěže výrazně uvolnit.
Tabulka uvádí maximální kapacitu při minimální hodnotě pull-up pro standardní a rychlé provozní režimy. Pokud jsou použity větší hodnoty pull-up rezistorů, maximální podporovaná kapacita musí být proporcionálně zmenšena, aby se doba náběhu nezvyšovala nad hodnoty požadované normou.

Maximální kapacitní zátěž vstupní strany (index 1)
Mód VDD1 Rychlost (kbps) tr (ns) tf (ns) R1 (OHM) CL1 (pF)
Standardní 5 100 1000 187 1600 484
Rychlý 5 400 300 172 1600 120
Standardní 3.3 100 1000 270 1000 771
Rychlý 3.3 400 300 235 1000 188