El poder de un microcontrolador, pero con más memoria, ¿qué satisface esta necesidad? [cerrado]

0

Soy un aficionado con poca experiencia. Normalmente juego con Arduino Pro Mini o ESP8266. Puedo hacer que hagan cosas simples que quiero, pero por razones obvias no puedo darles demasiadas funciones a la vez.

Por ejemplo, Si intento agregar un OLED con interfaz de configuración, o iniciar sesión en la tarjeta SD, o el almacenamiento de variable persistente y la lógica de rebote de los botones, en un programa existente, es demasiado para que el dispositivo lo maneje.

Esencialmente, me gustaría algo no más fuerte que lo que estoy usando, pero con un orden de magnitud (x20 o más) más FLASH y RAM, o algo parecido.

Lo que he considerado:

  • memoria externa: no puedo ponerle código (?)

  • (en ESP8266) reemplaza la memoria flash por una más grande: no es suficiente

  • optimizaciones: no es suficiente

  • microcontroladores múltiples: no se escala bien, ocupa espacio, usa más poder

  • actualice a Raspberry Pi Zero, C.H.I.P., etc: superado, pero la mejor opción hasta ahora

  • ejecute toda la lógica en un servidor externo: utilidad limitada

Entonces, la pregunta: ¿existe un producto (clase de dispositivo) o técnica bueno (económico, que no necesite muchos cambios en el software existente) que satisface esta necesidad?

[EDITAR] Otras ideas consideradas:

  • SDRAM externo, carga de código desde la tarjeta SD: inversión de tiempo, y es esencialmente un Pi Zero con una CPU mucho más débil

Parece que la respuesta podría ser que si estoy buscando una solución relativamente simple (fácil y barata), debería aceptar el mayor uso de energía y usar una computadora ARM. ¿Alguien puede confirmar?

[EDIT2] Gracias a todos, ahora tengo una línea de niveles de productos disponibles. Los pensamientos generales que recibo son:

  • Los precios de SRAM pondrán todo lo que esté incluido en ARM Cortex M4, incluido el nivel similar, deben elegir por calidad de soporte y uso de energía

  • donde la conservación de energía no es una preocupación, un SBC pequeño ofrecerá recursos baratos

pregunta kaay

3 respuestas

4
  • Eche un vistazo a las tableros mbed . La plataforma mbed ofrece una API de C ++ increíblemente potente y fácil de usar y un entorno de desarrollo basado en la nube (las bibliotecas también están disponibles sin conexión) para programar muchas placas basadas en ARM. Recomiendo la placa FRDM-KL25Z. Para más potencia, considere el FRDM-K64F y ST-NUCLEO-F411. Hay muchas más tablas allí. ¡Algunos de ellos tienen más de 1MB de Flash y 128KB de RAM! Para el desarrollo de metales desnudos, ¡eso es una tonelada!

Muchas de las soluciones mencionadas ya son impresionantes:

  • Utilice un ATMega1284p. Esa parte es compatible con Arduino IDE a través del proyecto sanguino (simplemente agregue este enlace " enlace " al Administrador de tableros en el IDE de Arduino más reciente) El ATMega1284p tiene 16KB de RAM, 128KB de Flash e incluso viene en un paquete de 40-PDIP.

  • Use el USBTeensy 3.0. Una de las plataformas más populares e increíblemente poderosas basadas en ARM incrustada y con excelente compatibilidad con Arduino IDE. Puedes obtener la versión púrpura de OSHPark por $ 17. Eso es $ 2-3 más barato que el original.

  • Considere el uso de algunas de las plataformas de ARM basadas en Arduino más nuevas, como

    • Arduino Zero
    • Arduino Due
    • Arduino 101 (basado en Intel)
    • Arduino MKR1000 (Arduino Zero + WIFI aún no está en producción)
  • No olvides el Spark Core. Es un ARM Cortex-M3 con un chip WiFi y una API compatible con Arduino. Costos menores a $ 20

  • Los tableros basados en SO / Linux como Raspberry Pi e.t.c también son geniales, pero son bestias totalmente diferentes. Es necesario estar familiarizado con el sistema operativo Linux que se ejecuta en ellos. También estas tarjetas necesitan ejecutar su aplicación sobre Linux. Por lo tanto, es posible que su aplicación no pueda aprovechar al máximo los recursos de hardware / rendimiento del SOC. Tampoco son en tiempo real, es decir, las tareas que requieren una sincronización precisa podrían no ser adecuadas para ejecutarse en un SBC. ¡Por el lado bueno corren freakin en Linux! Esto significa que puede ejecutar sus aplicaciones en muchos lenguajes de programación, aprovechar múltiples bibliotecas, configurar servidores y hacer un montón de cosas realmente geniales que simplemente no puede hacer en plataformas básicas.

  • El ESP8266 es una gran plataforma y es compatible con el IDE de Arduino. Muchos de los tableros de breakout vienen con 4MBytes de memoria Flash. Eso es toneladas de programa de memoria. No estoy seguro de cómo eso podría no ser suficiente para cualquier aplicación. Pero si ese es el caso espera el ESP32. Un SOC WiFi aún más potente de espressif con más IO, WiFi, BLE, dos núcleos y más RAM y es muy probable que sea compatible con SPI Flash más grande para la memoria del programa.

Espero que esto ayude

    
respondido por el halherta
2

Echa un vistazo a Teensy 3.1 & 3.2 ...

enlace

Así es como se apilan en memoria ...

Tienen 64kB de RAM en comparación con 2kB en el Arduino Pro Mini. Tienen 256 kB de Flash en comparación con 32 kB en Arduino Pro Mini.

Lo más importante es que están extremadamente bien respaldados y documentados, y tienen una comunidad sólida como las partes con las que está acostumbrado a trabajar.

Puede programar el Teensy utilizando el IDE de Arduino y PJRC ya ha portado muchas bibliotecas populares de Arduino para ejecutarse en el Teensy, lo que puede facilitar la migración.

    
respondido por el bigjosh
2

Eche un vistazo a mbed (mbed.org).

Tiene un entorno de desarrollo 'basado en la nube', por lo que puede iniciar el desarrollo sin tener que instalar y configurar un IDE. Tiene una amplia gama de bibliotecas, por lo que debe tener un punto de partida para proyectos razonablemente productivo.

Mbed actualmente admite MCU basadas en ARM de nueve fabricantes diferentes, por lo que debería poder encontrar algo cercano a sus necesidades.

Mirando a tableros compatibles con mbed de ST Micro , hay 24, muchos de los cuales superan tus 20x más Flash y requisitos de memoria RAM.

Por ejemplo, NUCLEO-L476RG tiene 1 MB Flash y 128 KB SRAM. También funciona aproximadamente 5 veces más rápido que un Arduino basado en ATmega

Es posible que deba ser más preciso en cuanto a las necesidades de sus proyectos, ya que algunos de los chips tienen periféricos muy útiles (por ejemplo, DAC, CAN, USB, controlador de LCD con acelerador gráfico, interfaz SDIO, I2S, interfaz de memoria, control de motor de precisión BLDC) , Interruptores táctiles, RTC, etc.)

La mayoría de los Nucleo de ST tienen un precio similar, por debajo de 9 GBP + IVA, y están disponibles en, por ejemplo, Farnell , RS-components , Digikey , Mouser , etc.

Las placas Nucleo-64 tienen encabezados de diseño compatibles con Arduino (pero 3.3V, no 5V), y Nucleo-32 son similares en tamaño al Arduino Nano. ST Micro también fabrica escudos que se adaptan a sus tableros Nucleo-64, que cubren cosas como la tecnología inalámbrica, el control del motor y los sensores, a costos similares.

Además de la comunidad mbed, también existe la propia comunidad de ST para obtener ayuda y apoyo.

Si tiene experiencia significativa con los periféricos MCU de Atmel, también debe consultar tableros mbed de Atmel . No tengo experiencia con ellos, pero supongo que funcionarán bien.

    
respondido por el gbulmer

Lea otras preguntas en las etiquetas