Microchip PIC16F690 Microcontroller: Architecture, Features, and Application Design
The Microchip PIC16F690 is a standout member of the mid-range PIC® microcontroller family, renowned for its robust feature set, cost-effectiveness, and ease of use. This 8-bit CMOS flash-based microcontroller is engineered to deliver high performance in a compact 20-pin package, making it an ideal choice for a vast array of embedded control applications, from consumer electronics to industrial automation.
Architecture Overview
At its core, the PIC16F690 employs a Harvard architecture, where the program and data memories have separate buses, enabling concurrent access and significantly enhanced execution speed. The heart of its operation is the powerful RISC-based CPU, which features a 14-bit wide instruction set with only 35 single-word instructions. This simplicity allows for rapid development and highly optimized code.
The memory organization includes:
4K x 14 words of Flash Program Memory, which is reprogrammable even after deployment, facilitating easy firmware updates.
256 bytes of EEPROM Data Memory for storing critical data that must be retained even after a power loss, such as calibration constants or user settings.
256 bytes of SRAM for temporary data storage during program execution.
Key Features and Peripherals
The PIC16F690 is packed with integrated peripherals that minimize external component count and reduce total system cost. Its most notable features include:

Analog-to-Digital Converter (ADC): A high-resolution 10-bit ADC with up to 12 input channels provides the capability to interface with a wide range of analog sensors (e.g., temperature, light, potentiometers).
Timers: It contains three versatile timers (Timer0, Timer1, Timer2) essential for tasks like creating precise delays, counting external events, and generating Pulse-Width Modulation (PWM) signals.
Capture/Compare/PWM (CCP) Module: This module allows the microcontroller to accurately capture the time of an external event, compare signals, and generate PWM outputs for controlling devices like motors and LEDs.
Enhanced Universal Synchronous Asynchronous Receiver Transmitter (EUSART): This serial communication module supports both RS-232 and RS-485 protocols, enabling seamless communication with PCs, other microcontrollers, or peripheral modules.
Complementary Waveform Generator (CWG): This is a key feature for motor control applications, allowing for the generation of complementary PWM signals with dead-band control to drive H-bridge circuits efficiently.
In-Circuit Serial Programming™ (ICSP™): This feature allows for simple and cheap firmware programming and debugging without removing the chip from the circuit board.
Application Design Considerations
Designing with the PIC16F690 requires a methodical approach. A typical application circuit includes a 5V voltage regulator, a crystal oscillator or resonator (though the internal oscillator can be used to save board space and cost), decoupling capacitors near the power pins, and the necessary input/output interfaces (buttons, sensors, driver circuits for outputs).
For instance, in designing a smart temperature controller, the PIC16F690's ADC would read a thermistor value. The firmware would process this data, compare it to a setpoint, and use the CCP module to generate a PWM signal. This PWM output could then drive a MOSFET to control a fan or a heater. The EUSART could simultaneously relay temperature data to a PC for monitoring. The internal EEPROM would be used to store the user-defined temperature setpoint permanently.
The PIC16F690 from Microchip represents an exceptional balance of processing capability, peripheral integration, and cost. Its rich set of features, including the 10-bit ADC, EUSART, and CWG, empowers designers to create sophisticated and reliable embedded systems with minimal external components. Its enduring popularity is a testament to its versatility and effectiveness in solving real-world design challenges across countless industries.
Keywords: PIC16F690, Microcontroller, Harvard Architecture, 10-bit ADC, EUSART
