UART com NRF24LE1
Neste mundo moderno, todos conhecemos o USB. Todos nós conectamos nossos pen drives, cartões de memória e outros dispositivos usando USB. Mas você já pensou o que é isso? Aqui está a resposta; USB é um protocolo de comunicação pelo qual dois dispositivos se comunicam entre si. Da mesma forma, o microcontrolador também se comunica com outros dispositivos como sensores ou PC usando diferentes protocolos de comunicação como USB, UART e I2C.
Hoje nosso foco será no uso da comunicação UART para NRF24LE1.
Figura 1: Visão geral da comunicação serial com módulo NRF24LE1
UART significa Receptor/Transmissor Assíncrono Universal. É um tipo de comunicação serial que utiliza dois fios, um para transmissão (Tx) e outro para recepção (Rx). Ele utiliza bits de início e parada no pacote para indicar o início e o fim do pacote. Também temos a opção de usar bit de paridade dentro dos dados para indicar erro nos dados transmitidos. Antes de usar o UART temos que declarar a velocidade de transmissão e recepção conhecida como taxa de transmissão. A taxa de transmissão mais comum é 9600 bps (bits por segundo).
Fig. 2: Imagem mostrando componentes utilizados na comunicação serial com Módulo NRF24LE1
O módulo NRF oferece uma variedade de taxas de transmissão de 600 bps a 38.400 bps. O pino NRF P0.3 é Tx e o pino P0.4 é Rx.
Para mais recursos, você pode consultar a folha de dados. Além disso, você pode consultar nossos artigos anteriores sobre UART com PC e NRF24LE1 para obter mais ajuda.
Estaremos usando o nrfsdk (kit de desenvolvimento de software) fornecido pela Nordic Semiconductors Ltd. A comunicação será estabelecida entre a NRF e o PC enviando “Hello” para o PC.
As funções que são úteis para usar o UART são:
· hal_uart_init – Esta função usa a taxa de transmissão.
· hal_uart_tx_complete – Verifica a conclusão da transmissão.
· Hal_uart_putchar – Esta função leva caracteres para transmissão.
· hal_uart_chars_available – Verifica se um caracter foi recebido ou não.
· hal_uart_getchar – Retorna o caracter recebido.
A descrição das várias funções é:
FUNÇÃO | PARÂMETRO DE ENTRADA | SAÍDA |
DESCRIÇÃO
|
---|---|---|---|
hal_uart_init |
UART_BAUD_600 UART_BAUD_1K2 UART_BAUD_2K4 UART_BAUD_4K8 UART_BAUD_9K6 UART_BAUD_19K2 UART_BAUD_38K4 UART_BAUD_57K6 UART_BAUD_115K2 |
– |
Para inicializar a comunicação UART selecionando a taxa de transmissão |
hal_uart_putchar | Caractere de 8 bits | – | Para transmitir caracteres de 8 bits |
hal_uart_tx_complete | – | 0/1 |
Para verificar o status da transmissão 0: Transmitindo 1:Transmitido |
hal_uart_char_disponível | – | Número de 8 bits | Para obter o número de caracteres recebidos |
hal_uart_getchar | – | Caractere de 8 bits | Para ler o caractere de 8 bits recebido |
Por favor, verifique o código comentado para a implementação completa dessas funções para obter um entendimento claro.
Figura 3: Imagem mostrando mensagem recebida no terminal virtual do PC do Módulo NRF24LE1
Código-fonte do projeto
###
//Program to
#include"reg24le1.h" // Arquivo de cabeçalho de E/S para NRF24LE1
#include"hal_uart.h" // biblioteca contendo funções de comunicação serial
###
Diagramas de circuito
Diagrama de circuito-NRF24LE1-Módulo-interface com PC sobre UART |