This is an old revision of the document!
Table of Contents
This page is not fully translated, yet. Please help completing the translation.
(remove this paragraph once the translation is finished)
Konvertor z I²C na SPI
The module allows controling of SPI devices by I²C bus. Therefore is possible to control SPI devices trought Pymlab library.
Basic features
- I²C-bus slave interface operating up to 400 kHz
- SPI master operating up to 1.8 Mbit/s
- 200-byte data buffer
- Up to four slave select outputs
- Up to four programmable I/O pins
- Operating supply voltage: 2.4 V to 3.6 V
- Low power mode
- Internal oscillator option
- Active LOW interrupt output
I²C Adderess selection
Modul umožňuje výběr několika I2C adres. Tyto adresy mohou být zvoleny jednak osazením rezistorů na PCB a dále konfigurací jumperu na modulu. V případě změny volby adresy se adresa modulu změní až po odpojení a připojení napájení.
I²C address can be selected from several addresses by jumper selection or by placement of resistors soldered at PCB.
Použití modulu
Modul se připojuje na sběrnici konektorem s MLAB standardním uspořádáním pinů. Modul by při správném zapojení měl být vidět na sběrnici. Podobně jako v tomto případě, kdy má zvolenou adresu 2E.
odroid@odroid:~$ sudo i2cdetect -y 4 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 2e -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: 70 -- -- -- -- -- -- -- odroid@odroid:~$
Linux driver
Protože k integrovanému obvodu sc18is602 existuje driver v Linux kernelu spi-sc18is602, můžeme v systému přímo vytvořit SPI zařízení.
sudo modprobe spi-sc18is602 echo sc18is602 0x28 > /sys/bus/i2c/devices/i2c-7/new_device
Tím by mělo vzniknout nové zařízení na /sys/class/i2c-adapter/i2c-0/0-0028/spi_master/spi0 a nové systémové rozhraní /sys/class/spi_master/spi0/spi0.0 Tento driver bohužel ale nefunguje při použití modulu USBI2C, kdy nové SPI zařízení v systému nevznikne, neboť driver k tomuto modulu vyžaduje I2C budič. Postup ale funguje při použití rozhraní vytvořeného pomocí i2c-tiny-usb.
Pymlab
Modul zle ovládat z Pythonu pomocí knihovny Pymlab. Pro připojení modulu pak lze použít převodník USBI2C a ten ovládat z libovolného systému pomocí HIDAPI. Ve zdrojácích knihovny Pymlab je připraven příklad pro SPI komunikaci s barometrickým modulem ALTIMET, který obsahuje SPI variantu senzoru MPL115A1.