The Click board™ is specially designed so it retains the specified characteristics of the sensor IC. Equipped with this sophisticated, accurate and simple to use sensor IC, it can be used for measuring and monitoring the temperature in a whole range of applications, such as the PC case and other internal components temperature monitoring, office equipment and entertainment systems thermal monitoring, general purpose thermal measurement, and similar digital thermal measurement applications, that require a precise thermal measurement and an overtemperature alert.
How does it work?
The active temperature sensing component on Thermo 11 click is the TMP117, a high accuracy temperature sensor IC with the 2-Wire interface, from Texas Instruments. The Click board™ itself has a reasonably small number of components because most of the measurement circuitry is already integrated on the TMP117 sensor. The I2C / SMBus compatible serial interface lines, along with the INT pin, which also works in the open drain configuration, are pulled up by the onboard resistors. The 2-Wire lines are routed to the respective I2C lines of the mikroBUS™ (SCK and SDA), while the INT pin is routed to the INT pin of the mikroBUS™.
The sensor IC uses the I2C/SMBus compatible communication interface. There are ten registers, used to set the high and low temperature limits, temperature hysteresis for the interrupt events, configuration register used to store all the working parameters, read-only register which holds the sampled temperature data, and more. More information about all the registers can be found in the TMP117 datasheet. However, provided library contains functions that simplify the use of the Thermo 11 click. The included application example demonstrates their functionality and it can be used as a reference for custom design.
An analog signal from the thermal sensor is sampled by the internal ADC converter, with the resolution of 16 bits. Thanks to high resolution ADC, the step size can be as small as 0.0078°C, depending of the measuring temperature range. Users can configure the device to report the average of multiple temperature conversions with to reduce noise in the conversion results. The device accumulates those conversion results and reports the average of all the collected results at the end of the process. The INT pin is used to trigger an interrupt event on the host MCU. This pin has a programmable polarity: it can be set to be asserted either to a HIGH logic level or to a LOW logic level by setting POL bit in the configuration register. Since the Click board™ features a pull-up resistor, it is advised to set the polarity so that the asserted state drives the pin to a LOW logic level. A special mechanism is employed to reduce false ALERT triggering. This mechanism includes queueing of the cycles in which the temperature limit is exceeded The ALERT pin can be set to work in two different modes: Comparator mode and therm mode.
When working in the Comparator mode, this pin will be triggered whenever a temperature limit is exceeded. The INT pin stays asserted until the temperature drops below the hysteresis level. Both values are set in the respective temperature registers (limit and hysteresis). This mode is useful for thermostat-like applications: it can be used to power down a system in case of overheating or turn off the cooling fan if the temperature is low enough.
If set to work in the therm mode, the INT pin will stay asserted when the temperature exceeds the value in the high limit register. When the temperature drops below the hysteresis level, the INT pin will be cleared. This mode is used to trigger an interrupt on the host MCU, which is supposed to read the sensor when the interrupt event is generated.
The device can be set to work in several different power modes. It can be set to continuously sample the temperature measurements, it can be set to work in the one-shot mode, and it can be set to stay in the shutdown mode. The shutdown mode consumes the least power, keeping all the internal sections but the communication section, unpowered. The one-shot mode allows the device to stay in the shutdown mode, run a single conversion cycle on demand, and the revert back to the shutdown mode. This allows for a lower power consumption. The design of the Click board™ itself is such that the thermal radiation from other components, which might affect the environmental temperature readings of the sensor, is reduced. The onboard SMD jumper labeled as VCC SEL allows voltage selection for interfacing with both 3.3V and 5V MCUs.
Specifications
Type
Temperature & humidity
Applications
It can be used for the PC case temperature monitoring, office equipment, and entertainment systems thermal monitoring, general purpose thermal measurement, etc.
On-board modules
TMP117, a high accuracy temperature sensor IC with the 2-Wire interface, from Texas Instruments
Key Features
Low power consumption, Selectable averaging, programmable interrupt engine, compact sensor size, interrupt output pin
Interface
I2C
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
S (28.6 x 25.4 mm)
Input Voltage
3.3V or 5V
Pinout diagram
This table shows how the pinout on Thermo 11 click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Onboard settings and indicators
Label | Name | Default | Description |
---|---|---|---|
JP1 | VCC SEL | Left | Power supply voltage selection: left position 3V3, right position 5V |
LD1 | PWR | – | Power LED indicator |
Thermo 11 click maximum ratings
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Temperature Range (accuracy ±0.3˚C) | -55 | – | +150 | °C |
Temperature Range (accuracy ±0.1˚C) | -20 | – | +50 | °C |
Communication speed | 0 | – | 400 | kHz |
Conversion time | 13 | 15.5 | 17.5 | ms |
Software support
We provide a library for the Thermo 11 Click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
This library allows user to get ambient temperature value in the range from -256 to +255.9921875 Celsius degrees. The user also can perform the desired device configurations by using this library. The device control is allowed by using the I2C serial interface. For more details check documentation.
Key functions:
T_THERMO11_RETVAL thermo11_writeReg( uint8_t regAddr, uint16_t dataIn )
– This function writes a 16bit data to the desired register.float thermo11_getTemp( uint8_t tempAddr )
– This function returns the temperature value converted to the Celsius degrees.T_THERMO11_RETVAL thermo11_setTemp( uint8_t tempAddr, float tempValue )
– This function allows user to set the desired temperature register on the desired value.
Examples description
The application is composed of three sections :
- System Initialization – Initializes peripherals and pins.
- Application Initialization – Initializes I2C serial interface and performs a software reset command and device configurations.
- Application Task – (code snippet) – Waits until data was ready and conversion cycle was done, and then reads the temperature and status data. The both data will be sent to the uart terminal with the limit status messages. Note : The temperature that can be measured or written to the registers is in range from -256 to 255.9921875 Celsius degrees.
void applicationTask() { responseCheck = thermo11_getINT(); while (responseCheck == _THERMO11_FLAG_IS_CLEARED) { responseCheck = thermo11_getINT(); } temperature = thermo11_getTemp( _THERMO11_TEMPERATURE_REG ); responseCheck = thermo11_checkStatus(); FloatToStr( temperature, text ); floatCut(); mikrobus_logWrite( "* Temperature is ", _LOG_TEXT ); mikrobus_logWrite( text, _LOG_TEXT ); mikrobus_logWrite( logUnit, _LOG_LINE ); if ((responseCheck & _THERMO11_HIGH_ALERT_FLAG) != _THERMO11_FLAG_IS_CLEARED) { mikrobus_logWrite( "* HIGH limit detection!", _LOG_LINE ); } if ((responseCheck & _THERMO11_LOW_ALERT_FLAG) != _THERMO11_FLAG_IS_CLEARED) { mikrobus_logWrite( "* LOW limit detection!", _LOG_LINE ); } mikrobus_logWrite( "********************************************", _LOG_LINE ); }
Additional Functions :
- floatCut – Allows to real values be rounded on two decimal places.
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- Conversions
- I2C
- UART
Additional notes and informations
Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
mikroSDK
This click board is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant click board demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.