Uživatelské nástroje

Nástroje pro tento web


cs:i2c_avr_usb

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.


Předchozí verze
cs:i2c_avr_usb [Unknown date] (aktuální) – upraveno mimo DokuWiki (Unknown date) 127.0.0.1
Řádek 1: Řádek 1:
 +====== Převodník I²C na USB s AVR (známý jako i2c-tiny-usb) ======
  
 +Cílem této konstrukce je vyřešit častý problém přípojení I2C nebo SMBus zařízení, nebo čidla k počítači. Klasické řešení tohoto problému je připojení čidla k některému mikrokontroléru a pak následně k nadřazenému systému, Jednou z hlavních nevýhod tohoto přístupu je, že musí být dopředu známá konfigurace čidel připojených k mikroprocesoru a zároveň čtení čidel je vázáno na firmware v mikroprocesoru. Je proto žádoucí nechat při dnešním výpočetním výkonu, který je k dispozici čtení čidel přímo na nadřazeném systému v počítači, tak aby konfigurace čidel a verze driveru čidla mohla být libovolně změněna i za běhu a nebyla vázána na fixní firmware v MCU. 
 +
 +
 +===== Konstrukce  převodníku =====
 +
 +==== Zapojení ====
 +
 +Principiální zapojení převodníku je následující:
 +
 +{{ :cs:designs:tools:original_schematic.png?direct&400 |}}
 +
 +Reálně je však v provedení MLABu zařízení složeno z několika modulů.
 +
 +{{ :cs:designs:tools:i2c-avr-usb_top_big.jpg?direct&500 |}}
 +
 +==== Firmware ====
 +
 +Firmware je dostupný v [[http://www.mlab.cz/WebSVN/listing.php?repname=MLAB&path=%2FDesigns%2FTools%2Fi2c_AVR_USB%2FSW%2F#_Designs_Tools_i2c_AVR_USB_SW_|dokumentační složce MLAB]]
 +
 +===== Funkce =====
 +
 +Po připojení konstrukce k počítači můžeme na USB nalézt následující zařízení. 
 +
 +  $ sudo lsusb -v  -d 0403:c631
 +  
 +  Bus 003 Device 018: ID 0403:c631 Future Technology Devices International, Ltd i2c-tiny-usb interface
 +  Device Descriptor:
 +    bLength                18
 +    bDescriptorType         1
 +    bcdUSB               1.10
 +    bDeviceClass          255 Vendor Specific Class
 +    bDeviceSubClass         
 +    bDeviceProtocol         
 +    bMaxPacketSize0         8
 +    idVendor           0x0403 Future Technology Devices International, Ltd
 +    idProduct          0xc631 i2c-tiny-usb interface
 +    bcdDevice            1.05
 +    iManufacturer           1 Till Harbaum
 +    iProduct                2 i2c-tiny-usb
 +    iSerial                 
 +    bNumConfigurations      1
 +    Configuration Descriptor:
 +      bLength                 9
 +      bDescriptorType         2
 +      wTotalLength           18
 +      bNumInterfaces          1 
 +      bConfigurationValue     1
 +      iConfiguration          0 
 +      bmAttributes         0x80
 +        (Bus Powered)
 +      MaxPower               10mA
 +      Interface Descriptor:
 +        bLength                 9
 +        bDescriptorType         4
 +        bInterfaceNumber        0
 +        bAlternateSetting       0
 +        bNumEndpoints           0
 +        bInterfaceClass         0 (Defined at Interface level)
 +        bInterfaceSubClass      0 
 +        bInterfaceProtocol      0 
 +        iInterface              0 
 +  Device Status:     0x0000
 +      (Bus Powered)
 +
 +Toto zařízení je pak automaticity enumerováno a rozpoznáno jako I2C rozhraní. 
 +
 +==== Enumerace na USB ====
 +
 +  [38601.270471] usb 3-3.1: new low-speed USB device number 18 using xhci_hcd
 +  [38601.292607] usb 3-3.1: New USB device found, idVendor=0403, idProduct=c631
 +  [38601.292613] usb 3-3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
 +  [38601.292616] usb 3-3.1: Product: i2c-tiny-usb
 +  [38601.292618] usb 3-3.1: Manufacturer: Till Harbaum
 +  [38601.312318] i2c-tiny-usb 3-3.1:1.0: version 1.05 found at bus 003 address 018
 +  [38601.332450] i2c i2c-8: connected i2c-tiny-usb device
 +  [38601.332473] usbcore: registered new interface driver i2c-tiny-usb
 +
 +Obvykle je ale pro vytvoření zařízení /dev/i2c-8 do kernelu nahrát ještě modul i2c-dev.
 +
 +  $ sudo modprobe i2c-dev
 +
 +Pak již vidíme všechna I2C a SMB rozhraní v počítači.
 +
 +  $ sudo i2cdetect -l
 +  i2c-0 i2c        i915 gmbus ssc                  I2C adapter
 +  i2c-1 i2c        i915 gmbus vga                  I2C adapter
 +  i2c-2 i2c        i915 gmbus panel                I2C adapter
 +  i2c-3 i2c        i915 gmbus dpc                  I2C adapter
 +  i2c-4 i2c        i915 gmbus dpb                  I2C adapter
 +  i2c-5 i2c        i915 gmbus dpd                  I2C adapter
 +  i2c-6 i2c        DPDDC-C                          I2C adapter
 +  i2c-7 i2c        DPDDC-D                          I2C adapter
 +  i2c-8 i2c        i2c-tiny-usb at bus 003 device 018 I2C adapter
 +
 +
 +===== Související stránky =====
 +
 +  * [[cs:usbi2c|USBI2C]] - modernější modul určený k přímému převodu I2C na USB
 +  * [[cs:i2c-pic-usb|Konvertor I²C na USB s PIC]]
 +  * [[cs:i2c|Sběrnice I²C ve stavebnici MLAB]]
 +
 +
 +
 +==== Reference ====
 +
 +  * [[http://www.harbaum.org/till/i2c_tiny_usb/index.shtml|i2c-tiny-usb]]
cs/i2c_avr_usb.txt · Poslední úprava: 2014/12/12 23:44 (upraveno mimo DokuWiki)