MCU PIC16F17146: Características e programação

Introdução ao PIC16F17146

O PIC16F17146 é um chip microcontrolador que pertence à família PIC16F, conhecida por seu alto desempenho e baixo consumo de energia. É comumente usado em uma variedade de dispositivos eletrônicos, como eletrônicos de consumo, aplicações automotivas e sistemas de controle industrial. O PIC16F17146 oferece uma ampla gama de recursos, incluindo várias interfaces de comunicação, conversores analógico-digitais e bastante memória para armazenar instruções e dados de programas. Este chip versátil permite que os desenvolvedores criem aplicativos sofisticados com facilidade, graças à sua arquitetura flexível e ao amplo conjunto de periféricos. Por exemplo, ele pode ser usado em sistemas automotivos para controlar funções do motor ou em dispositivos domésticos inteligentes para gerenciar várias tarefas de automação residencial.

PIC16F17146 Microcontroller (MCU)

Características do PIC16F17146

  • Arquitetura RISC otimizada para compilador C
  • Núcleo de médio alcance aprimorado com 49 instruções e 16 níveis de pilha
  • Memória de programa Flash com capacidade de leitura/gravação automática
  • Reinicialização com baixa corrente (POR)
  • Reinicialização programável em caso de queda de energia (BOR) com recuperação rápida
  • Reinicialização por queda de energia de baixa potência (LPBOR)
  • Modos de baixo consumo de energia em modo inativo e hibernação
  • Temporizador de vigilância com janela (WWDT)
  • Desativação do módulo periférico (PMD)
  • Seleção de pinos periféricos (PPS)
  • Reinicialização aprimorada de ligar/desligar
  • Temporizador de inicialização configurável (PWRT)

Especificação do PIC16F17146

AttributeValue
ModelPIC16F17146
ArchitectureRISC
Temperature Range-40°C to 85°C
Frequencyup to 32MHz
Voltage1.8V to 5.5V
Size6.5 x 9.4 x 1.5mm
Memoryup to 28 KB
EEPROMup to 256 Bytes
SRAMup to 2 KB
Timer3 x 16-bit, 3 x 8-bit
PWM4 x 16-bit
CLC4
DAC2 x 8-bit
ADC1 x 12-bit
USART1
I2C1 x 7/10-bit
SPI1
Operational Amplifier1
I/O Portup to 35 pins
Package14-Pin PDIP, SOIC, TSSOP; 16-Pin VQFN; 20-Pin PDIP, SOIC, SSOP, VQFN

Como programar a placa de desenvolvimento PIC16F17146 Curiosity Nano?

2022 09 26 9 40 59
Crédito da imagem: Microchip Technology | Mouser

Ferramentas necessárias:

  • Ambiente de Desenvolvimento Integrado (IDE) MPLAB® X
  • Placa PIC16F17146 Curiosity Nano *1
  • Cabo USB * 1

PIC16F17146 Curiosity Nano - Teste de piscar LED

Primeiro, baixe e instale o MPLAB X IDE v6.10 do site da Microchip:
https://www.microchip.com/en-us/tools-resources/develop/mplab-x-ide#

Downloading the MPLAB X IDE v6.10
Downloading the MPLAB X IDE v6.10
Installing MPLAB X IDE v6.10
Installing MPLAB X IDE v6.10

Após configurar o MPLAB® X IDE, podemos ver uma interface fácil de usar. Se você é iniciante, há alguns tutoriais introdutórios para você.

Overview of MPLAB X IDE v6.10 User Interface
Overview of MPLAB X IDE v6.10 User Interface

Continue com o nosso projeto, clique em "Arquivo > Novo Projeto" para criar um novo projeto.

Create a New Project in MPLAB X IDE
Create a New Project in MPLAB X IDE

Nesta etapa, selecionamos "Microchip Embedded > Standalone Project" (Microchip incorporado > Projeto autônomo), que usa um makefile gerado pelo IDE para compilar seu projeto.

Choose a Standalone Project in MPLAB X IDE
Choose a Standalone Project in MPLAB X IDE

Em seguida, selecione o dispositivo "PIC16F17146" e sua ferramenta.

Select Device - PIC16F17146 Curiosity Nano
Select Device - PIC16F17146 Curiosity Nano

Selecione as cadeias de ferramentas do compilador para sua placa de desenvolvimento.

Select Compiler Toolchains
Select Compiler Toolchains

Após concluir as etapas acima, clique no botão "MCC" para configurar o código do programa.

Open MCC Content Manager
Open MCC Content Manager

Selecione um tipo de conteúdo no "Assistente do Gerenciador de Conteúdo MCC" para o seu projeto. Se não tiver certeza sobre qual escolher, consulte os detalhes oficiais.

Select MCC Melody
Select MCC Melody

Para garantir o início rápido da função MCC, você pode configurá-la para o modo offline.

Run MCC in Offline Mode
Run MCC in Offline Mode

Antes de configurar a E/S, leia atentamente o esquema da placa de desenvolvimento PIC16F17146 Curiosity Nano. A partir do diagrama esquemático, podemos saber que:

A E/S acende quando RC1 emite um nível baixo; a E/S não tem resistor pull-up externo, portanto, o pull-up no chip pode ser configurado, e a porta aciona um sinal de nível baixo após ser pressionada.

PIC16F17146 Curiosity Nano MCU Schematic
PIC16F17146 Curiosity Nano MCU Schematic

A configuração final é a seguinte. Essa configuração fará com que o LED seja ligado por padrão. Se você quiser desligar o LED por padrão, pode marcar a opção Start High correspondente, ou seja, a saída IO fica alta quando ligada.

PIC16F17146 Curiosity Nano Input Output (IO) Configuration
PIC16F17146 Curiosity Nano Input Output (IO) Configuration

Se não usarmos a função de interrupção de E/S, a configuração termina aqui. Clique em "Gerar" para gerar o código.

Generate the Code of LED Blinking for PIC16F17146 Curiosity Nano
Generate the Code of LED Blinking for PIC16F17146 Curiosity Nano

Ao escrever código, podemos usar a função de autocompletar código, os detalhes são os seguintes:

Apply Code Completion for PIC16F17146 Curiosity Nano
Apply Code Completion for PIC16F17146 Curiosity Nano

Acionadores automáticos de pop-up para identificadores C/C++:

				
					.;->;.*;->*;::;new ;A;a;B;b;C;c;D;d;E;e;F;f;G;g;H;h;I;i;J;j;K;k;L;l;M;m;N;n;O;o;P;p;Q;q;R;r;S;s;T;t;U;u;V;v;W;w;X;x;Y;y;Z;z;_;
				
			

Escreva o código no corpo do loop da seguinte forma:

				
					    while(1)
    {
        if(BUTTON_GetValue()==0)
        {
            while(BUTTON_GetValue()==0);
            LED_Toggle();
        }
    }   
				
			

Clique no botão Executar para compilar e gravar o programa LED na placa de desenvolvimento PIC16F17146 Curiosity Nano.

Program the Project PIC16F17146 Curiosity Nano
Program the Project PIC16F17146 Curiosity Nano

Em seguida, volte para a guia MCC, adicione a função de atraso ao projeto, basta clicar em "Recursos do dispositivo" > Temporizador > "ATRASO". Em seguida, clique no botão "Gerar".

Add the Delay Module Code to Project
Add the Delay Module Code to Project

Agora, inserimos a letra "DE" em main.c e a função de atraso aparecerá.

Display Delay Function in main. c
Display Delay Function in main. c

Nossos códigos de atraso são os seguintes, um em microssegundos e outro em milissegundos:

				
					    while(1)
    {
        LED_Toggle();
        DELAY_milliseconds(500);        
    } 
				
			

Salve e execute este programa, você poderá ver que o LED na nossa placa de desenvolvimento começa a piscar em ciclos de 1 segundo.

Reduzindo o consumo de energia com a série PIC16F17146

Muitos dos projetos embarcados atuais envolvem sistemas analógicos, sejam eles sensores, amplificadores, conversores de dados ou quaisquer outros módulos analógicos. Esses projetos geralmente são alimentados por bateria para maior conveniência dos consumidores em eletrônicos de uso diário. No entanto, a vida útil da bateria representa um desafio para os projetistas, pois os sinais analógicos precisam ser digitalizados e processados, o que não é ideal para aplicações alimentadas por bateria. Abaixo estão várias maneiras de reduzir o consumo de energia:

Periféricos Independentes Centrais (CIP)

Com a série MCU PIC16F17146, muitos projetos analógicos podem superar os desafios do consumo de energia. Os dispositivos PIC® e AVR® oferecem vários periféricos independentes do núcleo (CIP). Os CIPs são hardwares dedicados que podem operar independentemente da Unidade Central de Processamento (CPU). Como existem vários CIPs disponíveis nos dispositivos PIC e AVR, eles podem ser usados para descarregar outras tarefas da CPU enquanto lidam com interfaces de sensores, controle de forma de onda, temporização/medição e muito mais. Como resultado, o sistema pode funcionar em modos de baixa potência, levando a uma redução geral no consumo de energia do projeto.

Conversor analógico-digital com computação (ADCC)

Um dos periféricos analógicos que oferecem oportunidades de economia de energia é o nosso Conversor Analógico-Digital com Computação (ADCC). A CPU possui vários modos de economia de energia disponíveis para reduzir o consumo geral de energia. Um dos recursos de economia de energia fornecidos pela série MCU PIC16F17146 é o modo SLEEP, no qual a maior parte do MCU é desligada, consumindo menos energia e reduzindo o ruído de medição durante a conversão ADC. O ADCC possui um oscilador especial que permite que o hardware opere no modo de suspensão. Quando um gatilho de ativação é acionado, a CPU retoma a operação logo em seguida.

Modo inativo e modo Doze

Outros modos de economia de energia oferecidos pela série PIC16F17146 MCU incluem o modo Idle e o modo Doze. No modo Idle, a CPU interrompe todas as outras operações enquanto os periféricos permanecem ativos, e no modo Doze, a CPU funciona com um clock de instrução reduzido.

Desativação do Módulo Periférico (PMD)

O Peripheral Module Disable (PMD) é outro recurso do MCU. Mesmo quando não estão ativados, os dispositivos periféricos não utilizados consomem uma pequena quantidade de energia parasitária. Ao ativar o PMD, os usuários podem ativar ou desativar quaisquer dispositivos periféricos não utilizados. Ao desativar esses periféricos, o MCU opera no estado de energia mais baixo possível, reduzindo seu consumo total de energia.

No desenvolvimento incorporado, a série MCU PIC16F17146, juntamente com outras MCUs Microchip de 8 bits, oferece aos usuários inúmeras opções para otimizar o consumo de energia do sistema incorporado. Para obter mais informações e explorar como obter uma implementação de baixo consumo de energia em seu próximo projeto, não deixe de conferir o MPLAB® Discover, que abriga uma grande variedade de projetos, incluindo muitas aplicações de baixo consumo de energia.

Compartilhar em:

Rolar para cima

Instant Quote