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.

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.

Comunicações » Utilizando a UART da FRDM-K64F com o componente fsl_debug_console
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Séries

Menu