LusoRobótica - Robótica em Português
Sistemas específicos => PIC => Tópico iniciado por: r.mota em 29 de Julho de 2010, 22:18
-
Boas noites,
Permito fazer um dispositivo que me permita copiar uma Pen USB para outra Pen USB e/ou cartão de memória SD/MMC recorrendo para tal a um microcontrolador PIC. Estive a analisar a oferta disponibilizada pela microchip e no que me parace as minhas escolhas quanto ao microcontrolador resumem-se a um PIC24 ou PIC32, assim a primeira das minhas dúvidas é por qual optar.
Andei também a ver algumas placas de desenvolvimento para este projecto visto que não tenho nenhum material para desenvolvimento em microcontroladores PIC entre as quais:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.microchip.com%2Fstellent%2Fgroups%2Fdevtools_sg%2Fdocuments%2Fdevtools%2F%7Eexport%2Fen535092%7E5%7Een006096%7EPressReleaseLayout%2F123260-1.png&hash=a9a9d2f3ca304ac0ada251fefe95c9312ad0749a)
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en535092 (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en535092)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.microchip.com%2Fstellent%2Fimages%2Fmchpsiteimages%2FPIC32%2520USB%2520Starter%2520Kit%2520II.gif&hash=fd4de884272e598625d752ece9656d1effe60014)
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2615&dDocName=en535536 (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2615&dDocName=en535536)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.microchip.com%2Fstellent%2Fgroups%2Fdevtools_sg%2Fdocuments%2Fdevtools%2F%7Eexport%2Fen024858%7E18%7Een006096%7EPressReleaseLayout%2F125807-2.png&hash=931ed1b54fe864093f516d97575998c8b0bb2501)
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en024858 (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en024858)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.mikroe.com%2Fimg%2Fdevelopment-tools%2Fpic32%2Flv32mx-v6%2Fgallery%2Flv32mxv6_01.jpg&hash=d7d975300edcf98916145044d610f5236d6d73d5)
http://www.mikroe.com/eng/products/view/462/lv-32mx-v6-development-system/ (http://www.mikroe.com/eng/products/view/462/lv-32mx-v6-development-system/)
Qual destes sistemas de desenvolvimento aconselham para este projecto em questão?
Outra das minhas preocupações prende-se com a velocidade de transferência de dados entre os dispositivos e pela informação que obti por um dos membros do fórum da microchip pode chegar a um tempo de transferência de 2h30 para um ficheiro com tamanho de 4GB por exemplo, será então que este projecto não é viável de ser concebido apenas com um microcontrolador?
Agradeço desde já a vossa ajuda,
Ricardo Mota
-
Eu optaria sempre pelas ferramentas da marca.
A Explorer 16 é uma boa placa para PIC24, dsPIC33 e PIC32.
Escolhem o PIM com o PIC32 que tenha o periférico de USB Host e On-the-go, e podem fazer a vossa aplicação.
O resto está tudo em bibliotecas, e a MCHIP já disponibiliza boas stacks para PEN-USB e SD Card.
E eu avançaria para um PIC32, sem dúvida. Para o processamento que vão precisar, têem que ter muito cavalo a puxar. :)
Vejam as placas adaptadoras para a Explorer 16, se não estou em erro há umas com as fichas USB. E há outra para SD/MMC card.
É correr os exemplos Demo que a MCHIP tem, e estão logo exemplos rápidos a funcionar.
-
Quanto ao ser necesssário copiar uma pen para outra para tal vou precisar de dois PICs cada um com a sua porta USB e comunicar de alguma forma entre eles, estou correcto? Ou com um único PIC consigo o mesmo efeito?
-
Penso eu de que, de que pode ir por várias abordagens, ler de uma pen, escrever num buffer, usar um multiplexer para trocar de pen e escrever na outra pen, ou então, se for possivel, fazer host e usb device no pic e fazer uma bulk transfer, mas isto pensando em fazer uma cópia completa, agora se a pen de destino tiver dados e não os quiser-mos estragar a coisa já é um pouco mais chata, acho eu que não sei como o usb dos pics trabalha.
-
Penso eu de que, de que pode ir por várias abordagens, ler de uma pen, escrever num buffer, usar um multiplexer para trocar de pen e escrever na outra pen, ou então, se for possivel, fazer host e usb device no pic e fazer uma bulk transfer, mas isto pensando em fazer uma cópia completa, agora se a pen de destino tiver dados e não os quiser-mos estragar a coisa já é um pouco mais chata, acho eu que não sei como o usb dos pics trabalha.
senso podes explicar melhor o conceito de bulk transfer? Quanto a multiplexagem devo esperar uma grande quebra na taxa de transferência de dados não? E sim o objectivo era não destruir os dados na pen de destino.
-
Ou usas dois PIC32 para fazer esse trabalho, ou então usas multiplexers preparados para sinais USB.
A situação com o multiplexer, é que vais estar sempre a renegociar a ligação do USB. Isso demora tempo, vai atrasar todo o processo.
Eu sou prol de usar dois PIC32, e ligá-los um-ao-outro pela sua porta paralela/DMA.
Estes PICs têem um throughput muito elevado, bom para esses trabalhos.
Vocês têem aí um projecto bastante exigente.
Dou-vos os parabéns por quererem agarrar em algo assim.
Bom trabalho! ;)
-
Contudo continua-me a preocupar a possível realização deste projecto com um PIC 32, o pessoal do forum da microchip diz que um PIC32 não tem 'poder' suficiente para este tipo de aplicações e que é necessário um microcontrolador com USB full speed e capacidade de host.
-
Espero que esta página te dê algumas conclusões ::
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2654 (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2654)
-
Sim eu sei que tem canal USB Full Speed mas o que queria dizer e que se calhar seja necessario um micro que possua dois destes canais.
-
Pelo que eu percebi, nenhuma das placas tem 2 blocos USB independentes, excepto talvez a "PIC32 Starter Kit" mas não sei se esta permite usar o "USB debug port" para ligar um dispositivo USB normal. Se permitir, parece ser a placa mais adequada e ao mesmo tempo mais barata para fazer o que te propões. Se não permitir usar 2 blocos USB independentemente, a melhor aposta parece-me ser usar 2 destas placas ligadas pelo conector de expansão (que continua a ser o mais barato).
Parece haver bastantes aplicações de exemplo para esta placa relacionadas com USB.
A placa escolhida terá que suportar USB host sim. Qualquer dispositivo USB de ligar "ao PC" (chamado "USB device") tem que ser ligado a um USB host.
Mas com as perguntas que fazes e as dúvidas que tens, terás "estaleca" para este projecto? Se te atirares a algo que esteja muito "além" das tuas capacidades actuais vais sair frustado e não voltas a pegar nestas coisas. É melhor começar por algo pouco ambicioso e ir aumentando a dificuldade à medida que se aprende mais.
-
Confesso que um projecto de esta dimensão se calhar seja muito ambicioso, para mim que apenas trabalhei com PIC16 em assembly e tenho conhecimentos apenas de C e C# ao nível de aplicações informáticas, contudo gostaria de começar com os exemplos fornecidos com a placa para copiar uma pen para um cartão SD que penso não ser assim tão complicada como a ideia de ter duas pens.