Using the Core Independent Peripherals (CIPs) of a PIC16F17146 reduces the Bill of Materials (BOM) required to implement a Peltier Cooled Metal Plate.
Introduction to Developing a Peltier Cooled Metal Plate With a PIC16F17146
Core Independent Peripherals (CIPs) are blocks of specialized hardware integrated into the microcontroller (MCU) that can reduce power consumption, improve CPU efficiency and add new MCU capabilities. The Peltier Cooled Metal Plate, also referred to as the Cold Plate, is a demonstration of the power of CIPs in applications. CIPs enable this solution to be highly integrated, which minimizes the Bill of Materials (BOM) in this application.
As the name suggests, the objective of this application is to cool the top metal surface to a user set temperature. To achieve this goal, a Peltier element (solid-state heat pump) is used to pump heat from the top plate into the heatsink below. A cooling fan attached to the heatsink then blows this heat into the atmosphere. Figure 1 shows the assembled demo.
Figure 1 – Assembled Cold Plate
The MCU performs the following operations:
Signals when the Peltier should be on and when it should be off
Calculates the temperature at the cold plate and heat sink using Negative Temperature Coefficient (NTC) thermistors
Amplifies the current sense output from the Peltier circuit
Maintains safe operation outside of the lab environment
Verifies the cooling fan is operating
Monitors the system for abnormal values (Peltier current and temperature)
Resets if self-check is not completed
Validates loaded user settings
Displays telemetry on the user interface
Responds to inputs from the user (pushbutton and rotary encoder)
Changes the LED light patterns as the system is running
This seems like a lot of work for a single 8-bit MCU to perform. But using CIPs, these functions and tasks can be accomplished. To implement this design, the PIC16F17146 MCU was selected due to the analog peripherals. This family of MCUs is analog focused with peripherals such as a 12-bit differential Analog-to-Digital Converter with Computation (ADCC), an integrated operational amplifier (OPAMP), two analog comparators (CMP) and two Digital-to-Analog Converters (DACs).
These analog peripherals allow the design to be almost entirely implemented in the MCU. An example of this is the current sense amplifier that uses the OPAMP. As the Peltier element pulls current, a voltage is generated across a current-sense resistor on the low-side. Since the voltage induced is relatively small (100 mV at 10A), it would be difficult to use the other analog peripherals with this signal directly. By using the OPAMP as a current sense amplifier (Figure 2), the magnified signal can be used with the other analog peripherals, which increases their analog performance.
Figure 2 – Current Sense Amplifier (Shown with Current Monitoring System)
Another feature implemented with CIPs was a quadrature decoder for the user interface. The user rotates the encoder to navigate the menus and to adjust the settings of the Cold Plate. The rotary encoders generate a quadrature encoded waveform composed of two square waves that are 90 degrees out of phase with each other. The direction of rotation will be determined depending on which of the waveforms leads while the other lags. This can be seen in Figure 3.
To convert the quadrature encoded signal into rotation, two Configurable Logic Cells (CLCs) are used to convert the quadrature encoded signal into clockwise and counterclockwise pulses, which is then fed into Timer 1 and Timer 3, which act as counters. From there, the CPU can perform simple arithmetic on the Timer counts to determine the net change since the last read, which correlates with the encoder movement by the user. This minimizes the amount of computation time the CPU must use to determine the net rotation since the last read.
Figure 3 – Implementation of a Quadrature Decoder
A big concern during development was ensuring this application could be run outside of the lab environment. The Peltier circuit draws substantial amounts of current while generating extreme (hot/cold) temperatures. Functional Safety (FuSa) ready peripherals on the PIC16F17146 were used to harden the system against software faults that could occur.
While the Peltier is running, the microcontroller performs a periodic self-check to monitor the Peltier current, system temperatures and cooling fan speed to ensure everything is operating within expected parameters. For instance, if the cooling fan stopped running, the system should immediately shut down to prevent damage to the Peltier element. Likewise, if the Peltier failed short, the system should immediately power down. This periodic self-check is enforced by the Windowed Watchdog Timer (WWDT). If the self-check fails to run, the microcontroller will reset.
Another safety feature implemented was a Cyclic Redundancy Check (CRC) of the user settings. User settings such as the target temperature, units and hysteresis parameters are stored in device EEPROM. A checksum is also incorporated into the EEPROM to verify the memory was not corrupted. On startup, the system examines the EEPROM to see if the settings are present and then valid. If the memory fails validation, the settings are erased and set to compile-time defaults.
This blog post has discussed some of the benefits and uses of CIPs to implement highly integrated systems that can reduce your BOM. While it isn’t possible to go through every CIP implementation used inside of the Cold Plate in a blog format, the accompanying application note goes through the full implementation in more detail. You can also view the source code and device documentation on our web site.
Robert Perkel and Josh Booth, Feb 21, 2023