Introdução ao Microcontrolador PIC: Introdução ao PIC e MPLABX

Tempo de leitura: 8 minutes

Em 1980, a Intel desenvolveu o primeiro Microcontrolador (8051) com Harvard Architecture 8051 e, desde então, os Microcontroladores trouxeram uma revolução na indústria de eletrônicos e embarcados. E com o avanço tecnológico ao longo do tempo, agora temos muitos microcontroladores mais eficientes e de baixo consumo de energia como AVR, PIC, ARM. Esses microcontroladores são mais capazes e fáceis de usar, tendo os protocolos de comunicação mais recentes como USB, I2C, SPI, CAN, etc. Até mesmo o Arduino e o Raspberry Pi mudaram completamente a perspectiva dos microcontroladores, e o Raspberry Pi não é apenas um microcontrolador, mas tem um conjunto completo computador dentro.

Esta será a primeira parte de uma série de tutoriais que ainda estão por vir, que o ajudarão no aprendizado de Microcontroladores PIC. Se você tem experiência em eletrônica e sempre quis começar aprendendo alguns microcontroladores e entrar no mundo da codificação e construção, então esta série de tutoriais será seu primeiro passo para começar.

O microcontrolador PIC é uma escolha muito conveniente para começar com projetos de microcontrolador, porque tem fóruns de suporte excelentes e atuará como uma base sólida para construir sobre todos os seus microcontroladores avançados que você ainda precisa aprender.

Esses tutoriais são feitos para Alunos absolutos ou intermediários; planejamos começar com os projetos mais básicos aos avançados. Não esperamos pré-requisitos dos alunos, pois estamos aqui para ajudá-lo em qualquer nível. Cada tutorial terá uma explicação teórica e simulação seguida de um tutorial prático. Esses tutoriais não envolverão nenhuma placa de desenvolvimento, faremos nossos próprios circuitos usando uma placa de desempenho. Portanto, prepare-se e reserve um tempo todas as semanas para aprimorá-lo com Microcontroladores.

Agora vamos começar com uma introdução simples sobre microcontroladores PIC e algumas configurações de software para nos colocar em execução em nosso próximo tutorial.

 

Arquitetura e aplicações do microcontrolador PIC:

O microcontrolador PIC foi introduzido pela Microchip Technologies no ano de 1993. Originalmente, esses PIC foram desenvolvidos para fazer parte de computadores PDP (Processador de Dados Programados) e cada dispositivo periférico do computador tinha interface usando este microcontrolador PIC. Daí o PIC receber o nome de Peripheral Interface Controller. Posteriormente, a Microchip desenvolveu muitos CIs da série PIC que podem ser usados ​​para qualquer aplicação pequena, como uma aplicação de iluminação, até a avançada.

Todo microcontrolador deve ser construído em torno de alguma arquitetura, o tipo de arquitetura mais famoso é a arquitetura Harvard, nosso PIC é baseado nesta arquitetura por pertencer à clássica família 8051. Vamos fazer uma pequena introdução sobre a arquitetura Harvard do PIC.

O microcontrolador PIC16F877A consiste em uma CPU embutida, portas de E/S, organização de memória, conversor A/D, temporizadores/contadores, interrupções, comunicação serial, oscilador e módulo CCP que para reunir torna o IC um microcontrolador poderoso para iniciantes para começar. O diagrama de blocos geral da arquitetura PIC é mostrado abaixo

 

CPU (Unidade Central de Processamento):

O microcontrolador possui uma CPU para realizar operações aritméticas, decisões lógicas e operações relacionadas à memória. A CPU deve coordenar entre a RAM e os outros periféricos do Microcontrolador.

Consiste em uma ALU (Unidade Lógica Aritmética), com a qual realiza as operações aritméticas e decisões lógicas. Um MU (unidade de memória) também está presente para armazenar as instruções após serem executadas. Este MU decide o tamanho do programa do nosso MC. Também consiste em uma CU (Unidade de Controle) que atua como um barramento de comunicação entre a CPU e outros periféricos do microcontrolador. Isso ajuda a buscar os dados depois que eles são processados nos registradores especificados.

 

Memória de acesso aleatório (RAM):

Uma memória de acesso aleatório é aquela que decide a velocidade do nosso microcontrolador. A RAM consiste em bancos de registro dentro dela, cada um dos quais com uma tarefa específica. Em geral, eles podem ser classificados em dois tipos:

  • Registro de uso geral (GPR)
  • Registro de função especial (SFR)

Como o nome sugere, os GPR são usados para funções gerais de registro como adição, subtração, etc. Essas operações são limitadas a 8 bits. Todos os registros sob o GPR são graváveis e legíveis pelo usuário. Eles não têm funções próprias, a menos que seja especificado por software.

Enquanto o SFR é usado para executar funções especiais complicadas que também envolvem manipulação de 16 bits, seus registradores só podem ser lidos (R) e não podemos escrever (W) nada neles. Portanto, esses registradores têm funções predefinidas para executar, que são definidas no momento da fabricação e eles apenas mostram o resultado para nós, através do qual podemos realizar algumas operações relacionadas.

Memória somente leitura (ROM):

A memória somente leitura é o local onde nosso programa é armazenado. Isso decide o tamanho máximo do nosso programa; portanto, também é chamado de memória de programa. Quando o MCU está em operação, o programa armazenado no ROM é executado a cada ciclo de instrução. Esta unidade de memória pode ser usada apenas durante a programação do PIC, durante a execução torna-se uma memória somente leitura.

Memória somente leitura programável apagável eletricamente (EEPROM):

EEPROM é outro tipo de unidade de memória. Nesta unidade de memória, os valores podem ser armazenados durante a execução do programa. Os valores armazenados aqui são apenas apagáveis eletricamente, ou seja, esses valores serão mantidos no PIC mesmo quando o IC for desligado. Eles podem ser usados como um pequeno espaço de memória para armazenar os valores executados; entretanto, o espaço de memória será muito menor em rodadas de KB.

Memória flash:

A memória flash também é uma memória somente leitura programável (PROM), na qual podemos ler, escrever e apagar o programa milhares de vezes. Geralmente, o microcontrolador PIC usa esse tipo de ROM.

Portas I / O

  • Nosso PIC16F877A consiste em cinco portas, ou seja, Porta A, Porta B, Porta C, Porta D e Porta E.
  • De todas as cinco PORTAS, apenas a Porta A é de 16 bits e a PORTA E de 3 bits. O resto dos PORTS são de 8 bits.
  • Os pinos nesses PORTOS podem ser usados como entrada ou saída, com base na configuração do registro TRIS.
  • Além de realizar operações de E/S, os pinos também podem ser usados para funções especiais como SPI, interrupção, PWM etc.

Bus:

O termo Bus é apenas um punhado de fios que conecta o dispositivo de entrada ou saída com CPU e RAM.

Data bus é usado para transferir ou receber os dados.

Address bus é usado para transmitir o endereço de memória dos periféricos para a CPU. Os pinos de E/S são usados para fazer a interface com os periféricos externos; Ambos os protocolos de comunicação serial UART e USART são usados para fazer a interface de dispositivos seriais como GSM, GPS, Bluetooth, IR, etc.

 

Seleção de microcontrolador PIC para nossos tutoriais:

Os microcontroladores PIC da Microchip Company são divididos em 4 grandes famílias. Cada família possui uma variedade de componentes que fornecem recursos especiais integrados:

  1. A primeira família, PIC10 (10FXXX) – é chamada de Low End.
  2. A segunda família, PIC12 (PIC12FXXX) – é chamada de Mid-Range.
  3. A terceira família é PIC16 (16FXXX).
  4. A quarta família é PIC 17/18 (18FXXX)

Já que estamos começando a aprender sobre o PIC, vamos selecionar um IC que seja usado e disponível universalmente. Este IC pertence à família 16F e o número da peça do IC é PIC16F877A. Do primeiro tutorial até o final, estaremos usando o mesmo IC, pois este IC está equipado com todos os recursos avançados como SPI, I2C e UART etc. Mas se você não conseguir nenhuma dessas coisas agora está tudo bem, nós iremos avance em cada tutorial e finalmente use todos os recursos mencionados acima.

Uma vez que o IC é selecionado, é muito importante ler o datasheet do IC. Este deve ser o primeiro passo em qualquer conceito que estamos prestes a experimentar. Agora, uma vez que selecionamos este PIC16F877A, vamos ler a especificação deste IC no datasheet.

O Peripheral Feature, menciona que possui 3 Timers, dois dos quais são de 8 bits e um é de prescaler de 16 bits. Esses temporizadores são usados para criar funções de temporização em nosso programa. Eles também podem ser usados como contadores. Mostra também que possui opções de CCP (Capture Compare e PWM), o que nos ajuda a gerar sinais PWM e ler os sinais de frequência de entrada. Para comunicação com dispositivo externo, possui SPI, I2C, PSP e USART. Por motivos de segurança, é equipado com Brown-out Reset (BOR), que ajuda a redefinir o programa while.

Os recursos analógicos, indica que o IC tem ADC de 8 canais de 10 bits. Isso significa que nosso IC pode converter valores analógicos em digitais com uma resolução de 10 bits e possui 8 pinos analógicos para lê-los. Também temos dois comparadores internos que podem ser usados para comparar a tensão de entrada diretamente, sem realmente lê-los através do software.

Os recursos especiais do microcontrolador significam que ele tem 100.000 ciclos de apagamento / gravação, o que significa que você pode programá-lo cerca de 100.000 vezes. In-Circuit Serial Programming ™ (ICSP ™), nos ajuda a programar o IC diretamente usando PICKIT3. A depuração pode ser feita via In-Circuit Debug (ICD). Outro recurso de segurança é o Watchdog Timer (WDT), que é um cronômetro autoconfiável que zera todo o programa se necessário.

A imagem abaixo representa a pinagem de nosso PIC16F877A IC. Esta imagem representa cada pino em relação ao seu nome e outras características. Isso também pode ser encontrado no datasheet. Mantenha esta imagem à mão, pois ela nos ajudará durante os trabalhos de hardware.

 

Seleção de software para nossos tutoriais:

O microcontrolador PIC pode ser programado com diversos softwares disponíveis no mercado. Existem pessoas que ainda usam a linguagem Assembly para programar MCUs PIC. Para nossos tutoriais, selecionamos o software e compilador mais avançado que foi desenvolvido pela própria Microchip.

Para programar o microcontrolador PIC necessitaremos de um IDE (Integrated Development Environment), onde ocorre a programação. Um compilador, onde nosso programa é convertido em um formato legível MCU chamado de arquivos HEX. Um IPE (Integrated Programming Environment), que é usado para despejar nosso arquivo hex em nossos MCUs PIC.

IDE: MPLABX v3.35

IPE: MPLAB IPE v3.35

Compilador: XC8

A Microchip forneceu todos esses três softwares gratuitamente. Eles podem ser baixados diretamente de sua página oficial. Também forneci o link para sua conveniência. Depois de baixado, instale-os em seu computador.

Para efeito de Simulação utilizamos o software PROTEUS 8, fornecido pelo Labcenter. Este software pode ser usado para simular nosso código gerado usando o MPLABX. Existe um software de demonstração gratuito que pode ser baixado de sua página oficial através do link.

Preparando-se com o hardware:

Todos os nossos tutoriais terminarão com hardware. Para aprender PIC da melhor maneira possível é sempre recomendável testar nossos códigos e circuitos sobre hardware, pois a confiabilidade da simulação é muito menor. Os códigos que funcionam em um software de simulação podem não funcionar como você esperava em seu hardware. Conseqüentemente, estaremos construindo nossos próprios circuitos em placas Perf para descartar nossos códigos.

Para despejar ou carregar nosso código no PIC, precisaremos do PICkit 3. O programador/ epurador PICkit 3 é um depurador no circuito simples e de baixo custo controlado por um PC executando o software MPLAB IDE (v8.20 ou superior) em uma plataforma Windows. O programador/depurador PICkit 3 é parte integrante do conjunto de ferramentas do engenheiro de desenvolvimento. Além disso, também precisaremos de outro hardware como placa de Perf, estação de soldagem, CIs PIC, osciladores de cristal, capacitores, etc. Mas vamos adicioná-los à nossa lista à medida que avançarmos em nossos tutoriais.

 O link para PICKIT3 também é fornecido; o preço pode ser um pouco alto, mas acredite, vale a pena investir (Preço de 120R$ a 150R$ no link (MercadoLivre)).

Original da MicroChip
Kit que comprei – Oem com extras,.

AGORA COM TODAS AS COISAS PRONTAS, COMEÇAREMOS A TRABALHAR NO PRÓXIMO TUTORIAL