The ADT7420 is a high accuracy digital temperature sensor offering breakthrough performance over a wide industrial range, housed in an LFCSP package. It contains a band gap temperature reference and a 13-bit ADC to monitor and digitize the temperature to a 0.0625°C resolution. The ADC resolution, by default, is set to 13 bits (0.0625°C). This can be changed to 16 bits (0.0078°C) by setting Bit 7 in the configuration register to 1 (Register Address 0x03). The ADT7420 is guaranteed to operate over supply voltages from 2.7 V to 5.5 V. Operating at 3.3 V, the average supply current is typically 210 μA. The ADT7420 has a shutdown mode that powers down the device and offers a shutdown current of typically 2 μA. The ADT7420 is rated for operation over the −40°C to +150°C temperature range.
Pin A0 and Pin A1 are available for address selection, giving the ADT7420 four possible I2C addresses. The CT pin is an open-drain output that becomes active when the temperature exceeds a programmable critical temperature limit. The default critical temperature limit is 147°C. The INT pin is also an open-drain output that becomes active when the temperature exceeds a programmable limit. The INT and CT pins can operate in either comparator or interrupt mode.
The goal of this project (Microcontroller No-OS) is to be able to provide reference projects for lower end processors, which can't run Linux, or aren't running a specific operating system, to help those customers using microcontrollers with ADI parts. Here you can find a generic driver which can be used as a base for any microcontroller platform and also specific drivers for different microcontroller platforms.
The driver contains two parts:
The Communication Driver has a standard interface, so the ADT7420 driver can be used exactly as it is provided.
There are three functions which are called by the ADT7420 driver:
I2C driver architecture
The implementation of these three functions depends on the used microcontroller.
The following functions are implemented in this version of ADT7420 driver:
|unsigned char ADT7420_GetRegisterValue(unsigned char registerAddress)||Reads the value of a register.|
|void ADT7420_SetRegisterValue(unsigned char registerAddress, unsigned char registerValue)||Sets the value of a register.|
|char ADT7420_Init(void)||Initializes the comm. peripheral and checks if the device is present.|
|void ADT7420_Reset(void)||Resets the ADT7420.|
|void ADT7420_SetOperationMode(unsigned char mode)||Sets the operational mode for ADT7420.|
|void ADT7420_SetResolution(unsigned char resolution)||Sets the resolution for ADT7420.|
|float ADT7420_GetTemperature(void)||Reads the temperature data and converts it to Celsius degrees.|