Tabla de contenido:

¡El increíble STM32 L4 !: 12 pasos
¡El increíble STM32 L4 !: 12 pasos

Video: ¡El increíble STM32 L4 !: 12 pasos

Video: ¡El increíble STM32 L4 !: 12 pasos
Video: CURSO STM32 CLASE 11. Hola Mundo en un cortex M4 (BLACK PILL) (BOOTLOADER USB) 2024, Mes de julio
Anonim
Image
Image
DESCUBRIMIENTO DEL STM32F746G
DESCUBRIMIENTO DEL STM32F746G

Quiero comenzar este artículo explicando que esta letra L (de la L4) significa Bajo (o, básicamente, Ultra Low Power). Por lo tanto, gasta poca energía y muestra por qué este STM32 es increíble. Gasta microamperios y tiene un sistema en su interior que puede identificar el gasto de cada parte del chip. Esto permite una gestión de la energía muy eficiente y con un alto rendimiento.

Ya hablé sobre este microcontrolador en el video, "¡La forma más fácil de programar un microcontrolador!" En el video, mostré cómo programar el STM32 L4 con MBED. Pero mientras investigaba más al respecto, descubrí algo que el fabricante STMicroelectronics no revela. Implementó el Core Arduino en el chip, lo que permite la programación a través del IDE de Arduino.

En esta imagen, tenemos dos versiones de L4. El STM32L432KC es idéntico al Arduino Nano y al STM32L476RG, que tienen IO equivalentes al Arduino Uno. Entonces, mientras trabaja con dos versiones de este poderoso microcontrolador, le mostraré cómo instalar Arduino Core en la familia STM32. Además, explicaré las principales características de los kits STM32.

Paso 1: placas con Core Arduino

Coloqué aquí una lista sobre la diversidad. Sin embargo, vamos a trabajar con STM32L432KC y STM32L476RG.

STM32F0

  • Núcleo F030R8
  • Nucleo F091RC
  • 32F0308 DESCUBRIMIENTO

STM32F1

  • BluePill F103C8 (soporte básico, sin USB)
  • MapleMini F103CB (soporte básico, sin USB)
  • Nucleo F103RB
  • STM32VLDISCOVERY

STM32F2

Nucleo F207ZG

STM32F3

  • Nucleo F302R8
  • Nucleo F303K8
  • Nucleo F303RE

STM32F4

  • Nucleo F401RE
  • Nucleo F411RE
  • Nucleo F429ZI
  • Nucleo F446RE
  • STM32F407G-DISC1

STM32F7

STM32F746G-DISCOVERY

STM32L0

  • Núcleo L031K6
  • Núcleo L053R8
  • B-L072Z-LRWAN1

STM32L1

Nucleo L152RE

STM32L4

  • Núcleo L432KC
  • Núcleo L476RG
  • NUCLEO-L496ZG-P
  • NUCLEO-L496ZG-P
  • B-L475E-IOT01A

Paso 2: DESCUBRIMIENTO DEL STM32F746G

Solo para ilustrar, muestro los detalles de un STM32F746G DISCOVERY, que considero una bestia. Ya ordené este chip y espero hablar de ello pronto.

Caracteristicas:

Microcontrolador STM32F746NGH6 con 1 Mbytes de memoria Flash y 340 Kbytes de RAM en un paquete BGA216

  • ST-LINK / V2-1 integrado que admite capacidades de reenumeración USB
  • Habilitado para Mbed (mbed.org)
  • Funciones USB: puerto COM virtual, almacenamiento masivo y puerto de depuración
  • LCD-TFT en color de 4,3 pulgadas y 480x272 con pantalla táctil capacitiva
  • Conector de cámara
  • Códec de audio SAI
  • Conector de entrada y salida de línea de audio
  • Salidas de altavoz estéreo
  • Dos micrófonos ST MEMS
  • Conector de entrada SPDIF RCA
  • Dos pulsadores (usuario y reinicio)
  • Memoria Flash Quad-SPI de 128 Mbit
  • SDRAM de 128 Mbit (64 Mbits accesibles)
  • Conector para tarjeta microSD
  • Conector de placa hija RF-EEPROM
  • USB OTG HS con conectores Micro-AB
  • USB OTG FS con conectores Micro-AB
  • Conector Ethernet compatible con IEEE-802.3-2002
  • Cinco opciones de fuente de alimentación:

- ST LINK / V2-1

- Conector FS USB

- Conector USB HS

- VIN del conector Arduino

- 5 V externos desde el conector

Salida de fuente de alimentación para aplicaciones externas:

- 3,3 V o 5 V

Conectores Arduino Uno V3

Paso 3: Arduino Due X STM NUCLEO-L476RG

Arduino Due X STM NUCLEO-L476RG
Arduino Due X STM NUCLEO-L476RG

Aquí hay una comparación con el Arduino Due, que es un ARM Cortex-M3. He usado este modelo en videos: Nema 23 Stepper Motor with Driver TB6600 con Arduino Due, y SpeedTest: Arduinos - ESP32 / 8266s - STM32, con STM NUCLEO-L476RG, que es un ARM Cortex-M4 Ultra Low Power, y está en la imagen del lado derecho.

Arduino debido:

Microcontrolador: AT91SAM3X8E

Voltaje de funcionamiento: 3,3 V

Voltaje de entrada (recomendado): 7-12 V

Voltaje de entrada (límites): 6-16 V

Pines de E / S digitales: 54 (de los cuales 12 proporcionan salida PWM)

Pines de entrada analógica: 12

Pines de salida analógica: 2 (DAC)

Corriente de salida CC total en todas las líneas de E / S: 130 mA

Corriente CC para pin de 3.3V: 800 mA

Corriente CC para pin de 5 V: 800 mA

Memoria Flash: 512 KB todos disponibles para las aplicaciones del usuario

SRAM: 96 KB (dos bancos: 64 KB y 32 KB)

Velocidad de reloj: 84 MHz

Longitud: 101,52 mm

Ancho: 53,3 mm

Peso: 36 g

STM NUCLEO-L476RG:

STM32L476RGT6 en paquete LQFP64

CPU ARM® de 32 bits Cortex®-M4

Acelerador adaptativo en tiempo real

(ART Accelerator ™) que permite la ejecución del estado de espera 0 desde la memoria Flash

Frecuencia máxima de CPU de 80 MHz

VDD de 1,71 V a 3,6 V

Flash de 1 MB

SRAM de 128 KB

SPI (3)

I2C (3)

USART (3)

UART (2)

LPUART (1)

GPIO (51) con capacidad de interrupción externa

Detección capacitiva con 12 canales

ADC de 12 bits (3) con 16 canales

DAC de 12 bits con 2 canales

Unidad de punto flotante o FPU

* Destaco aquí la FPU separada de STM NUCLEO-L476RG, lo que significa que el chip hace cálculos trigonométricos con una velocidad asombrosa. Esto es diferente al Arduino Due, que necesita un procesador genético para hacer eso.

Paso 4: Dhrystone

Dhrystone
Dhrystone
Dhrystone
Dhrystone

Dhrystone es un programa de referencia de computadora sintético desarrollado en 1984 por Reinhold P. Weicker, que pretende ser representativo de la programación de sistemas (enteros). Dhrystone se convirtió en un representante del rendimiento general del procesador (CPU). El nombre "Dhrystone" es un juego de palabras con un algoritmo de referencia diferente llamado Whetstone. Esta es una medida tomada de algunas operaciones genéricas.

Este programa está aquí para compilar algo dentro de estos microcontroladores en Arduino. Y el resultado de dos pruebas que hice, una con Dhrystone y otra del video SpeedTest, es el siguiente:

Pago de Arduino: US $ 37,00

Dhrystone Benchmark, versión 2.1 (Idioma: C)

Comienza la ejecución, 300,000 recorridos a través de Dhrystone

Finaliza la ejecución

Microsegundos para una ejecución a través de Dhrystone: 10,70

Dhrystones por segundo: 93, 431,43

Clasificación VAX MIPS = 53,18 DMIPS

Prueba de carrera Fernandok

Tiempo total: 2, 458 ms

  • No tiene FPU
  • Software Dhrystone en Arduino

www.saanlima.com/download/dhry21a.zip

STM NUCLEO-L476RG: 23,00 dólares

Dhrystone Benchmark, versión 2.1 (Idioma: C)

Comienza la ejecución, 300,000 recorridos a través de Dhrystone

Finaliza la ejecución

Microsegundos para una ejecución a través de Dhrystone: 9,63

Dhrystones por segundo: 103, 794.59

Calificación VAX MIPS = 59.07 DMIPS

Prueba de carrera Fernandok

Tiempo total: 869 ms 2.8x MÁS RÁPIDO

  • PI hasta 40 Mbit / s, USART 10 Mbit / s
  • 2x DMA (14 canales)
  • Hasta 80 MHz / 100 DMIPS con ART Accelerator

Paso 5: STM32L432KC X Arduino Nano

STM32L432KC X Arduino Nano
STM32L432KC X Arduino Nano

La placa izquierda es la STM32L432KC, en la que STMicroelectronics colocó el pinout Arduino Nano idéntico en la imagen de la derecha.

Paso 6: STM32L432KC

STM32L432KC
STM32L432KC

Arm® Cortex®-M4 de 32 bits de potencia ultrabaja

MCU + FPU, 100DMIPS, hasta 256KB Flash, 64KB SRAM, USB FS, analógico, audio

Hasta 26 IO más rápido, más tolerante a 5 V

  • RTC con calendario de HW, alarmas y calibración
  • Hasta 3 canales de detección capacitiva
  • Temporizadores 11x: control avanzado del motor de 1x16 bits

1x 32 bits y 2x 16 bits de uso general, 2x 16 bits básicos, 2x temporizadores de bajo consumo de 16 bits (disponibles en el modo de parada), 2x perros guardianes, temporizador SysTick

Memoria:

- Hasta 256 KB de Flash, protección de lectura de código patentada

- SRAM de 64 KB, incluidos 16 KB con verificación de paridad de hardware

- Interfaz de memoria Quad SPI

Periféricos analógicos ricos (suministro independiente)

- 1x ADC 5 Msps de 12 bits, hasta 16 bits con sobremuestreo de hardware, 200 μA / Msps

- 2 canales de salida DAC de 12 bits, bajo consumo de energía

- 1x amplificador operacional con PGA incorporado

- 2x en comparación con las interfaces de potencia ultrabaja

- 1x UPS (interfaz de audio en serie)

- 2x I2C FM + (1 Mbit / s), SMBus / PMBus

- 3x USART (ISO 7816, LIN, IrDA, módem)

- 1x LPUART (Parada 2 despertar)

- 2x SPI (y 1x SPI Quad)

- CAN (2.0B activo)

- Maestro de protocolo de un solo cable SWPMI I / F

- IRTIM (interfaz de infrarrojos)

  • Controlador DMA de 14 canales
  • Generador de números aleatorios

Paso 7: Instale Core Arduino para tarjetas STM32L4

Instale Core Arduino para tarjetas STM32L4
Instale Core Arduino para tarjetas STM32L4
  1. Instale el programa ST-Link que registra
  2. Dirección Json
  3. Tableros: Administrador de tarjetas
  4. Bibliotecas: Administrador de bibliotecas

Paso 8: Instale ST-Link - Programa que registra

Instalar ST-Link: programa que registra
Instalar ST-Link: programa que registra

Descargue el archivo en https://www.st.com/en/development-tools/stsw-link0…. Simplemente regístrese, descargue e instale el dispositivo.

Paso 9: Dirección de Json

Dirección Json
Dirección Json

En las propiedades, incluya la siguiente dirección:

github.com/stm32duino/BoardManagerFiles/ra…

Paso 10: Tableros: Administrador del tablero

Juntas: Director de la junta
Juntas: Director de la junta

En Arduino Board Manager, instale el STM32 Core, que tiene unos 40 MB.

Paso 11: Bibliotecas: Administrador de bibliotecas

Bibliotecas: Administrador de bibliotecas
Bibliotecas: Administrador de bibliotecas

Finalmente, instale las bibliotecas.

Personalmente me gustó el grupo STM32duino.com, que tiene varios ejemplos, algunos de los cuales instalé. También descargué un FreeRTOS, que me gustó mucho. Lo encontré rápido y confiable. También instalé (pero aún no lo he probado) LRWAN. Pronto te diré si es bueno o no.

Paso 12: Descargar PDF

PDF

Recomendado: