cs:i2c
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verzeNásledující verzeObě strany příští revize | ||
cs:i2c [2014/08/13 16:33] – přesunutí některých částí stránky do samostatné stránky pymlab. kaklik | cs:i2c [2014/12/21 01:21] – [Čtení] kaklik | ||
---|---|---|---|
Řádek 15: | Řádek 15: | ||
Pro rozsáhlé sítě je I²C nahrazeno jinou fyzickou vrstvou (CAN, Ethernet), která propojuje jednotlivé I2C síťové segmenty. | Pro rozsáhlé sítě je I²C nahrazeno jinou fyzickou vrstvou (CAN, Ethernet), která propojuje jednotlivé I2C síťové segmenty. | ||
+ | |||
+ | |||
+ | ==== Programový balík Pymlab ==== | ||
+ | |||
+ | Jde o softwarový balík, který umožňuje vytvářet síť z I²C zařízení a modulů, které slouží jako routovací body. Princip funkce spočívá v definování struktury sítě a adres jednotlivých nódů ve zdrojovém souboru ovládacího programu, pak lze ke všem bodům v síti přistupovat pomocí jednoduchých příkazů jazyka Python. | ||
+ | |||
+ | Instalaci samotného softwarového balíku [[cs: | ||
+ | |||
+ | sudo pip install pymlab | ||
+ | |||
+ | V případě, že již nějakou starší verzi pymlab máme nainstalovanou, | ||
+ | |||
+ | sudo pip install --upgrade pymlab | ||
+ | |||
+ | Oba příkazy jsou rovnocenné a využívají python balíčkovací systém ve kterém je [[https:// | ||
+ | |||
+ | Tím by se měly stáhnout i balíky se kterými pymlab pracuje, jako je například cython-hidapi v pythonu označovaný pouze jako modul hid. Nenainstaluje se alelibusb. To stále musíme provést ručně pomocí: | ||
+ | |||
+ | sudo apt-get install libudev-dev libusb-1.0-0-dev libhidapi-dev python-setuptools python-smbus cython | ||
Řádek 98: | Řádek 117: | ||
Zápis provedeme příkazem i2cset. Ukážeme zde příklad nastavení [[cs: | Zápis provedeme příkazem i2cset. Ukážeme zde příklad nastavení [[cs: | ||
- | ~$ sudo i2cset -y -r 1 0x70 0x05 | + | ~$ sudo i2cset -y -r 1 0x70 0xff |
- | Value 0x05 written, readback matched | + | Value 0xff written, readback matched |
Tímto provedeme aktivaci všech I2C kanálů na I2CHubu ((je potřeba si dat pozor aby na nekterych kanalech nebyla zařízení se stejnou adresou, v takovém případě dojde ke kolizi a k zablokování sběrnice. Následně je pak potřeba provést reset odpojením napájení nebo RESET pinem na I2CHUB modulu.)) | Tímto provedeme aktivaci všech I2C kanálů na I2CHubu ((je potřeba si dat pozor aby na nekterych kanalech nebyla zařízení se stejnou adresou, v takovém případě dojde ke kolizi a k zablokování sběrnice. Následně je pak potřeba provést reset odpojením napájení nebo RESET pinem na I2CHUB modulu.)) | ||
Řádek 108: | Řádek 127: | ||
:~$ sudo i2cget -y 1 0x70 | :~$ sudo i2cget -y 1 0x70 | ||
- | | + | |
+ | ==== Použití modulů jádra ==== | ||
- | ===== Ostatní operační systémy ===== | + | Některá I²C zařízení mají přímo ovladače v linuxovém jádře. Je tak možné k těmto zařízením přistupovat přímo prostřednictvím souborového systému. V případě MLABu se to týká těchto modulů: |
- | V jiných operačních systémech, jako Windows či MAC OS, kde nemůžeme nebo nechceme využít podporu I²C rozhraní v jádře, můžeme použít pro ovládaní I2C prostředí jazyka Python, který je multiplatformní a běží na všech známých OS. | + | * [[cs: |
+ | * [[cs: | ||
+ | * [[cs: | ||
- | ==== Programový bolík Pymlab ==== | + | Protože I²C není v principu [[http:// |
- | Jde o softwarový balík, který umožňuje vytvářet síť z I²C zařízení a modulů, které slouží jako routovací body. | + | echo název_driveru i2c_adresa > / |
- | Princip funkce spočívá v definování struktury sítě a adres jednotlivých nódů ve zdrojovém souboru ovládacího programu, pak lze ke všem bodům v síti přistupovat pomocí jednoduchých příkazů jazyka Python. | + | Tím dojde k převzetí kontroly nad I²C zařízením jádrem Linuxu. Ve výpisu i2cdetect můžeme takový stav vidět označený jako UU. Podrobnosti o provedení |
- | + | ===== Ostatní operační systémy ===== | |
- | Výsledkem je možnost testovat a demonstrovat všechna nová čidla a zařízení. Bez nutnosti udržovat aktuální všechny specifické zdrojové kódy pro používané MCU. Lze tak dosáhnout nezávislosti na aktuálně používaných mikrokontrolérech, | + | |
- | Pokud však potřebujeme na sběrnici přistupovat přes rozhraní USB pomocí modulu [[cs: | + | V jiných operačních systémech, jako Windows či MAC OS, kde nemůžeme |
- | ]]. | + | |
- | Instalaci samotného softwarového balíku pymlab pak provedeme snadno pomocí: | + | |
- | + | ||
- | sudo easy_install pymlab | + | |
- | + | ||
- | nebo | + | |
- | sudo pip install pymlab | + | |
- | + | ||
- | Oba příkazy jsou rovnocenné a využívají python balíčkovací systém ve kterém je [[https:// | + | |
- | + | ||
- | Tím by se měly stáhnout i balíky se kterými pymlab pracuje, jako je například cython-hidapi | + | |
- | + | ||
- | sudo apt-get install libudev-dev libusb-1.0-0-dev libhidapi-dev python-setuptools python-smbus cython | + | |
===== Související stránky ===== | ===== Související stránky ===== | ||
- | * [[cs:usbi2c|USBI2C]] - rozplánovaný modul určený k přímému převodu I2C na USB | + | * [[cs: |
* [[cs: | * [[cs: | ||
* [[cs: | * [[cs: | ||
Řádek 148: | Řádek 156: | ||
* [[cs: | * [[cs: | ||
* [[cs: | * [[cs: | ||
+ | * [[cs: | ||
cs/i2c.txt · Poslední úprava: 2022/09/02 21:20 autor: kaklik