terça-feira, agosto 28, 2012

ATtiny 45/85 Ligado à USB

Um dos meus interesses pelo ATtiny 85 é a possibilidade de implementar com ele uma interface USB simplificada (de forma semelhante ao que vimos no USBtinyISP). Existem alguns projetos a respeito na internet, vou testar inicialmente o V-USB.

O V-USB é um projeto bastante ambicioso, suportando diversos modelos de microcontrolador AVR e diversões opções de clock para implementar diversos tipos de dispositivos USB, como teclado, mouse, serial e dispositivos personalizados.

Como experimento inicial escolhi o EasyLogger. É um dos projetos de referência do V-USB e utiliza um ATtiny45 sem cristal externo. A aplicação é simples: a cada 1 segundo é amostrada a entrada analógica AN0 e o valor lido enviado para o PC simulando uma digitação. Um botão liga e desliga a amostragem e um LED indica se ela está sendo feita.

A minha montagem é um pouco diferente da descrita no site oficial. Além de usar um ATtiny85 ao invés do 45, liguei na entrada AN0 um resistor sensível a luz (LDR) para ter uma forma simples de gerar leituras variadas.

Segue abaixo o circuito que montei:


O circuito é simples. A alimentação do ATtiny é obtida diretamente da USB. por segurança um capacitor de 10uF é colocado próximo ao conector USB e um de 100nF próximo ao ATtiny.

Zeners limitam as tensões nos sinais de dados para valores adequados. Resistores de 47R garantem as impedâncias apropriadas. Um pullup de 2K2 no sinal D- sinaliza que é um dispositivo de baixa velocidade.

O botão é ligado diretamente entreo ATtiny e terra, o pullup interno é usado para garantir a leitura de valor alto quando o botão está solto. O LED está ligado a um outro pino, em série com um resistor de 220R.

A entrada analógica lê a tensão em um divisor resistivo que de um lado tem o LDR e do outro um resistor de 1K7. Quando o LDR está iluminado sua resistência se aproxima de zero e a tensão na entrada fica próxima de 5V. Já com o LDR no escuro sua resistência é alta e a tensão se aproxima de zero.

No próximo post da série vou falar sobre o software, que acabou dando mais trabalho do que eu esperava.

2 comentários:

Luis paulo Gomes da Cunha disse...

Qual IDE eu uso para programar?

Daniel Quadros disse...

Eu normalmente não uso uma IDE, compilo por linha de comando usando o avr-gcc (ver em http://dqsoft.blogspot.com.br/2012/05/programacao-c-no-avr-usando-o-avr-gcc.html).