USB HID LPC1768

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

USB HID LPC1768

Mensagempor Maffeis » 30 Mai 2014 11:47

Bom dia Senhores

Estou cheio de duvidas com relação a comunicação usb HID.

Oq está funcionado hj enviar e receber 1 Byte tanto PC-placa quanto placa PC.

Como faço para enviar mais de 1 Byte?
Via HID é possível enviar pacotes com 64 bytes por exemplo?

Obrigado.
Maffeis
Word
 
Mensagens: 501
Registrado em: 07 Ago 2010 19:10

Re: USB HID LPC1768

Mensagempor vtrx » 30 Mai 2014 12:08

Poste um fragmento de código para poder saber como esta setado o seu descritor e variáveis,e sim,você pode enviar 'pacotes' de 64k por vez no máximo(HID padrão)a 1 milissegundo,digo HID padrão porque no XP é possível enviar pacotes maiores,mas como sabe o XP ja era...
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: USB HID LPC1768

Mensagempor Maffeis » 30 Mai 2014 13:45

Quando chegar em casa eu posto alguns trechos de código

Porém eu vou seguindo ele e sempre chego num monte de rotinas

como funciona a comunicação, tipo uma sequencia

primeiro detecta
o host envia uma solicitação para o device a cada ms msm?
O device pode enviar dados para o host a qualquer momento?
Maffeis
Word
 
Mensagens: 501
Registrado em: 07 Ago 2010 19:10

Re: USB HID LPC1768

Mensagempor vtrx » 30 Mai 2014 21:08

o host envia uma solicitação para o device a cada ms msm?

Sim,mas não é preciso manter essa comunicação constantemente.

O device pode enviar dados para o host a qualquer momento?

Sim,desde que tenha respondida uma vez na conexão.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: USB HID LPC1768

Mensagempor B-EAGLE » 01 Jun 2014 19:57

Eu uso a HIDAPI.

Bem legal, funfa bem no wi7/8 e linux. OSX não testei ainda.
Integrei junto com o QT num dos meus programas.

Mas eu utilizo só os reports, pra passar mais de 64 bytes por vez precisa ser em modo bulk.
B-EAGLE
Word
 
Mensagens: 847
Registrado em: 19 Out 2006 14:12
Localização: Campo Grande - MS

Re: USB HID LPC1768

Mensagempor B-EAGLE » 01 Jun 2014 19:57

B-EAGLE
Word
 
Mensagens: 847
Registrado em: 19 Out 2006 14:12
Localização: Campo Grande - MS

Re: USB HID LPC1768

Mensagempor Maffeis » 03 Jun 2014 12:37

Acredito que esse seja o descriptor

Em qual das linhas eu configura se é para trocar 8 16 ou 64?

Obrigado.

Código: Selecionar todos
/* USB Configuration Descriptor */
/*   All Descriptors (Configuration, Interface, Endpoint, Class, Vendor */
const uint8_t USB_ConfigDescriptor[] = {
/* Configuration 1 */
  USB_CONFIGUARTION_DESC_SIZE,       /* bDescriptorType */
  USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType */
  WBVAL(                             /* wTotalLength */
    USB_CONFIGUARTION_DESC_SIZE +
    USB_INTERFACE_DESC_SIZE     +
    HID_DESC_SIZE               +
    USB_ENDPOINT_DESC_SIZE
  ),
  0x01,                              /* bNumInterfaces */
  0x01,                              /* bConfigurationValue */
  0x00,                              /* iConfiguration */
  USB_CONFIG_BUS_POWERED /*|*/       /* bmAttributes */
/*USB_CONFIG_REMOTE_WAKEUP*/,
  USB_CONFIG_POWER_MA(100),          /* bMaxPower */
/* Interface 0, Alternate Setting 0, HID Class */
  USB_INTERFACE_DESC_SIZE,           /* bLength */
  USB_INTERFACE_DESCRIPTOR_TYPE,     /* bDescriptorType */
  0x00,                              /* bInterfaceNumber */
  0x00,                              /* bAlternateSetting */
  0x01,                              /* bNumEndpoints */
  USB_DEVICE_CLASS_HUMAN_INTERFACE,  /* bInterfaceClass */
  HID_SUBCLASS_NONE,                 /* bInterfaceSubClass */
  HID_PROTOCOL_NONE,                 /* bInterfaceProtocol */
  0x5C,                              /* iInterface */
/* HID Class Descriptor */
/* HID_DESC_OFFSET = 0x0012 */
  HID_DESC_SIZE,                     /* bLength */
  HID_HID_DESCRIPTOR_TYPE,           /* bDescriptorType */
  WBVAL(0x0100), /* 1.00 */          /* bcdHID */
  0x00,                              /* bCountryCode */
  0x01,                              /* bNumDescriptors */
  HID_REPORT_DESCRIPTOR_TYPE,        /* bDescriptorType */
  WBVAL(HID_REPORT_DESC_SIZE),       /* wDescriptorLength */
/* Endpoint, HID Interrupt In */
  USB_ENDPOINT_DESC_SIZE,            /* bLength */
  USB_ENDPOINT_DESCRIPTOR_TYPE,      /* bDescriptorType */
  USB_ENDPOINT_IN(1),                /* bEndpointAddress */
  USB_ENDPOINT_TYPE_INTERRUPT,       /* bmAttributes */
  WBVAL(0x0004),                     /* wMaxPacketSize */
  0x20,          /* 32ms */          /* bInterval */
/* Terminator */
  0                                  /* bLength */
};
Maffeis
Word
 
Mensagens: 501
Registrado em: 07 Ago 2010 19:10

Re: USB HID LPC1768

Mensagempor fabim » 03 Jun 2014 15:01

wMaxPacketSize !!!
Mas veja você precisa saber se ele usa um ou dois EP, e se usa dois precisa configurar o wMaxPacketSize para quantos escrita e quantos leitura.

Só lembrando que, o uC não escreve nada pela usb para o pc.
Ele escreve dados em algum EP previamente configurado nos descriptors, e seta um Bit do byte de informação, avisando ao PC que é para ele LER os dados no EP-x, o mesmo avisando que pode receber dados !!!

Abçs
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!!!?

Re: USB HID LPC1768

Mensagempor vtrx » 03 Jun 2014 15:08

Maffeis,falta verificar as rotinas dos End points.
Seu descritor pode ter uma comunicação melhor caso use FullSpeed e altere o trecho em;
Código: Selecionar todos
[size=150]0x20,          /* 32ms */          /* bInterval */[/size]


Para:
Código: Selecionar todos
0[size=150]x01,          /* 1ms */          /* bInterval *[/size]/


Posate o projeto.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: USB HID LPC1768

Mensagempor Maffeis » 04 Jun 2014 11:00

vtrx mudei esses valores que vc falou realmente eu aumentei ele ficou mais lento diminui ficou mais rápido.
não consegui ver se ficou com 1ms msm, mais ficou bem mais rápido, coloquei um text box e a cada vez que recebesse o valor 1 escreve tecla 1 na tela ai verifiquei o tempo que levou pra encher o text box.

Fabim

Estou vendo essa parte do descriptor que vc comentou e estou estudando os Endpoints, por enquanto não funcionou ainda

Obrigado.
Maffeis
Word
 
Mensagens: 501
Registrado em: 07 Ago 2010 19:10

Re: USB HID LPC1768

Mensagempor fabim » 05 Jun 2014 16:58

Cara, o que você quer exatamente ?
Diz que eu faço aqui, eu tenho exemplos aqui, e tem mais coisas pra mexer que apenas no descriptor !!
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!!!?

Re: USB HID LPC1768

Mensagempor Maffeis » 05 Jun 2014 18:33

O fabim obrigado msm pela ajuda

se não for te incomodar eu aceito sim

Oq eu estou pensando em fazer é comunicar bem a placa com o PC via usb

Primeiramente queria receber pacotes de dados (64 bytes) e tratar esses dados no PC para plotar gráficos

Assim eu vou conseguir receber um sinal de encoder efetuar o controle e controlar uma saída 0-10V e fechar uma malha de controle

Isso seria uma janela do programa pra ajudar no desenvolvimento assim eu conseguiria ver todas as variáveis na tela do PC set point PV CV

A segunda parte seria fazer troca de informação tipo parâmetros do sistema

A principio seria parte do meu TCC, mais a ideia é estender isso num controle de elevador com velocidade posição leitura de chamadas parametrização de tempos de porta visualização de falhas e por ae vai.
Maffeis
Word
 
Mensagens: 501
Registrado em: 07 Ago 2010 19:10

Re: USB HID LPC1768

Mensagempor fabim » 05 Jun 2014 18:54

Bem, você explicou de mais... KKK
Só a parte de troca de 64 bytes já bastava !!!! KKKKKKKKKKKKKKKKKKKK

Vou montar e te mando.

Vou criar um buffer de leitura e escrita de 64 bytes.

BELEZZZZZZ ?
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!!!?

Re: USB HID LPC1768

Mensagempor Maffeis » 05 Jun 2014 19:30

Perfeito fabim

vai me ajudar demais da conta
Maffeis
Word
 
Mensagens: 501
Registrado em: 07 Ago 2010 19:10

Re: USB HID LPC1768

Mensagempor fabim » 09 Jun 2014 08:27

OO menino feio.
Manda no meu e-mail o projeto que você esta mexendo !
Eu baixei um exemplo que eu encontrei, e está cheio de pau em casting, etc, e o keil esta reclamando e não consigo compilar.
O Keil 5.x, o editor de texto está completo, e tem várias funções a mais que o 4.
Não estou conseguindo compilar !!

Manda no " fableach (15KG) liamtoh dot com "
liamtoh ao contrario !!
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!!!?

Próximo

Voltar para ARM

Quem está online

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

x