El PIC16F628A es uno de los microcontroladores PIC más utilizados para aprender sistemas embebidos. Aunque es un dispositivo antiguo, sigue siendo muy popular por su simplicidad, bajo costo y porque incorpora comunicación serial por hardware.
Revisa la hoja de datos: https://ww1.microchip.com/downloads/en/DeviceDoc/40044G.pdf
Características generales
| Característica | Valor |
|---|---|
| Arquitectura | PIC de 8 bits |
| Frecuencia máxima | 20 MHz |
| Memoria Flash | 3.5 KB |
| RAM | 224 Bytes |
| EEPROM | 128 Bytes |
| Voltaje de operación | 2V a 5.5V |
| Pines | 18 |
| Oscilador interno | 4 MHz |
| Instrucciones | 35 instrucciones |
| I/O disponibles | 16 pines digitales |
Distribución de puertos
El PIC16F628A posee dos puertos:
Puerto A (PORTA)
Tiene 8 bits:
| Pin | Nombre |
|---|---|
| RA0 | Entrada/Salida |
| RA1 | Entrada/Salida |
| RA2 | Entrada/Salida |
| RA3 | Entrada/Salida |
| RA4 | Entrada/Salida |
| RA5 | MCLR/VPP |
| RA6 | Oscilador |
| RA7 | Oscilador |
Particularidades
- RA4 tiene salida tipo Open Drain.
- RA5 normalmente se usa como MCLR (Reset).
- RA6 y RA7 pueden utilizarse como I/O cuando se emplea el oscilador interno.
Puerto B (PORTB)
Tiene 8 bits:
| Pin | Nombre |
|---|---|
| RB0 | INT externa |
| RB1 | I/O |
| RB2 | I/O |
| RB3 | CCP1/PWM |
| RB4 | Interrupción por cambio |
| RB5 | Interrupción por cambio |
| RB6 | Programación ICSP |
| RB7 | Programación ICSP |
Características:
- Pull-up internos configurables.
- Interrupción por cambio de estado en RB4-RB7.
- RB0 dispone de interrupción externa dedicada.
Puertos de comunicación
Una de las ventajas del PIC16F628A es que incorpora un USART hardware.
UART / USART
Permite comunicación serial con:
- PC (mediante adaptador USB-TTL)
- Módulos Bluetooth HC-05
- ESP8266
- ESP32
- GSM
- GPS
Pines
| Función | Pin |
|---|---|
| TX | RB2 |
| RX | RB1 |
Modos soportados:
- Asíncrono (UART)
- Síncrono (USART)
Velocidades típicas:
- 9600 bps
- 19200 bps
- 38400 bps
- 115200 bps
Temporizadores
Incluye tres timers:
Timer0
- 8 bits
- Prescaler programable
Timer1
- 16 bits
- Puede usar cristal externo
Timer2
- 8 bits
- Utilizado junto al módulo PWM
PWM
Dispone de un módulo CCP1:
- Capture
- Compare
- PWM
Pin asociado:
| Función | Pin |
|---|---|
| CCP1/PWM | RB3 |
Usos:
- Control de motores DC
- Control de servomotores
- Regulación de brillo LED
Comparadores analógicos
Incorpora:
- 2 comparadores analógicos
- Referencia de voltaje interna programable
Permiten:
- Detectar niveles de tensión
- Sensores analógicos simples
- Comparaciones sin usar ADC externo
Lo que NO tiene
Es importante recordar que el PIC16F628A no posee ADC interno.
Por tanto:
❌ No puede leer directamente sensores analógicos como:
- LM35
- Potenciómetros
- Termistores
Para ello necesitarás:
- Un ADC externo (MCP3008, ADC0804, etc.)
- O cambiar a un PIC16F877A, PIC16F88, PIC18F4550, etc.
Pines principales del encapsulado DIP-18
Referencias
[1] microchip https://web.mit.edu/6.115/www/document/16f628.pdf, Consultado mayo 2019