Duda Selección Microcontrolador

Buenos Días, recurro a este espacio para mencionar una duda sobre la selección de un microcontrolador para un proyecto. Este será programado con un par filtros digitales con conexión a PC por USB. Un profesor me comentó que las mejores opciones para ese trabajo eran los de la línea PIC32 o dsPIC ya que cumplían con toda la carga que pueda implicar sin problemas. El punto es que he encontrado muy poca información de la conexión del Micro al PC por USB en estos Microcontroladores (dsPIC, PIC32) y pensaría irme por uno mas "popular" como los de la serie PIC18 pero ahí entra la duda si con alguno de esos puedo hacer mi proyecto sin problemas referentes a la capacidad que tenga el micro para lo que le voy a poner a correr.
- También había pensado en que la información que encuentro en internet sobre la conexión entre un micro (ej: serie PIC18) y el PC vía USB pueda servirle completamente a los de las series comentadas anteriormente.
Les agradezco su atención.
 
Considerando que el trabajo principal sea como filtro digital, es necesaria una capacidad DSP y estos los tienen los dsPIC. En la página de microchip puedes descargar un paquete de librerias que te pueden servir.

En conexionado USB con un PIC que lo tenga integrado siempre es el mismo ya que utlizan 2 de alimentación y 2 de comunicación, da igual si es PIC18 o dsPIC. En el link que antes mencioné hay ejemplos de todo tipo, incluyen USB para varios tipos de PICs y creo que también para DSP.

Saludos
 
No das detalles del proyecto, pero tambien coincido que la mejor seleccion seria cualquier micro con funciones DSP (DsPIC, C6000, C5000, etc), aunque si el proyecto es ambicioso, tambien puedes considerar CPLDs o FPGAs, solo que son mas complicados de programar...
 
@ByAxel Ok, agradezo la respuesta. Entonces iré de una por un dsPIC sabiendo que con éste no habrá problema ni mayor dificultad con la conexión USB.
@Chico3001 Ok. Una CDLP o FPGA ya son muy robustas para lo que estoy haciendo pero gracias por la sugerencia.
 
La primera pregunta que haría es: que tasa de muestreo estás manejando?, filtro de qué orden/cuantos coeficientes?, tamaño de datos? (8, 16, 32 bits?), te arreglás con punto fijo o precisás punto flotante?.

Independientemente de eso, y poniéndome desde la perspectiva de un estudiante, puede ser mejor tomar la sugerencia del profesor, por más que no sea la mejor.
A menos que ya tengas experiencia con otro micro, y hayas sufrido los problemas de reloj, tensión, configuración, inicialización de periféricos (puertos, timers, conversor AD, puertos serie), comunicación con la PC, depuración que suele haber para programar un micro.
Pero si no tenés experiencia previa vas a precisar a alguien que te pueda ayudar con esos problemas y no perder días rompiéndote la cabeza con esas cuestiones. Que los ayudantes/profes puedan mirar el código o el esquemático del circuito y sugerirte algo útil.
Más adelante si trabajás con micros te la vas a romper igual, pero ya vas a tener un buen punto de partida.

Qué micro usar depende de que se consigue fácil localmente, a qué precio, si uno tiene las herramientas (IDE, compilador, programador/depurador) gratuitas o acceso a ellas, si es fácil de poner en un protoboard o hay que hacer una placa. Si hay placas de desarrollo baratas y conocidas (con código de ejemplo, proyectos hechos, y librerías) (Arduino, Launchpad, mbed, lpcexpresso).
Otra vez, en tu caso particular le preguntaría a tu profe si tienen ellos una placa de desarrollo que incluya un programador/depurador, por más que no sea de los anteriores.

Otra sugerencia: para la comunicación USB no te compliques la vida, usa CDC (comunication device class) que es lo más fácil de programar del lado de la PC y del microcontrolador. No te pongas a escribir directamente a endpoints, o definir un perfil USB propio. Por lo menos no al principio ;). Con eso te vas a poder arreglar usando hyper-terminal o algo similar, y ni siquiera vas a precisas hacer un soft para la PC.

Perdón que mi sugerencia sea "hacé lo que te dice el profe, o lo que más le guste a él", pero cuando era estudiante me estrellé mucho contra la pared por querer hacer las cosas a mi manera. Al final me terminó costando materias perdidas y años perdidos.

Saludos
 
Última edición:
La primera pregunta que haría es: que tasa de muestreo estás manejando?, filtro de qué orden/cuantos coeficientes?, tamaño de datos? (8, 16, 32 bits?), te arreglás con punto fijo o precisás punto flotante?.

Independientemente de eso, y poniéndome desde la perspectiva de un estudiante, puede ser mejor tomar la sugerencia del profesor, por más que no sea la mejor.
A menos que ya tengas experiencia con otro micro, y hayas sufrido los problemas de reloj, tensión, configuración, inicialización de periféricos (puertos, timers, conversor AD, puertos serie), comunicación con la PC, depuración que suele haber para programar un micro.
Pero si no tenés experiencia previa vas a precisar a alguien que te pueda ayudar con esos problemas y no perder días rompiéndote la cabeza con esas cuestiones. Que los ayudantes/profes puedan mirar el código o el esquemático del circuito y sugerirte algo útil.
Más adelante si trabajás con micros te la vas a romper igual, pero ya vas a tener un buen punto de partida.

Qué micro usar depende de que se consigue fácil localmente, a qué precio, si uno tiene las herramientas (IDE, compilador, programador/depurador) gratuitas o acceso a ellas, si es fácil de poner en un protoboard o hay que hacer una placa. Si hay placas de desarrollo baratas y conocidas (con código de ejemplo, proyectos hechos, y librerías) (Arduino, Launchpad, mbed, lpcexpresso).
Otra vez, en tu caso particular le preguntaría a tu profe si tienen ellos una placa de desarrollo que incluya un programador/depurador, por más que no sea de los anteriores.

Otra sugerencia: para la comunicación USB no te compliques la vida, usa CDC (comunication device class) que es lo más fácil de programar del lado de la PC y del microcontrolador. No te pongas a escribir directamente a endpoints, o definir un perfil USB propio. Por lo menos no al principio ;). Con eso te vas a poder arreglar usando hyper-terminal o algo similar, y ni siquiera vas a precisas hacer un soft para la PC.

Perdón que mi sugerencia sea "hacé lo que te dice el profe, o lo que más le guste a él", pero cuando era estudiante me estrellé mucho contra la pared por querer hacer las cosas a mi manera. Al final me terminó costando materias perdidas y años perdidos.

Saludos

Ok Ardogan, respecto a los coeficientes y tamaño de datos todavía no están definidos pero preferiría sobredimensionar la capacidad del microcontrolador para que no quede "cortico". Lo de CDC me parece ya que no tengo experiencia en el programar para las conexiones USB, tendría que revisar igualmente. Muchas Gracias por haberte tomado el tiempo de escribir.
 
Atrás
Arriba