ÍNDICE DE CONTEÚDO
Nesse texto vou mostrar como desenvolver a primeira aplicação utilizando o ambiente Microchip Harmony com o MPLAB IDE, utilizando o kit de desenvolvimento Ethernet Starter Kit II da Microchip.
Harmony
O Microchip Harmony é um Framework de Software para os microcontroladores PIC32 da Microchip que simplifica a experiência do desenvolvimento de software para sistemas embarcados. Ele reduz o trabalho de software pois oferece bibliotecas, drivers, middleware, RTOS e componentes de software externos testados e integrados no ambiente Harmony. É um ambiente visual muito fácil de usar e reconfigurar mesmo durante o desenvolvimento de seu projeto. Modificações no código gerado pelo ambiente são facilmente resolvidas pelo Harmony. É muito simples de trabalhar e uma ferramenta poderosa para projetos com PIC32.
Veja o vídeo abaixo em inglês para uma rápida apresentação do Microchip Harmony.
Sobre o Kit de desenvolvimento Ethernet Starter kit II
A placa que será utilizada neste artigo será a placa Ethernet Starter Kit II. Ela possui:
- Microcontrolador PIC32MX795F512L com 512KB Flash, 128KB RAM;
- Alimentação via USB;
- Placa extra para comunicação ethernet 10/100. A comunicação Ethernet possui wake-on-lan;
- USB, 3 switches e 3 Leds;
- Conector de expansão para ouras placas Microchip.
Uma imagem da placa está disposta abaixo. Para mais informações sobre a placa acesse a página referência da placa nesse link. Acesse o seu User Guide no link.
Instalação da IDE MPLAB X, Compilador XC32 e Harmony
Primeiramente é necessário fazer o download e instalar todos os softwares necessários para que se possa usar o Harmony. Para esse texto, utilizei o Windows 8. Baixe e Instale o MPLAB X IDE. Para isso, acesse esse link. Estamos usando a versão v3.40. Após a instalação do MPLABX, baixe e instale o Compilador XC32. Para baixar o compilador para o Windows, acesse esse link e siga as instruções para instalação. Foi utilizada a versão 1.42 do XC32 para essas experiências. É necessário então que seja instalado o Harmony para que possamos ter acesso às facilidades desse ambiente para montar o nosso projeto. Baixe e instale o Harmony. Estamos utilizando a versão 1.08.01 nos exemplos a seguir. Para isso acesse esse link.
É necessário instalar o plugin do Harmony na IDE do MPLAB. Para isso, depois de abrir o MPLAB IDE, selecione a opção Tools > plugins e escolha a opção MPLAB Harmony Configurator. Veja a Imagem abaixo.
Criando o primeiro projeto no Microchip Harmony e piscar leds
Crie um novo projeto no no MPLAB X IDE utilizando as opções File > NEW conforme a figura a seguir:
Digite o caminho do Harmony Path para o local onde o Harmony foi instalado (por padrão é c:\microchip\harmony\v1_08_01 ).
Após preencher os campos acima, prossiga clicando na opção Next. Será criado o projeto como na figura abaixo.
Na aba harmony, configure a placa que estamos utilizando para esse lab, a PIC32 Ethernet Starter Kit II.
E então finalize essa etapa com os seguintes comandos: Generate code > Save > Generate. A IDE estará como a imagem a seguir:
Altere o arquivo app.c:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
void APP_Tasks ( void ) { /* Check the application's current state. */ switch ( appData.state ) { /* Application's initial state. */ case APP_STATE_INIT: { bool appInitialized = true; if (appInitialized) { appData.state = APP_STATE_SERVICE_TASKS; } break; } case APP_STATE_SERVICE_TASKS: { BSP_LEDOn(BSP_LED_1); BSP_LEDOn(BSP_LED_2); BSP_LEDOn(BSP_LED_3); break; } /* TODO: implement your application state machine.*/ /* The default state should never be executed. */ default: { /* TODO: Handle error in application's state machine. */ break; } } } |
Utilize o ícone com o Martelo para compilar e o da flechinha apontando para o processador para gravar. Quando utilizar esse ícone, vai aparecer a seguinte imagem que mostra que a placa está conectada ao PC:
Após a gravação, verifique que os leds estão acesos. Para piscar os leds, altere o arquivo app.c novamente conforme o código abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
void APP_Tasks ( void ) { float t; /* Check the application's current state. */ switch ( appData.state ) { /* Application's initial state. */ case APP_STATE_INIT: { bool appInitialized = true; if (appInitialized) { appData.state = APP_STATE_SERVICE_TASKS; } break; } case APP_STATE_SERVICE_TASKS: { for( t= 0; t<100000; t++); BSP_LEDOn(BSP_LED_1); BSP_LEDOn(BSP_LED_2); BSP_LEDOn(BSP_LED_3); for( t= 0; t<100000; t++); BSP_LEDOff(BSP_LED_1); BSP_LEDOff(BSP_LED_2); BSP_LEDOff(BSP_LED_3); break; } /* TODO: implement your application state machine.*/ /* The default state should never be executed. */ default: { /* TODO: Handle error in application's state machine. */ break; } } } |
Pronto. Os 3 leds vão piscar.
Conclusão
Fazer o primeiro código utilizando o Harmony é muito simples e intuitivo. Para utilizar as funções da placa, basta adicionar a placa ao projeto (BSP ou Board Supported Package). Os arquivos que o usuário deve trabalhar são apenas o app.c e seu include app.h. Os outros arquivos, o Harmony toma conta pra você.
O que achou? Deixe o seu comentario abaixo.
Parabéns pelo trabalho!
Acho o sistema OSAL (que o Harmony gera dentro projeto) pesado … para fazer piscar um simples LED o core passa por vários arquivos, laço for e algumas funções… Sem falar que o PLIB agora é fechado em arquivo “.a” (library estilo DLL) e não se sabe mais como é feito o acesso ao hardware.
Para iniciantes o harmony é muito bom mas para os mais experientes (pelo menos para mim) não.
Thiago Lima, em primeiro lugar parabéns pelo artigo. Queria sugerir uma correção, os dois primeiros prints após o título “Criando o primeiro projeto no Microchip Harmony e piscar leds” estão com ordem invertida.