[Kinetis M] High Precision PID controller

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

[Kinetis M] High Precision PID controller

Jump to solution
1,645 Views
cemsoyding
Contributor I

Hi guys,

I am very new here so let me introduce myself quickly : I am Cem, working as an Embedded Software Engineer in a small company in Geneva.

For the first time, I have been asked to write the specifications of the electronic board that we will use in our next project. The card will be developed externally. Basically, we want it to control a temperature with a precision of 0.01°C which is very challenging. The card will have to control up to 4 temperatures at the same time.

My first idea was to wire the PID controllers on the board. A 100% hardware solution which is the one you usually find on the internet.

Then, I thought that it may be a good idea to manage the PID with a microcontroller for many reasons:

* Remotely configurable (via SPI, I²C, UART)

* Can manage more than 4 temperatures (up to n, with n the number of channels of the ADC)

* Much simpler electronic board: less components, lower power consumption

* Cortex M0+/M4 are very efficient

I have come accross the Kinetis M description page and its 24-bits Sigma-Delta ADC.

Do you think that I can reach my expectations with this solution ? Otherwise, could you explain why ?

Thank you very much,

Labels (1)
1 Solution
1,034 Views
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi, Cem,

I think the Kinetis family with either Cortex-M0 or Cortex-M4 can do the work. You can use temperature closed  loop to control the temperature. You can use temperature sensor to detect the temperature, use on-chip ADC to sample the voltage from temperature sensor, use PID to compute the controlling signal, I suppose you use PWM signal or DAC to control the power device to supply heat. So the required peripherals are ADC, PWM,  Timer and serial port such as SPI, IIC or UART so that you can set the temperature from host. We provide the PID algorithms in SDK software tools.

It is challenging spec of 0.01 C temperature resolution, the small temperature resolution is dependent on the temperature range, temperature sensor, ADC resolution, PID parameter, the controlled device instead of just ADC resolution.

This is the Kinetis website:

Kinetis Low Power 32-bit ARM Cortex-M MCUs|NXP

BR

XiangJun Rong

View solution in original post

2 Replies
1,035 Views
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi, Cem,

I think the Kinetis family with either Cortex-M0 or Cortex-M4 can do the work. You can use temperature closed  loop to control the temperature. You can use temperature sensor to detect the temperature, use on-chip ADC to sample the voltage from temperature sensor, use PID to compute the controlling signal, I suppose you use PWM signal or DAC to control the power device to supply heat. So the required peripherals are ADC, PWM,  Timer and serial port such as SPI, IIC or UART so that you can set the temperature from host. We provide the PID algorithms in SDK software tools.

It is challenging spec of 0.01 C temperature resolution, the small temperature resolution is dependent on the temperature range, temperature sensor, ADC resolution, PID parameter, the controlled device instead of just ADC resolution.

This is the Kinetis website:

Kinetis Low Power 32-bit ARM Cortex-M MCUs|NXP

BR

XiangJun Rong

1,034 Views
cemsoyding
Contributor I

Thanks buddy !

0 Kudos
Reply