AN-1250 APPLICATION NOTE One Technology Way • P.O. Box 9106 • Norwood, MA 02062-9106, U.S.A. • Tel: 781.329.4700 • Fax: 781.461.3113 • www.analog.com Interfacing an ADT7310/ADT7410 to a Cortex-M3 Based Precision Analog Microcontroller (ADuCM360) By Aude Richard INTRODUCTION This application note also includes example code showing how a microcontroller and temperature sensor can communicate with each other using the I2C and SPI interface. Simple functions to control the ADT7310 and ADT7410 are available. See the AN-1250 companion code zip file available on the analog.com website. 11715-001 This application note describes how to connect evaluation boards and how to easily start collecting high accuracy, digital temperature readings from the ADT7310 and ADT7410 sensors using the Cortex-M3® based precision Analog Devices Inc., microcontrollers, such as the ADuCM360. Figure 1. EVAL-ADuCM360QSPZ Connected to EVAL-ADT7X10EBZ Rev. 0 | Page 1 of 8 AN-1250 Application Note TABLE OF CONTENTS Introduction ...................................................................................... 1 ADuCM360 Evaluation Board ....................................................4 Revision History ............................................................................... 2 Companion Code ..............................................................................5 Interfacing the Evaluation Boards .................................................. 3 Using the Demo Code ..................................................................5 ADT7310 Evaluation Board ........................................................ 3 Demo Code Flowchart .................................................................5 ADT7410 Evaluation Board ........................................................ 3 Interface Functions .......................................................................5 REVISION HISTORY 9/13—Revision 0: Initial Version Rev. 0 | Page 2 of 8 Application Note AN-1250 INTERFACING THE EVALUATION BOARDS Analog Devices offers evaluation boards that allow quick prototyping of an application. For example, consider the ADuCM360 (EVAL-ADuCM360QSPZ) and ADT7310 and ADT7410 (EVAL-ADT7x10EBZ) evaluation boards. ADT7410 EVALUATION BOARD Figure 1 shows EVAL-ADuCM360QSPZ connected to EVAL-ADT7x10EBZ. Table 2. Connector Signals on ADT7410 Evaluation Board Table 2 lists the signals available on the ADT7410 evaluation board connector for quick prototyping. Table 1 lists the signals available on the ADT7310 evaluation board connector for quick prototyping. Table 1. Connector Signals on ADT7310 Evaluation Board J1 Pin 1 Signal VDD 2 3 GND SCLK 4 DOUT 5 DIN 6 CS Description Positive Supply Voltage (2.7 V to 5.5 V). Decouple the supply with a 0.1 µF ceramic capacitor to ground. Analog and Digital Ground. Serial Clock Input. The serial clock is used to clock in and clock out data to and from any register of the ADT7310. Serial Data Output. Data is clocked out on the SCLK falling edge and is valid on the SCLK rising edge. Serial Data Input. Serial data to be loaded to the control registers is provided on this input. Data is clocked into the registers on the rising edge of SCLK. Chip Select Input. The device is selected when this input is low. The device is disabled when this pin is high. Signal VDD 2 3 GND SCL 4 SDA 5 A0 6 A1 Note that it is important to check the microcontroller supply range. For example, the ADuCM360 supply range is 1.8 V to 3.6 V. Figure 3 shows typical I2C connections between the master and the ADT7410. 3.3V ADuCM360 Note that it is important to check the microcontroller supply range. For example, the ADuCM360 supply range is 1.8 V to 3.6 V. Figure 2 shows typical SPI connections between the master and the ADT7310. SCL DOUT DIN CS SCLK DIN DOUT CS VDD CT INT GND 10kΩ 10kΩ Figure 2. An ADuCM360 (Master) with Single ADT7310 (Slave) SPI Block PULL-UP RESISTORS ADT7410 SCL SCL VDD SDA SDA CT A0 INT A1 GND 10kΩ 10kΩ Figure 3. An ADuCM360 (Master) with Single ADT7410 (Slave) I2C Block ADT7310 11715-003 ADuCM360 Description Positive Supply Voltage (2.7 V to 5.5 V). Decouple the supply with a 0.1 µF ceramic capacitor to ground. Analog and Digital Ground. I2C Serial Clock Input. The serial clock is used to clock in and clock out data to and from any register on the ADT7410 open-drain configuration. A pull-up resistor is required, typically 10 kΩ. I2C Serial Data Input/Output. Serial data to and from the part is provided on this pin. Open-drain configuration. A pullup resistor is required, typically 10 kΩ. I2C Serial Bus Address Selection Pin. Logic input. Connect to GND or VDD to set an I2C address. I2C Serial Bus Address Selection Pin. Logic input. Connect to GND or VDD to set an I2C address. 11715-002 ADT7310 EVALUATION BOARD J1 Pin 1 External pull-up resistors are recommended on the SCL and SDA lines. The ADuCM360 typically has internal pull-ups on GPIOs that can be disabled in software when using the I2C bus. The companion code demonstrates how to disable the internal pull-ups. Rev. 0 | Page 3 of 8 AN-1250 Application Note ADUCM360 EVALUATION BOARD The ADuCM360 evaluation boards are mini boards with all GPIOs available on the edge connectors. Table 3 shows example connections for the ADuCM360. J1 Pin 3 4 17 18 19 20 21 22 Signal DVDD DGND P1.4 P1.5 P1.6 P1.7 P2.0 P2.1 Description Positive Supply Voltage (1.8 V to 3.6 V). Digital Ground. SPI0 Port: MISO. SPI0 Port: SCLK. SPI0 Port: MOSI. SPI0 Port: CS. I2C Port: SCL. I2C Port: SDA. 11715-004 Table 3. J1 Connector Signals on the ADuCM360 Evaluation Board (Rev. B) Figure 4. ADuCM360 Top Side View Rev. 0 | Page 4 of 8 Application Note AN-1250 COMPANION CODE Typically, a project contains three source files and two definition files to interface the temperature sensors to the ADuCM360. Table 4 lists these files. INITIALIZE PERIPHERALS WATCHDOG TIMER, CLOCKS, SPI, I2C, AND UART Table 4. Files Provided Source and Definitions ADT7410I2C.c ADT7410I2C.h ADT7310SPI.c ADT7310SPI.h ADT7x10_Demo.c ENABLE INTERRUPTS SPI, I2C, AND UART Description Set of functions to interface the ADuCM360 to ADT7410 via I2C Functions and parameters definitions to interface the ADuCM360 to ADT7410 via I2C Set of functions to interface the ADuCM360 to ADT7410 via SPI Functions and parameters definitions to interface the ADuCM360 to ADT7410 via SPI Example code that calls some of the functions CONFIGURE EXTERNAL SENSORS ADT7410 AND ADT7310 READ SENSOR’S ID WHILE (1) USING THE DEMO CODE GET MEASUREMENTS FROM THE SENSORS ADT7410 AND ADT7310 After connecting the boards, download code to the ADuCM360 and open a serial port terminal application, such as HyperTerminal®. SEND RESULTS VIA UART Check the UART setting (9600 bps). Figure 5 shows the results on the serial port. 11715-006 DELAY Figure 6. Demo Code Flow Chart ADT7310 Functions 11715-005 These five functions cover the main features of the ADT7310. Parameters for these functions are defined in the header file (ADT7310SPI.h). All functions are based on the SPI lowlevel functions of the ADuCM360. Note that some of the microcontrollers may have more than one SPI. The AN-1248 Application Note, SPI Interface, provides general information on SPI. Figure 5. Results on Serial Port DEMO CODE FLOWCHART The maximum SPI speed of the ADT7310 is 5 Mbps. For more information on the ADT7310 features, consult the ADT7310 data sheet. Figure 6 shows the demo code flowchart. The demo code configures the sensors in continuous conversion mode. In continuous mode, a new result is available every 240 ms. A software delay is used between each request for a temperature measurement result. This software delay can be replaced with the timer periodically interrupting the ADuCM360 to read the sensors measurements. INTERFACE FUNCTIONS Table 6 lists all functions included in the ADT7410I2C and ADT7310SPI files. ADT7410 Functions These five functions cover the main features of the ADT7410. Parameters for these functions, including the sensor address, are defined in the header file (ADT7410I2C.h). All functions are based on the I2C low-level functions described in the AN-1159 Application Note, I2C-Compatible Interface on CortexM3 Based Precision Analog Microcontroller (ADuCxxx Family). For more information on the ADT7410 features, consult the ADT7410 data sheet. Rev. 0 | Page 5 of 8 AN-1250 Application Note Table 5. ADT7310 Functions Provided Function Name int ADT7310_SPICFG (int Resolution, int iMode, int CT, int INT, int INTCTmode, int Fault_queue); int ADT7310_SPI_T_Setpoint (int REG_Address, int value); float ADT7310_SPIGetTemperature (void); long ADT7310_SPI_Status (char REG_Address); int ADT7310_Reset (void); Function Description Configure the temperature sensor resolution, mode, CT pin polarity, INT pin polarity, and so on. Configure one of the four set point register (THIGH,TLOW, TCRIT, or THYST). Return temperature measurement in °C. Return content of the register at REG_Address (status, configuration, ID, or T_setpoint). Reset the ADT7310. Table 6. ADT7410 Functions Provided Function Name int ADT7410_I2CCFG (char Address, int Resolution, int iMode, int CT, int INT, int INTCTmode, int Faultqueue); int ADT7410_I2C_T_Setpoint (char BusAddress, char REGadd, int RorW, int Value); float ADT7410_I2CGetTemperature (char Address, unsigned char *Status, unsigned char *Config); int ADT7410_I2CID (char Address); int ADT7410_I2CReset (char Address); Function Description Configure the temperature sensor resolution, mode, CT pin polarity, INT pin polarity, and so on. Configure or read back one of the four set point register (THIGH, TLOW, TCRIT, or THYST). Return temperature measurement in °C. This function also updates the status and configuration variables. Return sensor ID. Reset the ADT7410. Limitations This application note does not cover all features of the ADT7310 and ADT7410, such as the over and under temperature detection, because the evaluation boards do not easily allow access to the INT and CT outputs. Rev. 0 | Page 6 of 8 Application Note AN-1250 NOTES Rev. 0 | Page 7 of 8 AN-1250 Application Note NOTES ©2013 Analog Devices, Inc. All rights reserved. Trademarks and registered trademarks are the property of their respective owners. AN11715-0-9/13(0) Rev. 0 | Page 8 of 8