User Tools

Site Tools


en:i2c

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
en:i2c [2014/12/20 17:54] – further translation fluktuaciaen:i2c [2014/12/21 00:39] – [Linking of I²C devices] kaklik
Line 3: Line 3:
 ====== I²C bus as an MLAB's component ====== ====== I²C bus as an MLAB's component ======
  
-[[http://en.wikipedia.org/wiki/I²C|I²C bus]], also called TWI is a popular electronic bus designed for low-speed communication between different peripherals. As an MLAB's component it is mostly used to ensure communication between microprocessor and sensors. I²C derivative [[http://en.wikipedia.org/wiki/System_Management_Bus|SMUus]] differs from it in that it contains timeouts' definitions and Packet Error Checking and therefor is, in sense, more robust than the original I²C. +[[http://en.wikipedia.org/wiki/I²C|I²C bus]], also called TWI is a popular electronic bus designed for low-speed communication between different peripherals. As an MLAB's component it is mostly used to ensure communication between microprocessor and sensors. I²C derivative [[http://en.wikipedia.org/wiki/System_Management_Bus|SMBus]] differs from it in that it contains timeouts' definitions and Packet Error Checking and therefor is, in sense, more robust than the original I²C. 
        
-Thanks to an advancement in computer technologies [[cs:arm|new possibilities]] arise allowing the use of the bus for direct communication between sensors and Linux systems. Furthermore, with the help of [[cs:usbi2c|I²C adapter ]] the bus can be connected to PC as well.   +Thanks to an advancement in computer technologies [[en:arm|new possibilities]] arise allowing the use of the bus for direct communication between sensors and Linux systems. Furthermore, with the help of [[en:usbi2c|I²C adapter]] the bus can be connected to PC as well.  
- +
  
 ===== Linking of I²C devices ===== ===== Linking of I²C devices =====
Line 13: Line 11:
 Although the I²C bus was originally designed to link devices on small scales (within the dimensions of PCB), using certain techniques it is possible to enlarge its range to tens of meters (( [[http://cladlab.com/electronics/circuit-design/communication-protocols/i2c-protocol#gallery|I2C Transmission Distances And Buffer’s]] )). However, it must be noted that such approach may not be safe because over long wires a high voltage can be electrostaticilly and electormagnetically induced and can cause damage to connected devices. The exact distance over which it is safe to use the I²C bus depends on the surrounding environment and the required reliability of the system.     Although the I²C bus was originally designed to link devices on small scales (within the dimensions of PCB), using certain techniques it is possible to enlarge its range to tens of meters (( [[http://cladlab.com/electronics/circuit-design/communication-protocols/i2c-protocol#gallery|I2C Transmission Distances And Buffer’s]] )). However, it must be noted that such approach may not be safe because over long wires a high voltage can be electrostaticilly and electormagnetically induced and can cause damage to connected devices. The exact distance over which it is safe to use the I²C bus depends on the surrounding environment and the required reliability of the system.    
  
-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:i2chub]]. This module also solves the conversion between logic 3.3V and +5V.+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 [[en:i2chub]]. This module also solves the conversion between logic 3.3V and +5V.
  
-Over more extensive distances the bus is linked through shielded signal cables ending in female connectors and connected to [[cs:uniserial]] module. This module also contains a basic surge protection and most importantly acts as a mechanical bridge between 'heavy external wiring' and fine internal linking of devices. +Over more extensive distances the bus is linked through shielded signal cables ending in female connectors and connected to [[en:uniserial|UniSerial]] module. This module also contains a basic surge protection and most importantly acts as a mechanical bridge between 'heavy external wiring' and fine internal linking of devices. 
  
 In the case of extensive networks I²C is replaced by other physical layer (CAN, Ethernet) that interconnects individual I²C network segments. In the case of extensive networks I²C is replaced by other physical layer (CAN, Ethernet) that interconnects individual I²C network segments.
Line 25: Line 23:
 Pymlab represents a software package that enables a creation of network made of I²C devices and modules, which serve as routing points. It defines the structure of a network and addresses of individual nodes in a source file of a control program. Individual points in the network can than be accessed using simple python commands.  Pymlab represents a software package that enables a creation of network made of I²C devices and modules, which serve as routing points. It defines the structure of a network and addresses of individual nodes in a source file of a control program. Individual points in the network can than be accessed using simple python commands. 
    
-The installation of the [[cs:pymlab|pymlab]] packed can easily be done using following command: +The installation of the [[en:pymlab|pymlab]] packed can easily be done using following command: 
  
   sudo pip install pymlab   sudo pip install pymlab
Line 51: Line 49:
   * [[http://www.headfuzz.co.uk/?q=usbtoi2c|OpenServo interface]]   * [[http://www.headfuzz.co.uk/?q=usbtoi2c|OpenServo interface]]
  
-These share a common problem with a quality of drivers. Furthermore, i2c-tiny-usb does not fully meet the I²C specification, completely fails to comply with USB physical layer specification and only has maximal communication speed of 50Kbps. MLAB replaces these constructions with [cs:i2c_avr_usb|I2C AVR USB]] device that is equivalent to i2c-tiny-usb design, but made of MLAB modules.  [[cs:i2c-pic-usb| I²C to USB with PIC connector]] represent another, yet unfinished, alternative.+These share a common problem with a quality of drivers. Furthermore, i2c-tiny-usb does not fully meet the I²C specification, completely fails to comply with USB physical layer specification and only has maximal communication speed of 50Kbps. MLAB replaces these constructions with [[en:i2c_avr_usb|I2C AVR USB]] device that is equivalent to i2c-tiny-usb design, but made of MLAB modules.  [[en:i2c-pic-usb| I²C to USB with PIC connector]] represent another, yet unfinished, alternative.
  
 ==== USB HID ==== ==== USB HID ====
  
-To connect without having to use drivers designed for specific hardware [[http://en.wikipedia.org/wiki/USB_human_interface_device_class|USB HID]] specification can be used. MLAB has only one module that complies with this particular specification - [[cs:usbi2c|USBI2C01A]]. It can be operated using python or HIDAPI - see below.+To connect without having to use drivers designed for specific hardware [[http://en.wikipedia.org/wiki/USB_human_interface_device_class|USB HID]] specification can be used. MLAB has only one module that complies with this particular specification - [[en:usbi2c|USBI2C01A]]. It can be operated using python or HIDAPI - see below.
  
en/i2c.txt · Last modified: 2014/12/21 10:42 (external edit)