Comunicação UART usando NRF24le1 (Parte 10/14)

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.

Visão geral da comunicação serial com módulo 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).

Imagem mostrando componentes usados ​​na comunicação serial com módulo NRF24LE1

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.

Imagem mostrando mensagem recebida no terminal virtual do PC do módulo NRF24LE1

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
#include"hal_delay.h" // arquivo de cabeçalho contendo funções de atraso
// Putchar repetido para imprimir uma string void putstring(char *s) { enquanto(*s != 0) hal_uart_putchar(*s++); } // função principal vazio principal { P0DIR = 0xf0; // configura P03 como saída e P04 como entrada; // Inicializa o UART hal_uart_init(UART_BAUD_9K6); //Habilita interrupções globais EA = 1; //Loop infinito enquanto(1) { //Imprime "Olá a todos" putstring("rnOlá a todos!!rn") ; atraso_ms(1000); //atraso de 1seg } }

###

Diagramas de circuito

Diagrama de circuito-NRF24LE1-Módulo-interface com PC sobre UART

Vídeo do projeto

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.