Página 1 de 2
USB HID LPC1768

Enviado:
30 Mai 2014 11:47
por Maffeis
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.
Re: USB HID LPC1768

Enviado:
30 Mai 2014 12:08
por vtrx
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...
Re: USB HID LPC1768

Enviado:
30 Mai 2014 13:45
por Maffeis
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?
Re: USB HID LPC1768

Enviado:
30 Mai 2014 21:08
por vtrx
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.
Re: USB HID LPC1768

Enviado:
01 Jun 2014 19:57
por B-EAGLE
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.
Re: USB HID LPC1768

Enviado:
01 Jun 2014 19:57
por B-EAGLE
Re: USB HID LPC1768

Enviado:
03 Jun 2014 12:37
por Maffeis
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 */
};
Re: USB HID LPC1768

Enviado:
03 Jun 2014 15:01
por fabim
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
Re: USB HID LPC1768

Enviado:
03 Jun 2014 15:08
por vtrx
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.
Re: USB HID LPC1768

Enviado:
04 Jun 2014 11:00
por Maffeis
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.
Re: USB HID LPC1768

Enviado:
05 Jun 2014 16:58
por fabim
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 !!
Re: USB HID LPC1768

Enviado:
05 Jun 2014 18:33
por Maffeis
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.
Re: USB HID LPC1768

Enviado:
05 Jun 2014 18:54
por fabim
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 ?
Re: USB HID LPC1768

Enviado:
05 Jun 2014 19:30
por Maffeis
Perfeito fabim
vai me ajudar demais da conta
Re: USB HID LPC1768

Enviado:
09 Jun 2014 08:27
por fabim
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 !!