Introducción al PIC16F17146
El PIC16F17146 es un chip microcontrolador que pertenece a la familia PIC16F, conocida por su alto rendimiento y bajo consumo energético. Se utiliza habitualmente en una gran variedad de dispositivos electrónicos, como productos electrónicos de consumo, aplicaciones automovilísticas y sistemas de control industrial. El PIC16F17146 ofrece una amplia gama de características, entre las que se incluyen múltiples interfaces de comunicación, convertidores de analógico a digital y una gran cantidad de memoria para almacenar instrucciones y datos de programas. Este versátil chip permite a los desarrolladores crear aplicaciones sofisticadas con facilidad, gracias a su arquitectura flexible y a su amplio conjunto de periféricos. Por ejemplo, se puede utilizar en sistemas automovilísticos para controlar las funciones del motor, o en dispositivos domésticos inteligentes para gestionar diversas tareas de automatización del hogar.

Características del PIC16F17146
- Arquitectura RISC optimizada para compilador C
- Núcleo de gama media mejorado con 49 instrucciones y 16 niveles de pila
- Memoria de programa Flash con capacidad de lectura/escritura automática
- Reinicio de encendido de baja corriente (POR)
- Reinicio programable por caída de tensión (BOR) con recuperación rápida
- Reinicio por caída de tensión de baja potencia (LPBOR)
- Modos de bajo consumo en reposo e hibernación
- Temporizador de vigilancia con ventana (WWDT)
- Desactivación del módulo periférico (PMD)
- Selección de pines periféricos (PPS)
- Restablecimiento mejorado de encendido/apagado
- Temporizador de encendido configurable (PWRT)
Especificaciones del PIC16F17146
| Attribute | Value |
|---|---|
| Model | PIC16F17146 |
| Architecture | RISC |
| Temperature Range | -40°C to 85°C |
| Frequency | up to 32MHz |
| Voltage | 1.8V to 5.5V |
| Size | 6.5 x 9.4 x 1.5mm |
| Memory | up to 28 KB |
| EEPROM | up to 256 Bytes |
| SRAM | up to 2 KB |
| Timer | 3 x 16-bit, 3 x 8-bit |
| PWM | 4 x 16-bit |
| CLC | 4 |
| DAC | 2 x 8-bit |
| ADC | 1 x 12-bit |
| USART | 1 |
| I2C | 1 x 7/10-bit |
| SPI | 1 |
| Operational Amplifier | 1 |
| I/O Port | up to 35 pins |
| Package | 14-Pin PDIP, SOIC, TSSOP; 16-Pin VQFN; 20-Pin PDIP, SOIC, SSOP, VQFN |
¿Cómo programar la placa de desarrollo PIC16F17146 Curiosity Nano?

Herramientas necesarias:
- Entorno de desarrollo integrado (IDE) MPLAB® X
- Placa Curiosity Nano PIC16F17146 *1
- Cable USB * 1
PIC16F17146 Curiosity Nano - Prueba de parpadeo de LED
En primer lugar, descargue e instale MPLAB X IDE v6.10 desde el sitio web de Microchip:
https://www.microchip.com/en-us/tools-resources/develop/mplab-x-ide#


Después de configurar MPLAB® X IDE, podemos ver una interfaz fácil de usar. Si eres principiante, hay algunos tutoriales de introducción para ti.
Continúa con nuestro proyecto, haz clic en «Archivo > Nuevo proyecto» para crear un nuevo proyecto.

En este paso, seleccionamos «Microchip Embedded > Standalone Project» (Proyecto independiente integrado en microchip), que utiliza un archivo makefile generado por IDE para compilar el proyecto.

A continuación, seleccione el dispositivo «PIC16F17146» y su herramienta.

Seleccione las cadenas de herramientas del compilador para su placa de desarrollo.

Después de completar los pasos anteriores, haga clic en el botón «MCC» para configurar el código del programa.

Seleccione un tipo de contenido en el «Asistente para el administrador de contenido MCC» para su proyecto. Si no está seguro de cuál elegir, consulte los detalles oficiales.

Para garantizar un inicio rápido de la función MCC, puede configurarla en modo sin conexión.

Antes de configurar la E/S, lea atentamente el esquema de la placa de desarrollo PIC16F17146 Curiosity Nano. A partir del diagrama esquemático, podemos saber que:
La E/S se ilumina cuando RC1 emite un nivel bajo; la E/S no tiene resistencia pull-up externa, por lo que se puede configurar el pull-up integrado en el chip, y el puerto activa una señal de nivel bajo después de ser pulsado.

La configuración final es la siguiente. Esta configuración hará que el LED se encienda de forma predeterminada. Si desea apagar el LED de forma predeterminada, puede marcar la casilla Start High correspondiente, es decir, la salida IO es alta cuando se enciende.

Si no utilizamos la función de interrupción de E/S, la configuración finaliza aquí. Haga clic en «Generar» para generar el código.

Al escribir código, podemos utilizar la función de autocompletado de código. Los detalles son los siguientes:

Desencadenantes de ventanas emergentes automáticas 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;_;
Escriba el código en el cuerpo del bucle de la siguiente manera:
while(1)
{
if(BUTTON_GetValue()==0)
{
while(BUTTON_GetValue()==0);
LED_Toggle();
}
}
Haga clic en el botón Ejecutar para compilar y grabar el programa LED en la placa de desarrollo PIC16F17146 Curiosity Nano.

A continuación, vuelve a la pestaña MCC, añade la función de retardo al proyecto, solo tienes que hacer clic en «Recursos del dispositivo» > Temporizador > «DELAY». A continuación, haz clic en el botón «Generar».

Ahora, introducimos las letras «DE» en main.c y aparecerá la función de retraso.

Nuestros códigos de retraso son los siguientes, uno en microsegundos y otro en milisegundos:
while(1)
{
LED_Toggle();
DELAY_milliseconds(500);
}
Guarde y ejecute este programa, y verá que el LED de nuestra placa de desarrollo comienza a parpadear en ciclos de 1 segundo.
Reducción del consumo energético con la serie PIC16F17146
Muchos de los diseños integrados actuales incluyen sistemas analógicos, ya sea sensores, amplificadores, convertidores de datos o cualquier otro módulo analógico. Estos diseños suelen funcionar con pilas para mayor comodidad de los consumidores en los dispositivos electrónicos de uso diario. Sin embargo, la duración de las pilas supone un reto para los diseñadores, ya que las señales analógicas deben digitalizarse y procesarse, lo que no es ideal para las aplicaciones que funcionan con pilas. A continuación se indican varias formas de reducir el consumo de energía:
Periféricos independientes centrales (CIP)
Con la serie MCU PIC16F17146, muchos diseños analógicos pueden superar los retos del consumo energético. Los dispositivos PIC® y AVR® ofrecen varios periféricos independientes del núcleo (CIP). Los CIP son hardware dedicado que puede funcionar independientemente de la unidad central de procesamiento (CPU). Dado que hay numerosos CIP disponibles en los dispositivos PIC y AVR, estos se pueden utilizar para descargar otras tareas de la CPU mientras se gestionan las interfaces de los sensores, el control de formas de onda, la sincronización/medición y mucho más. Como resultado, el sistema puede funcionar en modos de bajo consumo, lo que conduce a una reducción general del consumo energético del diseño.
Convertidor analógico-digital con computación (ADCC)
Uno de los periféricos analógicos que ofrecen oportunidades de ahorro energético es nuestro convertidor analógico-digital con computación (ADCC). La CPU dispone de varios modos de ahorro de energía para reducir el consumo energético total. Una de las funciones de ahorro de energía que ofrece la serie de MCU PIC16F17146 es el modo SLEEP, en el que la mayor parte de la MCU se apaga, consumiendo menos energía y reduciendo el ruido de medición durante la conversión ADC. El ADCC tiene un oscilador especial que permite que el hardware funcione en modo de suspensión. Cuando se activa un disparador de activación, la CPU reanuda su funcionamiento poco después.
Modo inactivo y modo Doze
Otros modos de ahorro de energía que ofrece la serie de MCU PIC16F17146 son el modo inactivo y el modo de reposo. En el modo inactivo, la CPU detiene todas las demás operaciones mientras los periféricos permanecen activos, y en el modo de reposo, la CPU funciona con una frecuencia de reloj reducida.
Desactivación del módulo periférico (PMD)
La desactivación del módulo periférico (PMD) es otra característica de la MCU. Incluso cuando no están activados, los dispositivos periféricos que no se utilizan consumen una pequeña cantidad de energía parásita. Al activar la PMD, los usuarios pueden activar o desactivar cualquier dispositivo periférico que no se utilice. Al desactivar estos periféricos, la MCU funciona en su estado de energía más bajo posible, lo que reduce su consumo total de energía.
En el desarrollo integrado, la serie MCU PIC16F17146, junto con otras MCU de 8 bits de Microchip, ofrece a los usuarios numerosas opciones para optimizar el consumo energético de los sistemas integrados. Para obtener más información y descubrir cómo lograr una implementación de bajo consumo en su próximo diseño, no deje de visitar MPLAB® Discover, que alberga una gran cantidad de proyectos, incluidas muchas aplicaciones de bajo consumo.




