Teensy 4.0 trae un Cortex-M7 a 600 MHz al mundo de Arduino

Teensy 4.0 es una placa compatible con Arduino con un Arm Cortex-M7 que funciona a 600 MHz. Eso es correcto. Seis. Cien. Megahercio. Hoy, Paul Stoffregen y el equipo de PJRC agregan a su nuevo miembro a la familia de productos Teensy. Con un precio de $ 20, el Teensy 4.0 puede ser el mejor rendimiento por dólar disponible.

¿Qué es una adolescencia?

PJRC produce una serie de placas llamadas Teensy , con placas de 8 y 32 bits disponibles. Todos son compatibles con Arduino IDE y la biblioteca Arduino. En muchos casos, el código escrito para otra placa Arduino funciona con cambios mínimos o nulos en un Teensy. Como su nombre lo indica, estas tablas tienden a ser muy pequeñas. Por ejemplo, el factor de forma actual es de solo 18 por 36 milímetros. Pero no deje que el tamaño lo engañe, estas placas ofrecen una tonelada de funcionalidad. Por ejemplo, el nuevo Teensy 4.0 presenta un megabyte de RAM, dos megabytes de Flash, un conjunto de opciones de E / S, soporte criptográfico, un procesador de punto flotante (FPU) y un reloj de tiempo real incorporado ( RTC).


Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas

SUSCRIBETE A NUESTRO CANAL DE YOUTUBE, TUTORIALES GRATIS

Teensy 4.0–600 MHz placa compatible con Arduino

Aquí hay una lista de las especificaciones de Teensy 4.0. No puedo abordar todo en esta lista, pero he seleccionado algunos aspectos destacados que me parecieron interesantes.

  • Brazo Cortex-M7 a 600 MHz
  • 1024K RAM (512K estrechamente acoplados)
  • 2048K Flash (64K reservado para recuperación y emulación EEPROM)
  • 2 puertos USB, ambos 480 MBit / seg.
  • 3 CAN-Bus (1 con CAN FD)
  • 2 audio digital I2S
  • 1 audio digital S / PDIF
  • 1 SDIO (4 bit) SD nativa
  • 3 SPI, todos con FIFO de 16 palabras
  • 3 I2C, todos con FIFO de 4 bytes
  • 7 serie, todos con FIFO de 4 bytes
  • 32 canales DMA de propósito general
  • 31 pines PWM
  • 40 pines digitales, todos con capacidad de interrupción
  • 14 pines analógicos, 2 ADC en chip
  • Aceleración criptográfica
  • Generador de números aleatorios
  • RTC para fecha / hora
  • FlexIO programable
  • Tubería de procesamiento de píxeles
  • Disparo cruzado periférico
  • Administración de encendido / apagado

La última viñeta inmediatamente me llamó la atención. De ninguna manera es una capacidad de alta tecnología. Sin embargo, ¡Teensy 4.0 es finalmente una placa de microcontrolador con un control de encendido / apagado! Como se mencionó anteriormente, 4.0 viene en el mismo factor de forma que Teensy 3.2 de PJRC . Así que han empaquetado esas características en una huella de 17.78 x 35.56 mm.

Comparando Teensy 4.0 (izquierda) y Teensy 3.6 (derecha)

600 MHz MCU!

En el corazón de Teensy 4.0 hay un procesador de la serie NXP i.MX RT1060. Contiene el Arm Cortex-M7, junto con una variedad de opciones de conectividad, controles del sistema, memoria, administración de energía, dos convertidores analógicos a digitales de 12 bits y un módulo de seguridad. Para obtener más detalles sobre el procesador, consulte la hoja de datos del MIMXRT1062DVL6A .

Una velocidad de reloj de 600 MHz suena impresionante. ¿Pero qué puedes hacer con eso? Un pensamiento que viene a la mente es el aprendizaje automático . Imagine lo genial que sería agregar un micrófono I2S para permitir la detección de sonido, o tal vez agregar detección de gestos a un proyecto sin intervención. Antes de Teensy 4.0, probablemente deba considerar una plataforma de computadora de una sola placa con mucha más potencia. Hablando de potencia, ¡Teensy 4.0 solo consume alrededor de 100 mA cuando el reloj funciona a toda velocidad!

Diagrama de bloques de i.MX RT1060 (📷: NXP)

El otro pensamiento que viene a la mente es el análisis de señales en tiempo real. Combine la velocidad junto con la unidad de punto flotante (FPU), y obtendrá una máquina matemática convincente. A diferencia de casi todas las otras placas Arduino, la Cortex-M7 realiza funciones de punto flotante en hardware, no en software. Por lo tanto, es posible utilizar uno de los ADC integrados, disponibles en 14 pines de entrada analógica, para adquirir una señal y realizar un procesamiento de primer orden sin pasar los datos a la PC.

El reloj de 600 MHz en sí mismo no es realmente una razón definitoria para obtener la placa. Sin embargo, saber que la velocidad le da una idea inmediata del tipo de rendimiento que puede esperar de la pequeña placa. Hablando de rendimiento, ¿qué pasa con algunos números de referencia?

Puntos de referencia de Teensy 4.0

Stoffregen proporcionó dos ejemplos de código de referencia. Estos dan un contexto para el poder de la junta. La primera es una prueba de CoreMark , que es una carga de trabajo sintética. Sin embargo, proporciona una manera consistente de comparar microcontroladores de un solo núcleo. En el gráfico a continuación, puede ver cómo el Teensy 4.0 se compara con otras placas de microprocesador pequeñas. En este caso, los números más grandes son mejores. En comparación con Teensy 3.6, ¡el 4.0 es cinco veces más rápido! Encuentro esta comparación interesante ya que el Teensy 3.6 registró una frecuencia tres veces más lenta a «solo» 180 MHz.

Prueba comparativa de CoreMark que compara Teensy 4.0 con otras plataformas Arduino

La siguiente prueba usa mbed TLS , que es una biblioteca criptográfica de código abierto para plataformas pequeñas que habilita SSL. En este caso, el ejemplo de Stoffregen está utilizando RSA para firmar una cadena. Creo que este ejemplo es una carga de trabajo realista para un procesador como el que se encuentra en Teensy 4.0. Por ejemplo, podría ver un dispositivo de IoT firmando mensajes antes de pasarlo a través de una red de malla.

Es hora de calcular una firma RSA que compara Teensy 4.0 con otras plataformas Arduino

La cantidad de tiempo que le toma a Teensy 4.0 completar la tarea es de alrededor de 85 milisegundos. Sin embargo, el Teensy 3.6 es casi seis veces más lento a 474 ms. Es evidente que las diferencias entre las arquitecturas M4 y M7 contribuyen al rendimiento tanto como un aumento en la velocidad del reloj.

Diferencias entre M0, M4 y M7

Si eres como yo, es fácil confundirse con todos los núcleos de procesador Arm disponibles. Usando placas compatibles con Arduino como línea de base, tres núcleos Arm son populares: M0 +, M4 y (ahora) M7.

M0 + es un procesador mínimo centrado en la eficiencia energética. El M4 agrega un divisor de hardware e instrucciones de acumulación múltiple, lo que acelera las matemáticas y al mismo tiempo admite instrucciones DSP adicionales. Dependiendo de la implementación, también puede admitir una unidad de punto flotante (FPU). El M7 es el núcleo de alto rendimiento de Arm destinado a aplicaciones de procesamiento intensivo. Lleva al M4 un paso más allá con punto flotante de doble precisión, caché y el concepto de memoria estrechamente acoplada (TCM).

TCM es una característica única destinada a mejorar el rendimiento. No es un caché. En cambio, TCM es un área específica de la RAM. La CPU tiene acceso rápido (acceso de ciclo único) a instrucciones y datos almacenados en sus áreas TCM. La extensión Arduino-IDE, Teensyduino asigna el código de boceto y las variables para usar estas áreas de memoria rápida. Es posible anular este comportamiento y usar malloc () para usar el espacio de memoria fuera del TCM.

Para la mayoría de los usuarios, el comportamiento predeterminado significa tener acceso a esta función de rendimiento sin código adicional.

Soporte completo de Arduino IDE

Hablando de Arduino, el IDE es compatible con Teensy 4.0. Sin embargo, la instalación no utiliza el administrador de la placa. En su lugar, debe descargar el instalador de Teensyduino . En el caso de Teensy 4.0, asegúrese de tener instalado al menos Arduino IDE 1.8.9. Además de agregar ejemplos y apoyo de la junta, también hay un pequeño programa que transfiere programas a Teensy. Por este motivo, no puede utilizar el editor web de Arduino. Debe usar la versión fuera de línea o descargable del IDE.

Al momento de escribir este artículo, se ha confirmado que la mayoría de las funciones principales de Arduino funcionan con Teensy 4.0. También se ha centrado en las pantallas gráficas, como las admitidas por la biblioteca AdafruitGFX. Mi experiencia, con todos los directorios de PJRC, ha sido que el código generalmente funciona de manera inmediata. Stoffregen y su equipo hacen un trabajo fantástico al hacer que sus productos sean compatibles con el código Arduino. No veo cambios en ese esfuerzo con la placa 4.0.

Muy flexible de uso general IO

Con cada tablero de Teensy, hay una tarjeta de dos caras. Esta tarjeta identifica todas las funciones disponibles en cada pin. Los bloques de colores agrupan las funciones para una fácil identificación.

Afortunadamente, muchas de las funciones se repiten en varios pines. Es realista combinar múltiples UART, I2C, SPI, GPIO, entradas analógicas y salidas PWM en un solo proyecto. Como la mayoría de las placas de 3.3 voltios, los pines de E / S de Teeny 4.0 están limitados a una operación de 3.3 voltios. NO son tolerantes a 5.0 voltios. Sin embargo, con 14 pines de entrada analógica, 40 pines digitales, 31 pines con capacidad PWM y múltiples interfaces seriales, esto es un compromiso minúsculo.

Además, es posible que note que hay un pin VBat. Ese pin mantiene el reloj en tiempo real (RTC) funcionando cuando la placa está apagada. (La placa no tiene carga o monitoreo de batería a bordo).

Pensamientos finales

Como todos los productos, hay un par de compensaciones. Deseo que Teensy 4.0 incluya: carga de batería y WiFi. Sin embargo, para el factor de forma, no sé si hubiera sido posible. Incluso después de agregar un Adafruit PowerBoost y un ESP para WiFi, el tamaño total de una solución sería muy pequeño. Así que estoy de acuerdo con esas dos omisiones. El Teensy 4.0 trata sobre la potencia de procesamiento y la flexibilidad. Por eso me emocioné tanto cuando lo vi por primera vez.

Como usuario desde hace mucho tiempo de las placas Teensy de PJRC, esta es una adición muy bienvenida. Tengo un proyecto de aprendizaje automático en proceso, que es lo que planeo hacer con mi 4.0. ¿Qué tipo de proyectos tienes en mente para una pequeña placa Arduino de 600 MHz? Házmelo saber en los comentarios. Para obtener más información, consulte el PJRC Teensy 4.0 .

Fuente


SUSCRIBETE A NUESTROS BOLETINES, RECIBE EN TU CORREO LAS NOTICIAS MÁS DESTACADAS, SÓLO INGRESANDO TU CORREO ELECTRÓNICO



VIDEO RECOMENDADO

Deja un comentario