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 ADuM1201
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 (nějaké obecné informace lze najít na https://dratek.cz/arduino/34685-indukcni-oddelovac-adum1201.html). 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 |
