Bonito proyecto. Aquí están algunas sugerencias, pero sería difícil generalizar esto para cada proyecto, sin embargo.
Comience con los requisitos de cálculo
Esto es lo que le dirá qué tipo de núcleo que necesita y los resultados generales de la MCU. Le sugiero que comience con esta, ya que obviamente no puede ser extendido el uso de componentes externos, a diferencia de los periféricos.
En primer lugar, parece que el uso pesado de matemática de las operaciones con enteros grandes dentro del bucle. Así que, como usted sugiere, de 32 bits sería útil aquí, así BRAZO por lo tanto llega como un candidato ideal. En cuanto a la frecuencia de operación: en la actualidad, se está utilizando un Arduino MEGA2560 (16MHz, supongo) y usted puede hacer 10 bucles/s. Si quieres conseguir el 100 loops/s, usted debe estar bien con un Cortex-M3/M4 en el rango de 100 mhz o más (estimación aproximada). Tenga en cuenta que el Cortex-M4F tiene una unidad de punto flotante.
Ya hemos estrechado hacia abajo de la selección.
Los requisitos de memoria
Esta es fácil: elija el MCU que tiene más memoria RAM/Flash de su gama para el prototipo. Una vez que se valida el prototipo, cambie a la MCU de la misma gama que acaba de suficiente memoria RAM/Flash, ahora que usted sabe exactamente a sus requisitos.
Tenga en cuenta que no creo que las necesidades de su aplicación increíbles cantidades de memoria.
Ahora, los periféricos
Es absolutamente necesario disponer de algunos ADC. Todos los Mcu de la gama que estamos mirando, así que no es un criterio útil. Tampoco lo son las entradas/salidas digitales, excepto si usted necesita un número muy grande de ellos (que no parece ser tu caso).
Parece que necesita un DAC. Sin embargo, esto es algo que en realidad no va a encontrar fácilmente y se estrecha hacia abajo los candidatos demasiado. Lo que no podemos mantener ese requisito y nos quedamos con un PWM y filtro de paso bajo (que sin duda es aceptable, en realidad).
Usted no mencionan ninguna interfaz de comunicación, a excepción de la pantalla LCD (más adelante). De todos modos, todos los Mcu han I2C/SPI, UART/... si necesitas algo.
La pantalla LCD
Esta es más difícil, porque hay un montón de diferentes soluciones que pone completamente diferentes requisitos en el MCU. Pero no elige el LCD dependiendo de la MCU. Elija el LCD que usted desea para su producto y, a continuación, seleccione la MCU que va a conducir de manera eficiente.
- Si quieres un personaje LCD: entonces el más fácil y la menos restrictiva para el MCU es hablar con ella a través de alguna interfaz en serie (a menudo SPI). De esta forma no se usa demasiado Pines, usted puede utilizar más pequeño/más barato Mcu y la velocidad no es un problema.
- Si quieres una gráfica TFT LCD: si es pequeña, el enlace de serie todavía puede ser apropiado. Sin embargo, para 320x200 o más y si quieres tener una bonita interfaz gráfica, podrás empezar a querer comunicarse con la interfaz paralela. En este caso, se utilizan algunas GPIO (pero que se va a poner más carga en el MCU, porque tendrá a bit bang las líneas de control) o elige un MCU que cuenta con una interfaz de LCD (que a menudo es el mismo como una memoria externa de la interfaz). Este último pone una fuerte restricción de la MCU elección, pero no tiene otros fuertes restricciones, así que...
Ahora, usted elige
Ir a ST Micro / NXP / Atmel sitio web y utilizar sus MCU herramientas de selección. Vas a pasar un montón de tiempo a la lectura de las hojas de datos, también. Tome este tiempo. No se desperdicia. Cualquier cosa que usted va a aprender aquí, incluso si usted no lo utiliza específicamente para este proyecto, puede ser útil.
En este punto, también es necesario tener una mirada en el número de Pines que usted realmente necesita y comprobar el esquema de multiplexación de los elegidos MCU los candidatos para verificar que usted puede utilizar todos los Pines de las funciones que usted necesita. Porque, obviamente, usted tendrá que tomar el Mcu con el menor número de pines que cumpla con sus requisitos (por costo/PCB de bienes raíces razones).
Compruebe los precios y la disponibilidad en Mouser/Digikey. Pero usted no necesita algo especialmente caros aquí. Tal vez por 5€ o así.
La última cosa con respecto a la de control del LCD
Parece que la actualización de la pantalla LCD es parte de su bucle principal. No debería. Especialmente si eres un bucle de 100 veces por segundo, es inútil. Hacer que el bucle de control de calcular todo y ajustar el motor de comandos en cada iteración, pero acabo de actualizar los valores a mostrar en algún lugar de la memoria. Luego, tenemos otro lazo con menor prioridad de visualización de esta información para el usuario cuando no hay nada más importante que hacer.
Sí, idealmente, se requiere algún cambio de tarea y esas cosas. Un verdadero sistema operativo, en realidad (búsqueda FreeRTOS, Coocox OS, Nuttx, ... esos son muy pequeñas, son muy utilizados en Cortex-M, y proporcionar la necesaria multitarea mecanismos).