FAVORITAR
FecharPlease login

Franzininho C0: Comunicação serial no Arduino

Introdução

A Franzininho C0 é uma placa de desenvolvimento de hardware de código aberto, baseada no Microcontrolador STM32C0, um Arm Cortex M0+ da STMicroelectronics. Para programá-la no Arduino utilizamos o pacote STM32duino.

Na documentação da ST, os pinos dos microcontroladores STM32 são identificados por nomes como PA1, PA2, PB6, entre outros (como pode ser visto no pinout da Franzininho C0 abaixo). Embora o pacote aceite as identificações do tipo PA1 como “nomes” dos pinos, esta não é a identificação usual do ambiente Arduino.

Por isso, neste artigo veremos como reconfigurar os pinos da comunicação serial no Ambiente Arduino.

Pinout da Franzininho C0

Para definir os pinos utilizados, precisamos consultar o pinout da placa:

No dia 25 de Junho de 2024, ocorrerá o “Seminário de Sistemas Embarcados e IoT 2024“, no Holiday Inn Anhembi — Parque Anhembi, São Paulo–SP.

Garanta seu ingresso

Acesse a documentação completa em: https://docs.franzininho.com.br/docs/franzininho-c0/franzininho-c0-board

Comunicação Serial – Interface Serial Assíncrona (UART)

O UART (Universal Asynchronous Receiver/Transmitter) é um protocolo de comunicação serial muito utilizado para a transmissão de dados entre dispositivos. Aqui o termo “universal” é usado, pois esse protocolo permite que seja feita uma configuração para suportar uma variedade de taxas de transmissão, tamanhos de pacotes de dados e outras características.

Na comunicação UART, um dos dispositivos atua como transmissor, enviando dados através do pino TX (transmissor), enquanto o outro dispositivo age como receptor, recebendo dados pelo pino RX (Receptor). Além disso, a comunicação UART é “assíncrona”, pois não necessita de um sinal de clock compartilhado entre o transmissor e o receptor.

O microcontrolador na Franzininho C0 possui duas interfaces seriais assíncronas (uart1 e uart2). No ambiente Arduino, as UARTs são acessadas através de objetos com nomes como Serial, Serial1 e Serial2.

Como mostra o pinout, a Franzininho C0 tem os pinos PA9 e PA10 conectados ao conversor serial USB CH340, para fornecer comunicação serial com um micro usb através de um cabo USB. Para utilizar a placa no Arduino selecionamos a opção “Generic STM32C0” que define um objeto Serial associado à interface uart1, usando os pinos PA0 e PA1. 

No entanto, para usar o objeto Serial para comunicação via USB é preciso reconfigurar os pinos através dos métodos setRx e setTx antes de chamar o método begin.

Código

Para reconfigurar os pinos RX e TX utilizamos o código abaixo. Este código foi desenvolvido com base no trabalho de Daniel Quadros e está disponível no Github da Franzininho:

Obs1.: Os nomes especiais para os pinos PA9 e PA10 se devem ao fato destes pinos compartilharem os mesmos pinos físicos que PA11 e PA12.

Obs2.: Antes da IDE iniciar o carregamento do programa, a Franzininho C0 deve executar o bootloader, caso contrário ocorrerá um erro.

Explicação do Código

Para esse código funcionar é importante verificar no menu “Tools” se a opção “U(S)ART Support” está configurada para “Enabled (generic Serial)”. 

Dessa forma, no setup, altere os pinos RX e TX para PA_10_R e PA_9_R, respectivamente, usando setRx e setTx. Em seguida, defina o baud rate como 115200. É importante que a velocidade no Serial Monitor também esteja configurada para 115200 baud, caso contrário, ele pode exibir caracteres aleatórios ao invés das informações que você deseja mostrar:

No loop, insira Serial.println(“Ola, Franzininho C0!”) para imprimir no monitor serial, usando os pinos corretos de RX e TX da Franzininho C0. Isso ocorrerá a cada 1 segundo, graças ao delay(1000), e incluirá uma quebra de linha.

Executando o código, o monitor serial vai exibir a cada 1 segundo:

Conclusão

Neste tutorial abordamos o funcionamento do protocolo de comunicação serial UART. Especificamente no contexto do Arduino e da Franzininho C0, destacamos a necessidade de configurar adequadamente os pinos RX e TX, juntamente com a taxa de baud, para assegurar uma comunicação eficaz. Também ressaltamos a importância de alinhar a configuração do Serial Monitor com as configurações de baud rate do código, a fim de evitar a exibição de caracteres incorretos.

Ao seguir esses procedimentos e adotar boas práticas, torna-se mais simples desenvolver projetos que necessitem da comunicação serial, garantindo uma troca de dados confiável e eficiente entre os dispositivos envolvidos.

Desafio

Contagem Serial de 0 a 1000

Objetivo: Altere o programa para enviar continuamente uma contagem de 0 a 1000.

Boa sorte!

Outros artigos da série

<< Controle de intensidade de um LED com PWM no Arduino usando a Franzininho C0
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
0 Comentários
Inline Feedbacks
View all comments
Home » Software » Franzininho C0: Comunicação serial no Arduino

EM DESTAQUE

WEBINARS

LEIA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste:


Seminário de
Sistemas Embarcados e IoT 2024
 
Data: 25/06 | Local: Hotel Holiday Inn Anhembi, São Paulo-SP
 
GARANTA SEU INGRESSO

 
close-link