Página 1 de 1

HID com PIC18f4550 high-speed

MensagemEnviado: 09 Set 2010 18:36
por valdir.pavan
Olá pessoal,

Estou com um problema. Estou fazendo uma aplicação com PIC e o PC via USB. Eu estou conseguindo receber e enviar dados para o PC pelas endpoints normalmente, o problema é a velocidade. Eu gostaria de comunicar high-speed e não estou conseguindo. Eu já coloquei um resistor de pull-up de 1,5k no D+, mas eu não sei onde preciso mudar nos DESCRIPTORS para fazer o PC entender que é high-speed e fazer comunicar em alta velocidade.
Qual descriptor eu preciso alterar e qual parametro para conseguir comunicar em high-speed com o PC?
Tem algum software ou algum lugar onde eu possa ver se meu dispositivo esta nomeado, low-speed, full-speed ou high-speed?

obrigado.

MensagemEnviado: 09 Set 2010 19:15
por fabim
bom, tem usb 1.1, 2.0, e os bulck high speed que dizem ser de 480mBPS que na verdade não chega a 2/10 disso...
qual você esta dizendo!!!

MensagemEnviado: 09 Set 2010 20:50
por renatokodaira
Dispositivos USB classe HID nao conseguem ter velocidade maior do que 64 bytes a cada milissegundo.

MensagemEnviado: 10 Set 2010 02:52
por valdir.pavan
Como eu poderia fazer para conseguir comunicar com o PC a 480Mbps? Da para fazer isso com o compilador CCS? Existe alguma biblioteca pronta?

MensagemEnviado: 10 Set 2010 07:40
por fabim
renatokodaira escreveu:Dispositivos USB classe HID nao conseguem ter velocidade maior do que 64 bytes a cada milissegundo.


e que na pratica não dá 64KBPS !!! da menos, hehehe.. Só o CDC que da 64K e mais ainda, chega a 152KB!!

O amigo do HS, seguinte.
Esquece, são poucos micros que conseguem em bulck chegar a 96Mb, e é necessario criar um drive especifico, onde o pc configura a interface usb host, com as devidas caracteristicas para o dado periférico.

Prestenção.
A interface USB do pic, precisa de 4 * CK, para que o PC consiga ler e escrever nos endpoints com sincronismo.
USB 2.0 = 12Mbps. Sendo assim, 48Mbps exatos para trabalhar em usb 2.0...
Lembrando que usb device, não manda nada para o PC, é o PC que lê e escreve na região de memoria qeu você informou pelo descriptor que são os endpoints!! Mas mesmo assim, é necessario um clock de sincronismo por causa da fifo e da velocidade de leitura BtoB.

Bom, em poucas palavras. Esquece, pic só serve para piscar led, e escrever em display. uauauauau
Brincadeira, ou amigo. Usb do pic é só 1.1 ou 2.0, 6 ou 12 Mbps.

Existem, coldfires, blackfins, ARM11, e até ARM9.
Que são usb HS, que chegam até a 96Mbps!! que é coisa bagarai !!!

O meu penisdrive, não passa de 76Mbps!!!

Existem algumas interfaces para equipos de medição, que chegam a mais de 150Mbps. Mais ai ta a pergunta, sabe porque dizem que não presta que não funciona direito ? o usb é adaptativo se o fabricante prever isto no projeto, só que foda-se isto, o cara faz o device drive, e o descriptor pra 150Mbps, e foda-se novamente o restante. Ai o cara pega uma mainboard vagaba, com um windows pesado, e o task da usb não da conta de acompanhar as porradas!!! uauaua odeio pic, odeio pic!! To nervoso !!! AAAAAAAAAAAARRRRGGGGGGGGGGGGGG

MensagemEnviado: 10 Set 2010 09:45
por valdir.pavan
Como posso fazer um driver para um DEVICE USB se comunique em alto velocidade com o PC. Tem algum site ou algum tutorial que ensine?

obrigado

MensagemEnviado: 10 Set 2010 11:01
por fabim
valdir.pavan escreveu:Como posso fazer um driver para um DEVICE USB se comunique em alto velocidade com o PC. Tem algum site ou algum tutorial que ensine?

obrigado

Meo, pelo amor de Deus.
A bosta do pic.. Bosta do PIC, não chega a HS, pois o seu clock e seu hW não são projetados para isto... Será que vou ter que desenhar pra você. meo!!! ta doido, que cara complicado.

MensagemEnviado: 10 Set 2010 16:53
por valdir.pavan
Você me convenceu. O PIC é uma bosta mesmo.
Semana que vem vou comprar um kit de ARM para começar minha nova saga. Gostaria que VC me desse alguma dica de qual comprar. ARM9 ou ARM11?
Como se programa um ARM? Da para usar ele como um PIC, programando diretamente nele ou eu vou ter que instalar um SO para fazer um programa para ele?
Se eu quiser fazer do ARM um slave USB eu tenho bibliotecas prontas para fazer isso? Como faria um Driver para o PC entender que eu quero comunicar em alta velocidade?
Como programo um ARM? Existem bastante bibliotecas como no CCS para PIC?
Me ajude com o inicial para eu começar a desenvolver.

Obrigado

MensagemEnviado: 10 Set 2010 16:57
por fabim
Cara, tu só consegue escrever um drive pro pc ´pro negocio ir a 100Mbps, se o uC chegar a 100Mbps, caso contrario é simplesmente inutil escrever o drive.

Abraços

MensagemEnviado: 10 Set 2010 17:02
por valdir.pavan
Mas e as outras respostas? Como posso começar com ARM, por onde, qual compildor? linguagem?

MensagemEnviado: 10 Set 2010 17:04
por valdir.pavan
Mas e as outras respostas? Como posso começar com ARM, por onde, qual compilador? linguagem? Qual melhor caminho a seguir? Onde tem exemplos?

MensagemEnviado: 10 Set 2010 17:04
por msamsoniuk
e depois eu falo que ethernet eh melhor que usb vcs ficam bravos neh? :)

bricandinho atoa pega 100mbps full-duplex, 1000mbps se vc comecar a falar serio, 10Gbps se vc tiver bandwidth de memoria e jah tem nego trabalhando com 100Gbps por ae.

caraca! e ethernet nem precisa de device driver! hehehe :)

fabim escreveu:
renatokodaira escreveu:Dispositivos USB classe HID nao conseguem ter velocidade maior do que 64 bytes a cada milissegundo.


e que na pratica não dá 64KBPS !!! da menos, hehehe.. Só o CDC que da 64K e mais ainda, chega a 152KB!!

O amigo do HS, seguinte.
Esquece, são poucos micros que conseguem em bulck chegar a 96Mb, e é necessario criar um drive especifico, onde o pc configura a interface usb host, com as devidas caracteristicas para o dado periférico.

Prestenção.
A interface USB do pic, precisa de 4 * CK, para que o PC consiga ler e escrever nos endpoints com sincronismo.
USB 2.0 = 12Mbps. Sendo assim, 48Mbps exatos para trabalhar em usb 2.0...
Lembrando que usb device, não manda nada para o PC, é o PC que lê e escreve na região de memoria qeu você informou pelo descriptor que são os endpoints!! Mas mesmo assim, é necessario um clock de sincronismo por causa da fifo e da velocidade de leitura BtoB.

Bom, em poucas palavras. Esquece, pic só serve para piscar led, e escrever em display. uauauauau
Brincadeira, ou amigo. Usb do pic é só 1.1 ou 2.0, 6 ou 12 Mbps.

Existem, coldfires, blackfins, ARM11, e até ARM9.
Que são usb HS, que chegam até a 96Mbps!! que é coisa bagarai !!!

O meu penisdrive, não passa de 76Mbps!!!

Existem algumas interfaces para equipos de medição, que chegam a mais de 150Mbps. Mais ai ta a pergunta, sabe porque dizem que não presta que não funciona direito ? o usb é adaptativo se o fabricante prever isto no projeto, só que foda-se isto, o cara faz o device drive, e o descriptor pra 150Mbps, e foda-se novamente o restante. Ai o cara pega uma mainboard vagaba, com um windows pesado, e o task da usb não da conta de acompanhar as porradas!!! uauaua odeio pic, odeio pic!! To nervoso !!! AAAAAAAAAAAARRRRGGGGGGGGGGGGGG

MensagemEnviado: 10 Set 2010 17:07
por msamsoniuk
e depois eu falo que ethernet eh melhor que usb vcs ficam bravos neh? :)

bricandinho atoa pega 100mbps full-duplex, 1000mbps se vc comecar a falar serio, 10Gbps se vc tiver bandwidth de memoria e jah tem nego trabalhando com 100Gbps por ae.

caraca! e ethernet nem precisa de device driver! hehehe :)

fabim escreveu:
renatokodaira escreveu:Dispositivos USB classe HID nao conseguem ter velocidade maior do que 64 bytes a cada milissegundo.


e que na pratica não dá 64KBPS !!! da menos, hehehe.. Só o CDC que da 64K e mais ainda, chega a 152KB!!

O amigo do HS, seguinte.
Esquece, são poucos micros que conseguem em bulck chegar a 96Mb, e é necessario criar um drive especifico, onde o pc configura a interface usb host, com as devidas caracteristicas para o dado periférico.

Prestenção.
A interface USB do pic, precisa de 4 * CK, para que o PC consiga ler e escrever nos endpoints com sincronismo.
USB 2.0 = 12Mbps. Sendo assim, 48Mbps exatos para trabalhar em usb 2.0...
Lembrando que usb device, não manda nada para o PC, é o PC que lê e escreve na região de memoria qeu você informou pelo descriptor que são os endpoints!! Mas mesmo assim, é necessario um clock de sincronismo por causa da fifo e da velocidade de leitura BtoB.

Bom, em poucas palavras. Esquece, pic só serve para piscar led, e escrever em display. uauauauau
Brincadeira, ou amigo. Usb do pic é só 1.1 ou 2.0, 6 ou 12 Mbps.

Existem, coldfires, blackfins, ARM11, e até ARM9.
Que são usb HS, que chegam até a 96Mbps!! que é coisa bagarai !!!

O meu penisdrive, não passa de 76Mbps!!!

Existem algumas interfaces para equipos de medição, que chegam a mais de 150Mbps. Mais ai ta a pergunta, sabe porque dizem que não presta que não funciona direito ? o usb é adaptativo se o fabricante prever isto no projeto, só que foda-se isto, o cara faz o device drive, e o descriptor pra 150Mbps, e foda-se novamente o restante. Ai o cara pega uma mainboard vagaba, com um windows pesado, e o task da usb não da conta de acompanhar as porradas!!! uauaua odeio pic, odeio pic!! To nervoso !!! AAAAAAAAAAAARRRRGGGGGGGGGGGGGG

MensagemEnviado: 10 Set 2010 17:10
por msamsoniuk
e depois eu falo que ethernet eh melhor que usb vcs ficam bravos neh? :)

bricandinho atoa pega 100mbps full-duplex, 1000mbps se vc comecar a falar serio, 10Gbps se vc tiver bandwidth de memoria e jah tem nego trabalhando com 100Gbps por ae.

caraca! e ethernet nem precisa de device driver! hehehe :)

fabim escreveu:
renatokodaira escreveu:Dispositivos USB classe HID nao conseguem ter velocidade maior do que 64 bytes a cada milissegundo.


e que na pratica não dá 64KBPS !!! da menos, hehehe.. Só o CDC que da 64K e mais ainda, chega a 152KB!!

O amigo do HS, seguinte.
Esquece, são poucos micros que conseguem em bulck chegar a 96Mb, e é necessario criar um drive especifico, onde o pc configura a interface usb host, com as devidas caracteristicas para o dado periférico.

Prestenção.
A interface USB do pic, precisa de 4 * CK, para que o PC consiga ler e escrever nos endpoints com sincronismo.
USB 2.0 = 12Mbps. Sendo assim, 48Mbps exatos para trabalhar em usb 2.0...
Lembrando que usb device, não manda nada para o PC, é o PC que lê e escreve na região de memoria qeu você informou pelo descriptor que são os endpoints!! Mas mesmo assim, é necessario um clock de sincronismo por causa da fifo e da velocidade de leitura BtoB.

Bom, em poucas palavras. Esquece, pic só serve para piscar led, e escrever em display. uauauauau
Brincadeira, ou amigo. Usb do pic é só 1.1 ou 2.0, 6 ou 12 Mbps.

Existem, coldfires, blackfins, ARM11, e até ARM9.
Que são usb HS, que chegam até a 96Mbps!! que é coisa bagarai !!!

O meu penisdrive, não passa de 76Mbps!!!

Existem algumas interfaces para equipos de medição, que chegam a mais de 150Mbps. Mais ai ta a pergunta, sabe porque dizem que não presta que não funciona direito ? o usb é adaptativo se o fabricante prever isto no projeto, só que foda-se isto, o cara faz o device drive, e o descriptor pra 150Mbps, e foda-se novamente o restante. Ai o cara pega uma mainboard vagaba, com um windows pesado, e o task da usb não da conta de acompanhar as porradas!!! uauaua odeio pic, odeio pic!! To nervoso !!! AAAAAAAAAAAARRRRGGGGGGGGGGGGGG