Odpojení části I2C sběrnice

AstroMiK
Příspěvky: 593
Registrován: 08 pro 2017, 19:05
Reputation: 0

Odpojení části I2C sběrnice

Příspěvek od AstroMiK » 03 črc 2023, 08:15

Zdravím.
V mém zařízení potřebuji úplně odpojovat kus I2C sběrnice. Viz obrázek dole.

V prvním pokusu jsem si myslel, že bude stačit odpojit napájení druhého procesoru (ATmega328) a tím se to samo vyřeší.
Problém je ale v tom, že ATmega328 bez napájení zlikviduje I2C komunikaci i pro ostatní zařízení.

Bylo tedy nutné od ATmega úplně odpojit i SDA a SCL piny.
Zkusil jsem na odpojení použít převodník úrovní a zdá se, že to funguje (schéma ve žlutém obdélníku dole na obrázku).

Zajímalo by mě, jestli je v tom zapojení nutné používat ty 4 odpory.
Budu k tomu navrhovat plošňák a mám tam strašně málo místa, takže každý ušetřený odpor by mi hodně pomohl.

Když je ATmega zapojená na napájení (spínač na 3,3V je sepnutý), tak ty levé odpory (R1 a R2) potřeba nejsou,
protože jejich funkci zastanou Pull-Upy u hlavního procesoru STM.
Pravé dva odpory (R3 a R4) stejně nikam zapojené nejsou, tak by snad taky nebyly potřeba.
Nebo by bylo lepší ty odpory R3 a R4 použít a připojit je na ten ovládací vstup?
Zkusil jsem to a funguje to taky.

PS.
Vím, že existuje i speciální obvod, který by se dal na odpojování sběrnice použít (PCA9515), ale zdá se mi to dost
drahé v porovnání se dvěma obyčejnými FET tranzistory. Rozměrově by to taky vycházelo trochu hůř.


odpojeni_i2c.gif

Uživatelský avatar
kiRRow
Příspěvky: 1170
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Odpojení části I2C sběrnice

Příspěvek od kiRRow » 03 črc 2023, 16:00

No když se mrkneš na to jak to funguje https://electronics.stackexchange.com/q ... er-circuit tak jde vidět, že ty pullup rezistory tam mají svůj význam.
Z jakého konkrétního důvodu je nutno to takto odpojovat od sběrnice ? Jako já bych rozhodně šel spíš do nějakého ovládacího obvodu, obousměrný bitový buffer ...

AstroMiK
Příspěvky: 593
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Odpojení části I2C sběrnice

Příspěvek od AstroMiK » 03 črc 2023, 19:25

Jestli jsem to správně pochopil, tak v tom článku je popisovaná funkce pro převodník úrovní.
Já ale potřebuju jenom odpojit sběrnici. Když bude odpojená (ovládací vstup LV bez napětí => trazistory zavřené), tak s tou stranou s ATmega vůbec komunikovat nepotřebuju.
Když budou tranzistory sepnuté, mám na obou stranách stejné napájecí napětí.

Ta část s ATmega328 je GPS modul, který předává zpracovaná data na vyžádání do hlavního procesoru STM a zároveň signalizuje svůj aktuální stav pomocí několika LED.

Dřív jsem to v případě potřeby připojoval jako "extra" krabičku do bočního konektoru, takže docházelo k fyzickému odpojení celé sběrnice včetně napájení.
Teď se snažím jen nacpat všechno do jedné krabičky, aby se s tím v terénu lépe pracovalo.
Část s GPS se ale používá jen občas, takže nemá cenu, aby zbytečně zatěžovala baterii.


Původní verze:
puvodni_verze.jpg



Nová verze (zatím nefunkční - bude se ještě předělávat):
nova_verze.jpg

AstroMiK
Příspěvky: 593
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Odpojení části I2C sběrnice

Příspěvek od AstroMiK » 03 črc 2023, 22:18

Napadlo mě ještě něco trochu jiného ale vyzkouším to až zítra.

Odpory R1 a R2 se zruší.
Místo nich bude jen jeden společný odpor v řídících elektrodách (GATE) proti GND, který zajistí bezpečné rozepnutí tranzistorů, když bude vypínač rozepnutý.
Pull-Upy R3 a R4 na straně u ATmega zachovám a připojím je na napájení (za vypínač).



odpojeni_i2c_v2.gif

AstroMiK
Příspěvky: 593
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Odpojení části I2C sběrnice

Příspěvek od AstroMiK » 04 črc 2023, 08:00

Tak ta poslední verze taky funguje.

Pro testy jsem sice nepoužil BSS138, ale 2N7000, které má VGS (threshold) taky pod 3V, takže při sepnutí spínače na 3,3V napájení se tranzistory dokonale sepnuly a propojily obě části sběrnice.

Funguje to dokonce i bez těch R3 a R4, které se mi opravdu zdají zbytečné, když v odpojeném stavu na straně s ATmega nepotřebuji komunikovat.

Takže jestli nemáte někdo nějaký další nápad nebo připomínku, tak to takhle nechám.

Uživatelský avatar
kiRRow
Příspěvky: 1170
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Odpojení části I2C sběrnice

Příspěvek od kiRRow » 04 črc 2023, 15:48

Při takovém zapojení jsou odpory R3 a R4 vysloveně nežádoucí - po připojení sběrnice budou dělat druhé pull-up rezistory sběrnice a ještě k tomu ne na napájení, ale na řídící pin.

AstroMiK
Příspěvky: 593
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Odpojení části I2C sběrnice

Příspěvek od AstroMiK » 04 črc 2023, 17:51

Díky za názor.
V tomhle trochu plavu.

Na plošňáku jsem sice už připravil prostor pro ty R3 a R4, ale nebudou se osazovat.

Uživatelský avatar
kiRRow
Příspěvky: 1170
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Odpojení části I2C sběrnice

Příspěvek od kiRRow » 04 črc 2023, 20:05

No https://cs.wikipedia.org/wiki/I%C2%B2C ... ty odpory jsou tam od toho, aby jsi dostal napětí na sběrnici v momentě, kdy k ní nic připojeno není. Většinou každý hotový modul má tyto odpory už na sobě vestavěné. Stává se pak, že jich připojíš 6 za sebou na sběrnici a tím tu sběrnici pak 6x pullupuješ, procesor to pak neumí stáhnout na 0, a pokud umí, tak shoří ...

ondraN
Příspěvky: 932
Registrován: 08 srp 2019, 20:01
Reputation: 0

Re: Odpojení části I2C sběrnice

Příspěvek od ondraN » 10 črc 2023, 08:26

Já bych ještě vykoušel, jak se chová SW část při odpojení během přenosu dat po sběrnici. Řešení chybových stavů na I2C je ve standardních knihovnách velmi tristní a je zdrojem mnoha problémů a záseků.

pawantanwar
Příspěvky: 1
Registrován: 31 črc 2023, 12:43
Reputation: 0
Kontaktovat uživatele:

Re: Odpojení části I2C sběrnice

Příspěvek od pawantanwar » 31 črc 2023, 12:46

Hele, ten odpor R1 a R2 asi nemusíš používat, když už máš Pull-Upy u STM procesoru. Co se týká těch R3 a R4, můžeš je klidně vynechat, když to funguje i bez nich. Když jsem koukal na schéma, vypadá to, že by to mělo bejt v pohodě. Takže jo, ušetříš si nějaký místo na tom plošňáku. A hlavně dobře, že to funguje jak má! :)
pawan tanwar

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 35 hostů