Índice:

O incrível STM32 L4 !: 12 etapas
O incrível STM32 L4 !: 12 etapas

Vídeo: O incrível STM32 L4 !: 12 etapas

Vídeo: O incrível STM32 L4 !: 12 etapas
Vídeo: O Incrível STM32 L4! 2024, Novembro
Anonim
Image
Image
STM32F746G DISCOVERY
STM32F746G DISCOVERY

Quero começar este artigo explicando que esta letra L (de L4) significa Baixo (ou, basicamente, Ultra Low Power). Assim, gasta pouca energia e mostra porque esse STM32 é incrível! Gasta microampères e possui um sistema interno que pode identificar o gasto de cada peça do chip. Isso permite uma gestão de energia muito eficiente e com alto desempenho.

Já falei sobre esse microcontrolador no vídeo, “A maneira mais fácil de programar um microcontrolador!” No vídeo, mostrei como programar o STM32 L4 com MBED. Mas enquanto pesquisava mais sobre o assunto, descobri algo que o fabricante STMicroelectronics não divulga. Ele implementou o Core Arduino no chip, que permite a programação por meio do IDE do Arduino.

Nesta imagem, temos duas versões de L4. O STM32L432KC é idêntico ao Arduino Nano e ao STM32L476RG, que possuem IOs equivalentes ao Arduino Uno. Então, enquanto trabalho com duas versões deste poderoso microcontrolador, vou mostrar como instalar o Arduino Core na família STM32. Além disso, explicarei as principais características dos Kits STM32.

Etapa 1: Placas com Core Arduino

Coloquei aqui uma lista sobre a diversidade. No entanto, vamos trabalhar com o STM32L432KC e o STM32L476RG.

STM32F0

  • Nucleo F030R8
  • Nucleo F091RC
  • 32F0308DISCOVERY

STM32F1

  • BluePill F103C8 (suporte básico, sem USB)
  • MapleMini F103CB (suporte básico, sem 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

  • Nucleo L031K6
  • Nucleo L053R8
  • B-L072Z-LRWAN1

STM32L1

Nucleo L152RE

STM32L4

  • Nucleo L432KC
  • Nucleo L476RG
  • NUCLEO-L496ZG-P
  • NUCLEO-L496ZG-P
  • B-L475E-IOT01A

Etapa 2: STM32F746G DISCOVERY

Só para ilustrar, apresento os detalhes de um STM32F746G DISCOVERY, que considero uma fera. Já encomendei este chip e espero falar sobre isso em breve.

Características:

Microcontrolador STM32F746NGH6 com 1 Mbytes de memória Flash e 340 Kbytes de RAM em um pacote BGA216

  • ST-LINK / V2-1 integrado com suporte para recursos de reenumeração USB
  • Habilitado para Mbed (mbed.org)
  • Funções USB: porta COM virtual, armazenamento em massa e porta de depuração
  • 4,3 polegadas 480 x 272 cores LCD-TFT com tela de toque capacitiva
  • Conector de câmera
  • Codec de áudio SAI
  • Entrada e saída de linha de áudio
  • Saídas de alto-falante estéreo
  • Dois microfones ST MEMS
  • Conector de entrada SPDIF RCA
  • Dois botões (usuário e reset)
  • Memória Flash Quad-SPI de 128 Mbits
  • SDRAM de 128 Mbits (64 Mbits acessíveis)
  • Conector para cartão microSD
  • Conector RF-EEPROM da placa-filha
  • USB OTG HS com conectores Micro-AB
  • USB OTG FS com conectores Micro-AB
  • Conector Ethernet compatível com IEEE-802.3-2002
  • Cinco opções de fonte de alimentação:

- ST LINK / V2-1

- Conector USB FS

- Conector USB HS

- VIN do conector Arduino

- 5 V externo do conector

Saída da fonte de alimentação para aplicações externas:

- 3,3 V ou 5 V

Conectores Arduino Uno V3

Etapa 3: Arduino Due X STM NUCLEO-L476RG

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

Aqui está uma comparação com o Arduino Due, que é um ARM Cortex-M3. Usei este modelo em vídeos: Nema 23 Stepper Motor with Driver TB6600 com Arduino Due, e SpeedTest: Arduinos - ESP32 / 8266s - STM32, com STM NUCLEO-L476RG, que é um ARM Cortex-M4 Ultra Low Power, e está em a imagem do lado direito.

Arduino devido:

Microcontrolador: AT91SAM3X8E

Tensão operacional: 3,3 V

Tensão de entrada (recomendado): 7-12V

Tensão de entrada (limites): 6-16V

Pinos de E / S digital: 54 (dos quais 12 fornecem saída PWM)

Pinos de entrada analógica: 12

Pinos de saída analógica: 2 (DAC)

Corrente de saída DC total em todas as linhas de E / S: 130 mA

Corrente DC para pino de 3,3 V: 800 mA

Corrente DC para pino de 5 V: 800 mA

Memória Flash: 512 KB disponíveis para os aplicativos do usuário

SRAM: 96 KB (dois bancos: 64 KB e 32 KB)

Velocidade do relógio: 84 MHz

Comprimento: 101,52 mm

Largura: 53,3 mm

Peso: 36 g

STM NUCLEO-L476RG:

STM32L476RGT6 no pacote LQFP64

CPU ARM®32-bit Cortex®-M4

Acelerador adaptável em tempo real

(ART Accelerator ™) permitindo a execução do estado de espera 0 a partir da memória Flash

Frequência máxima da CPU de 80 MHz

VDD de 1,71 V a 3,6 V

1 MB Flash

SRAM de 128 KB

SPI (3)

I2C (3)

USART (3)

UART (2)

LPUART (1)

GPIO (51) com capacidade de interrupção externa

Sensor capacitivo com 12 canais

ADC de 12 bits (3) com 16 canais

DAC de 12 bits com 2 canais

FPU ou Unidade de Ponto Flutuante

* Destaco aqui o FPU separado do STM NUCLEO-L476RG, o que significa que o chip faz cálculos trigonométricos com velocidade incrível. É diferente do Arduino Due, que precisa de um processador genético para fazer isso.

Etapa 4: Dhrystone

Dhrystone
Dhrystone
Dhrystone
Dhrystone

Dhrystone é um programa de referência de computador sintético desenvolvido em 1984 por Reinhold P. Weicker, que se destina a ser representativo da programação de sistema (inteiro). Dhrystone se tornou um representante do desempenho geral do processador (CPU). O nome "Dhrystone" é um trocadilho com um algoritmo de benchmark diferente chamado Whetstone. Esta é uma medida tirada de algumas operações genéricas.

Este programa está aqui para compilar algo dentro desses microcontroladores no Arduino. E o resultado de dois testes que fiz, um com Dhrystone e outro do vídeo SpeedTest, são os seguintes:

Arduino devido: US $ 37,00

Dhrystone Benchmark, Versão 2.1 (Idioma: C)

A execução começa, 300.000 execuções em Dhrystone

Execução termina

Microssegundos para uma execução em Dhrystone: 10,70

Dhrystones por segundo: 93, 431,43

Classificação VAX MIPS = 53,18 DMIPS

Executando o teste Fernandok

Tempo total: 2, 458 ms

  • Não tem FPU
  • Software Dhrystone no Arduino

www.saanlima.com/download/dhry21a.zip

STM NUCLEO-L476RG: US $ 23,00

Dhrystone Benchmark, Versão 2.1 (Idioma: C)

A execução começa, 300.000 execuções em Dhrystone

Execução termina

Microssegundos para uma execução em Dhrystone: 9,63

Dhrystones por segundo: 103, 794,59

Classificação VAX MIPS = 59,07 DMIPS

Executando o teste Fernandok

Tempo total: 869 ms 2,8x MAIS RÁPIDO

  • PI até 40Mbit / s, USART 10Mbit / s
  • 2x DMA (14 canais)
  • Até 80 MHz / 100 DMIPS com ART Accelerator

Etapa 5: STM32L432KC X Arduino Nano

STM32L432KC X Arduino Nano
STM32L432KC X Arduino Nano

A placa esquerda é a STM32L432KC, na qual a STMicroelectronics colocou a pinagem Arduino Nano idêntica na imagem à direita.

Etapa 6: STM32L432KC

STM32L432KC
STM32L432KC

Ultra-low-power Arm® Cortex®-M4 32 bits

MCU + FPU, 100DMIPS, Flash de até 256 KB, SRAM de 64 KB, USB FS, analógico, áudio

Até 26 IOs mais rápido, mais tolerante a 5V

  • RTC com calendário HW, alarmes e calibração
  • Até 3 canais de detecção capacitiva
  • 11x Timers: controle de motor avançado de 1x16 bits

1x 32 bits e 2x 16 bits de uso geral, 2x 16 bits básicos, 2x timers de 16 bits de baixa potência (disponível no modo Stop), 2 watchdogs, SysTick timer

Memória:

- Flash de até 256 KB, proteção de leitura de código proprietário

- 64 KB SRAM incluindo 16 KB com verificação de paridade de hardware

- Interface de memória Quad SPI

Periféricos analógicos ricos (fornecimento independente)

- 1x ADC de 12 bits 5 Msps, até 16 bits com sobreamostragem de hardware, 200 μA / Msps

- 2 canais de saída DAC de 12 bits, baixo consumo de energia

- 1 amplificador operacional com PGA integrado

- 2x em comparação com interfaces de ultra-baixo consumo de energia

- 1x UPS (interface de áudio serial)

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

- 3 USARTs (ISO 7816, LIN, IrDA, modem)

- 1x LPUART (Stop 2 wake up)

- 2x SPI (e 1x SPI Quad)

- CAN (2,0B ativo)

- Protocolo mestre de fio único SWPMI I / F

- IRTIM (interface infravermelha)

  • Controlador DMA de 14 canais
  • Gerador de números aleatórios

Etapa 7: Instale o Core Arduino para placas STM32L4

Instale o Core Arduino para placas STM32L4
Instale o Core Arduino para placas STM32L4
  1. Instale o programa ST-Link que grava
  2. Endereço Json
  3. Placas: Card Manager
  4. Bibliotecas: Gerenciador de Bibliotecas

Etapa 8: Instale o ST-Link - Programa que registra

Instale ST-Link - programa que registra
Instale ST-Link - programa que registra

Baixe o arquivo em https://www.st.com/en/development-tools/stsw-link0…. Basta registrar, baixar e instalar o dispositivo.

Etapa 9: Endereço Json

Endereço Json
Endereço Json

Nas propriedades, inclua o seguinte endereço:

github.com/stm32duino/BoardManagerFiles/ra…

Etapa 10: Conselhos: Gerente do Conselho

Conselhos: Gerente do Conselho
Conselhos: Gerente do Conselho

No Arduino Board Manager, instale o STM32 Core, que tem cerca de 40 MB.

Etapa 11: Bibliotecas: Gerenciador de bibliotecas

Bibliotecas: Gerenciador de Bibliotecas
Bibliotecas: Gerenciador de Bibliotecas

Finalmente, instale as bibliotecas.

Gostei pessoalmente do grupo STM32duino.com, que tem vários exemplos, alguns dos quais instalei. Também baixei um FreeRTOS, do qual gostei muito. Achei rápido e confiável. Eu também instalei (mas ainda não testei) LRWAN. Em breve direi se é bom ou não.

Etapa 12: Baixe o PDF

PDF

Recomendado: