Utilizando a UART da FRDM-K64F com o componente fsl_debug_console

fsl_debug_console

Em muitos projetos é necessário disponibilizar uma interface serial RS232, e alguns dos motivos são:

  • Depuração de código sem a necessidade do gravador/simulador;
  • Alteração de configuração do produto em campo;
  • Atualização de firmware em campo;
  • Meio de download de log para acompanhamento de funcionamento;
  • Meio de comunicação com outra aplicação seguindo um protocolo (MODBUS por exemplo);
  • Comunicação com módulos de comunicação (Modem GPRS, Wi-Fi, Bluetooth…);
  • Etc…

Para exemplificar, será utilizada a placa FRDM-K64F. Será uma série dividida em três partes:

  1. Utilizando a UART da FRDM-K64F com o componente fsl_debug_console;
  2. Utilizando a UART da FRDM-K64F com o componente fsl_uart sem Interrupção;
  3. Utilizando a UART da FRDM-K64F com o componente fsl_uart com Interrupção.

Com esta placa é possível disponibilizar esta interface basicamente de duas maneiras:

  1. Montar um circuito de interface bem conhecido utilizando um MAX3232 e assim consegue-se os níveis de tensão para o padrão RS232, ou até mesmo sem este transceptor, caso seja necessária a comunicação com algum módulo (GPS);
  2. Utilizar a serial disponibilizada pelo gravador/simulador presente na placa. Desta maneira não é necessário nenhum circuito a mais, porém, esta interface só funcionará quando o código estiver em modo de depuração. Esta será a serial utilizada nesta série.

Detalhe da UART utilizada na FRDM-K64F

No esquemático da placa K64F, página 4, tem os sinais RX e TX da UART ligados ao debugger. E os sinais que são ligados ao microcontrolador da placa, PTB16 e PTB17.

Sinais da UART ligados ao debugger.
Figura 1: Sinais da UART ligados ao debugger.

Ainda no esquemático mas na página 3, estão os sinais utilizados para a UART0 do microcontrolador.

Sinais da UART0.
Figura 2: Sinais da UART0.

Preparação do ambiente

O ambiente pode ser preparado utilizando este artigo do Denis Shimizu. Para a preparação da placa, sugiro seguir este artigo escrito por mim.

Criação do projeto

1) Com o KDS aberto, seguir o caminho “File -> New -> Kinetis Project“.

2) No campo “Project Name” digitar o seguinte nome “K64F-UART”. Clicar em “Next”.

3) Selecionar o microcontrolador no caminho “Processor -> Kinetis K -> MK60 -> MK64F (120MHz) -> MK64FN1M0xxx12”. Clicar em “Next“.

4) No campo Kinetis SDK, selecionar o KSDK instalado. No meu caso é o “KSDK_1.3.0”. Marcar a opção “Processor Expert”. No campo “Start with perspective designed for”, manter marcada a opção “use current perspective”.    No campo “Project Mode”, manter marcada a opção “Standalone”. Clicar em “Next”.

5) Em “Target Compiler“, selecionar “GNU C Compiler“. Clicar em “Finish“.

Adicionando e configurando o componente via Processor Expert

1) Abrir a janela referente ao Processor Expert. Caso esta ainda não esteja disponível, é possível exibí-la seguindo o caminho: “Menu Processor Expert -> Show Views”.

2) Selecionar as abas “Components Library -> Categories”. Selecionar o componente de serial pelo seguinte caminho: “KSDK 1.3.0 -> Peripheral Drivers/HAL -> Utilities -> fsl_debug_console”.

3) Clicar duas vezes no componente para adicioná-lo ao projeto.

4) Clicar no componente que acabou de ser adicionado, e clicar na aba “Component Inspector”.

5) Para facilitar a visualização dos parâmetros, normalmente eu altero as algumas configurações do PE. Clicar no botão “Advanced”. Clicar na seta para baixo onde mais configurações são exibidas e desmarcar a opção “Tabs View”.

Tela de Configuração da UART no Processor Expert.
Figura 3: Tela de Configuração da UART no Processor Expert.

6) Vendo o trecho do esquema nas figuras anteriores, é necessário utilizar a UART0, que já está selecionada.

7) No campo “Pins -> Pins/Signals -> Receiver -> RxD” alterar o pino para PTB16.

8) No campo “Pins -> Pins/Signals -> Transmitter -> TxD” alterar o pino para PTB17.

9) Configuração feita, agora é necessário gerar o código. Clicar no botão “Generate Processor Expert Code” e aguardar o fim do barra de progresso.

Detalhe do botão "Generate Processor Expert Code".
Figura 4: Detalhe do botão “Generate Processor Expert Code”.

Funções disponíveis para o componente serial utilizado

Funções Disponíveis do Componente Serial fsl_debug_console.
Figura 5: Funções Disponíveis do Componente Serial.

Código de exemplo

Vamos criar um simples menu de configuração, fazendo uso das funções do componente adicionado.

A ideia do menu é mostrar uma lista de parâmetros, selecioná-los de acordo com a numeração. Se a opção selecionada não estiver disponível, apresenta uma mensagem de opção inválida.

Para isso, vamos utilizar uma estrutura de máquina de estado bem simples, sem nos preocuparmos com o tamanho do código, mas sim em utilizar as funções do componente serial.

Para testar a aplicação, é necessário um terminal serial. Eu utilizo o teraterm.

Configurar o terminal serial para se comunicar com a porta COM gerada pela placa. O baudrate deve ser 115200.

Estas são as telas geradas de acordo com as opções selecionadas.

Menu de Configuração.
Figura 6: Menu de Configuração.
Opção de Calibração de Sensores.
Figura 7: Opção de Calibração de Sensores.
Opção de Configuração de Canais de Comunicação.
Figura 8: Opção de Configuração de Canais de Comunicação.
Opção de Teste de Hardware.
Figura 9: Opção de Teste de Hardware.
Opção Inválida.
Figura 10: Opção Inválida.

Conclusão

A funcionalidade do Processor Expert de já criar funções com base em uma porta serial é bem interessante, assim já é possível fazer testes de hardware e algumas depurações. Mas não é a maneira mais eficiente, por conta do tamanho do código gerado para cada função. Sendo assim, nos próximos artigos serão apresentadas outras maneiras de utilizar a UART.

Veja + conteúdo

Engenheiro de Desenvolvimento de Sistemas Embarcados formado à 10 anos. Desenvolvimento de circuitos microcontrolados de 8, 16 e 32 bits (PIC, dsPIC, Cortex M0+, Cortex M3 e Cortex M4F). Firmwares bare metal, FreeRTOS. Módulos de comunicação GSM. Interesses em conectividade, IoT, Linux Embarcado, plataformas open hardware.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Séries

Menu