Temperature control again 🙂
We have been customed to fully analog controlled temperature controllers like those made by Toptica in the past. The parameters(proportion, integral time, etc) of those controllers should be adjusted with the assist of an oscilloscope. You cannot use those experience formula because you cannot set a multi-turn potentiometer to 1/2.2 value. And if you don’t have an expensive monitor module, you don’t even know the temperature set point! How can these modules be used in an experiment?
In order to address this problem, I decide to make this digital version temperature controller.
Here is the photo of my final controller.
This temperature controller is designed to be compatible with three kinds of common temperature sensors – NTC sensor, PT100 RTD sensor, Thermocouple. With this powerful design, the controller can manage temperature from as low as several kelvin to a thousand degree celsius.
Three analog frond ends provide adequate working condition for the sensors as well as amplify the signal and scale them to fit into ADC’s input range.
The ADC in this project is AD7793, a low cost two channels (if you use external reference as I did) 24bit delta-sigma ADC, connected to the main processor through high speed SPI protocol. The ADC is running on a 64kHz clock generated by main processor’s timer. The main processor’s PID calculation and output refresh is synchronized by the ADC’s ready signal.
Digital PID for temperature is never a tricky problem for those high speed micro controllers. I even use double precision float type for all variables and the controller still works great. 72MHz/90DMIPS is a monster for the tiny task!
The DAC is AD5689, a two channels 16bit DAC, is definitely sufficient to drive any TEC or heater. A instrumental amplifier shift the middle level to zero voltage and drive a push-pull output stage with feedback to provide a maximum of 25W power.
The output is monitored all the time, you can check the output voltage, output current, output power as needed. Warning functions such as sensor fault, output short circuit, output over current, output open circuit, can be easily implemented in this hardware design.
Based on my OLED driver and graphic library written years ago, I can quickly developed the firmware for this controller with gorgeous OLED display and fancy user interface.
The interaction can be done through a couple of buttons and a rotatory encoder, which definitely provide a smooth user experience.
I have tested this controller under many circumstance, vacuum chamber, ECDL housing for example. With proper heat insulation design and careful PID adjustment, <1mK temperature stability can be easily achieved with NTC sensor near room temperature.
This controller has been successfully deployed into my ECDL project, and helped a great deal pushing a 690nm laser diode for a 698nm output, which will be used in Sr experiment in the future.