Autor Tema: ayuda con usb (con pic en linux)  (Leído 12205 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Joaquín

  • PIC10
  • *
  • Mensajes: 24
    • Mi web
ayuda con usb (con pic en linux)
« en: 17 de Junio de 2006, 16:20:13 »
Hola a todos.

Hace tiempo que estoy un poco desconectado de este mundillo, y no se muy bien por donde empezar con este proyecto.

Mi problema radica en comunicarme con un sistema Linux, basado en Debian, mediante el puerto Usb y no sé que PIC usar ni dispongo de información acerca de las comunicaciones Usb con el Pic.

La verdad es que hace casi un año que no me dedico a este mundillo por mis estudios y me quedé en el PIC 16F84 y el 16F876, aunque sé muy por encima, que ya hay series nuevas, con mejores características, etc y creo que compatibles con la serie que yo conozco.

Así que si algún alma caritativa me puede poner al corriente y me recomienda un pic que se adapte a mis necesidades del puerto Usb le estaría muy agradecido.

El pic lo único que tiene que hacer en un principio, aunque con el tiempo se esturiará el ampliar sus funcionalidades, es transformar cada byte que se le mande en serie a paralelo e inyectarlo en un conversor D/A que ya tenemos implementado y funcionando.

Gracias y un saludo a todos.
« Última modificación: 18 de Junio de 2006, 09:02:34 por elmasvital »

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: ayuda con usb
« Respuesta #1 en: 17 de Junio de 2006, 16:48:56 »
Hola,

El Pic que necesitas es alguno de la serie 18Fxx5x, aquí los tienes:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2124&param=en022613&page=wwwFullSpeedUSB

El tema está en que vas a usar Linux, entonces no vas a poder utilizar la 'dll', ni el Driver para Windows que suministra Microchip... Por suerte algunos ya han 'superado' estos inconvenientes... aquí tienes unos ejemplos:
http://www.varxec.net/picdem_fs_usb/
http://libusb.sourceforge.net/
http://www.icsharpcode.net/OpenSource/SharpUSBLib/default.aspx

Supongo que a partir de ahí no tendrás problemas para hacerte tu propia aplicación en Linux para comunicarte con el USB.

Ahora viene el tema de la aplicación para el Pic... te dejo un link donde hay un pequeño ejemplo de comunicación VC# con Pic por USB, supongo que te vendrá bien para entender mas o menos como operar con el micro:
http://www.hobbypic.com/index.php?option=com_content&task=view&id=14&Itemid=33

Casi al final de esta página tienes otro parecido al anterior:
http://www.todopic.com.ar/foros/index.php?topic=2260.60

saludos!
« Última modificación: 17 de Junio de 2006, 16:56:08 por J1M »

Desconectado Joaquín

  • PIC10
  • *
  • Mensajes: 24
    • Mi web
Re: ayuda con usb
« Respuesta #2 en: 17 de Junio de 2006, 17:05:12 »
Gracias J1M por tu rápida respuesta, ¿no sabrás de algún sitio donde adquirir el PIC en España?
Un saludo.

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: ayuda con usb
« Respuesta #3 en: 18 de Junio de 2006, 05:31:18 »
Intentalo en amidata, ariston, farnell o micropik

saludos!

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: ayuda con usb (con pic en linux)
« Respuesta #4 en: 18 de Junio de 2006, 09:03:21 »
gran aporte j1m cambio el titulo para futuras busquedas

Desconectado Joaquín

  • PIC10
  • *
  • Mensajes: 24
    • Mi web
Re: ayuda con usb (con pic en linux)
« Respuesta #5 en: 25 de Junio de 2006, 17:25:00 »
Hola de nuevo.
Tengo algunas dudas respecto al PIC, por ejemplo, qué cristal tengo que usar  y cómo lo programo.
Tengo el programador creo que es el JDM que se usaba para el 16F84 y el chip de la Play Station I que creo que era el 12c508.
Tengo pensado usar el PIC18F2250.
A ver si pasa el dia 30 (mi último examen de la carrera) y puedo centrarme en este proyecto jeje.

Gracias y un saludo.

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: ayuda con usb (con pic en linux)
« Respuesta #6 en: 25 de Junio de 2006, 17:57:06 »
lo del cristal va a depender un poco de tus necesidades en principio y gracias al divisor y PLL interno puedes utilizar 'cualquier' cristal para conseguir la frecuencia interna de 48Mhz o lo q es lo mismo esos peazo 12MIPS que tiene la serie 18... cuando digo cualquier, me refiero a cualquier combinación que esté definida en el datasheet. Exale un ojo y así vas viendo de lo q es capaz ese caxarrillo.
El problema de los grabadores sin alimentación externa por el puerto serie (pej: JDM) es que los PCs modernos no suministran la tensión necesaria para la grabación... aunq en principio y si tú pc no tiene esa limitación, debería servirte sin problemas.

Sobre como lo programas... te recomiendo un libro (aparte de este foro, las páginas de los usuarios y por supuesto google), fué el libro con el que empecé a hacer mis primeras cosillas, se llama: Microcontroladores PIC, Diseño práctico de aplicaciones, Jose María Angulo, Mc-Graw Hill.

En mi página colgué lo q fué mi proyecto fin de carrera de la técnica, es un terrario microcontrolado, regula temperatura, humedad, horas de luz y de agua... te lo digo pq ahí mas o menos se explica como enfrentarse a un proyecto con microcontroladores desde el principio, que es necesario y como se utiliza... quizá te sirva para empezar a darle golpes al teclado (eso si consigues entenderlo... pq la redacción y yo nunca nos hemos llevado muy bien jejeje)

saludos y suerte cn tu ultimo examn ;)

Desconectado Joaquín

  • PIC10
  • *
  • Mensajes: 24
    • Mi web
Re: ayuda con usb (con pic en linux)
« Respuesta #7 en: 27 de Junio de 2006, 16:50:30 »
Muchas gracias por todo.
Tus proyectos más o menos por encima los comprendo, yo también realicé un proyecto el año pasado cuando terminé mis estudios te técnico en electrónia. El mío consite en un tarificador de energía eléctrica con conexión serie, reloj interno, etc aunque nunca llegó a funcionar por ciertas desavenencias que tuve con el profesor (eso es una historia aparte).

El datasheet de la serie 18 no he tenido tiempo de leérmelo todavía debido a que estoy de exámenes y hasta este viernes no termino el último, pero por lo que he estado viendo son la leche.

En cuanto al programador de los PICs me ha gustado el que tienes en tu web porque es USB y para mi portatil pues me viene muy bien.

Ahm y hablando del USB y el portatil, esa se me ha olvidado preguntarla, jeje, ¿hay algún circuito para proteger el puerto USB del portatil?

De todas formas, este fin de semana tranquilamente miraré toda la información que me has pasado.

Muchas gracias por todo y un saludo.

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: ayuda con usb (con pic en linux)
« Respuesta #8 en: 27 de Junio de 2006, 19:34:13 »
Puesss si quieres protección contra sobre intensidad supongo que con un diodo rearmable de los 500mA soportados por un puerto USB debería servirte (aunq ya los llevan incluidos las placas base...).

s2!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: ayuda con usb (con pic en linux)
« Respuesta #9 en: 20 de Enero de 2009, 05:21:34 »
Rescato el hilo porque tengo una duda.
Quiero utilizar un PIC18F con un conversor USB-SERIE desde Linux.

He leído que Linux tiene de forma nativa el driver para CDC-ACM, pero mi desconocimiento de Linux es supino.

Ya he instalado Linux en una ventana de VirtualBox, e incluso he configurado los dispositivos USB para que sean reconocidos desde Linux.

Cuando ejecuto lsusb desde el terminal obtengo esto:
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root usb
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 2.0 root usb

¿Cómo puedo probarlo?, ¿puedo usar minicom para comunicarme con él?

Desconectado ma4826

  • PIC16
  • ***
  • Mensajes: 130
Re: ayuda con usb (con pic en linux)
« Respuesta #10 en: 20 de Enero de 2009, 08:18:01 »
Citar
Cuando ejecuto lsusb desde el terminal obtengo esto:
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root usb
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 2.0 root usb

 No aparece ningun dispositivo usb conectado, primero tienes que añadir el dispositivo usb a Virtualbox. Para añadir el dispositivo pulsas con el derecho en el icono del usb en la parte inferior derecha.

 Después ejecuta otra vez lsusb en el terminal para ver si aparece el dispositivo y si aparece ejecuta dmesg en el terminal.

 Al conectar un adaptador usb-serie en mi pc obtengo:

 lsusb:
 
Código: [Seleccionar]
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

 Final dmesg:

Código: [Seleccionar]
[ 4551.200040] usb 3-2: new full speed USB device using uhci_hcd and address 4
[ 4551.416910] usb 3-2: configuration #1 chosen from 1 choice
[ 4551.420349] ftdi_sio 3-2:1.0: FTDI USB Serial Device converter detected
[ 4551.420786] ftdi_sio: Detected FT232BM
[ 4551.421296] usb 3-2: FTDI USB Serial Device converter now attached to ttyUSB0

 Que nos indica que el dispositivo esta asociado al archivo de dispositivo /dev/ttyUSB0

 
Citar
¿puedo usar minicom para comunicarme con él?
Creo que si, pero parece más sencillo de manejar el cutecom (No he usado ninguno de los dos).

 Saludos,

 Miguel Ángel.

 
« Última modificación: 20 de Enero de 2009, 08:39:32 por ma4826 »
万人の友は誰の友でもない。

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: ayuda con usb (con pic en linux)
« Respuesta #11 en: 20 de Enero de 2009, 09:15:09 »
Magnífica información. Estoy deseando probarlo en cuanto llegue a casa.

Muchas gracias

Desconectado Joaquín

  • PIC10
  • *
  • Mensajes: 24
    • Mi web
Re: ayuda con usb (con pic en linux)
« Respuesta #12 en: 20 de Enero de 2009, 09:34:53 »
Hola a todos.

Si necesitases más información de los dispositivos que tengas conectados al usb, con lsusb -v, lsusb -vv o bien lsusb -vvv (cuantas más v más información te muestra, incluso con la V mayúscula me parece que mostraba más).

Minicom no lo he usado, picocom sí, y para usarlo debes teclear en la consola picocom /dev/ttyS0, donde ttyUSB0 es la salida que te ha mostado el comando dmesg ([ 4551.421296] usb 3-2: FTDI USB Serial Device converter now attached to ttyUSB0).

Yo en su día usé el soporte para CDC-ACM, pero abría el dispositivo desde un programa que yo me hice, la librería libusb, es la misma que usaba JIM para el PIC-USB en Windows la tienes disponible en Linux por si te hiciese falta o te viene bien para probar con algún programa que ya hayas usado.

Otra cosa que a lo mejor te interesa es cómo cambiarle la velocidad, paridad, etc. al puerto que emula el puerto serie, creo que era con el comando setserial (setserial /dev/ttyUSB0) por ejemplo.

Si necesitas ayuda con algún comando puedes teclear man nombre_del_comando (se sale pulsando la tecla q) por ejemplo man setserial.

Yo te recomendaría que usases directamente el pic para conectarlo al puerto USB, puesto que hay librerías para el PIC que te lo convierten en un dispositivo CDC-ACM, en su día yo lo usé de esta forma para mi proyecto de fin de carrera, si necesitas el código me lo dices que no hay ningún problema en mostrarlo, de hecho estoy creando una web para subirlo todo.

El motivo de dejar de usar este tipo de soporte en mi caso fue que para mi proyecto de fin de carrera tenía que hacer un driver para Linux, pero también es cierto que para muestrear audio y reproducirlo que es lo que yo hago es necesario el driver ya que te comunicas directamente con el PIC, con lo que ganas velocidad. Si la aplicación a la que lo vas a destinar no necesita un trasiego demasiado grande de datos, puedes usar bien el CDC-ACM que de cara a todo es un puerto serie, con las ventajas e inconvenientes que ello conlleva, o bien puedes usar la emulación de un dispositivo de interfaz humana (HID), Linux te lo va a reconocer sin problema.

Si necesitas ayuda con Linux pregúntame, que en la medida que pueda te ayudo, incluso si quieres podemos hacer un driver para lo que quieres hacer si no es muy complicado (para el PIC-USB lo tengo casi listo), cuando lo tenga, si JIM me da permiso, lo publicaré para quien lo quiera usar.

¡Saludos a todos!.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: ayuda con usb (con pic en linux)
« Respuesta #13 en: 20 de Enero de 2009, 10:20:47 »
Pues si me puedes pasar esas librerías que convierten al PIC en un dispositivo CDC-ACM me vendría genial.
Gracias

Desconectado Joaquín

  • PIC10
  • *
  • Mensajes: 24
    • Mi web
Re: ayuda con usb (con pic en linux)
« Respuesta #14 en: 20 de Enero de 2009, 10:44:24 »
Vienen hechas en el compilador de la casa CCS, los ficheros que yo usé son usb_cdc.c y usb_cdc.h.

Échale un vistazo a http://picmania.garcia-cuervo.com/USB_3_CDCTransfers.htm, aunque el programa para windows creo que era en Delphi, pero te puede sevir para ver cómo está hecho y cómo se usan las librerías, de todas formas viene comentado el uso de las funciones en el fichero usb_cdc.h.

Saludos!