i2c-klein-usb is 'n open source / oop hardeware projek.
Heg enige I2C kliënt chip (thermo sensors, AD converter, uitstallings, Relais bestuurder, ...) op jou rekenaar via 'n USB ... vinnig, maklik en goedkoop! Bestuurders vir Linux, Windows en MacOS beskikbaar.
Die i2c-klein-usb-projek is 'n oop bron / oop hardeware projek. Die doel van i2c-klein-usb is 'n goedkoop generiese i2c koppelvlak word geheg aan die usb bied. Dit is bedoel as 'n plaasvervanger vir die eenvoudige en goedkoop drukker hawe om i2c adapters. 'N USB oplossing het verskeie voordele ingesluit. die ingeboude kragbron en 'n meer toekomstige bewys koppelvlak.
Verder geen cpu intensiewe bitbanging verplig word om by die gasheer kant. Dit USB oplossing vereis nog minder dele as 'n drukker hawe oplossings.
Terwyl die i2c-klein-usb ontwikkel onder en vir Linux dit werk ook onder Windows en MacOS X. 'n Windows demo bestuurder en demo aansoek ingesluit te kry wat jy dadelik begin.
Die i2c-klein-usb-projek is gebaseer op:
Die Linux USB projek en die Linux i2c implementering
Die vensters bestuurder en toets aansoek is gebaseer op die libusb-win32
AVR-USB, 'n suiwer sagteware implementering van USB vir die AVR platform
USBtiny, 'n ander sagteware USB implementering vir die AVR
Die hardeware van die i2c-klein-USB koppelvlak bestaan uit die Atmel AVR ATtiny45 CPU, 'n goedkoop en maklik bekombaar mikrobeheerder met 4 KBytes flits (waarvan ~ 2k word in hierdie aansoek) en 256 Bytes geheue. Die verwerker is omring deur 'n paar ander dele.
Die USB koppelvlak
Die USB koppelvlak van die i2c-klein-USB koppelvlak is gebaseer op 'n suiwer sagteware implementering en gebruik twee penne van die AVR (PB0 en Pb2). Hierdie sagteware implementering ondersteun net 'n lae spoed USB wat te kenne gegee om die rekenaar deur weerstand R1.
Die I2C koppelvlak geïmplementeer met behulp van 'n bitbanging benadering. Die hardeware ondersteun twi koppelvlak van die attiny45 is gebind om hardeware penne op die chip wat nodig is vir USB werking en kan dus nie gebruik word vir I2C. Die bitbanging I2C koppelvlak word gebruik in plaas kan nie ten volle I2C versoenbaar wees en dus nie elke I2C kliënt chip kan korrek funksioneer op hierdie bus. Geen onverenigbaarheid is tot dusver aangemeld nie. Die i2c-klein-usb bied 'n sagteware verstelbaar i2c klok vertraging sodat die i2c klok instel. Die verstek vertraging is 10us. As gevolg van addisionele vertragings in die i2c bitbanging kode dit lei tot 'n i2c klok van ongeveer 50kHz.
Vir eenvoud redes alle USB oordrag gedoen word via die beheer eindpunt. Sedert die AVR USB biblioteek nie net ondersteun lae spoed toestelle kan dit nie gebruik grootmaat oordragte wat gespesifiseer vir net 'n hoë en volle spoed toestelle. Lae spoed toestelle sogenaamde onderbreking oordragte wat beperk is tot 'n voorafbepaalde bandwydte terwyl beheer oordragte enige gratis bandwydte kan gebruik (as daar enige enigsins).
Die toestel gebruik dus beheer oordragte vir al sy kommunikasie. Dit vereis 'n paar ekstra beperking op verskeie bestuurder sagteware te verhoed (bv die kernel aandrywer en die libusb gebaseer toets aansoek) om toegang te verkry tot die toestel op dieselfde tyd. Onder Linux dit bereik kan word deur die kies van sekere tipes toegang versoek. Hierdie soort toegangsbeheer mag nie onder ander bedryfstelsels moontlik wees.
Kragverbruik
Die hele toestel is 'n sogenaamde bus aangedrewe toestel. Dit beteken dat die volledige toestel direk word aangedryf van USB. Daarom is die AVR en een of meer I2C kliënt skyfies word aangedryf van die USB VBUS sein.
Die adapter self trek minder as 10mA en verslae dat dit die gasheer via die USB beskrywers. Die toestel is in staat om krag I2C kliënt skyfies sowel. Maar aangesien hierdie skyfies wissel in kragverbruik dit nie moontlik is om hul eise in die toestel beskrywers korrek in te sluit. Dit is jou verantwoordelikheid om 'n ogie te hou oor die totale kragbron hou en veral om seker te maak dat die hele toestel die totale USB limiet van 500mA oorskry nie.
Daar word beplan vir toekomstige firmware weergawes tot die berig kragverbruik sagteware instel maak sodat die waarde maklik om die werklike mag eise van die hele toestel kan aangeneem word.
kernel aandrywer
Die i2c-klein-usb is bedoel om gebruik te word met Linux. Dit kom met 'n Linux kernel aandrywer wat oorbrug tussen die USB en I2C substelsels in die Linux-kern. Die bestuurder heg dan aan die USB-toestel en maak die i2c bus beskikbaar vir die substelsel i2c. So het die hele opset is deursigtig kliënt programme soos die lm_sensors raamwerk en geen spesiale kliënt chip bestuurders vereis. In plaas van die bestuurders wat reeds teenwoordig is in die Linux-kern gebruik word met die i2c-klein-usb sowel. Met bv die ds1621 temperatuur sensor in die prototipe van die opbrengs van sensors kan bv lyk:
ds1621-i2c-2-48
Adapter: i2c-klein-usb op die bus 003 toestel 017
temp: 21,50
Sagteware besonderhede:
Weergawe: 2009-02-10 Opgedateer
Upload datum: 7 Mar 16
Lisensie: Gratis
Populariteit: 114
Kommentaar nie gevind