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:
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:
- Copia arquivos e diretório para dentro do projeto
- Criar link dos arquivos e diretório
Ao final clique em OK.
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.