USB com PIC18F4550

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

USB com PIC18F4550

Mensagempor Francesco » 14 Jan 2010 16:17

Olá pessoal!

Cansei da serial, 115200bps é muito pouco! Não vejo outra opção se não ir para o mundo USB de uma vez por todas. Mas não sei bem o que fazer do lado do PC...

Com a serial eu tinha desde o HyperTerminal até o Docklight, era fácil trabalhar. Mas no PC terei que desenvolver o driver também, não é? Como faço isso? Alguém sabe a receita de bolo?
Obrigado.

Francesco
Avatar do usuário
Francesco
Word
 
Mensagens: 699
Registrado em: 04 Mar 2008 00:22
Localização: São Paulo - SP

Mensagempor _blackmore_ » 14 Jan 2010 18:57

Bixo ... se não me engano... eu vi algo parecido na elektor ... a 1 ou 2 anos ... controlador universal USB ... vou procurar e depois lhe mando por mail.

abrax!
_blackmore_
Dword
 
Mensagens: 1397
Registrado em: 28 Set 2008 13:26

Mensagempor fabim » 14 Jan 2010 19:08

Frantchesco,,,
não sei ao certo o seu nivel de conhecimento sobre usb.

Mas quando vocÊ diz que esta cansado de 14400 bytes por segundo, tu esta com o que em mente pra querer mexer com usb ?

Veja tem dois tipos de comunicação.
1 e mais usada é a HID, não precisa de drive nem nada, e tu pode criar o descriptor pro pic ser o que ele quiser. Do lado do pc, um aplicativinho simples que fala com a API do SO, e se comunica com o host que esta controlando o device hid, no caso o pic.

Outro tipo, e não tão usado.
O PIC emula uma serial, aí precisa de drive pro SO saber o que é o pic, e como ele funciona. Ja nos programas não precisa de nada para usb, pois o windows vai apresentar mais uma ou umas portas seriais, que no caso seram o PIC.

Abraços
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!!!?

Mensagempor Francesco » 14 Jan 2010 23:26

Olá Blackmore, obrigado pela ajuda. Realmente um projeto pronto é uma grande ajuda.

Fabim, a idéia era essa mesmo. No caso, se não me engano a pilha para comunicação na USB é a CDC, não é? Sei que a Microchip disponibilizou um aplication notes sobre isso. Mas o lado do PC não ficou claro...

Meu problema é o volume de dados, a serial já está demorando demais para isso. Para fazer um projeto que trabalhe, por exemplo, com stream de audio, já não dá.

Quanto ao PIC, não me preocupo muito. A dúvida é criar um driver no lado do PC.

Obrigado pela ajuda.
Avatar do usuário
Francesco
Word
 
Mensagens: 699
Registrado em: 04 Mar 2008 00:22
Localização: São Paulo - SP

Mensagempor fabim » 15 Jan 2010 07:09

olha o pessoal confunde muito isso, e acaba se frudinhando.

CDC = emulação de serial, consegue-se um numero maior de bytes por segundo, só que nenhuma garantia do que o pic mandou para o pc ou pc mandou para o pic, chegou corretamente, ou seja.. La vái!! se vai chegar ou não, ou se vai chegar correto ou não. So Deus Sabe..

Te serve isto?

HID = Human Interface device, ja sub entende né ? bom tu pode criar um descriptor para o pic ser o que quiser que ele seja, joystick, interface de audio, etc etc. tu pode por exemplo usar dois buffer com input e input, e estes trabalharem aparte um do outro, como se o pic fosse dois equipamentos distintos!! isso é moleza, e até então não precisa de drive pra nada, tu cria o descriptor com opções que ja existem no pc, ou seja espetou o pic no pc.
PC vai lá seta bits, etc, aí o pic manda o MANUEL do que é e como funciona para o pc, o pc pega todo o manuel procura em sua bilioteca se conhece, e se esta tudo dentro dos conformes. Se sim, esta nos conformes, ele enumera o(s) periferico(s), e pumba, ja esta funcionando perfeitamente.!!

AGORA, tu vim com papo de mexer com stream de audio, stereo 16 bits, em 48khz por exemplo.

Tem como não.

O pic, envia ou recebe no máximo.
64 bytes por mS em hid.
Porque dentro deste 1mS, ele é lido, depois escrito e o pc compara tudo pra saber se chegou aqui ou acolá tudo certinho, e fica um tempo em silencio novamente, isto se dá dentro de 1mS ping time...

Ja no CDC, o pau come solto, o pc vai escrevendo sem parar no pic, sem parar literalmente, se o pic vai dar conta ou não de atender, são outros 500...


Agora existe o HID, esperial de perifericos, que tem a jogada que eu nunca descobri como fazer, que ele worka com até 256 bytes por MS, ou micro frames, de 250uS e 64 bytes cada.
Unica coisa que eu sei, que isso não tem como fazer com pic, pois o clock deste tipo de usb, não é de 12mhz, e sim 48...96...128...196mhz..

Por exemplo o controlador de um penisdrive, ou uma webcam. o clock interno é altissimo, e a interface não tem propriamente um controlador, o pc le o descriptor e manda vê na leitura de dados, ou escrita.


Veja por exemplo, eu peguei um exemplinho com ARM, que emula um pendrive, para o 2148.. Lento pagarai, e um leitor de cartão desses normais de 10RÉAU, parece um pendrive de tão rapido, porque?
1° velocidade da CPU, 2° velocidade de clock de transação de dados da interface USB.

Agora tome suas decisões.

A para CDC, não precisa se preocupar em fazer drives, ja existem os genericos na net..

Abraços

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

Mensagempor Francesco » 15 Jan 2010 08:13

Fabim, obrigado. Está mais claro agora.
Não sabia das limitações do CDC, principalmente para PIC. Uma interface rápida com o PC acaba sendo um problema.

Tenho um kit com um arm7, o STR711. Acho que vou partir para ele. Além de ter mais memória, é bem mais rápido.

Valew.

Francesco
Avatar do usuário
Francesco
Word
 
Mensagens: 699
Registrado em: 04 Mar 2008 00:22
Localização: São Paulo - SP


Voltar para PIC

Quem está online

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

cron

x