Quero começar esse artigo de
hoje explicando que essa letra L, do L4, é de Low, ou seja, Ultra Low Power,
portanto, que gasta pouca energia. Isso já mostra o porquê deste STM32 ser
incrível! Esse “cara” gasta microampères e tem um sistema dentro dele que
consegue identificar o gasto de cada parte deste chip, o que significa uma
gestão bastante eficiente de energia, com alta performance.
Eu já falei sobre esse
microcontrolador no vídeo: A maneira mais fácil de programar um microcontrolador!, no qual eu mostrei como programar o STM32 L4 com MBED. Mas,
pesquisando mais sobre ele, descobri uma coisa que a própria fabricante STMicroelectronics
não divulga: ela implementou neste chip o Core Arduino possibilitando a programação
pela IDE do Arduino.
Nesta imagem nós temos duas
versões de L4. O STM32L432KC que é idêntico ao Arduino Nano e o STM32L476RG que
tem IOs equivalentes ao do Arduino Uno. Então, trabalhando duas versões deste
microcontrolador que considero muito potente, quero hoje te mostrar como
instalar o Core Arduino na família STM32 e explicar ainda as características
principais dos Kits STM32.
Placas com Core Arduino
Deixo aqui uma lista de placas
para vocês terem conhecimento da diversidade que existe, mas ressalto que as
que vamos trabalhar são a STM32L432KC e a STM32L476RG.
STM32F0
·
Nucleo F030R8
·
Nucleo F091RC
·
32F0308DISCOVERY
STM32F1
·
BluePill F103C8 (Basic support, no USB)
·
MapleMini F103CB (Basic support, no 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
STM32F746G DISCOVERY

Só para ilustrar, trago para vocês aqui detalhes de um STM32F746G DISCOVERY, que considero um “monstrengo”. Quero adiantar que já fiz um pedido deste chip e estou esperando chegar para começar a falar mais sobre ele.
Características:
• STM32F746NGH6
microcontroller featuring
1 Mbytes of Flash memory and
340 Kbytes of
RAM, in BGA216 package
• On-board ST-LINK/V2-1
supporting USB reenumeration
capability
• Mbed-enabled (mbed.org)
• USB functions: virtual COM
port, mass
storage, debug port
• 4.3-inch 480x272 color
LCD-TFT with
capacitive touch screen
• Camera connector
• SAI audio codec
• Audio line in and line out
jack
• Stereo speaker outputs
• Two ST MEMS microphones
• SPDIF RCA input connector
• Two pushbuttons (user and
reset)
• 128-Mbit Quad-SPI Flash
memory
• 128-Mbit SDRAM (64 Mbits
accessible)
• Connector for microSD card
• RF-EEPROM daughterboard
connector
• USB OTG HS with Micro-AB
connectors
• USB OTG FS with Micro-AB
connectors
• Ethernet connector compliant
with
IEEE-802.3-2002
• Five power supply options:
– ST LINK/V2-1
– USB FS connector
– USB HS connector
– VIN from Arduino connector
– External 5 V from connector
• Power supply output for
external applications:
3.3 V or 5 V
• Arduino Uno V3 connectors
Arduino Due x STM NUCLEO-L476RG
Trago aqui um comparativo do
Arduino Due, que é ARM Cortex-M3, modelo que já trabalhei nos vídeos: Motorde Passo Nema 23 com Driver TB6600 com Arduino Due e SpeedTest: Arduinos– ESP32/8266s – STM32, com o STM NUCLEO-L476RG, que é ARM Cortex-M4 Ultra
Low Power, e está na imagem do lado direito.
Arduino Due:
Microcontroller: AT91SAM3X8E
Operating Voltage: 3.3V
Input Voltage (recommended):
7-12V
Input Voltage (limits): 6-16V
Digital I/O Pins: 54 (of which
12 provide PWM output)
Analog Input Pins: 12
Analog Output Pins: 2 (DAC)
Total DC Output Current on all
I/O lines: 130 mA
DC Current for 3.3V Pin: 800
mA
DC Current for 5V Pin: 800 mA
Flash Memory: 512 KB all
available for the user applications
SRAM: 96 KB (two banks: 64KB
and 32KB)
Clock Speed: 84 MHz
Length: 101.52 mm
Width: 53.3 mm
Weight: 36 g
STM NUCLEO-L476RG:
STM32L476RGT6 in LQFP64
package
ARM®32-bit Cortex®-M4 CPU
Adaptive real-time accelerator
(ART Accelerator™) allowing
0-wait state execution
from Flash memory
80 MHz max CPU frequency
VDD from 1.71 V to 3.6 V
1 MB Flash
128 KB SRAM
SPI (3)
I2C (3)
USART (3)
UART (2)
LPUART (1)
GPIO (51) with external interrupt
capability
Capacitive sensing with 12
channels
12-bit ADC (3) with 16
channels
12-bit DAC with 2 channels
FPU ou unidade de ponto
flutuante
*Destaco aqui a FPU separada
do STM NUCLEO-L476RG, que significa que o chip faz cálculos trigonométricos com
uma rapidez espantosas, diferente do Arduino Due, que precisa de um processador
genético para conseguir fazer isso.
Dhrystone
Dhrystone é
um programa de benchmark
de computação sintética desenvolvido em 1984 por Reinhold
P. Weicker, que pretende ser representativo da programação do sistema
(inteiro). O Dhrystone cresceu para se tornar representante do desempenho geral
do processador (CPU). O nome "Dhrystone" é um trocadilho com um
algoritmo de benchmark diferente chamado Whetstone. Podemos dizer que se
trata de uma medida tirada a partir de algumas operações genéricas.
Trago aqui esse programa
porque eu queria compilar alguma coisa dentro destes microcontroladores em
Arduino. E o resultado de dois teste que fiz, um com o Dhrystone e outro do
vídeo do SpeedTest, são os seguintes:
Arduino Due: US$37,00
·
Dhrystone Benchmark, Version 2.1 (Language: C)
Execution
starts, 300000 runs through Dhrystone
·
Execution ends
Microseconds for one run through Dhrystone:
10.70
Dhrystones
per Second: 93431.43
VAX MIPS
rating = 53.18 DMIPS
·
Rodando teste Fernandok
Tempo total: 2458 ms
·
Não tem FPU
·
software Dhrystone em Arduino
http://www.saanlima.com/download/dhry21a.zip
STM NUCLEO-L476RG: US$23,00
·
Dhrystone Benchmark, Version 2.1 (Language: C)
Execution
starts, 300000 runs through Dhrystone
·
Execution ends
Microseconds for one run through Dhrystone:
9.63
Dhrystones
per Second: 103794.59
VAX MIPS
rating = 59.07 DMIPS
·
Rodando teste Fernandok
Tempo total: 869 ms 2.8x MAIS RÁPIDO
·
SPI up to 40Mbit/s, USART 10Mbit/s
·
2x DMA (14 canais)
·
Up to 80 MHz/ 100 DMIPS with ART Accelerator
STM32L432KC x Arduino Nano
A placa da esquerda é o STM32L432KC,
na qual a STMicroelectronics colocou a pinagem idêntica do Arduino Nano, na
foto à direita.
STM32L432KC
Ultra-low-power Arm® Cortex®-M4 32-bit
MCU+FPU, 100DMIPS, up to 256KB
Flash, 64KB
SRAM, USB FS, analog, audio
Até 26 IOs rápidos, mais
tolerantes a 5V
• RTC com calendário HW,
alarmes e calibração
• Até 3 canais de detecção
capacitivos
• Temporizadores 11x: 1x16-bit
controle avançado de motor
1x 32-bit e 2x 16-bit uso
geral, 2x 16-bit básico, 2x timers de 16 bits de baixa potência (disponível no
modo Stop), 2x watchdogs, temporizador SysTick
• Memória:
- Até 256 KB de Flash,
proteção proprietária de leitura de código
- 64 KB de 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
- 1x amplificador operacional
com PGA embutido
- 2x compara interfaces de
ultra baixa potência
- 1x SAI (interface de áudio
serial)
- 2x I2C FM + (1 Mbit / s),
SMBus / PMBus
- 3x USARTs (ISO 7816, LIN,
IrDA, modem)
- 1x LPUART (Parar 2 acordar)
- 2x SPIs (e 1x Quad SPI)
- CAN (2.0B ativo)
- mestre de protocolo de fio
único SWPMI I/F
- IRTIM (interface de
infravermelhos)
• Controlador DMA de 14 canais
• Gerador de números
aleatórios
Instalar o Core Arduino para placas STM32L4
1. Instalar
ST-Link - programa que grava
2. Endereço
Json
3. Boards
: Gerenciador de placas
4. Libraries
: Gerenciador de Bibliotecas
1 – Instalar ST-Link – programa
que grava
Baixe o arquivo no link: https://www.st.com/en/development-tools/stsw-link009.html.
Basta fazer um cadastro, o download e instalar o device.
2 – Endereço Json
Em propriedades, inclua o
seguinte endereço:
3 – Boards: Gerenciador de
placas
No Gerenciador de placas do
Arduino, instale o STM32 Core, que tem cerca de 40MB.
4 – Libraries: Gerenciador de
Bibliotecas
Por fim, instale as
bibliotecas.
Eu, pessoalmente, gostei do grupo STM32duino.com, que tem vários exemplos, sendo que alguns eu instalei. Também baixei um FreeRTOS, que gostei bastante. Achei rápido e confiável. Outra coisa que instalei, mas ainda não testei é o LRWAN. Mas, logo, logo, falo para vocês se é bom ou não.
3 Comentários
Programar com ícones, Node-RED esta ai..!!!
ResponderExcluirQue tal avaliar este Discovery Kit B-L475E-IOT01A junto com o Azure RTOS?
ResponderExcluirI thought it was a STONE LCD
ResponderExcluir