sexta-feira, outubro 11, 2024

WeActStudio RA4M1 64 pin Core Board: Mini-review e como usar com a IDE Arduino

Quem acompanha o blog já conhece a minha decepção com o Arduino Uno R4. Mas não resisti testar uma placa da WeActStudio com o mesmo microcontrolador (Renessas RA4M1).

O Microcontrolador RA4M1

As principais características do RA4M1 da Renessas são:

  • ARM Cortex M4, com unidade de ponto flutuante
  • Clock de 48MHz
  • 256k de memória Flash
  • 32k de RAM
  • USB nativa
  • Um bom conjunto de periféricos (4xUART, 2xSPI, 2xI2C, CAN, ADC, DAC)
  • Relógio de tempo real (RTC)
  • Operação de 1,6 a 5,5V

Apesar do clock e memória modestos frente aos ESP32 e RP2xxx, o RA4M1 é bem mais poderoso que o ATmega328 das versões anteriores do Uno e viabiliza uma série de novas aplicações mantendo o formato e a interface de hardware.

Mini Review da  RA4M1 64 pin Core Board

Este placa troca o formato padrão do Uno por uma alternativa bem mais compacta, com fileiras duplas de pinos dando acesso a praticamente todos os pinos do microcontrolador.

Além do cristal para operação a 48MHz, a placa dispõe de um cristal de 32kHz para o RTC. Isto faz uma diferença incrível na precisão, nos meus testes (comparando as placas com o meu PC) a diferença após 4 horas foi inferior a um segundo; o Uno R4 Mínima apresentou 30 segundos de erro após meia hora!

Outro ponto importante é a disponibilidade do pino VBAT no conector, permitindo conectar uma bateria para manter a data e hora mesmo sem a alimentação principal. Este recurso está disponível no R4 WiFi mas não no R4 Minima.

A placa possui três botões: o Reset, MD (para entrar no bootloader) e um botão "de usuário" (ligado a P013).

Um detalhe é que existem dois modelos desta placa, um com I/O operando a 3,3V e outro operando a 5V. Isto é uma opção de fábrica e envolve a troca do regulador de tensão.

A documentação no github inclui o esquema da placa e alguns exemplos simples, mas sem instruções de como compilar os exemplos.

O preço da placa (no momento que escrevo) é um pouco maior que metade do preço de um clone do Uno R4 Minima.

Considero esta placa bem mais atraente que a R4 Minima, exceto se você pretende usar em conjunto com um shield Arduino.

Usando a placa com a IDE Arduino

Uma desvantagem desta placa é a falta de suporte à programação. A Renessas possui uma IDE para essa linha de microcontroladores, aparentemente gratis (não investiguei). A programação provavelmente envolve acessar diretamente registradores ou se familizar com uma camada de abstração proprietária.

Daí o meu interesse em usar a IDE Arduino, pelo menos para testes iniciais. Deu algum trabalho, mas tive sucesso (pelo menos no programa simples de teste que eu fiz).

A primeira dificuldade é a instalação do bootloader do Arduino. Infelizmente a IDE não tem suporte direto a isso. Se você procurar nos arquivos instalados no Windows para suporte ao Uno R4, vai achar o bootloader na pasta

{usuario}\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.2.2\bootloaders\UNO_R4

Além dos bootloaders, tem um README.md com algumas dicas de como instalar. O primeiro passo é baixar a instalar a ferramenta da Renessas, o que existe um cadastro com várias perguntas. Em seguida, coloque a placa no modo bootloader, ligando ou pressionando o Reset com o botão MD apertado. Junto com a ferramenta da Renessas foi instalado o driver necessário. Aí, estando o caminho para a ferramenta no path, basta executar o comando

 rfp-cli -device ra -port {porta} -p dfu_minima.hex

Onde {porta} é a serial (COMxx) que aparece ao conectar a placa no modo bootloader.

Feito isso, a placa será reconhecida pela IDE como um Uno R4 Minima.

Para configurar o RTC para usar o cristal de 32KHz, coloque a linha abaixo antes do include do RTC.h:

#define RTC_CLOCK_SOURCE RTC_CLOCK_SOURCE_SUBCLK

Um último detalhe é que você vai ter que olhar o esquema do R4 Minima para descobrir qual o pino do microcontrolador correspondente aos pinos digitais e analógicos do Arduino.





Nenhum comentário: