-I2C tiny-USB este un / proiect hardware open open source.
Atașați orice cip client I2C (termo-senzori, convertor AD, display-uri, conducător auto relais, ...) la PC prin USB ... rapid, ușor și ieftin! Drivere pentru Linux, Windows și MacOS disponibil.
Proiectul a i2c-tiny-USB este un / proiect hardware open open source. Scopul i2c-tiny-USB este de a oferi o interfață ieftin i2c generic pentru a fi atașat la USB. Acesta este conceput ca un înlocuitor pentru cei simplu și ieftin port de imprimantă pentru adaptoare I2C. O soluție USB are mai multe avantaje inclusiv. built-in alimentarea cu energie electrică și un viitor mai mare interfață de probă.
Mai mult nu cpu bitbanging intens este necesară pe partea gazdă. Această soluție a USB necesită chiar și piese mai puțin decât unele soluții port de imprimantă.
In timp ce-i2c tiny-USB a fost dezvoltat în conformitate și pentru Linux, de asemenea, funcționează sub Windows și MacOS X. Un driver Windows demo si aplicatii demo este inclus pentru a obține ai început imediat.
Proiectul a i2c-tiny USB se bazează pe:
Proiectul USB Linux și implementarea I2C Linux
Conducătorul auto Windows și aplicația de testare se bazează pe libusb Win32
AVR-USB, o punere în aplicare de software pur USB pentru platforma AVR
USBtiny, o altă implementare USB software-ul pentru AVR
Hardware-ul de interfață i2c-tiny USB este format din Atmel AVR ATtiny45 CPU, un microcontroler ieftin și ușor de obținut cu 4 Kbytes cu detentă (din care ~ 2k sunt utilizate în această aplicație) și 256 Bytes RAM. Procesorul este înconjurat de câteva alte părți.
Interfața USB
Interfața USB a interfeței i2c-tiny-USB este bazat pe o implementare software pur și utilizează două știfturi ale AVR (PB0 și PB2). Această implementare software suportă numai USB cu viteză redusă, care este semnalizat la PC prin rezistor R1.
Interfața I2C este implementată folosind o abordare bitbanging. Hardware-ul a sprijinit interfața Twi a attiny45 este legat de pini hardware la cip, care sunt necesare pentru funcționarea USB și astfel, nu poate fi utilizat pentru I2C. Interfața I2C bitbanging folosită în schimb poate să nu fie pe deplin compatibile I2C și, prin urmare, nu orice I2C cip client poate funcționa corect la acest autobuz. Nu există incompatibilități au fost raportate până în prezent. The-i2c tiny-USB oferă o întârziere reglabil ceas I2C software-ul care permite configurarea ceasului i2c. Întârzierea implicită este 10us. Din cauza întârzierilor suplimentare în codul I2C bitbanging acest lucru duce la un ceas I2C de aproximativ 50kHz.
Din motive de simplitate toate transferurile USB sunt efectuate prin intermediul final de control. Având în vedere că biblioteca avr USB nu acceptă numai dispozitive de mică viteză nu se poate utiliza transferuri în vrac, care sunt specificate doar pentru dispozitive de mare și plin de viteză. Dispozitivele de viteză mici sprijin așa-numitele transferuri de întrerupere, care sunt limitate la o lățime de bandă prestabilită în timp ce transferurile de control se poate folosi orice lățime de bandă liberă (dacă există vreo deloc).
Prin urmare, dispozitivul utilizează transferuri de control pentru toate comunicarea sa. Acest lucru necesită o limitare suplimentară pentru a preveni software de driver multiple (de exemplu, conducătorul auto nucleu și aplicația test pe libusb) pentru a accesa dispozitivul în același timp. Sub Linux acest lucru poate fi realizat prin selectarea anumitor tipuri de cereri de acces. Acest tip de control al accesului nu poate fi posibil în alte sisteme de operare.
Consumul de energie
Întregul aparat este un dispozitiv de așa-numitul autobuz alimentat. Acest lucru înseamnă că dispozitivul complet este alimentat direct de la USB. Prin urmare, AVR și unul sau mai multe chips-uri client I2C sunt alimentate de la semnalul USB VBUS.
Adaptorul de sine atrage mai puțin decât 10mA și raportează acest lucru gazdă prin intermediul descriptorii USB. Dispozitivul este capabil să cipuri client putere I2C, de asemenea. Dar, din moment ce aceste chip-uri variază în consumul de energie nu este posibil să se includă în mod corect cererile lor în descriptori de dispozitiv. Este responsabilitatea dvs. de a păstra un ochi pe sursa de alimentare totală și mai ales pentru a vă asigura că întregul dispozitiv nu depășește limita totală USB de 500mA.
Este planificat pentru versiunile viitoare de firmware pentru a face raportat software-ul de consum de energie configurabil, astfel încât valoarea poate fi adoptat cu ușurință la cerințele reale de putere ale întregului dispozitiv.
conducător auto kernel
The-i2c tiny-USB este destinat a fi utilizat cu Linux. Acesta este dotat cu un driver de nucleu Linux, care face legătura între subsistemele USB și I2C în kernel-ul Linux. Conducătorul auto se atașează apoi la dispozitivul USB și pentru a face magistrala I2C la dispoziția subsistemului i2c. Astfel, întregul ansamblu este transparentă pentru aplicațiile client, cum ar fi cadrul lm_sensors și nu sunt necesare drivere speciale cip client. In schimb driverele deja prezente în nucleul Linux sunt folosite cu-i2c tiny-USB, de asemenea. Cu ex senzorii de temperatură ds1621 utilizate în prototip ieșirea senzorilor poate de ex arata astfel:
ds1621-i2c-2-48
Adaptor pentru: i2c-tiny-USB autobuz 003 dispozitiv 017
Temperatura: 21.50
Detalii soft:
Versiune: 2009-02-10 Actualizat
Incarca data: 7 Mar 16
Licenţă: Gratuit
Popularitate: 114
Comentariile nu a fost găsit