You are here

Measuring multiple thermistors independently using PSoC 5LP | Cypress Semiconductor

Measuring multiple thermistors independently using PSoC 5LP

Summary: 13 Replies, Latest post by Bob Marlowe on 13 Sep 2016 01:05 PM PDT
Verified Answers: 3
Last post
Log in to post new comments.
ida.huang_1788036's picture
User
7 posts

Hi, 

I am using the CY8CKIT-001 PSoC Development kit with the PSoC 5LP to measure the temperature of five thermistors. Looking at AN6477 shows how to measure thermistors in parallel or in series. However, since I do not want my thermistors to be in series or in parallel, I wanted to modify the PSoC 4 thermistor measurement circuit in Figure 11 to work with the PSoC 5LP since I would not be limited by the number of opamps or DACs this way. However, I was unable to successfully build this circuit because of errors like "Signal "Net_1596" is expected to connect to only one GPIO analog pin but instead it connects to "AMux_CYAMUXSIDE_A". Please fix the connection."

Any suggestions? Attached my projects. 

Thanks!

user_242978793's picture
User
1201 posts

Tie your grounds together. I changed your mux to 6 but you could get by with 5 channels. Always use a Star ground to prevent ground loops. I removed the bootloadable component and also removed the PSOC 3 files as you are using a PSOC 5.  here is a program that compiles.

user_1377889's picture
User
10108 posts

Your routing looks quite out-of-order. Can you check that?

 

Bob

user_1377889's picture
User
10108 posts

Took some time to figure out what made your routing so messy. in the appnote you can see a shortened input channel or at another example a voltage reference. This is meant to measure the ADC offset. Since you have got only one ADC, you need this mimic only once.

So for each thermistor to measure you need two diff channels, one for the ref R, one for the thermistor. For your upper two thermistors you measure in serial you need another diff channel. Lastly one channel to measure the ADC offset.

Your ADC needs 3+2+2+2+1 = 10 diff channels and not 13 as in your project.

 

Bob

user_342122993's picture
User
675 posts

Ida.huang,
Alternately, you may consider using DS18B20 temperature sensor component, which allows for simultaneous sampling of up to 8 sensors at once.
http://www.cypress.com/forum/psoc-community-components/component-read-ds...

ida.huang_1788036's picture
User
7 posts

Hi, 

Thanks for the feedback. I did end up realizing I had a lot more channels in my MUX then necessary. I've fixed that in my current version of the project and have attached it. It is the project version 2. I am getting a warning where it tells me "Bonded pin(s) "P5[1]" are not used in your current design but have been connected in order to route the design." I haven't connected P5[1] in my cydwr file. Also I am getting notes saying: "Voltage Reference Information: Vref 'Vdda/2' is connected to terminal 'vminus' of '\ADC_DelSig:DSM\' but no direct hardware connection exists." Do I need to be concerned with this? In the dev kit's breadboard, I noticed that I have a lot of pins coming out of P1 that I can externally route but in the PSoC Creator, my project won't allow me to assign pins P1[0] - P1[3]. I've selected the op amp pins to their dedicated op amp vout pins P0[0], P0[1], P3[6], and P3[7]. The port 3 pins seem to be directly connected to CY8CKIT-036 PSoC Thermal Management Expansion Board Kit that I am using with the CY8CKIT-001 though. 

Ida

user_342122993's picture
User
675 posts

Ida.huang,
With so many thermistors you may consider using the Fast Thermistor Calculator component instead of stock Thermistor Calculator, and get about 15 times speedup.
http://www.cypress.com/forum/psoc-community-components/fast-thermistor-c...

user_1377889's picture
User
10108 posts

The "Bonding" warning can be ignored. To route your design as required, the router needs to "hop" from one pin to another which will not allow to use that pin for your own purposes.

 

Bob

ida.huang_1788036's picture
User
7 posts

Thank you for your feedback. I ultimately want to test my design with five thermistors and five fans. In my current project, I am just using one fan so it is not a problem that I have set the dedicated op amp vout pins P3[6] and P3[7]. However, I see these are connected to TACH4 and PWM4 on my 036 development kit so if I were to connect the fourth fan it would be a problem. Would it be easier to send my fan signals to different pins so I wouldn't be using the development kit anymore. I was also wondering what port/pins correspond to the VDD12 and DGND received by the fans.   

Thanks!

user_1377889's picture
User
10108 posts

A development kit has usually some pins dedicated to some board specific hardware. When the design is tested you may use a prototyping kit where only the essential pins are fixed. Check out the CY8CKIT-059.

 

Bob

ida.huang_1788036's picture
User
7 posts

My current thermal system seems to ping pong between the desired temperature range and I'd like to implement a PID controller in my fan controller to more tightly control the temperature of my system. Taking into account the measured value of the temperature and my target temperature, I can subtract them to find an error in the temperatures that should be proportional to the fan speed. I see that the there is this function called FanController_SetPID (uint8 fanNum, uint16 kp, uint16 ki, uint16 kd). I am thinking I should update the kp, ki, and kd terms every time I check measure the temperature? Does the firmware adjust the PWM/duty cycle the fan accordingly when I make this function call?

Thanks. 

Log in to post new comments.