Biblioteca para FRDM-KL05Z: Aprenda a utilizar - MakerHero

Biblioteca para FRDM-KL05Z: Aprenda a utilizar Deixe um comentário

Olá caro leitor, tudo bem? Vamos continuar com a série de artigos sobre a Freedom Board KL05Z da empresa NXP Semiconductors. O objetivo deste artigo é apresentar a biblioteca de software que venho desenvolvendo para utilizar com o microcontroladores da família KL05Z. Além disso um exemplo prático demonstrando a utilização da biblioteca para FRDM-KL05Z, a aplicação de demonstração é composta pelos clássicos “Blink LED”, “Hello, World!” e algoritmo “echo”.

Essa família de microcontroladores é a mais simples da linha Kinetis ARM Cortex-M e não possui suporte das bibliotecas KINETIS-SDK: Software Development Kit for Kinetis e MCUXpresso Software Development Kit (SDK). Estas formam o conjunto de bibliotecas de software de apoio ao desenvolvimento de aplicações para os microcontroladores Kinetis ARM Cortex-M.

Como já venho trabalhando com esses microcontroladores em diversos projetos, resolvi disponibilizar a biblioteca no Github. A biblioteca de software que desenvolvi, são drivers de acesso aos periféricos do microcontrolador. Essa biblioteca está sobre a licença CC-BY – Attribution Alone 4.0 International Public License. Diz que; “todo mundo pode fazer o que quiser com a biblioteca, desde que a autoria seja citada”.

A biblioteca de que venho trabalhando possui os drivers para os principais periféricos do microcontrolador, são eles:

  • GPIO – General-Purpose Input/Output
  • I2C – Inter-Integrated Circuit
  • PIT – Periodic Interrupt Timer
  • SPI – Serial Peripheral Interface
  • Systick – System tick timer
  • TPM – Timer/PWM Module
  • UART – Universal Asynchronous Receiver/Transmitter
  • ADC – Analog-to-Digital Converter

Clonando a biblioteca para FRDM-KL05Z

Como dito anteriormente a biblioteca está disponível no Github, assim permite que seja clonado o projeto, possibilitando você caro leitor, contribuir com o projeto e receber atualizações. Segue o comando para clonar a biblioteca.

git clone https://github.com/evandro-teixeira/KL05Z_Libraries.git

Dessa maneira teremos o diretório da biblioteca salvo no computador. Para atualizar, o diretório quando houver modificações, basta utilizar o seguinte comando:

git pull

Assim o diretório recebera todas as modificações presente no Github.

Utilizando a biblioteca para FRDM-KL05Z

Primeiro é necessário criar o projeto no Kinetis Design Studio (KDS), conforme descrito no último artigo. Adicionar a biblioteca ao projeto é bem simples, basta arrastar o diretório com a biblioteca para o KDS, conforme é apresentado nas figura a seguir:

Utilizando a biblioteca para FRDM-KL05Z

Após arrastar o diretório para o projeto no Kinetis Design Studio, deve abrir a janela “File and Folder Operation”. Nesta janela é onde o usuário decide se vai copiar os arquivos da biblioteca ou vai criar o link para os arquivos. Eu recomendo selecionar a segunda opção (criar link para os arquivos), para assim não perder as funcionalidades do Git.

Nota:

  1. Copia arquivos e diretório para dentro do projeto
  2. Criar link dos arquivos e diretório

Ao final clique em OK.

Utilizando a biblioteca para FRDM-KL05Z

Código fonte da aplicação de demonstração

E por fim, para fazer uso da biblioteca para FRDM-KL05Z devemos adicionar a mesma ao código fonte do projeto utilizando o “#include”. Para finalizar desenvolvi uma aplicação simples que faz uso da biblioteca. O projeto consiste em um algoritmo de pisca LED RGB, com que utiliza função de “delay” fornecida através de um “timer” e algoritmo que escreve e recebe dados pela serial.

#include "MKL05Z4.h"
#include "../KL05Z_Libraries/board_frdm_kl05z.h"

void serial_irq(void);

int main(void)
{
    /* Inicializa Timer Systick */
    systick_init();

    /* Inicializa LED RGB */
    gpio_init(LED_RED,OUTPUT);
    gpio_init(LED_GREEN,OUTPUT);
    gpio_init(LED_BLUE,OUTPUT);

    /* Apaga LED RGB */
    gpio_write(LED_RED,HIGH);
    gpio_write(LED_GREEN,HIGH);
    gpio_write(LED_BLUE,HIGH);

    /* Inicializa Serial */
    uart_init(UART_CONFIG,115200);

    /* Habilita interrupção */
    uart_enable_irq(UART);

    /* Set função de callback para interrupção */
    uart_set_callback_irq(UART,serial_irq);

    /* Escreve string na serial */
    uart_put_string(UART,"\n\rHello, World! \n\r");

    for (;;)
    {
        /* Inverte o valor do LED RGB */
        gpio_toggle(LED_RED);
        gpio_toggle(LED_GREEN);
        gpio_toggle(LED_BLUE);

        /* Função delay */
        systick_delay(1000);
    }
    /* Never leave main */
    return 0;
}

void serial_irq(void)
{
    uint8_t ch = 0;
    /* Le caracter */
    ch = uart_getchar(UART);
    /* Limpa Flag RX */
    uart_clear_flag_rx(UART);
    /* Escreve caracter */
    uart_putchar(UART,ch);
}

Conclusão

A biblioteca para FRDM-KL05Z é um projeto aberto, com uma licença que permite que todos usem sem problema. Esse biblioteca é bom ponto de partida para começar a utilizar a Freedom Board KL05Z, pois já traz os drivers dos principais periféricos do microcontrolador. A biblioteca não abrange 100% dos recursos do microcontrolador e seus periféricos, então fica aqui o meu convite para que você caro leitor contribua com o projeto, desenvolvendo, testando e validando. Pois, como disse, o projeto é open source.

O que você achou? Deixe o seu comentário a abaixo. Ajude-nos a melhorar o blog, participe com a sua sugestão, dúvida ou comentário aqui embaixo.

Faça seu comentário

Acesse sua conta e participe