Tengo problemas para seleccionar un microcontrolador / procesador para un proyecto de robótica en C ++. Tengo un programa que funciona en mi computadora que es 1.5+ KLOC y se basa en los datos de otros veinte archivos para funcionar, así que no sugiera que use otro idioma. Intenté traducirlo a C, pero no pude hacerlo funcionar, tal vez debido a la gran dependencia del programa en el flujo y las cadenas. El programa tiene aproximadamente 1 MB en mi computadora en este momento y ocupa 3 MB mientras se ejecuta, por lo que supongo que el microcontrolador / procesador debería ser capaz de soportar 4 MB de RAM si es von-Neumann / MHA y 1 MB Flash y 3 MB de ram para Harvard. Necesito PWM, SPI y UART / USART en el procesador para comunicarme con otros sensores, y planeo usar un disco duro para los otros archivos y un ram externo para el programa y sus datos. Necesitaré al menos 90 pines IO (40 IDE + 40 servos + sensores).
Resumen:
- > 90 pines IO
- PWM
- SPI
- UART / USART
- si von-Neumann / MHA, es capaz de soportar > 4 MB de RAM
- si Harvard, > 1 MB de programa flash y > 3 MB de RAM
- admite C ++
¿Qué sugieres? También proporcione información sobre cómo programar el procesador, si es posible.
Hasta ahora, he encontrado i.mx25 de Freescale, pero no estoy seguro de cómo conectar este procesador a mi computadora para la programación, si usa C ++, o los detalles de cómo convertir mi programa de Windows .exe actual en un .hex compatible con este procesador.
@ m.Alin Estoy usando un disco duro porque comencé con AVR y encontré un tutorial que describe cómo comunicarse con un hdd desde un AVR. No pude encontrar un tutorial de tarjeta SD similar.
@ MikeJ-UK El programa se ejecuta actualmente en mi computadora portátil, un x86-64 Windows 7.
@darron
"1MB binario implica más de 1500 LOC" El programa es de 643 KB ahora, no 1 MB. Me disculpo por la confusión. Dije 1 MB porque todavía estoy trabajando y expandiendo el programa, por lo que el posible procesador tendrá que ser capaz de manejar su futuro tamaño más grande.
"agregue una placa periférica para los servos" "io que se descargan en un FPGA ..." No sé cómo hacer esto. Después de una búsqueda rápida, no pude encontrar ningún FPGA asequible. ¿Conoces algún > $ 50?
@Rocketmagnet 1500 líneas.
@vicatcu No creo que 8 pines sean suficientes.
@AndrejaKo En su mayor parte, no será necesario controlar los servos al mismo tiempo. Me gusta su opción de múltiples microcontroladores / demultiplexores, pero no entiendo qué tiene de malo usar un i.MX25 con Linux. Tiene 128 pines io.