AN78737 PSoC 1 - Temperature-Sensing Solution using a TMP05/TMP06 Digital Temperature Sensor.pdf

AN78737
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/
TMP06 Digital Temperature Sensor
Author: Meenakshi Sundaram R
Associated Project: Yes
Associated Part Family: CY8C28xxx
®
TM
Software Version: PSoC Designer 5.2
Related Application Notes: AN65977
If you have a question, or need help with this application note, contact the author at
[email protected]
®
AN78737 enables designers using the PSoC 1 - CY8C28xxx family to quickly and easily interface with Analog
Devices’ TMP05 or TMP06 digital temperature sensors. It describes the three modes in which the sensors can be
interfaced followed by two example projects interfacing the sensors with a CY8C28xxx device through a simple,
serial 2-wire digital interface. After reading the application note, a designer should be able to use the project attached
to interface any PSoC 1 to TMP05 and TMP06 sensors in all three modes described. This application note assumes
that the reader is familiar with PSoC 1, PSoC Designer IDE and programming in C. To get started with PSoC, click
here.
Contents
Introduction
Introduction .......................................................................1
TMP05 – Modes of Operation ...........................................3
Design Considerations When Using TMP05 Sensors in
Daisy-Chain Mode ........................................................4
System Architecture in PSoC ............................................4
Hardware ......................................................................... 11
Associated Project Overview........................................... 11
Example 1: Interfacing One TMP05 Sensor .................... 15
Example 2: Interfacing Two TMP05 Sensors .................. 17
Summary ......................................................................... 18
Worldwide Sales and Design Support ............................. 20
Analog Devices’ TMP05 and TMP06 sensors are
monolithic temperature sensors that generate a pulsewidth modulated (PWM) serial digital output. This output
varies in direct proportion to the ambient temperature of
the devices. The high period (TH) of the PWM remains
static over all temperatures, while the low period (TL)
varies. It offers a high temperature accuracy of ±1°C from
0°C to 70°C with excellent transducer linearity. The digital
output of the TMP05 is CMOS/TTL-compatible and,
therefore, can be interfaced directly to PSoC. The digital
output of the TMP06 is open-drain and requires a pull-up
resistor for proper operation. Throughout the rest of this
document, any references to TMP05 also apply to the
TMP06 sensor.
The TMP05 Digital Temperature Sensing solution can be
used in thermal management solutions for base-stations,
telecommunications, server and storage applications.
Typical applications may include, but are not limited to,
areas where remote temperature sensing, environmental
control systems, computer thermal monitoring, thermal
protection, industrial process control, and power-system
monitoring and management are required.
www.cypress.com
Document No. 001-78737 Rev. *B
1
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
The TMP05 Sensor can be easily interfaced to PSoC 1
using a 1 or 2-wire serial interface as shown in Figure 1
and Figure 2. The project attached with the application
note uses a 16 bit timer, 1 input pin, 1 output pin
(depending on the mode in which TMP05 is configured)
and the GPIO interrupt service routine for interfacing with
the TMP05 sensor. This enables the designer to
implement many other system management functions in
the same device.
Figure 1. PSoC with TMP05
Figure 2. PSoC with TMP06
www.cypress.com
Document No. 001-78737 Rev. *B
2
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
TMP05 – Modes of Operation
The TMP05 sensor has three modes of operation listed
below:
1.
Continuous conversion mode - The sensor outputs a
temperature dependent PWM signal continuously.
2.
Daisy-chain mode chained together
3.
One shot mode - The sensor outputs a temperature
dependent PWM signal on request (as shown in
Figure 3).
Multiple TMP05 sensors are
from the current sensor; the signal chain is terminated by
a start pulse. The temperature to PWM conversion then
stops until the controller generates another start pulse.
The system level architecture is shown in Figure 4. For
further details on the modes refer to TMP05 device
datasheet.
Figure 3. TMP05 PWM_OUT Line in One Shot Mode
A three-state FUNC input pin, sampled at power-up,
determines the mode in which the device operates. Setting
the FUNC pin to a high state allows multiple TMP05s to be
connected together in daisy-chain mode. In that mode,
multiple TMP05 temperature sensors are connected
together enabling PSoC to read all the sensors through
the same 2 pin interface. In this mode, PSoC generates a
“Start” pulse that begins the temperature-to-PWM
conversion cycle. The output of each TMP05 sensor
begins with the PWM outputs from all previous TMP05
sensors in the daisy-chain followed by the PWM output
Figure 4. Multiple TMP05 Sensors Daisy-Chained
This application note focuses on how to use the TMP05 Digital Temperature Sensor with CY8C28xxx device by working
through some example projects on the CY8CKIT-001 PSoC Development Kit (DVK). The examples show how to use the
attached project to monitor the temperature of multiple TMP05 devices reliably. Supporting other management protocols and
higher level functionality is beyond the scope of this application note.
www.cypress.com
Document No. 001-78737 Rev. *B
3
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
Design Considerations When Using TMP05
Sensors in Daisy-Chain Mode
There are some timing constraints to be observed when
operating TMP05 sensors in daisy-chain mode. PSoC
needs to generate the conversion start pulse on the
CONV/IN pin of the sensor. The start pulse lets the first
TMP05 part know that it should now start a conversion
and output its own temperature. The pulse width of the
start pulse should be less than 25 μs but greater than
20 ns. These constraints are handled automatically in the
project and are described in this application note for
reference purposes only. Once the part has output its own
temperature, it adds a start pulse for propagation to the
next part in the daisy-chain.
System Architecture in PSoC
The resources used to interface the TMP05 sensor in
CY8C28xxx are shown in Figure 7 . As shown in the
figure, only two digital blocks are used to implement a 16
bit timer for the interface (remaining resources used in the
project are optional and are used to display/communicate
the temperature data to the user). The rest of the design is
implemented in firmware and GPIO ISR.
Figure 7. Resources Utilized for the Interface
Figure 5 and Figure 6 show the input and output
waveforms for the first sensor in the daisy-chain (taken
from the TMP05 device datasheet):
Figure 5. TMP05 Start Pulse Waveform
The following sections cover the implementation of these
APIs for various modes in which the TMP05 sensor can
operate.
Figure 6. TMP05 PWM Output Waveform
When sensors are daisy-chained, downstream sensors
use the rising edge of the PWM signal from the previous
sensor as the start pulse. Once detected, it initiates a
conversion and inserts its own result at the end of the
incoming PWM signal and then adds a start pulse for the
next sensor in the daisy-chain. PSoC receives the sensor
terminal input, the PWM representing sensor 1 first,
followed immediately by the PWM representing sensor 2.
A start pulse of 17 μs terminates the process.
www.cypress.com
Document No. 001-78737 Rev. *B
4
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
C o n t i n u o u s C o n ve r s i o n M o d e
To configure the TMP05 sensor in continuous conversion
mode refer to the sensor datasheet or Figure 8. In this
mode, the sensor outputs square wave continuously
whose low time depends on the ambient temperature. To
measure the pulse width in CY8C28xxx, the 16 bit timer
clocked by ILO (32 kHz) along with PSoC GPIO interrupt
is used. When PSoC is triggered to start the
measurement, it starts the timer and enables
ChangeFromRead interrupt on the pin which is reading the
TMP device’s PWM output. When there is a fall edge or a
rise edge, the timer value is captured in the ISR. The high
and low pulse time are calculated in the ISR and are in
turn used to calculate the temperature. Flow charts in
Figure 9, Figure 10, Figure 11, and Figure 12 describe the
firmware.
Figure 8. TMP05 in Continuous Mode
Figure 9. TMP05_Start Function in Continuous Mode
TMP_Start()
Set drive mode
based on Sensor
Type (TMP05 or
06)
Configure the 16
bit timer with ILO
as input clock
Enable Edge
triggered interrupt
on PWM_OUT line
input
Enable Global
interrupts
RET
Figure 10. Get Temperature Function in Continuous Mode
Get Temperature()
Is DataReady?
Yes
Temperature (in
C) = 421 – 751 *
TH/TL
No
Temperature =
DATA_NOT_REA
DY
RET
www.cypress.com
Document No. 001-78737 Rev. *B
5
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
Figure 11. Timer Overflow ISR
Timer Overflow
ISR()
Figure 12. GPIO ISR for Continuous Mode
GPIO_ISR()
TempVar =
Read_Timer()
Set Timer
Overflow flag
Is this the 1st
Interrupt?
Yes
Timer_Start and
Clear First Time
enter flag
RiseEdgeTimer =
FallEdgeTimer =
PERIOD;
RETI
No
RETI
PWM_OUT Pin
High?
No
Yes
RiseEdgeTimer =
TempVar
FallEdgeTimer =
TempVar
Timer
Overflow?
No
Yes
PulseLowWidth =
FallEdgeTimer RiseEdgeTimer
PulseLowWidth =
PERIOD +
FallEdgeTimer RiseEdgeTimer
Clear
TimerOverflow
flag
PulseHighWidth =
RiseEdgeTimer FallEdgeTimer
PulseHighWidth =
PERIOD +
RiseEdgeTimer FallEdgeTimer
TempData |= 2
TempData &= ~1
TempData |= 1
No
No
Yes
Clear
TimerOverflow
flag
TempData =
3?
Timer
Overflow?
Yes
Set Data Ready
flag for
temperature
measurement
RETI
www.cypress.com
Document No. 001-78737 Rev. *B
6
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
One Shot Mode
To configure the sensor in one shot mode see Figure 13. In one shot mode, the TMP05 outputs one square wave representing
temperature when requested. The firmware implementation for that is shown in Figure 14 to Figure 17.
Figure 15. TMP05 Trigger Function in One Shot Mode
Figure 13. TMP05 in One Shot Mode
TMP_Trigger()
Pull the
PWM_OUT line
low
RiseEdgeVal =
PERIOD
Figure 14. TMP05 Start Function in One Shot Mode
TMP_Start()
Set drive mode
based on Sensor
Type (TMP05 or
06)
Configure the 16
bit timer with ILO
as input clock
Start Timer
Release
PWM_OUT line
Enable Edge
triggered INT on
PWM_OUT
RET
Enable Global
interrupts
RET
www.cypress.com
Document No. 001-78737 Rev. *B
7
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
Figure 16. GPIO ISR for One Shot Mode
Figure 17. Get Temperature Function in One Shot Mode
GPIO_ISR()
Get Temperature()
TempVar =
ReadTimer();
Is DataReady?
Yes
Temperature (in
C) = 421 – 751 *
TH/TL
No
Is PWM_OUT
High?
No
FallEdgeVal =
TempVar
Yes
Disable Timer and
INT on
PWM_OUT line
Temperature =
DATA_NOT_REA
DY
RET
highWidth =
RiseEdgeVal FallEdgeVal
RiseEdgeVal =
TempVar
lowWidth =
FallEdgeVal RiseEdgeVal
Set DataReady
flag
RETI
www.cypress.com
Document No. 001-78737 Rev. *B
8
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
Dais y Chain Mode
To configure the sensor in daisy chain mode see Figure 18. In this mode, multiple TMP05s are connected together and allow
one input line to be the sole receiver of all temperature measurements. In this mode, the CONV/IN pin of TMP operates as the
input of the daisy chain. In addition, conversions take place at the nominal conversion rate of TH/TL = 40 ms/76 ms at 25°C.
The PSoC 1 implementation of the daisy chain mode is shown in Figure 19 to Figure 23.
Figure 18. Two TMP05s in Daisy Chain Mode
Figure 19. Start Function in Daisy Chain Mode
Figure 20. Trigger Function in Daisy Chain Mode
TMP_Trigger()
TMP_Start()
Drive the
CONV_IN line
high
Set drive mode
based on Sensor
Type (TMP05 or
06)
Set drive mode of
CONV_IN to
Strong
Configure the 16
bit timer with ILO
as input clock
Give 10-15 uS
delay
Enable Edge
triggered INT on
PWM_OUT
RiseEdge =
PERIOD
Start Timer
Enable Global
interrupts
Drive the
CONV_IN line low
RET
RET
www.cypress.com
Document No. 001-78737 Rev. *B
9
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
Figure 21. GPIO ISR for Daisy Chain Mode
Figure 22. Get Temperature Function in Daisy Chain
Mode
GPIO_ISR()
GetTemperature
(snsNo)
TempVar =
Read_Timer()
Is SensorNo <
Max?
Yes
Yes
No
TempData =
3?
Yes
Drive CONV_IN
line low
Disable Timer and
PWM_OUT INT
Is DataReady?
Yes
Set DatReady flag
Temperature[snsN
o] (in C) = 421 –
751 * TH/TL
No
RETI
PWM_OUT Pin
High?
No
Yes
RiseEdgeTimer =
TempVar
Temperature[snsN
o] =
DATA_NOT_REA
DY
FallEdgeTimer =
TempVar
RET
Timer
Overflow?
No
Yes
Clear
TimerOverflow
flag
Timer
Overflow?
No
Figure 23. Get All Temperatures Function in Daisy Chain
Mode
Yes
PulseLowWidth =
FallEdgeTimer RiseEdgeTimer
PulseLowWidth =
PERIOD +
FallEdgeTimer RiseEdgeTimer
TempData |= 1
Clear
TimerOverflow
flag
PulseHighWidth =
PERIOD +
RiseEdgeTimer FallEdgeTimer
TempData |= 2
TempData &= ~1
PulseHighWidth =
RiseEdgeTimer FallEdgeTimer
Get
AllTemperatures()
While
(!DataReady)
RETI
Is snsNo ==
Max?
No
GetTemperature(s
nsNo)
snsNo++;
Yes
RET
www.cypress.com
Document No. 001-78737 Rev. *B
10
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
Hardware
The hardware used to verify the interface consists of the
below kits:
1. CY8CKIT – 001 - PSoC DVK
2.
CY8CKIT – 036 - Thermal management EBK
3.
CY8CKIT – 020 - PSoC CY8C28 Family Processor
module kit (comes with CY8CKIT – 001)
4.
CY8CKIT – 002 - PSoC MiniProg3 Program and
Debug kit (comes with CY8CKIT – 001) OR CY3217 –
MiniProg1.
5.
12 V, 1 A DC power supply adapter.(comes with
CY8CKIT – 001)
The respective examples cover how to configure the
hardware used in various modes.
Associated Project Overview
Distributed with this application note is a PSoC Designer
project ZIP file that contains the project implementing the
TMP05 sensor interface in CY8C28 family. The same
project can be cloned to other PSoC 1 families by
following the instructions provided in the section Porting
the project to other PSoC 1 devices.
Resources Utilized
PulseWidthTimer (Timer16 UM) - Required
This timer is used to measure the pulse high and low
widths. It uses a Timer16 user module to implement the
function. The parameters are configured as in Figure 24.
The Input clock selected is ‘CPU_32_KHz’ to make it
independent of the ‘sysclk’ dividers and to measure the
slow PWM signal from the sensor.
Figure 24. PulseWidthTimer Parameters
LCD_Char (LCD) - Optional
This uses a software character LCD UM to display
temperature in Celsius. The parameters for the UM is
shown in Figure 25.
Figure 25. LCD_Char Parameters
Comm (EzI2Cs UM) - Optional
2
The I C Slave interface for communicating the
temperature to an external host or system. The
parameters are configured as shown in Figure 26.
Figure 26. Comm Parameters
SleepTimer (SleepTimer UM) – Optional
The timer used to periodically sample the temperature of
the sensor(s). The parameters are configured as shown in
Figure 27.
Figure 27. SleepTimer Parameters
F i r m w a r e O ve r vi e w
Most of the files, functions, variables, macros defined in
the project are self explanatory and well documented in
the comments. This document does not cover all those
files, functions, variables and macros defined in the
project. Some of the important macros and functions used
in the project are covered below.
www.cypress.com
Document No. 001-78737 Rev. *B
11
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
Changing the TMP Type:
Figure 30. TMP_MODE Macro
Selecting which TMP sensor is being used in the design.
1.
Browse to ‘TMP_05_06.h’ file as show in Figure 28.
Figure 28. TMP_05_06.h File
3.
2.
Search for ‘TEMPERATURE_SENSOR’ macro in the
file as in Figure 29.
Figure 29. Temperature Sensor Macro
Set the macro according to the mode in which the
TMP is configured. It is important to note that this
configuration be done externally as shown in Figure 8,
Figure 13, and Figure 18. The sensors by default are
configured to be in ‘daisy_chain’ mode in CY8CKIT –
036.
Changing the TMP Conversion Rate:
1.
Browse to the TMP_05_06.h file as previously
described.
2.
Search for the ‘CONVERSION_RATE’ macro in the
file (Figure 31).
Figure 31. Conversion Rate Macro
3.
Set its value to ‘TMP05’ or ‘TMP06’ based on the
sensor used. The sensors in CY8CKIT – 036 are
TMP05 sensors.
Changing TMP Mode:
1.
Browse to TMP_05_06.h file as mentioned previously.
2.
Search for ‘TMP_MODE’ macro in the file (Figure 30)
3.
www.cypress.com
Set the macro as per the conversion rate configured.
It is important to note that this is done externally as
described in the code comment/sensor datasheet. In
CY8CKIT – 036; they are configured in nominal rate.
This parameter is valid only for ‘ONE_SHOT’ and
‘CONTINUOUS’ mode and ignored in the
‘DAISY_CHAIN’ mode.
Document No. 001-78737 Rev. *B
12
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
Changing the Number of Sensors in Daisy Chain:
1.
Browse to the TMP_05_06.h file as previously
described
2.
Search for the ‘NO_OF_SENSORS’ macro in the file
(as shown in Figure 32).
Figure 34. CONV/IN Pin from the TMP Sensor
Figure 32. Number of Sensors in Daisy Chain
3.
Set the macro as per the number of TMP sensors
daisy chained in the system. In CY8CKIT – 036, a
max of two sensors can be daisy chained.
Changing PWM Input Pin in the Device:
1.
Browse to the TMP_05_06.h file as previously
described.
2.
Search for the below set of macros in the file (as
shown in Figure 33).
Figure 33. PWM Input from TMP Sensor
3.
Change the port registers, port number, and pin mask
based on the port pin selected. In CY8CKIT – 036 at
PORT A, the CONV/IN pin is connected to Port 4 Pin
0.
GPIO ISR:
The GPIO Interrupt Service Routine is utilized for
capturing the timer at the rising and falling edge of the
PWM pin. The GPIO_ISR function defined in ISR.c file is
the default GPIO ISR for the entire device. The ISR is hard
coded in the ‘boot.tpl’ (available in project directory) file as
shown in Figure 35.
Figure 35. GPIO ISR in boot.tpl
3.
Change the port registers, port number, pin mask
based on the port pin selected. In CY8CKIT – 036 at
PORT A, the PWM input is connected to Port 4 Pin 1.
Changing CONV/IN Pin for Daisy Chain Mode:
1.
Browse to the TMP_05_06.h file as previously
described.
2.
Search for the below set of macros in the file (Figure
34).
www.cypress.com
The ISR file is written in such a manner that allows for
placement of the ISR code for other GPIO interrupts in the
system. It is recommended to review the comments
provided in the function header for a better understanding
of how to use the ISR for other purposes as well.
Document No. 001-78737 Rev. *B
13
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
Figure 36. GPIO_ISR Function Definition
Table 1 summarizes the important macros in the project.
Table 1. List of important Macros in Firmware
Macro
Description
Values
TEMPERATURE_SENSOR
Selects the type of TMP sensor used
#TMP05
TMP_MODE
Selects the mode in which TMP sensor is configured
#TMP06
#DAISY_CHAIN
#CONTINUOUS
#ONE_SHOT
CONVERSION_RATE
Selects the conversion rate in which TMP sensor is configured
#CONV_NOMINAL
#CONV_HIGH
#CONV_LOW
NO_OF_SENSORS
Sets the number of sensors chained in the daisy chain mode
1 to 255
CONV_OUT pin settings
These are set of macros to change pin drive mode, data registers of the
CONV/IN pin in PSoC 1
Refer this section
PWM_IN pin settings
These are set of macros to change associated registers of the PWM
input pin in PSoC 1
Refer this section
Table 2. List of important Functions
Function
Description
void TMP_Start(void)
This function initializes various settings of TMP05 sensor interface. Initialization includes setting drive
modes, initial values of timers, state of pin, enabling interrupts.
void TMP_Trigger(void)
This function generates the trigger/start pulse for enabling the TMP to generate the corresponding PWM
output in ONE_SHOT and DAISY_CHAIN mode.
INT GetTemperature(void)
This function calculates and returns the temperature value in 16 bit format – MSB 8 bit constitutes the
integer part and LSB 8 bit is the decimal part.
INT GetTemperature(BYTE
snsNo)
This function calculates and returns the temperature value of the sensor requested (passed parameter) in
daisy chain mode
void GetAllTemperatures(void)
This function calculates the temperature values of all the sensors in daisy chain mode. The values are
stored in a 16 bit array.
GPIO_ISR
This is the ISR function where the timer value is captured and the PWM high and low widths are measured.
TimerOverflow_ISR
The timer ISR used to set the timerOverflow flag of the 16 bit timer used to measure the PWM pulse width.
www.cypress.com
Document No. 001-78737 Rev. *B
14
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
Porting the Project to Other PSoC 1 Devices:
While cloning the project (as explained here) to other
PSoC 1 devices, follow these instructions:
1.
Make sure that the PSoC 1 device supports the
Timer16 UM
2.
Replace the default GPIO ISR in boot.tpl (found inside
the project folder) with the GPIO_ISR function as
shown in Figure 35.
3.
The TimerOverflow_ISR defined in ISR.c should be
placed in PulseWidthTimer (Timer16) ISR.
4.
The resources should be configured as described in
the section Resources Utilized, if the device is found
to be not compatible while cloning.
Figure 37. CY8CKIT - 036 Jumper Locations
Example 1: Interfacing One TMP05
Sensor
In this example, only one of the TMP05 sensors in the
CY8CKIT – 036 is interfaced to the CY8C28 device.
Project Settings:
1. Set the TEMPERATURE_SENSOR macro to TMP05
2.
Set the TMP_MODE macro to ‘DAISY_CHAIN’ – the
sensors in CY8CKIT – 036 are fixed in daisy chain
mode.
3.
Set the NO_OF_SENSORS macro to ‘1’
2.
4.
Check that the PWM_IN pin is at Port 4 Pin 1 and the
CONV_IN pin is at Port 4 Pin 0.
Disconnect the fan connectors FAN-1, FAN-2, FAN-3
and FAN-4.
3.
Set jumper settings for CY8CKIT – 001 as shown in
Table 3.
5.
Generate and build the project in PSoC Designer.
6.
Download the ‘hex’ file into the CY8CKIT – 020
CY8C28 processor module using MiniProg3 or
MiniPorg1.
Hardware Settings:
1.
Set jumper settings for the CY8CKIT – 036 as shown
in Table 2 and Figure 37.
Table 3. CY8CKIT - 036 Jumper Settings for Example 1
Jumper
Table 4. CY8CKIT – 001 Jumper Settings
Jumper
Setting
J6
VDD_ANALOG to VDD
J7
VDD_DIG to VDD
J8
VDD to VREG
J12
LCD to ON
SW3
3.3 V Position
Setting
J2
2-3 (PMW_TMP to Single)
J3
2-3 (VDDIO to 3.3 V)
J9
2-3 (12 V to 12 V_DVK)
www.cypress.com
Document No. 001-78737 Rev. *B
15
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
Figure 38. CY8CKIT - 001 Jumper Locations
4.
Connect the CY8CKIT – 036 to PORT A of the CY8CKIT – 001 as shown in Figure 39.
Figure 39. CY8CKIT - 036 to PORT A in CY8CKIT – 001
www.cypress.com
Document No. 001-78737 Rev. *B
16
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
5.
Power on the CY8CKIT – 001; the LCD should display as shown in Figure 40. The ambient temperature is in Celsius.
Figure 40. Example 1 Output
Example 2: Interfacing Two TMP05 Sensors
In this example, both the TMP05 sensors in CY8CKIT –
036 are interfaced to the CY8C28 device.
Project Settings:
1. Set the TEMPERATURE_SENSOR macro to TMP05
Hardware Settings:
1. Set the jumper settings for the CY8CKIT – 036 as
shown in Table 4.
Table 5. CY8CKIT - 036 jumper Settings for Example 2
2.
Set the TMP_MODE macro to ‘DAISY_CHAIN’.
Jumper
3.
Set the NO_OF_SENSORS macro to ‘2’
J2
1-2 (PMW_TMP to Dual)
4.
Check that the PWM_IN pin is at Port 4 Pin 1 and
CONV_IN pin is at Port 4 Pin 0.
J3
2-3 (VDDIO to 3.3 V)
5.
Generate and build the project.
J9
2-3 (12 V to 12 V_DVK)
6.
Download the ‘hex’ file into the CY8CKIT – 020
CY8C28 processor module using MiniProg3 or
MiniPorg1.
www.cypress.com
Setting
2.
Disconnect the fan connectors FAN-1, FAN-2, FAN-3
and FAN-4.
3.
Set the jumper settings for the CY8CKIT – 001 are
shown in Table 3.
4.
Connect the CY8CKIT – 036 to PORT A of the
CY8CKIT – 001 as shown in Figure 39.
5.
Power on the CY8CKIT – 001. The LCD displays the
ambient temperature in Celsius as shown in Figure
41.
Document No. 001-78737 Rev. *B
17
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
Figure 41. Example 2 Output
About the Author
Summary
Using PSoC, TMP05 sensor can quickly and easily be
designed in thermal monitoring and management solutions
providing support for up to 255 TMP05 temperature
sensors.
PSoC’s unique ability to combine custom digital logic,
analog signal chain processing and an MCU in a single
device enables system designers to integrate many
external fixed-function ASSPs. This powerful integration
capability not only reduces BOM cost but also results in
PCB board layouts that are less congested and more
reliable.
www.cypress.com
Name:
Meenakshi Sundaram R
Title:
Applications Engineer Senior
Background:
Bachelor of Engineering in Electronics
and Communication from College of
Engineering - Guindy, Chennai, India.
Contact:
[email protected]
Document No. 001-78737 Rev. *B
18
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
Document History
®
Document Title: PSoC 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor – AN78737
Document Number: 001-78737
Revision
ECN
Orig. of
Change
Submission
Date
Description of Change
**
3606242
MSUR
05/02/2012
New Application Note
*A
3671548
MSUR
07/10/2012
Document revised to improve clarity in images.
*B
4371515
MSUR
05/06/2014
Updated references for Figures 40 and 41.
www.cypress.com
Document No. 001-78737 Rev. *B
19
PSoC® 1 – Temperature-Sensing Solution Using a TMP05/TMP06 Digital Temperature Sensor
Worldwide Sales and Design Support
Cypress maintains a worldwide network of offices, solution centers, manufacturer’s representatives, and distributors. To find
the office closest to you, visit us at Cypress Locations.
PSoC® Solutions
Products
Automotive
cypress.com/go/automotive
psoc.cypress.com/solutions
Clocks & Buffers
cypress.com/go/clocks
PSoC 1 | PSoC 3 | PSoC 5
Interface
cypress.com/go/interface
Lighting & Power Control
cypress.com/go/powerpsoc
cypress.com/go/plc
Memory
cypress.com/go/memory
Optical Navigation Sensors
cypress.com/go/ons
PSoC
cypress.com/go/psoc
Touch Sensing
cypress.com/go/touch
USB Controllers
cypress.com/go/usb
Wireless/RF
cypress.com/go/wireless
Cypress Developer Community
Community | Forums | Blogs | Video | Training
Technical Support
cypress.com/go/support
PSoC® 1 is a registered trademark of Cypress Semiconductor Corp. All other trademarks or registered trademarks referenced herein are the property of
their respective owners.
Cypress Semiconductor
198 Champion Court
San Jose, CA 95134-1709
Phone
Fax
Website
: 408-943-2600
: 408-943-4730
: www.cypress.com
© Cypress Semiconductor Corporation, 2012-2014. The information contained herein is subject to change without notice. Cypress Semiconductor
Corporation assumes no responsibility for the use of any circuitry other than circuitry embodied in a Cypress product. Nor does it convey or imply any
license under patent or other rights. Cypress products are not warranted nor intended to be used for medical, life support, life saving, critical control or
safety applications, unless pursuant to an express written agreement with Cypress. Furthermore, Cypress does not authorize its products for use as
critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The
inclusion of Cypress products in life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies
Cypress against all charges.
This Source Code (software and/or firmware) is owned by Cypress Semiconductor Corporation (Cypress) and is protected by and subject to worldwide
patent protection (United States and foreign), United States copyright laws and international treaty provisions. Cypress hereby grants to licensee a
personal, non-exclusive, non-transferable license to copy, use, modify, create derivative works of, and compile the Cypress Source Code and derivative
works for the sole purpose of creating custom software and or firmware in support of licensee product to be used only in conjunction with a Cypress
integrated circuit as specified in the applicable agreement. Any reproduction, modification, translation, compilation, or representation of this Source
Code except as specified above is prohibited without the express written permission of Cypress.
Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress reserves the
right to make changes without further notice to the materials described herein. Cypress does not assume any liability arising out of the application or
use of any product or circuit described herein. Cypress does not authorize its products for use as critical components in life-support systems where a
malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress’ product in a life-support systems
application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges.
Use may be limited by and subject to the applicable Cypress software license agreement.
www.cypress.com
Document No. 001-78737 Rev. *B
20