en:i2c
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revisionNext revisionBoth sides next revision | ||
en:i2c [2013/11/27 12:35] – created kaklik | en:i2c [2014/12/20 13:48] – created fluktuacia | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== I2C in MLAB system ====== | + | FIXME **This page is not fully translated, yet. Please help completing the translation.**\\ //(remove this paragraph once the translation is finished)// |
- | ===== Activating The I2C Port ===== | + | ====== I²C bus as an MLAB's component ====== |
+ | [[http:// | ||
+ | |||
+ | Thanks to an advancement in computer technologies [[cs: | ||
- | The I2C port needs to be enabled in kernel before you can use it. This can be achieved by | ||
- | sudo modprobe i2c-dev | ||
- | | ||
- | Then I²C bus interfaces can be listed by | ||
- | sudo i2cdetect -l | ||
- | ===== Checking For Connected Devices | + | ===== Linking of I²C devices |
- | At the command prompt type one of these depending | + | Although |
- | sudo i2cdetect -y X | + | Linking of I²C devices within MLAB is implemented on several levels according to extent of a network. Locally (on scale of several meters), the modules are connected by MLAB cables and separated by [[cs: |
- | The 7 bit I2C address of all found devices will be shown (ignoring | + | Over more extensive distances |
- | |||
- | ===== SMBus (System Management Bus) Functions ===== | ||
- | |||
- | SMBus (System Management Bus) is a subset from the I2C protocol | ||
- | When writing a driver for an I2C device try to use the SMBus commands only (if it possible). It makes possible to use the device driver on both SMBus adapters and I2C adapters. | ||
- | |||
- | Note address is the 7 bit address excluding the read / write bit (it will be shifted left 1 bit whne added to the read/write bit) | ||
- | |||
- | long write_quick(int addr) | ||
- | |||
- | Send only the read / write bit | ||
- | |||
- | |||
- | long read_byte(int addr) | ||
- | |||
- | Read a single byte from a device, without specifying a device register. | ||
- | |||
- | |||
- | long write_byte(int addr,char val) | ||
- | |||
- | Send a single byte to a device | ||
- | |||
- | |||
- | long read_byte_data(int addr,char cmd) | ||
- | |||
- | Read Byte Data transaction. | ||
- | |||
- | |||
- | long write_byte_data(int addr,char cmd,char val) | ||
- | |||
- | Write Byte Data transaction. | ||
- | |||
- | |||
- | long read_word_data(int addr,char cmd) | ||
- | |||
- | Read Word Data transaction. | ||
- | |||
- | |||
- | long write_word_data(int addr,char cmd,int val) | ||
- | |||
- | Write Word Data transaction. | ||
- | |||
- | |||
- | long process_call(int addr,char cmd,int val) | ||
- | |||
- | Process Call transaction. | ||
- | |||
- | |||
- | long[] read_block_data(int addr,char cmd) | ||
- | |||
- | Read Block Data transaction. | ||
- | |||
- | |||
- | write_block_data(int addr,char cmd,long vals[]) | ||
- | |||
- | Write up to 32 bytes to a device. | ||
- | |||
- | |||
- | long[] block_process_call(int addr,char cmd,long vals[]) | ||
- | |||
- | Block Process Call transaction. | ||
- | I2C Access Functions | ||
- | |||
- | |||
- | long[] read_i2c_block_data(int addr,char cmd) | ||
- | |||
- | Block Read transaction. | ||
- | |||
- | |||
- | write_i2c_block_data(int addr,char cmd,long vals[]) | ||
- | |||
- | Block Write transaction. | ||
- | |||
- | |||
- | ===== References ===== | ||
- | |||
- | * [[http:// | ||
- | * [[http:// |
en/i2c.txt · Last modified: 2014/12/21 10:42 (external edit)