Blink - PIC18F - MPLABX - PICkit3
Acho que este título descreve bem o projeto: Blink -> PIC18F -> MPLABX -> PICkit3.
O tempo passa e, acaba que o blink (pisca-pisca) é sempre um bom lugar para recomeçar. Resultado:
Eu gosto muito de programar. Acho que a vida fica meio chata quando eu não estou mexendo com alguma placa de desenvolvimento ou fazendo algum sistema embarcado novo. Muita gente tem preconceito com PIC e Arduino por estas plataformas (especialmetne as de 8bits) não serem tão poderosas quanto à novas arquiteturas de 32-bits (PIC32, ARM Cortex, etc). Eu acho que cada plataforma tem o seu papel e a sua aplicabilidade. É importante usar a ferramenta que você tem nas mãos e conhecer as suas limitações e possíveis aplicações.
Hoje, e nas próximas séries de posts, eu vou usar o PIC 18F45k22 com a placa de desenvolvimento PIC-EK.
A PIC-EK é feita pelo fabricante LogiFind. Uma das vantagems desta placa é a versatilidade, pois ela suporta uma infinidade de famílias de microcontroladores com pinos diferentes (8, 10, 14, 18, 20, 28, 40 pinos). Além disso, a PIC-EK também tem uma série de periféricos montados na placa, incluindos, leds, chaves, visor de 7 segmentos, joystick, memória, buzzer, e vários outros periféricos. Eu comprei a minha pelo ebay, mas eu sei que ela tem para vender no aliexpress. Comenta ai se você sabe se alguem re-vende esta placa no mercado livre ou outro website.
Placa de programação - PIC - EK
O PIC que eu estou estando é o PIC18F45k22 com um cristal de 4MHz. Eu estou usando este PIC pois ele é o único que eu tinha disponível aqui de um projeto antigo.
PIC18F45k22 com o cristal de 4MHz.
Para programar o PIC, vou usar o PICKit3. Novamente, é uma opção mais em conta e funciona bem.
Para programar, eu tinha a opção de usar o Mikro C pro ou o MPLABx. A vantagem do MikroC é que tem uma infinidade de biblioteca pronta no compilador, mas para ter acesso a versão completa (mais de 32k de programa) tem que pagar uma licença de 250 dolares (1000 reais mais ou menos). O MPLAB é de graça, dá mais trabalho, mas é de graça. Eu vou usar o MPLAB.
Faça o download do MPLAB® X IDE v5.25 (Link para windows), instale os drivers e vamos tirar a ferrugem.
Se voce já teve experiencia com criar um novo projeto, então pode ir pra parte de configuração dos bits. Se não, sugiro que você siga os seguintes passos:
1) Começe um novo projeto:
2) Escolha a familia de microcontrolador e o seu PIC
3) Selecione o compilador. Se esta á a primeira vez usando o MPLABx, você tem que clicar na opção Download XC8. (Eu já tinha feito isso e apenas selecionei o XC8)
4) Escolha um nome e o local do seu projeto (Esqueci de tirar printscreen, mas é bem tranquilo essa parte)
Pronto, seu projeto foi criado.
5) Agora, voce tem que clicar com o auxiliar em cima da pasta Sources e selecionar New>>main.c
6) Pronto, agora a gente tem um projeto e um main. Antes de começar a programar, a gente que mexer nos bits de configuração (Alerta: se vc não tem experiencia com programação, esta parte pode parecer bastante confusa, mas não é nada de bixo de sete cabeças. O microcontrolador é um dispositivo muito flexivel, e você tem que "ajustar" as suas preferencias para que tudo funcione direitinho. Para isso, (infelizmente, ou felizmente) você vai precisar ler o datasheet do microcontrolador.
7) bit de configuração: Clique na aba.
8) Neste projeto, eu modifique apenas 3 bits: oscilador (HSMP), watchdog (OFF) e, PORTB AD (OFF)
9) Clique em gerar código (Generate Source Code.. )
10) Copie e cole o codigo no programa
Passo 11) Pronto! Ufa, até que em fim. Agora a gente pode começar a programar!
Neste projeto, eu quero apenas piscar alguns leds que eu vou conectar na porta B. Eu usei o codigo similar ao deste website: https://www.exploreembedded.com/wiki/PIC_I/O_Register_Configuration
#include <xc.h>
void DELAY_ms(unsigned int ms_Count);
int main()
{
TRISB = 0; //RB0 as Output PIN
while(1)
{
PORTB = 0xFF; // LED ON
DELAY_ms(100); // 100 ms Delay
PORTB = 0x0; // LED OFF
DELAY_ms(100); // 100 ms Delay
}
return 0;
}
void DELAY_ms(unsigned int ms_Count)
{
unsigned int i,j;
for(i=0;i<ms_Count;i++)
{
for(j=0;j<100;j++);
}
}
Daí é só compilar (no martelinho), conectar o PICKit3 na PIC-EK e clicar no icone com a setinha verde apontando pra baixo (Make and program)
Uma janela vai aparecer para você selecionar o seu programador (PICKit3)
Alguns microcontroladores são em 3.3V e outros em 5V. O PIC18F45k22 é em 5V. Esta oção, eu apenas cliquei OK. (Não sou responsável se vc queimar seu PIC por causa de voltagem errada. Leia tudo com atenção e seja sempre cauteloso!)
Aqui está o resultado:
Espero que vocês tenham conseguido seguir o passo à passo e tirar a ferrurem dos bits ai do microcontrolador PIC. Por favor, postem comentários com dúvidas, sugestões de programas e melhorias.
Proximos passos:
Colocar o códico no github (publico)
Criar um arquivo .h para as funções de configuração.
Explorar rotinas de LED com pushbutton e rotinas de interrupção de timer e hardware.
Abraços!
Nenhum comentário:
Postar um comentário