Bueno mas que un entrenador lo utilize en mi proyecto de graduacion .... lo tuve que crear porque el Explorer 16 me quedo corto ...
Le puse lo siguiente:
1-> Lo principal un servidor web de 1Mb y 10Mbps con comunicacion con el dsPIC
2-> Comunicacion directa con el web server por un puerto serie (con MAX232)
3-> Un puerto serie con MAX232 al dsPIC, con soporte de control de flujo por hardware
4-> Un bus SPI con soporte para 8 dispositivos.
5-> Un bus I2C con buffer para extender hasta 20metros de cable.
6-> Un bus paralelo de 16bits
7-> Entrada QEI acondicionada con buffer.
8-> 4 salidas PWM (L, H y DIR) con buffer de colector abierto
9-> 4 entradas de timer ( ya sea para contador de pulsos, sincronizacion, etc etc etc)
10 -> Bus CAN (implementado parcialmente)
11 -> Boton de RESET y otro boton opcional para acciones generales.
12 -> Dos led para indicar estado, error, etc
13 -> Memoria externa EEPROM de 512kb (por I2C) , Memoria externa RAM de 64kb ( por SPI )
Eso en lo digital ... ahora lo analogico
13 -> 4 entradas analogicas filtradas, con acondicionamiento de señal ajustable por software, ya sea monopolar o bipolar
en 0.05V, 0.1V, 0.2V, 0.5V, 1V, 2V, 5V y 10V
14 -> 2 salidas analogicas, con acondicionamiento de señal ajustable por software igual a las entradas analogicas.
Bueno eso en lo hardware ... en software utilice un
RTOS, programe una capa de controladores para manejar y configurar el hardware sin necesidad de recompilar ni reprogramar el firmware, la configuracion de hardware se almacena en EEPROM, el usuario la puede modificar por instrucciones al puerto serie.
Puedo resumir que la aplicacion de todo eso es para un laboratorio de control automatico en donde se realizan pruebas a motores, camaras de control de temperatura, levitadores eolicos, magneticos, .. captura de datos, funciones DSP, etc etc ... el web server se utiliza para programar aplicaciones en JAVA applets y hacer experimentos por internet.
La placa es de 2 capas, la hice en un laboratorio de circutos impresos y todo está en SMD ( CIs, resitencias, capacitores, algunos reguladores ), la verdad que SMD da un poco de miedo al ver cosas tan pequeñas pero en realidad es muchisimo mas sencillo y practico de lo que parece, en poco espacio se puede colocar muchas cosas ademas no se tienen que hacer muchos huecos y vias .. aunque soldarlo sin mascara es un poco dificil; pero, al tiempo y paciencia se adquiere practica y queda bien. Las plaquitas que estan encima son potenciometros digitales, estos los tuve que hacer caseros pues el laboratorio no daba para hacer espacios entre pistas de 0.2mm. Aqui esta la foto de una de las plaquitas.
A la par se ve una escala milimetrica. Se ve fea pero ahi esta sin limpiar y fue una de las primeras.
En fin dure 1 año haciendo eso .. el dsPIC funciona muy bien ... me sorprendió mucho el desempeño pues tiene un RTOS y realiza muchas tareas fuertes. Sin embargo todas las operaciones son fraccionales ( con integers o fractional ) en 16bits .. al principio utilice punto flotante pero los calculos son lentos.
Tenia pensado exportar el proyecto a un ARM especificamente un STR910 .. pensaba un PIC32 (aunque no es ARM); pero, no me gusta pues el PIC32 solo tiene 32kb de RAM .. en cambio el STR910 es de 96MIPS y tiene 96kb de RAM.
Mi experiencia con ARM es CERO nunca lo he programado ... y llevo semanas buscando que micro me puede servir, a lo que he leido estos se programan con JTAG y hay varios programadores pero en fin .. no se cual será mas practico y economico para empezar .. veo que hay mucho de ARM7 pero al leer las caracteristicas del ARM7 me da la impresion que el PIC32 es un poco mejor ... en si lo que ando buscando es un micro que almenos tenga mas de 80MIPS y mas de 64kb de RAM .. aunque he visto que el ARM9 tiene para memoria RAM y ROM externa y con imagenes de linux etc etc .. la verdad no pienso usar nada de eso y no quiero complicarme. Tengo en mente el siguiente kit de desarrollo:
STR910F de IAR ... incluye un STR912FW4 y el programador .. este vale $300. Lo que es ROM no es problema .. con 256 o 512k esta bien .. el proyecto actual ocupa alrededor de 128k, teniendo en cuanta que en el dsPIC son 16bits (constantes, direcciones de memoria, datos, etc etc ) ahora si uso 32bits esto puede aumentar un poco.
Bueno esto para comenzar .. ya cuando me familiarize con el micro volver hacer la placa. Alguna recomendacion??
Saludos!