Tutorial 1 - Criando uma nova aplicação com o KSDK e o Processor Expert

Document created by Denis Shimizu Employee on Jun 17, 2015Last modified by Denis Shimizu Employee on Jun 17, 2015
Version 2Show Document
  • View in full screen mode

     O Processor Expert é uma grande ferramenta da Freescale há muitos anos. Ele é um gerador de funções e de arquivos .c e .h que servem de base para um projeto para os microcontroladores da Freescale. Assim como o KSDK, o Processor Expert também pode gerar código para várias IDEs, como o KDS, Keil e IAR e a grande novidade é que o Processor Expert agora usa os drivers do KSDK como base em sua geração de código, o que cria uma ligação lógica e muito funcional entre as duas ferramentas, da facilidade de uso do Processor Expert com a modularização e ótima documentação do KSDK.

     É importante ressaltar que nem todo projeto com o KSDK precisa utilizar o Processor Expert. Na verdade, em alguns exemplos mais adiante, em tutoriais futuros, não utilizaremos o Processor Expert, apenas o KSDK, mas veremos que todo o código que foi criado nestes primeiros tutoriais com o Processor Expert poderão ser aproveitados em projetos sem ele, desde que estes projetos tenham como base o KSDK. E é aí que o Processor Expert mostra todo seu valor: Ele é uma excelente ferramenta para estruturar as chamadas de código do KSDK, aprender a usar periféricos, e pode ser totalmente reaproveitado em outros projetos que não o utilizem depois.

     * Usuários que quiserem utilizar o IAR como IDE podem utilizar o KDS para fazer as configurações inicias com o Processor Expert e depois migrarem o seu código para o IAR.Mostraremos em um tutorial futuro como fazer isso

 

Começando o nosso primeiro projeto com o KSDK:

 

Este tutorial leva em consideração que você já seguiu os passos do Tutorial 0 - Kinetis SDK (KSDK) - Introdução - Preparando o ambiente

 

Passo 1: Abra o Kinetis Design Studio 3.0.0. Use o diretório que você criou para o Workspace.

 

 

Passo 2: Clique em File -> New -> Kinetis Project

 

Passo 3: Digite um nome para o projeto e clique em Next

 

Passo 4: Selecione o processador Processors->Kinetis K->MK60->MK64 (120 MHz)->MK64FN1M0xx12 ,ou digite mk64FN na caixa de filtro de texto e selecione o processador.

 

Passo 5: Selecione o KSDK e o Processor Expert para serem utilizados no projeto e clique em Next:

 

Passo 6: Selecione GNU C Compiler. Caso o seu programa vá utilizar IAR, este seria o momento de selecionar esta ferramenta.Mas cobriremos isso em um tutorial futuro.

 

 

Passo 7: Clique em Finish e aguarde o programa ser criado.

 

Passo 8: Após o projeto ser criado, clique na pasta referente ao nome dele ,que está na coluna da esquerda do KDS.

     Há três views importantes para o Processor Expert, localize elas em sua tela:

     View Components - Mostra quais componentes estão presentes no projeto.

    

 

     View Component Inspector - Mostra as propriedades de cada componente selecionado na View Components

    

     View Components Library - Adiciona novos componentes ao projeto

    

Passo 9: Na view Component Inspector, há um botão chamado view Menu. Clique nele, e selecione as propriedades Advanced, e também deselecione a opção Tabs View

    

 

Passo 10: Utilizando a view Components Library, na aba Categories, adicione os seguintes componentes ao seu projeto,clicando duas vezes:

     - KSDK 1.2.0 ->Peripherals Drivers / HAL -> Timers -> fsl_pit

     - KSDK 1.2.0 ->Peripherals Drivers / HAL -> Inputs/Outputs -> fsl_gpio

   

     *Note que para cada periférico existe o driver e uma versão do driver com final _hal. A versão HAL é uma versão simplificada, de mais baixo nível. Neste momento utilizaremos apenas a versão mais alta do peripheral driver.Toda a documentação destes drivers está na pasta doc do folder de instalação do KSDK

 

     Ao final deste passo sua view Components deverá estar assim:

 

 

Passo 11: Usando a view Components, selecione o componente gpio1. Usando a view Component Inspector, altere as seguintes configurações deste componente:

     Output Pins -> Output Configurations -> Output Configuration 0 -> Output Pins Numbers = 3

     Output Pins -> Output Configurations -> Output Configuration 0 -> Output Pins Numbers: 3 -> Pin 0 -> Pin = PTB22/SPI2_SOUT/FB_AD29/CMP2_OUT

     Output Pins -> Output Configurations -> Output Configuration 0 -> Output Pins Numbers: 3 -> Pin 0 -> Output Logic = 1

     Output Pins -> Output Configurations -> Output Configuration 0 -> Output Pins Numbers: 3 -> Pin 1 -> Pin = PTB21/SPI2_SCK/FB_AD30/CMP1_OUT

     Output Pins -> Output Configurations -> Output Configuration 0 -> Output Pins Numbers: 3 -> Pin 1 -> Output Logic = 1

    Output Pins -> Output Configurations -> Output Configuration 0 -> Output Pins Numbers: 3 -> Pin 2 -> Pin = PTE26/ENET_1588_CLKIN/UART4_CTS_b/RTC_CLKOUT/USB_CLKIN

     Output Pins -> Output Configurations -> Output Configuration 0 -> Output Pins Numbers: 3 -> Pin 2 -> Output Logic = 1

 

 

     Output Logic significa que o pino iniciará como nível lógico 1. A configuração deverá ficar assim:

    

Passo 12: Altere as configurações do componente fsl_pit

        Settings -> Configurations -> Configurations 0 -> Period = 200 ms

    

 

Passo 13:  Agora que você já configurou seus componentes, é hora de pedir ao Processor Expert para gerar os arquivos .c e .h que serão usados como base em seu programa. Para fazer isso clique em Project -> Generate Processor Expert Code

     IMPORTANTE: A cada modificação dos componentes nas views do Processor Expert é necessário repetir este passo para que os arquivos sejam atualizados.Você não precisa fazer isso se fizer apenas modificação no código gonte do seu projeto.

 

Passo 14: Usando a view Components, dentro do componente do PIT Timer, clique duas vezes na função PIT0_IRQHandler. Isso abrirá a função no arquivo Events.c de tratamente de interrupção que é chamada a cada 200 ms.

    

 

Passo 15: Ainda na view Components, agora no componente de gpio, encontre a rotina GPIO_DRV_TogglePinOutput.Arraste esta rotina PIT0_IRQHandler, e coloque como parametro a porta a ser invertida.O código deverá ficar assim:

 

void PIT0_IRQHandler(void)
{
  /* Clear interrupt flag.*/
  PIT_HAL_ClearIntFlag(g_pitBase[FSL_PITTIMER1], FSL_PITTIMER1_CHANNEL);
  /* Write your code here ... */
  GPIO_DRV_TogglePinOutput(PTB22);
}

 

     Pronto! Agora o código de pisca-led está pronto para ser compilado e testado na placa.

 

Passo 16: Clique em Project-> Build para compilar o projeto

 

Passo 17: Após ter compilado com sucesso no passo 16,clique em Run -> Debug Configurations.

 

Passo 18: Selecione GDB Segger J-Link Debugging -> Nome do seu projeto.

                Clique na aba Startup, e desabilite o SWO. Feito isso,clique em Debug:

 

 

Passo 19: A IDE irá mudar para a perspectiva de debug.Aperte o botão Resume para iniciar a execução do programa:

Passo 20: Use os botões Suspend para pausar a execução, Restart para reiniciar, e Terminate para encerrar a sessão de Debug. Para voltar a alterar seu projeto, volte para a perspectiva de edição de código:

    

 

PARTE EXTRA: Utilizando o módulo de ADC (Conversor Analógico Digital)

 

Passo 1 extra: Na view Components Library, aba Categories, selecione o seguinte componente:

     KSDK 1.2.0 ->Peripherals Drivers / HAL -> Analog -> fsl_adc16

 

Passo 2 extra: Mude o canal de leitura para o canal do sensor de Temperatura, como na figura abaixo:

 

 

Passo 3 extra: Clique em Project -> Generate Processor Expert Code

 

Passo 4 extra: Modifique a função pitTimer1_OnTimeOut para a seguinte forma:

void PIT0_IRQHandler(void)
{
  unsigned int Resultado;
  /* Clear interrupt flag.*/
  PIT_HAL_ClearIntFlag(g_pitBase[FSL_PITTIMER1], FSL_PITTIMER1_CHANNEL);
  /* Write your code here ... */
  GPIO_DRV_TogglePinOutput(PTB22);
  ADC16_DRV_ConfigConvChn(FSL_ADCONV1,0,&adConv1_ChnConfig0);
  ADC16_DRV_WaitConvDone(FSL_ADCONV1,0);
  Resultado=ADC16_DRV_GetConvValueRAW(FSL_ADCONV1,0);
}

 

Passo 5 extra : Carregue sua aplicação para a placa.

 

Passo 6 extra : Na perspectiva de Debug, clique em Window -> Show View -> Expressions.

 

Passo 7 extra: Adicione a variável Resultado a view Expression.

 

Passo 8 extra: Insira um breakpoint na linha   Resultado=ADC16_DRV_GetConvValueRAW(FSL_ADCONV1,0); e verifique o valor da variável Resultado.

 

CONCLUSÃO:

 

Neste tutorial aprendemos a inicializar periféricos usando o KSDK e Processor Expert. Nos próximos tutoriais iremos ver um exemplo utilizando conectividade TCP/IP e como podemos integrar estes devices drivers para criar uma aplicação real de IoT.

Attachments

    Outcomes