USB HID.

Para "abobrinhas" use o " Boteco"

Moderadores: andre_luis, 51, guest2003, Renie

USB HID.

Mensagempor fabim » 21 Set 2008 14:01

psoall.
Recebi uns 8 e1/2´s estes dias com o pessoal perguntando sobre.
P1-Como simular USB no proteus?
p2-A liby dos compiladores mikroe HID funcionan realmente?

R2: sim o proteus 7.2"SP2" para cima, é liberado a simulação com o componente USB, desde que a licensa permita isto.
A simulação se da muito bem em low speedy, em full speedy fica meio lento e dependendo da maquina pode até travar.
A simulação pode ser feita apenas em derivados de aplicações HID, e somente HID, emulações de CDC não funcionan corretamente ou travam o PC, emulações feitas por nós o do exemplo funciona perfeitamente.
Observem que os exemplos que acompanham o soft são. Mass storage, e mouse. Estes dois exemplos são HID..
Para que qualquer aplicação hid possa funcionar corretamente, o VID e PID tem que ser o mesmo usado nos exemplos, que são os fornecidos pela microchip.
VID 0x04d8
PID 0X0009
O mais importante na simulação que é o maior causador de erros, é o clock inserido nas configurações do pic utilizado.
EX 18F4455:
Eu utilizo cristal externo de 20mhz, então nas config´s eu...
Div5pll, pllosc, cpuck / 2..
sendo assim, o clock informado no pic, é de 20mhz, e não de 48...
Pois o simulador acompanha a lógica real do sistema.

R2:
Os microcontroladores com interface usb, são bem flexiveis em configurações de conexão, pois tem gerador de Vusb 3,3V interno, 2 resistores de pull up, configuraveis nas linhas D+ e D-, que servem para informar full ou low speedy, "vide datasheet" ou usb.org .
O pino de Vusb, não tem funcionalidade de porta, serve apenas para gerar internamente a tensão de lógica para pull-up da identificação usb full ou low speedy, é super inportante que neste pino haja um capacitor para filtragem, caso contrario ocorrerá erro de comunicação.
Segue lógica de conexão.
O grande problema que os hobystas e técnicos encontram, é a preguiça de pesquisar sobre o sistema de conexão da maledita usb.
Eles querem simplesmente copiar um AN, e ter que funcionar, num é assim não manezáda.

Se você for montar um circuito de interface USB cuja o danado seja alimentado com fonte externa e não pelo próprio cabo USB..
1° -- configuração de portas registros etc.
2°--"inicialização da usb", se você inicializar a usb sem que o cabo esteja realmente interligado ao circuito, no momento que você espetar no PC o SO vai acusar um erro de desconhecido blabla...
Bom então vimos que só podemos inicializar a função usb, quando o cabo realmente estiver interligado ao pc..

Procedimentos..
Configurou portas, registradores, etcetc...

Antes de inicializar a usb..
1°-Informa para o PC que é full ou low utilizando os 2 PULL-UP´s internos do PIC. "esta parte não interessa se o cabo esta ou não liado"
2°- com um pino do PIC interligado ao VDD do CABO USB, vocÊ vai perguntar se é 1 ou 0. Se for 1 quer dizer que o cabo realmente está ligado ao circuito, se 0 não esta.
Sendo assim, você pode criar uma função que devolve 1 ou 0 conforme o cabo esta ligado ou não ao circuito.
Código: Selecionar todos
 EX.
  Function usb_conectado : boolean;
  begin
  if testbit(portX,X)=1 then
  begin
  result := true;
  end
  else
  result := false;
  end;
 

Esta função à cima será utilizada da seguinte maneira.

Program usb..
x
x
x
x
x
x
x
x
Begin /// main princial
config registradores,
config LCD,
config SPI
etc
etc

If usb_conectado then HID_enable(@tx,@rx);

while usb_conectado then
begin
// aqui ficara minha aplicação que utiliza usb
end;
HID_disable;
end;

Existem outras formas, mais aí vai depender apenas de você, tendo em vista que toda vez que o cabo for desligado do PC, a função HID_enable, tem que ser executada outra vez.

Observem que o exemplo é para circuitos com VDD externa, mais o mesmo processo pode ser associado com alimentação do cabo USB.

Espero ter ajudado, à alguns sofredores.

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Voltar para Assuntos Gerais

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x