Monitor temperature in various applications with the highest precision
A
A
Hardware Overview
How does it work?
Temp-Log Click is based on the AT30TSE758A, a 9 to 12bit, ±0.5°C accurate digital temperature sensor with non-volatile registers and integrated serial EEPROM from Microchip. The AT30TSE758A utilizes a band-gap type temperature sensor with an internal sigma-delta ADC to measure and convert the temperature. The internal ADC can be configured to work with a resolution of 9, 10, 11, or 12 bits. This directly affects the size of the temperature measurement steps. However, it should be noted that the higher resolution results in longer conversion times. The measured temperature is calibrated in degrees Celsius. The AT30TSE758A sensor uses the I2C bus for communication with the MCU. The AT30TSE758A sensor is made with power saving in mind. When the shutdown mode is engaged, the power consumption is minimal, and most device sections do not consume any power. The ONE SHOT function allows you to wake up the device, take one measurement, update the registers, and reenter shutdown mode. The 16bit configuration
register is used to configure all the working parameters of the sensor: mode (one-shot mode, normal, and shutdown mode), conversion resolution, the polarity of the ALERT pin, ALERT mode, non-volatile memory busy status, and more. There is also a copy of this register in the non-volatile memory, which can be independently changed. After the power is on, the content of the non-volatile config register will be copied to its volatile counterpart. The non-volatile version of the configuration register contains additional bits for the permanent lock-down and config lock, used to prevent further changes to the configuration parameters. Also, two more 16-bit registers are used to set the high and the low-temperature thresholds, which also have their non-volatile copies. Depending on the ALERT mode bit in the config register, the temperature threshold values in these registers will be used to trigger an event on the ALERT pin, routed to the mikroBUS™ INT pin. This pin is pulled HIGH on this Click, so it is a good idea to configure it as active LOW using the
polarity bit in the config register. The 8Kbit EEPROM section of the AT30TSE758A acts as an additional serial device with its own I2C slave address. The 7-bit I2C address of the serial EEPROM is 1010APP, where “A” corresponds to the status of the A2 address pin. The last two “P” characters correspond to the memory page bits P1 and P0. The remaining two address pin states (A0 and A1) are not required to match when addressing the EEPROM. These bits and the word address byte transmitted via the I2C comprise the 10-bit address field required to map all 1024 bytes available on this device. The EEPROM contains 16 bytes per page and 64 pages in an array. This Click board™ can operate with either 3.3V or 5V logic voltage levels selected via the VCC SEL jumper. This way, both 3.3V and 5V capable MCUs can use the communication lines properly. Also, this Click board™ comes equipped with a library containing easy-to-use functions and an example code that can be used as a reference for further development.
Features overview
Development board
UNI Clicker is a compact development board designed as a complete solution that brings the flexibility of add-on Click boards™ to your favorite microcontroller, making it a perfect starter kit for implementing your ideas. It supports a wide range of microcontrollers, such as different ARM, PIC32, dsPIC, PIC, and AVR from various vendors like Microchip, ST, NXP, and TI (regardless of their number of pins), four mikroBUS™ sockets for Click board™ connectivity, a USB connector, LED indicators, buttons, a debugger/programmer connector, and two 26-pin headers for interfacing with external electronics. Thanks to innovative manufacturing technology, it allows you to build
gadgets with unique functionalities and features quickly. Each part of the UNI Clicker development kit contains the components necessary for the most efficient operation of the same board. In addition to the possibility of choosing the UNI Clicker programming method, using a third-party programmer or CODEGRIP/mikroProg connected to onboard JTAG/SWD header, the UNI Clicker board also includes a clean and regulated power supply module for the development kit. It provides two ways of board-powering; through the USB Type-C (USB-C) connector, where onboard voltage regulators provide the appropriate voltage levels to each component on the board, or using a Li-Po/Li
Ion battery via an onboard battery connector. All communication methods that mikroBUS™ itself supports are on this board (plus USB HOST/DEVICE), including the well-established mikroBUS™ socket, a standardized socket for the MCU card (SiBRAIN standard), and several user-configurable buttons and LED indicators. UNI Clicker is an integral part of the Mikroe ecosystem, allowing you to create a new application in minutes. Natively supported by Mikroe software tools, it covers many aspects of prototyping thanks to a considerable number of different Click boards™ (over a thousand boards), the number of which is growing every day.
Microcontroller Overview
MCU Card / MCU
![default](https://cdn.mikroe.com/rent-a-product/request-setup/mcu-cards/mcu-card-for-stm32-stm32f415zg.png)
Type
8th Generation
Architecture
ARM Cortex-M4
MCU Memory (KB)
1024
Silicon Vendor
STMicroelectronics
Pin count
144
RAM (Bytes)
196608
Used MCU Pins
mikroBUS™ mapper
Take a closer look
Schematic
![Temp-Log Click Schematic schematic](https://dbp-cdn.mikroe.com/catalog/click-boards/resources/1ee790a1-f9af-6708-8656-0242ac120009/schematic.webp)
Step by step
Project assembly
Track your results in real time
Application Output
After loading the code example, pressing the "DEBUG" button builds and programs it on the selected setup.
![Application Output Step 1](https://dbp-cdn.mikroe.com/cms/shared-resources/1eed554e-d80f-6694-8cb9-02420a000272/AP-Step1.jpg)
After programming is completed, a header with buttons for various actions available in the IDE appears. By clicking the green "PLAY "button, we start reading the results achieved with Click board™.
![Application Output Step 3](https://dbp-cdn.mikroe.com/cms/shared-resources/1eed5550-3c0f-6800-a19f-02420a000272/AP-Step3.jpg)
Upon completion of programming, the Application Output tab is automatically opened, where the achieved result can be read. In case of an inability to perform the Debug function, check if a proper connection between the MCU used by the setup and the CODEGRIP programmer has been established. A detailed explanation of the CODEGRIP-board connection can be found in the CODEGRIP User Manual. Please find it in the RESOURCES section.
![Application Output Step 4](https://dbp-cdn.mikroe.com/cms/shared-resources/1eed5550-d4d0-6b20-a348-02420a000272/AP-Step4.jpg)
Software Support
Library Description
This library contains API for Temp-Log Click driver.
Key functions:
temp_log_read_temp_dec
- This function reads decimal value of temp.temp_log_convert_to_celsius
- This function converts temperature data to celsius value.temp_log_get_alert
- This function alerts user if temperature limit is alarming.
Open Source
Code example
This example can be found in NECTO Studio. Feel free to download the code, or you can copy the code below.
/*!
* \file
* \brief TempLog Click example
*
* # Description
* This example returns values of the temperature from the sensor.
*
* The demo application is composed of two sections :
*
* ## Application Init
* Initializes click driver.
*
* ## Application Task
* Reads temperature from temperature register in decimal value in 9-bit resolution,
* converts that decimal value in celsius value and checks Alert pin witch goes active (low)
* if the measured temperature meets or exceeds the high temperature limit.
*
*
* \author MikroE Team
*
*/
// ------------------------------------------------------------------- INCLUDES
#include "board.h"
#include "log.h"
#include "templog.h"
// ------------------------------------------------------------------ VARIABLES
static templog_t templog;
static log_t logger;
// ------------------------------------------------------ APPLICATION FUNCTIONS
void application_init ( void )
{
log_cfg_t log_cfg;
templog_cfg_t cfg;
/**
* Logger initialization.
* Default baud rate: 115200
* Default log level: LOG_LEVEL_DEBUG
* @note If USB_UART_RX and USB_UART_TX
* are defined as HAL_PIN_NC, you will
* need to define them manually for log to work.
* See @b LOG_MAP_USB_UART macro definition for detailed explanation.
*/
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
templog_cfg_setup ( &cfg );
TEMPLOG_MAP_MIKROBUS( cfg, MIKROBUS_1 );
if ( TEMPLOG_OK != templog_init ( &templog, &cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
templog_default_cfg ( &templog );
log_info( &logger, " Application Task " );
}
void application_task ( void )
{
uint16_t temp_in_dec = 0;
float temp_in_cels = 0;
temp_in_dec = temp_log_read_temp_dec( &templog, TEMP_LOG_RESOLUTION_9_BITS );
temp_in_cels = temp_log_convert_to_celsius( temp_in_dec );
log_printf( &logger, "Temperature in celsius value is: %.2f\r\n", temp_in_cels );
if ( temp_log_get_alert( &templog ) == 0 )
{
log_printf( &logger, "TEMPERATURE LIMIT ALARMING!\r\n" );
}
Delay_ms( 1000 );
}
void main ( void )
{
application_init( );
for ( ; ; )
{
application_task( );
}
}
// ------------------------------------------------------------------------ END