i2c-tiny-usb jest / otwarty projekt open hardware.
Dołączyć każdy procesor klienta I2C (Thermo czujniki, konwerter AD, wyświetlacze, kierowcy Relais, ...) do komputera przez USB ... szybki, łatwy i tani! Sterowniki dla systemów Linux, Windows i MacOS dostępnej.
Projekt i2c-tiny-usb jest / otwarty projekt open hardware. Celem i2c-tiny-USB jest dostarczenie taniego rodzajowy interfejs i2c być dołączony do usb. Jest ona przeznaczona jako zamiennik dla tych prostego i taniego portu drukarki do kart I2C. Rozwiązanie USB ma kilka zalet wew. wbudowany zasilacz oraz interfejs bardziej odporne na przyszłość.
Ponadto brak cpu intensywne bitbanging jest wymagane po stronie hosta. Takie rozwiązanie USB nawet wymaga mniej części niż niektórych rozwiązań port drukarki.
Choć i2c-tiny-USB został opracowany pod i Linux działa również pod Windows i MacOS X. kierowca demo Windows i aplikacji demo jest włączone, aby zacząć od razu.
Projekt i2c-tiny-USB oparta jest na:
Projekt USB Linux i I2C wdrożenie Linuksa
Kierowca okna i zastosowanie testu oparte są na libusb-win32
AVR-USB, czysta wdrożenie oprogramowania dla platformy USB AVR
USBtiny kolejna implementacja USB oprogramowanie dla AVR
Sprzęt interfejsu I2C-tiny-usb składa się z Atmel AVR ATtiny45 CPU, taniego i łatwego do uzyskania mikrokontrolera z 4 kilobajty pamięci flash (z czego ~ 2k są wykorzystywane w niniejszym wniosku) i 256 bajtów pamięci RAM. Procesor jest otoczony kilkoma innymi częściami.
Interfejs USB
Interfejs USB interfejsu I2C-mały-USB jest oparty na czystym implementacji oprogramowania i wykorzystuje dwa kołki AVR (PB0 i PB2). Ta implementacja Oprogramowanie obsługuje tylko niskie prędkości USB sygnalizowane jest do komputera przez rezystor R1.
Interfejs I2C jest realizowany przy użyciu podejścia bitbanging. Sprzęt obsługiwany interfejs twi z attiny45 jest zobowiązany do szpilek sprzętowych na chipie, które są wymagane do działania USB i nie może być zatem wykorzystywane do I2C. Bitbanging interfejs I2C czym zamiast może nie być w pełni kompatybilny I2C, a zatem nie każdy klient I2C układ może funkcjonować poprawnie w tym autobusie. Brak niezgodności zostały zgłoszone do tej pory. I2C-tiny-usb zapewnia oprogramowanie regulowane opóźnienie zegara I2C pozwalający skonfigurować zegar I2C. Domyślna wartość opóźnienia jest 10us. Ze względu na dodatkowe opóźnienie w kodzie I2C bitbanging powoduje zegara i2c około 50 kHz.
Ze względu na prostotę wszystkie transfery USB są wykonywane za pośrednictwem punktu końcowego sterowania. Ponieważ biblioteki AVR USB obsługuje tylko urządzenia o niskiej prędkości nie mogą korzystać z przelewów masowych, które są określone tylko dla urządzeń o wysokiej i pełnej prędkości. Niskie prędkości urządzenia obsługują tzw transferów przerwań, które są ograniczone do zadanej szerokości pasma, podczas gdy transfery sterujące mogą użyć dowolnego wolnego pasma (jeśli istnieje w ogóle).
W związku z tym urządzenie wykorzystuje transfer kontrolnych dla wszystkich komunikacie. To wymaga pewnego dodatkowego ograniczenia, aby zapobiec wielu sterowników (np sterownik jądra i aplikacja test oparty libusb), aby uzyskać dostęp do urządzenia w tym samym czasie. Pod Linuksem można to osiągnąć poprzez wybranie niektórych typów żądań dostępu. Ten rodzaj kontroli dostępu może nie być możliwe w innych systemach operacyjnych.
Pobór mocy
Całe urządzenie jest tak zwanym z zasilanego urządzenia. Oznacza to, że całe urządzenie jest zasilany bezpośrednio z USB. Dlatego AVR oraz jeden lub więcej żetonów klient I2C są zasilane z sygnałem VBUS USB.
Sam zasilacz pobiera mniej niż 10mA i raportów to do serwera poprzez jego deskryptorów USB. Urządzenie jest w stanie żetonów klienckich I2C mocy, jak również. Ale ponieważ te układy różnią się zużycie energii nie jest możliwe, aby poprawnie obejmują swoje żądania do opisów urządzeń. To twój obowiązek pilnować całkowitego zasilania, a zwłaszcza, aby upewnić się, że całe urządzenie nie przekracza łączny limit USB 500mA.
Planowane jest dla przyszłych wersji oprogramowania, co sprawia że zgłaszane oprogramowanie pobór mocy konfigurowalne więc wartość może być łatwo przystosowane do rzeczywistych wymagań energetycznych całego urządzenia.
sterownik jądra
I2C-tiny-USB jest przeznaczone do pracy z Linuksem. Chodzi o sterownik jądra systemu Linux, które mosty między podsystemami USB i I2C w jądrze Linux. Kierowca następnie dołącza do urządzenia USB i uczynić magistrali I2C dostępne dla podsystemu I2C. Zatem cała konfiguracja jest przezroczysty dla aplikacji klienckich, takich jak ramy lm_sensors i nie są wymagane żadne specjalne sterowniki chipowe klienta. Zamiast kierowcy już obecny w jądrze Linux są używane z i2c-tiny-USB, jak również. Dzięki np Czujniki temperatury DS1621 stosowane w prototypie wyjście czujników może np wygląda jak to:
DS1621-I2C-2-48
Adapter: i2c-tiny-usb na magistrali 003 urządzenia 017
Temp: 21,50
Szczegóły programowe:
Wersja: 2009-02-10 Aktualizowane
Filmu: 7 Mar 16
Licencja: Wolny
Popularność: 114
Komentarze nie znaleziono