User Tools

Site Tools

Translations of this page?:

en:i2cspi

This is an old revision of the document!


FIXME 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.

Zdroj

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.

Připojení SPI verze senzoru ALTIMET na sběrnici I²C.

en/i2cspi.1425562888.txt.gz · Last modified: 2015/03/05 13:41 (external edit)