Categorias: Circuitos de microcontrolador
Número de visualizações: 23111
Comentários sobre o artigo: 0

Microcontroladores PIC para iniciantes

 

No mercado moderno, existem várias famílias e séries de microcontroladores de diferentes fabricantes, entre eles AVR, STM32 e PIC podem ser distinguidos. Cada uma das famílias encontrou seu próprio escopo. Neste artigo, falarei aos iniciantes sobre os microcontroladores PIC, a saber, o que é e o que você precisa saber para começar a usá-los.

Microcontroladores PIC para iniciantes

O que é um PIC

PIC é o nome de uma série de microcontroladores fabricados pela Microchip Technology Inc (EUA). O nome PIC vem do Controlador de interface periférica.

Os microcontroladores PIC têm uma arquitetura RISC. O RISC - um conjunto abreviado de instruções, também é usado em processadores para dispositivos móveis. Existem vários exemplos de seu uso: BRAÇO, Atmel AVR e outros

Em 2016, a Microchip comprou a Atmel, um fabricante de controladores AVR. Portanto, o site oficial apresenta microcontroladores da família e PIC e AVR.

Microcontrolador PIC16F1xxx

Famílias

Entre os microcontroladores PIC de 8 bits, ele consiste em 3 famílias que diferem na arquitetura (profundidade de bits e conjunto de instruções).

  • Linha de base (PIC10F2xx, PIC12F5xx, PIC16F5x, PIC16F5xx);

  • Intermediário (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx);

  • Médio alcance aprimorado (PIC12F1xxx, PIC16F1xxx);

  • High-end ou PIC18 (18Fxxxx, 18FxxJxx e 18FxxKxx).

Comparação de famílias de microcontroladores

As características são fornecidas na tabela abaixo.

Recursos do microcontrolador PIC

Além dos microcontroladores de 8 bits, a Microchip produz 16 bits:

  • PIC24F;

  • DsPIC30 / 33F para processamento de sinal.

Representantes da família de 16 bits operam em velocidades de 16 a 100 MIPS (milhões de instruções por segundo concluídas). Vale ressaltar e características:

  • ciclo da máquina - 2 ciclos;

  • Resolução ADC - 16 bits;

  • suporta vários protocolos de comunicação (UART, IrDA, SPI, I2S ™, I2C, USB, CAN, LIN e SENT), PWM e muito mais.

Há também uma família de microcontroladores de 32 bits - PIC32MX, os principais recursos:

  • operar em uma frequência de até 120 MHz;

  • Execute até 150 MIPS

  • ADC: 10 bits, 1 Msps (velocidade de quantização), até 48 canais.



Qual PIC para começar?

Os iniciantes devem começar a dominar os microcontroladores PIC a partir de uma linha de 8 bits. Em geral, o fabricante afirma que o recurso de toda a família é a fácil portabilidade de programas de uma família para outra e a pinagem de vários modelos.

Um dos microcontroladores mais populares no ambiente de rádio amador é o PIC16f628A. Suas características técnicas são as seguintes:

  • Há um gerador de relógio embutido. Você pode sintonizar para trabalhar com uma frequência de 4 ou 8 MHz;

  • 18 pinos, dos quais 16 - entrada / saída e 2 - potência;

  • Para operar em frequências de até 20 MHz, você pode conectar um ressonador de quartzo, mas neste caso não existem 16, mas 14 pernas restantes para entrada / saída;

  • Há uma letra F na marcação, o que significa que é usada memória FLASH com capacidade para 2048 palavras;

  • Instruções de 14 bits, 35 peças;

  • 2 comparadores;

  • 4 entradas analógicas;

  • As entradas PORTB possuem resistores pull-up;

  • Dois temporizadores de 8 bits e um de 16 bits;

  • Ciclo da máquina - 4 ciclos de um ressonador de quartzo ou oscilador interno);

  • 224 bytes de RAM;

  • 128 bytes de EEPROM;

  • USART - porta serial;

  • referência de tensão interna;

  • alimentado por 3,3 a 5 V.

As razões para sua popularidade são o baixo preço e a capacidade de gerar clock de um gerador interno.

Qual pinagem de 16f628 é mostrada abaixo:

Pinagem em 16f628

O circuito interno do bloco deste microcontrolador é mostrado abaixo.

Estrutura de microcontrolador 16f628

O que devo prestar atenção no esquema em primeiro lugar?

Este microcontrolador possui duas portas PORTA e PORTB. Cada pino, cada um deles, pode ser usado como entrada e saída, bem como para conectar periféricos ou ativar outros módulos de microcontroladores.

Considere esta parte do esquema em grandes detalhes.

Portas MK

Por exemplo, as portas RB0-RB3 - podem atuar como analógicas. Se necessário, uma fonte de relógio está conectada ao RA6, RA7 (ressonador de quartzo) As saídas do microcontrolador são configuradas no modo de entrada / saída usando o registrador TRIS.

Existem comandos para este tipo:

TRISA = 0; // Todos os pinos da porta A são definidos como saídas
TRISB = 0xff; // Todos os pinos da porta B são atribuídos como entradas
TRISA0 = 1; // Portanto, um pino separado é atribuído como entrada (1) ou saída (0)
TRISA5 = 1// aqui a quinta saída da porta A é atribuída como uma entrada

Em geral, os modos de operação, a inclusão de um WDT (watchdog timer), a escolha da fonte de clock do microcontrolador e assim por diante são configurados usando registradores de finalidade especial - SFR, e a memória e os dados são armazenados em GFR - em palavras simples, isso é RAM estática.

Na folha de dados oficial, nas páginas 18-21, você encontrará 4 bancos de memória para registros de finalidade especial SFR e registros de finalidade geral GFR. O conhecimento dos registros é importante; portanto, imprima e aprenda as páginas indicadas em Folha de dados.

Por conveniência, essas tabelas são apresentadas na forma de figuras abaixo (a numeração dos registros, como tudo na eletrônica digital, começa em 0, então o quarto número é 3).

Registros para fins especiais
Registros para fins especiais
Registros para fins especiais
Registros para fins especiais

Como conectar e em qual idioma programar?

Para executar este microcontrolador, basta aplicar mais ao Vdd e menos ao Vss. Se você precisar de um ressonador de quartzo, ele será conectado aos pinos 16 e 15 (OSC1 e OSC2) do microcontrolador PIC16f628, para outros controladores com um número maior ou menor de pinos - olhar na folha de dados. Mas este ponto deve ser indicado durante a programação e o firmware.

Falando em portabilidade e coincidência da pinagem - no 16f84A - é semelhante e em muitos outros.

Conexão de um ressonador de quartzo

Um fragmento de um circuito com um ressonador externo conectado ao pic16f628a:

Fragmento de circuito com um ressonador externo conectado ao pic16f628a

Existem duas linguagens principais para programar microcontroladores PIC - assembler e C, existem outras, por exemplo, PICBasic, etc. Você ainda pode destacar a linguagem de programação simplificada JAL (apenas outra linguagem).

Por exemplo, abaixo está um programa para "LED piscando" - uma espécie de "Hello World" para o microcontrolador PIC em C.

Um exemplo de um programa de microcontrolador PIC em C

Na linha 1, a biblioteca do microcontrolador PIC está conectada e, em seguida, a biblioteca do programa de atraso.

Na função principal (void), os parâmetros iniciais são definidos no início, assim como fizemos na função void setup () - em artigos sobre arduino. Em seguida, nas linhas 11-16, um loop while (1) infinito é declarado, durante o qual o programa "LED piscando" é executado.

No exemplo, o estado da porta é constantemente invertido, ou seja, se estivesse em "0", passará para "1" e vice-versa. Em C para PIC, existem os seguintes comandos de gerenciamento de comando:

PORTA = 0; // converte todos os pinos da porta A em um nível baixo (log. 0)
PORTB = 0xff; // converte todos os pinos da porta B em um nível alto (log. 1)
RB5 = 1; // O quinto pino da porta B é alto

E o mesmo programa se parece com isso, mas já no idioma JAL, traduzi para o russo os comentários dos desenvolvedores de exemplos embutidos no JALedit (ambiente de desenvolvimento).

Programa JAL de amostra

Existe uma tentação de escolher a JAL, e pode parecer mais fácil para você. Obviamente, você pode implementar qualquer projeto, mas, do ponto de vista do benefício para você como especialista, é uma linguagem inútil. Você obterá resultados significativamente maiores estudando a sintaxe e os princípios de programação em C (a maioria das linguagens semelhantes a C atualmente populares) ou o Assembler é uma linguagem de baixo nível que fará você entender como o dispositivo funciona e o que acontece no programa a qualquer momento.


Como trabalhar

Se você diz que é generalizado para trabalhar com qualquer microcontrolador, é necessário:

1. editor de texto.

2. O compilador.

3. O programa para baixar firmware para o microcontrolador.

E até li livros antigos, nos quais o autor, trabalhando no DOS, escreveu código, o compilou e exibiu usando vários meios. Agora, para todos os sistemas operacionais populares, existem ambientes de desenvolvimento altamente especializados (para uma família específica de microcontroladores ou famílias de um fabricante) e universais (que contêm todas as ferramentas necessárias ou estão conectados como plug-ins).

Por exemplo, em uma série de artigos sobre o Arduino, examinamos o ambiente IDE do Arduino, nele escrevemos código e com sua ajuda “despejamos” o firmware em “pedra”. Para microcontroladores PIC, existem programas como:

  • MPASM - usado para desenvolvimento na linguagem Assembler do Microchip;

  • O MPLAB também é o IDE Microchip para controladores PIC. Consiste em muitos blocos para testar, verificar, trabalhar com código e compilar programas e fazer o download no microcontrolador. Há também uma versão do MPLAB X IDE - ele possui ótima funcionalidade e é construído com base na plataforma NetBeans;

  • MikroC é um ambiente universal (não apenas para PIKs) para desenvolvimento. Como o nome indica, ele é "aprimorado" para programação C, e também existem programas como MikroBasic e MikroPascal para os idiomas correspondentes;

  • JALedit - adequado para o idioma JAL que mencionamos acima;

  • E vários outros menos conhecidos.

MPLAB IDE

Como piscar um microcontrolador?

Existem vários programadores para micronotroladores PIC. Oficialmente considerado PICkit. Suas 4 versões. Mas você pode usar o flash e o universal, por exemplo, o TL866 (ele suporta quase tudo o que um amador iniciante em rádio pode precisar, embora seja muito barato).

Programadores para Micronotrollers PIC

Também na rede, existem vários circuitos de programador para PICs, ambos para trabalhar através da porta COM:

Circuito programador

Por isso, é via USB (na verdade, também com, apenas através do conversor no IC MAX232).

Circuito programador

Conclusão

Os microcontroladores PIC16 são adequados para projetos simples, como automação simples, voltímetros, termômetros e outras pequenas coisas. Mas isso não significa que você não possa fazer projetos grandes e complexos com essa família. Dei um exemplo do motivo pelo qual eles são usados ​​com mais frequência. Para uma ideia geral, recomendo assistir a alguns vídeos:

Em um artigo, não faz sentido considerar tópicos sobre como programar microcontroladores, independentemente da família. Como essa é uma quantidade muito grande de informações.

Veja também em bgv.electricianexp.com:

  • Tipos e disposição dos microcontroladores AVR
  • Programação por microcontrolador para iniciantes
  • O que são microcontroladores - finalidade, dispositivo, software
  • Microcontroladores programáveis ​​em JavaScript: qual escolher, características ...
  • Métodos para ler e gerenciar portas de E / S do Arduino

  •