i2c-tiny-usb

Tela Software:
i2c-tiny-usb
Detalhes de Software:
Versão: 2009-02-10 Atualizado
Data de upload: 7 Mar 16
Revelador: Till Harbaum
Licença: Livre
Popularidade: 46

Rating: 5.0/5 (Total Votes: 1)

i2c-tiny-usb é um projeto de hardware open source / open.
Anexar qualquer chip cliente I2C (Thermo sensores, conversor AD, displays, motorista relais, ...) para o seu PC via USB ... rápida, fácil e barato! Drivers para Linux, Windows e MacOS disponíveis.
O projeto i2c-tiny-usb é um projeto de hardware open source / open. O objetivo da i2c-tiny-usb é fornecer uma interface i2c genérico barato para ser anexado ao usb. Ele foi criado como um substituto para os porta de impressora simples e barato para adaptadores I2C. Uma solução USB tem várias vantagens incl. a fonte de alimentação embutida e uma mais futuro interface de prova.
Além disso, não cpu bitbanging intensa é necessária no lado do host. Esta solução USB ainda requer menos peças do que algumas soluções de porta de impressora.
Enquanto o i2c-tiny-usb foi desenvolvido nos termos e para Linux também funciona no Windows e MacOS X. Um motorista janelas de demonstração e aplicação de demonstração está incluído para você começar imediatamente.
O projeto i2c-tiny-usb é baseado em:
O projeto USB Linux ea implementação i2c Linux
O motorista janelas e aplicação de teste são baseados no libusb-win32
AVR-USB, uma implementação de software pura de USB para a plataforma AVR
USBtiny, outro software implementação usb para o AVR
O hardware da interface I2C-minúsculo-USB consiste no Atmel AVR ATtiny45 CPU, um microcontrolador barato e fácil de obter com 4 Kbytes de flash (dos quais ~ 2k são utilizados no presente pedido) e 256 bytes de memória RAM. O processador encontra-se rodeado por algumas outras partes.
A interface USB
A interface USB da interface i2c-tiny-usb é baseado em uma implementação de software puro e usa dois pinos do AVR (PB0 e PB2). Esta implementação software suporta apenas USB com pouca velocidade que é sinalizada no PC por resistor R1.
A interface I2C é implementado utilizando uma abordagem bitbanging. A interface twi hardware suportado do attiny45 é obrigado a pinos de hardware no chip que são necessários para a operação de USB e não pode, portanto, ser usado para I2C. A interface I2C bitbanging sendo usado em vez pode não ser totalmente compatível I2C e, portanto, nem todos os chips cliente I2C podem funcionar corretamente neste ônibus. Não há incompatibilidades foram relatados até agora. O i2c-tiny-usb fornece um software de atraso relógio i2c ajustável que permite configurar o relógio i2c. O atraso padrão é 10us. Devido a atrasos adicionais no código i2c bitbanging isso resulta em um relógio i2c de cerca de 50kHz.
Por razões de simplicidade todas as transferências USB é feito através do terminal de controle. Desde a biblioteca avr usb única suporta dispositivos de baixa velocidade não pode usar transferências em massa que são especificados somente para dispositivos de alta e cheio de velocidade. dispositivos de baixa velocidade suportam chamada transferências de interrupção que são limitados a uma largura de banda predefinida enquanto as transferências de controle podem utilizar qualquer largura de banda livre (se houver algum).
Por conseguinte, o dispositivo usa transferências de controle para toda a sua comunicação. Isso requer uma certa limitação adicional para evitar software de driver múltiplos (por exemplo, o driver de kernel e o aplicativo de teste com base libusb) para acessar o dispositivo, ao mesmo tempo. Sob o Linux isto pode ser conseguido pela seleção de certos tipos de solicitação de acesso. Este tipo de controle de acesso pode não ser possível em outros sistemas operacionais.
Consumo de energia
Todo o dispositivo é um dispositivo chamado ônibus movido. Isto significa que o dispositivo completo é alimentado directamente a partir de USB. Portanto, o AVR e um ou mais chips cliente I2C são alimentados a partir do sinal VBUS USB.
O adaptador se desenha menos de 10 mA e relata isso para o anfitrião através de seus descritores USB. O dispositivo é capaz de chips de cliente de potência I2C bem. Mas uma vez que estes chips variam de consumo de energia não é possível incluir correctamente as suas exigências para os descritores de dispositivo. É sua a responsabilidade de manter um olho sobre o fornecimento de energia total e especialmente para se certificar de que todo o dispositivo não exceda o limite de USB total de 500mA.
Está previsto para futuras versões de firmware para tornar o software consumo de energia relatado configurável de modo que o valor pode ser facilmente adaptado às exigências de potência reais de todo o dispositivo.
driver de kernel
O i2c-tiny-usb é feito para ser usado com Linux. Ele vem com um driver de kernel Linux que faz a ponte entre os subsistemas de USB e I2C no kernel Linux. O motorista, em seguida, atribui ao dispositivo USB e fazer o bus i2c disponível para o subsistema i2c. Assim, toda a configuração é transparente para aplicativos clientes, como o quadro lm_sensors e há drivers especiais de chips cliente são necessárias. Pelo contrário, os motoristas já presentes no kernel do Linux são usados ​​com o i2c-tiny-usb bem. Com e.g. os sensores de temperatura ds1621 usados ​​no protótipo da saída dos sensores podem, por exemplo parece com isso:
ds1621-i2c-2-48
Adaptador: i2c-tiny-usb no autocarro 003 do dispositivo 017
Temp: 21,50

Programas semelhantes

pf-kernel
pf-kernel

20 Feb 15

DruidBSD
DruidBSD

20 Feb 15

Linux Kernel
Linux Kernel

17 Aug 18

OpenNAS
OpenNAS

17 Feb 15

Outro software de desenvolvedor Till Harbaum

NanoVM
NanoVM

2 Jun 15

Comentário para i2c-tiny-usb

Comentários não encontrado
Adicionar comentário
Ligue imagens!