i2c-tiny-usb

Skjermbilde programvare:
i2c-tiny-usb
Prog.varedetaljer:
Versjon: 2009-02-10 Oppdatert
Last opp dato: 7 Mar 16
Utvikler: Till Harbaum
Lisens: Gratis
Popularitet: 46

Rating: 5.0/5 (Total Votes: 1)

i2c-tiny-usb er en åpen kildekode / open hardware prosjekt.
Legg ved en I2C klient chip (termofølere, AD converter, skjermer, relais sjåfør, ...) til PC-en via USB ... raskt, enkelt og billig! Drivere for Linux, Windows og MacOS tilgjengelig.
Den i2c-tiny-usb-prosjektet er en åpen kildekode / open hardware prosjekt. Målet med i2c-tiny-usb er å gi en billig generisk i2c grensesnitt for å være knyttet til usb. Den er ment som en erstatning for de enkle og billige skriverporten til I2C adaptere. En USB-løsningen har flere fordeler inkl. den innebygde strømforsyningen og en mer fremtidsrettet grensesnitt.
Videre ingen cpu intens bitbanging er nødvendig på vertssiden. Denne USB løsningen krever enda mindre deler enn noen skriver havneløsninger.
Mens i2c-tiny-usb ble utviklet under og for Linux det også fungerer under Windows og MacOS X. En vinduer demo sjåfør og demo applikasjonen er inkludert for å komme i gang umiddelbart.
Den i2c-tiny-usb-prosjektet er basert på:
Linux USB prosjektet og Linux i2c gjennomføring
Vinduene driver og testapplikasjon er basert på libusb-win32
AVR-USB, en ren programvare implementering av USB for AVR-plattformen
USBtiny, en annen programvare usb implementering for AVR
Maskinvaren av i2c-tiny-usb-grensesnitt består av avr ATtiny45 CPU, en billig og lett å få tak mikrokontroller med 4 kilobytes flash (hvorav ~ 2k er brukt i dette programmet) og 256 Bytes RAM. Prosessoren er omgitt av noen andre deler.
USB-grensesnittet
USB-grensesnittet til i2c-tiny-usb-grensesnitt er basert på en ren programvare implementering og bruker to tappene i AVR (PB0 og PB2). Denne programvaren implementering støtter lav hastighet USB eneste som signaliseres til PC ved motstanden R1.
I2C-grensesnittet er implementert ved hjelp av en bitbanging tilnærming. Den maskinvare som er støttet TWI grensesnittet til attiny45 er bundet til metallnålene ved chip som er nødvendig for USB-drift, og kan således ikke brukes til I2C. Den bitbanging I2C grensesnitt som brukes i stedet kanskje ikke fullt I2C kompatibel og dermed ikke hver I2C klient chip kan fungere riktig på denne bussen. Ingen uforlikelighet er rapportert så langt. Den i2c-tiny-usb gir en programvare justerbar i2c klokke forsinkelse tillater å konfigurere i2c klokke. Standard forsinkelsen er 10us. På grunn av flere forsinkelser i i2c bitbanging kode dette resulterer i en i2c klokke på ca 50kHz.
For enkelhet grunner alle USB-overføringer er gjort via styre endepunkt. Siden avr usb-biblioteket ikke bare støtter lav hastighet enheter det ikke kan bruke bulk overføringer som er angitt for høy og full hastighet enheter bare. Lav hastighet enheter støtter såkalt avbrudds overføringer som er begrenset til en forhåndsinnstilt båndbredde mens kontroll overføringer kan bruke noen gratis båndbredde (hvis det er noen i det hele tatt).
Enheten bruker derfor kontroll overføringer for alle sin kommunikasjon. Dette krever litt ekstra begrensning for å hindre flere driverprogramvare (f.eks kjernen driver og libusb basert test programmet) for å få tilgang til enheten samtidig. Under Linux kan dette oppnås ved å velge visse tilgang forespørselstyper. Denne typen tilgangskontroll kan ikke være mulig under andre operativsystemer.
Strømforbruk
Hele enheten er en såkalt bussdrevet enhet. Dette innebærer at hele anordningen drives direkte fra USB. Derfor AVR og en eller flere I2C klient chips er drevet fra USB VBUS signal.
Adapteren selv trekker mindre enn 10mA og rapportere dette til verten via USB-beskrivelsene. Enheten er i stand til makten I2C klient chips også. Men siden disse brikkene varierer i strømforbruket er det ikke mulig å korrekt inkludere deres krav til utstyrsdeskriptorene. Det er ditt ansvar å holde et øye med den totale strømforsyningen og spesielt for å sørge for at hele enheten ikke overstige det totale USB grense på 500mA.
Det er planlagt for fremtidige firmware-versjoner for å gjøre den rapporterte strømforbruk programvare kan konfigureres slik at verdien kan lett bli vedtatt til den virkelige effektbehov for hele enheten.
Kernel driver
Den i2c-tiny-usb er ment å brukes med Linux. Den leveres med en Linux-kjerne driver som bygger bro mellom USB og I2C delsystemer i Linux-kjernen. Sjåføren deretter festes til USB-enheten og gjøre i2c bussen tilgjengelig for i2c delsystem. Dermed er hele oppsettet er gjennomsiktig til klientapplikasjoner som lm_sensors rammeverk og ingen spesielle klient chip drivere er nødvendig. I stedet driverne som allerede finnes i Linux-kjernen er vant med i2c-tiny-usb også. Med f.eks de ds1621 temperatursensorer som brukes i prototypen utgangen fra sensorene kan f.eks se slik ut:
ds1621-i2c-2-48
Adapter: i2c-tiny-usb på buss 003-enheten 017
temp: 21,50

Lignende programvare

MccM MixTheme MT
MccM MixTheme MT

15 Apr 15

MenuetOS
MenuetOS

20 Feb 15

NuttX
NuttX

10 May 15

Annen programvare fra utvikleren Till Harbaum

NanoVM
NanoVM

2 Jun 15

Kommentarer til i2c-tiny-usb

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!