I²C rozbočovač I2Chub02B
Dokumentace k modulu E-shop UST
Modul určený k rozvětvení dvouvodičové sběrnice. Zapojení konektoru je zároveň uzpůsobeno k rozvodu napájení. A modul je tedy velice výhodné použít na robotech pro zasíťování čidel ve hvězdicové topologii.
Používání modulu
Před použitím modulu a připojením napájení se ujistěte, zda všechna připojená čidla mohou být provozována na zvoleném napájecím napětí. Neboť připojením +5V napájení na 3,3V čidlo dojde k jeho poškození, nebo zničení.
Modul má na standardy MLAB poměrně nezvyklé uspořádání výstupních konektorů, kdy konektory na I²C nejsou paralelně zdvojeny, ale naopak každá hřebínková řada je připojena k jednomu výstupnímu kanálu obvodu TCA9548A a číslována číslicemi 0 až 7.
Python
Ovládání modulu je implementováno v balíku pymlab v I²C subsystému stavebnice MLAB.
Linux
V jádře Linuxu existuje modul pca954x, který slouží k ovládání integrovaných obvodů řady pca9541-8, které jsou však programátorsky kompatibilní s obvodem TCA9548A, použitým v modulu I2HUB02A. Protože I2C není plug-and-play sběrnice. Musíme tento modul nahrát do jádra ručně:
sudo modprobe pca954x
Následně je možné modul přiřadit ke konkrétní I²C adrese na konkrétní sběrnici
root@OpenWrt:/# echo pca9548 0x70 > /sys/bus/i2c/devices/i2c-1/new_device root@OpenWrt:/# dmesg | tail i2c i2c-1: Added multiplexed i2c bus 2 i2c i2c-1: Added multiplexed i2c bus 3 i2c i2c-1: Added multiplexed i2c bus 4 i2c i2c-1: Added multiplexed i2c bus 5 i2c i2c-1: Added multiplexed i2c bus 6 i2c i2c-1: Added multiplexed i2c bus 7 i2c i2c-1: Added multiplexed i2c bus 8 i2c i2c-1: Added multiplexed i2c bus 9 pca954x 1-0070: registered 8 multiplexed busses for I2C switch pca9548 i2c i2c-1: new_device: Instantiated device pca9548 at 0x70
Tento postup způsobí rozdělení hlavní zběrnice na několik segmentů, kdy ke každému segmentu I²C zběrnice lze z jádra přistupovat zvlášť.
Alternativně je však možné výstupy modulu přepínat ručně použitím přímého zápisu do routovacího registru. Například tento příkaz aktivuje všechny jeho porty (Pozor, pokud budeme v takovém případě na dva různé porty připojena zařízení se stejnými adresami, tak dojde velmi pravděpodobně k zablokování sběrnice.)
sudo i2cset -y -r 1 0x70 0xff
Související stránky
Reference
Problémy
U verze I2CHUB02A se vyskytla výrobní vada a některé PCB měly nevodivé některé prokovy. Závada se projevovala tak, že nebyly připojeny některé pull-up odpory na napájení.