1688 views|2 replies

2015

Posts

0

Resources
The OP
 

Design of extremely low power consumption digital thermometer based on MSP430 [Copy link]

Using MSP430 to design an extremely low-power digital thermometer -------------------------------------------------------------------------------- Temperature measurement is required in many places. When designing a temperature telemetry system, it is usually necessary to use a battery-powered extremely low-power module. There are many traditional temperature measurement methods, but whether it is discrete transistors, thermistors, or thermocouples, the power consumption cannot be reduced. This article introduces a feasible solution that meets the low-power requirements. The solution uses an extremely low-power MCU with Flash memory, a digital temperature sensor, a liquid crystal module (LCD), and a 32kHz clock oscillator. The outstanding feature of this solution is energy saving and durability. It only needs a button battery and can work continuously for more than 10 years. Working Principle The power supply of the MCU expansion system is a CR-2032 button-type lithium battery with a capacity of 220mAh. In order for the system to meet the requirement of 10 years of continuous operation (87,600 hours), the maximum allowable load current can be calculated as follows: 220mAh / 87,600 hours = 2.51 A This temperature measurement system not only measures the temperature, but also displays the measurement results continuously. When the system is in single-step mode, the TMP100 temperature sensor automatically enters shutdown mode after completing a measurement. The typical power consumption at this time is 0.1 A. When the system is in low-power mode (LPM3), the crystal oscillator, LCD driver and 16-bit timer continue to work. The typical power consumption of MSP430 is 0.9 A. The typical power consumption of 3.5-bit LCD is 1 A. The power consumption of each working cycle of the system is shown in Figure 2. The total power consumption of the temperature sensor, MCU and LCD is an average of 2.45 A. In order to extend the battery life as much as possible, the system is in wait mode for most of the working cycle. Hardware Design Description The battery plus a 0.1 F decoupling capacitor constitutes the power supply of this system. The reset terminal of the MCU is connected to a 68k pull-up resistor, and the clock pulse (ACLK) is taken from a 32.768KHz watch crystal. A 10K pull-up resistor is connected to the SCL (clock) and SDA (data) of the I2C bus respectively. Working Principle The MCU is connected to the temperature sensor through the I2C bus. The I2C bus occupies two MCU input and output lines, and the communication between the two is completely completed by software. The address of the temperature sensor can be set through two address pins, which allows 8 such sensors to be connected to one I2C bus at the same time. In this solution, the 7-bit address of the sensor has been set to 1001000. When the MCU needs to access the sensor, it must first send an 8-bit register pointer and then send the address of the sensor (7-bit address, the low bit is the WR signal). The sensor has three registers available to the MCU. The 8-bit register pointer is used to determine which register the MCU is going to use. In this solution, the main program will continuously update the sensor's configuration register, which will cause the sensor to work in single-step mode and measure the temperature once each update. To read the contents of the sensor's measurement register, the MCU must first send the sensor address and register pointer. The MCU sends a start signal, then sends the sensor address, and then sets the RD/WR pin to a high level to read the measurement register. In order to read the 16-bit data in the sensor's measurement register, the MCU must communicate 8-bit data with the sensor twice. When the sensor is powered on, the default measurement accuracy is 9 bits and the resolution is 0.5 C/LSB (range is -128.5 C to 128.5 C). This solution uses the default measurement accuracy. If needed, the sensor can be reset to increase the measurement accuracy to 12 bits. If only general temperature indication is required, such as an automatic thermostat, then a resolution of 1°C can meet the requirements. In this case, the lower 8 bits of the sensor data can be ignored, and only the upper 8 bits can meet the design requirement of a resolution of 1°C. Since the register is read in the order of the upper 8 bits first and the lower 8 bits later, the lower 8 bits can be read or not. There are two benefits to reading only the upper 8 bits of data. The first is that it can shorten the working time of the MCU and the sensor and reduce power consumption; the second is that it does not affect the resolution index. After the MCU reads the measured value of the sensor, it will convert it and display the result on the LCD. The entire processing process includes: judging the positive and negative signs of the displayed results, converting the binary code to BCD code, and transferring the data to the relevant registers of the LCD. After the data is processed and the results are displayed, the MCU will issue a single-step instruction to the sensor. The single-step instruction will cause the sensor to start a temperature test and then automatically enter the waiting mode until the analog-to-digital conversion is completed. After the MCU issues the single-step instruction, it enters the LPM3 mode. At this time, the MCU system clock continues to work and generates a timer interrupt to wake up the CPU. The length of the timer can be adjusted by programming to meet the needs of specific applications. Function expansion The program code to implement the solution described above is only about 400 bytes, while the MCU's Flash program memory is as much as 8k. In addition, although the MCU has 256 bytes of RAM, this program does not need to use any byte. This 256 bytes of RAM and the unused In-System Programmable (ISP) Flash memory can be used to record historical data. In addition, the MCU still has 22 input and output lines, a two-terminal voltage comparator and a complete three-channel 16-bit timer Timer A. These idle resources can be used to implement other commonly used functions, such as keyboard, synthetic ringtones, analog-to-digital conversion, battery power detection and serial communication functions. Since the system clock uses a 32kHz watch crystal, the timer interrupt can be used to implement the clock function (RTC). Since the I2C bus is used between the temperature sensor and the MCU, more sensors can be connected by assigning different addresses. Taking the TMP100 sensor with a 3-bit address as an example, up to 8 sensors can be connected to the bus at the same time.
This post is from Microcontroller MCU

Latest reply

good.   Details Published on 2019-7-10 11:38
 

203

Posts

0

Resources
2
 

good.

This post is from Microcontroller MCU

Comments

You are awesome  Details Published on 2019-7-10 14:53
 
Personal signature北京长信物联科技有限公司
专业的USB温湿度传感器、485温湿度传感器、气体传感器、64路DS18B20温度采集模块厂商。
www.lct2000.cn
QQ:1930227091
 

2015

Posts

0

Resources
3
 

You are awesome

This post is from Microcontroller MCU
 
 
 

Guess Your Favourite
Just looking around
Find a datasheet?

EEWorld Datasheet Technical Support

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号
快速回复 返回顶部 Return list