Barometer

SQ003116E005
ML610Q400 Series
Sample Program AP Notes
For
Barometer Application
2nd Edition
Issue Date: April 16, 2010
NOTICE
No copying or reproduction of this document, in part or in whole, is permitted without the consent of LAPIS
Semiconductor Co., Ltd.
The content specified herein is subject to change for improvement without notice.
The content specified herein is for the purpose of introducing LAPIS Semiconductor's products (hereinafter
"Products"). If you wish to use any such Product, please be sure to refer to the specifications, which can be obtained
from LAPIS Semiconductor upon request.
Examples of application circuits, circuit constants and any other information contained herein illustrate the standard
usage and operations of the Products. The peripheral conditions must be taken into account when designing circuits
for mass production.
Great care was taken in ensuring the accuracy of the information specified in this document. However, should you
incur any damage arising from any inaccuracy or misprint of such information, LAPIS Semiconductor shall bear no
responsibility for such damage.
The technical information specified herein is intended only to show the typical functions of and examples of
application circuits for the Products. LAPIS Semiconductor does not grant you, explicitly or implicitly, any license
to use or exercise intellectual property or other rights held by LAPIS Semiconductor and other parties. LAPIS
Semiconductor shall bear no responsibility whatsoever for any dispute arising from the use of such technical
information.
The Products specified in this document are intended to be used with general-use electronic equipment or devices
(such as audio visual equipment, office-automation equipment, communication devices, electronic appliances and
amusement devices).
The Products specified in this document are not designed to be radiation tolerant.
While LAPIS Semiconductor always makes efforts to enhance the quality and reliability of its Products, a Product
may fail or malfunction for a variety of reasons.
Please be sure to implement in your equipment using the Products safety measures to guard against the possibility of
physical injury, fire or any other damage caused in the event of the failure of any Product, such as derating,
redundancy, fire control and fail-safe designs. LAPIS Semiconductor shall bear no responsibility whatsoever for
your use of any Product outside of the prescribed scope or not in accordance with the instruction manual.
The Products are not designed or manufactured to be used with any equipment, device or system which requires an
extremely high level of reliability the failure or malfunction of which may result in a direct threat to human life or
create a risk of human injury (such as a medical instrument, transportation equipment, aerospace machinery,
nuclear-reactor controller, fuel-controller or other safety device). LAPIS Semiconductor shall bear no responsibility
in any way for use of any of the Products for the above special purposes. If a Product is intended to be used for any
such special purpose, please contact a ROHM sales representative before purchasing.
If you intend to export or ship overseas any Product or technology specified herein that may be controlled under the
Foreign Exchange and the Foreign Trade Law, you will be required to obtain a license or permit under the Law.
Copyright 2009 - 2011 LAPIS Semiconductor Co., Ltd.
Table of Contents
1.
OVERVIEW ............................................................................................................................................................. 2
2.
SYSTEM CONFIGURATION ................................................................................................................................ 3
2.1.
2.2.
2.3.
2.4.
2.5.
2.6.
2.7.
3.
DESCRIPTION OF FUNCTIONAL MODULES ............................................................................................... 11
3.1.
4.
HARDWARE CONFIGURATION............................................................................................................................. 3
PERIPHERAL CIRCUIT DIAGRAM ........................................................................................................................ 4
LCD PANEL SPECIFICATIONS ............................................................................................................................ 5
SOFTWARE CONFIGURATION ............................................................................................................................. 6
LIST OF FOLDERS AND FILES ............................................................................................................................. 7
BUILD PROCEDURE ............................................................................................................................................ 9
RESTRICTIONS ................................................................................................................................................. 10
AIR PRESSURE CALCULATION MODULE .......................................................................................................... 11
DESCRIPTION OF THE SAMPLE PROGRAM ............................................................................................... 28
4.1.
4.2.
4.3.
4.4.
4.5.
COMMON SPECIFICATIONS .............................................................................................................................. 28
CONFIGURATION OF THE LCD PANEL.............................................................................................................. 29
KEY EVENT....................................................................................................................................................... 30
FUNCTIONS OF SAMPLE PROGRAM ................................................................................................................. 30
EEPROM MEMORY MAP ................................................................................................................................ 37
i
1.
Overview
This document describes the application programming notes (hereafter called the AP notes) arranged to help customers
develop software that, by using the Successive Approximation Type AD Converter, which is hardware that the
ML610Q400 Series MCU (hereafter called the MCU) has, performs air pressure measurement as the barometer.
APIs are provided for each function module. The AP notes describe the functions and operating conditions of each API
and samples of use of those APIs.
In connection with the AP notes, a sample program is provided that actually operates using APIs on ML610Q400 Series
Demo Kit.
Related Documents
The following are the related documents. Read them as required.
ML610Q400 Series Sample Program AP Notes For Sensor/Mesurement Application
ML610Q400 Series Sample Program API Manual
ML610Q431/ML610Q432 User’s Manual
ML610Q435/ML610Q436 User’s Manual
ML610Q411/ML610Q412/ML610Q415 User’s Manual
ML610Q421/ML610Q422 User’s Manual
ML610Q482 User’s Manual
ML610Q400 Series Demo kit Hardware User’s Manual
nX-U8/100 Core Instruction Manual
MACU8 Assembler Package User’s Manual
CCU8 User’s Manual
CCU8 Programming Guide
CCU8 Language Reference
DTU8 User’s Manual
IDEU8 User’s Manual
uEASE User’s Manual
uEASE Connection Manual ML610Qxxx
FWuEASE Flash Writer Host Program User’s Manual
LCD Image Tool User’s Manual
2
2.
System Configuration
2.1.
Hardware Configuration
The following figure shows the hardware configuration on which the sample software runs.
Figure 2-1
Hardware Configuration
In the above hardware configuration, the peripheral parts which are necessary for running the sample software are
shown below.
Peripheral parts
Control switch
The number of
peripheral parts
4
Thermistor
Air pressure sensor
EEPROM
LCD panel
RS-232C interface
1
1
1
1
1
Descriptions
The switch S1, S2, S3 and S4 are used to change mode or control the
application.
It is used for the temperature measurement by using RC-ADC.
It is used for the air pressure measurement by using SA-ADC.
It saves the measured air pressure data.
It displays the mode and result of operation.
It is used for data communication with PC. The communication condition is
as follows.
Baud rate : 9600bps,
Data : 8bit,
Parity bit : none,
Stop bit : 1 bit
3
2.2.
Peripheral Circuit Diagram
The circuit of MCU circumference is connected as shown in the following figures. (Please be careful that it is different
from the default connection on the reference board of ML610Q431 attached to ML610Q400 Series Demo Kit.)
Please see "3.1.2.2 Range of A/D Conversion" about the details of the composition of the reference voltage (AVref)
terminal portion of SA-ADC. In order to use the output of an air pressure sensor in the differential amplification input
of SA-ADC, both AIN0 pin and AIN1 pin are connected to an air pressure sensor. Please see "3.1.2.1.3 Peripheral
Circuit Composition of Sensor" about the circuit composition of the air pressure sensor circumference.
LCD
Coin Cell
NMI
VDD
COM0~3 (*)
SEG0~63 (*)
NMI
S1
S2
P00/CAP0
EXVDDV
P01/CAP1
EXGND
P02
S3
P03
S4
RESET_N
ML610Q4xx
P30/IN0
CX
Cd
Cc
Cb
Ca
VDDX
P32/RS0
VL4
P33/RT0
VL3
AVDD
VL2
AVref
VL1
CVR0
CS0
P31/CS0
RS0
RT0
RAN1
RAN2
CAN2
AVSS
C4
C34
R2
C3
C2
1/4 Bias
R1
C12
0.01uF
+IN
C1
XT0
CGL
V+
LMV321
OUTPUT
-IN
V-
XL
CDL
XT1
32.768KHz
Xtal
P22
/MD0
P20 P41 P40
(Output) /SCL /SDA
P42 P43
/RXD /TXD
AIN1
Output(+)
AIN0
Output(-)
Icc
GND
R3
HAPPAR003C
Buzzer
ICL2332
GND R1In T1Out
4
3
V+
2
GND TXD RXD
V-
WP SCL SDA
A0 A1
CV
:1uF
CL0
:1uF
CL1
:0.1uF
C1
:1uF
:0.1uF
CX
Ca,Cb,Cc,Cd
:1uF
C12,C34
:1uF
CGL
: No ( 0 pF )
: No ( 0 pF )
CDL
Vcc
2
I C EEPROM
9-pin D-SUB
RS0
CS0
CVR0
RT 0
A2
Vss
: 10 Kohm
: 560 pF
: 820 pF
: 103AT (Semitec) thermister
Figure 2-2 Peripheral Circuit Diagram
4
AVDD
Vref
: 3.0V
: 2.3V
RAN1
RAN2
CAN2
R1
R2
R3
: 10 Kohm
: 33 Kohm
: 100 uF
: 15 Kohm
: 1 Kohm
: 470 ohm
(*) The number of COM/SEG pin that can be connected to LCD panel depends on the type of the LCD driver built into
the MCU. Please see the chapter “LCD Driver” of the User’s Manual for your target MCU.
2.3.
LCD Panel Specifications
16-segment characters:
7-segment characters:
8-segment characters:
Marks for hand-held calculator:
Other marks:
Figure 2-3
The 4 digits on the upper part of the panel
The 6 digits on the upper part of the panel
The 12 digits on the lower part of the panel
7
32
Layout of the LCD Panel
Table 2-1 Pin Assignments (COM/SEG)
Specifications of Operation
Clock for bias generation circuit voltage multiplication:
Bias of the bias generation circuit:
Duty:
Frame frequency:
5
1/16 LSCLK (2 kHz)
1/4
1/4 duty
73 Hz
2.4.
Software Configuration
Figure 2-4 shows the software configuration.
Figure 2-4
Software Configuration
6
2.5.
List of Folders and Files
The folders and the files are as listed below.
[baro]
├ [_output]
│ ├ [_hex]
│ ├ [_lst]
│ ├ [_obj]
│ └ [_prn]
├ [adjustBaudrate]
│ ├ adjustBaudrate.c
│ └ adjustBaudrate.h
├ [barometer]
│ ├ baro.c
│ └ baro.h
├ [bld]
│ ├ bld.h
│ └ bld_chk.c
├ [clock]
│ ├ clock.c
│ ├ clock.h
│ ├ clock_sysFunc.c
│ └ clock_sysFunc.h
├ [common]
│ ├ common.c
│ └ common.h
├ [eeprom]
│ ├ eeprom.c
│ └ eeprom.h
├ [i2c]
│ ├ i2c.c
│ └ i2c.h
├ [irq]
│ ├ irq.c
│ └ irq.h
├ [key]
│ ├ key.c
│ └ key.h
├ [lcd]
│ ├ LCD.c
│ ├ LCD.h
│ ├ U8_Sample.tac
│ └ U8_Sample.tbc
├ [main]
│ ├ mcu_large
│ │ └ mcu.h
│ ├ mcu_small
│ │ └ mcu.h
│ ├ eepromMap.h
│ ├ main.BAK
│ ├ main.c
│ ├ main.h
│ ├ S610431SW.asm
│ └ S610435LW.asm
… Build result output folder
… UART baud rate correction module folder
… Pressure calculation module folder
… BLD control module folder
… Clock control module folder
… General-purpose function module folder
… EEPROM control module folder
… I2C communication control module folder
… Interrupt control module folder
… Key input control module folder
… LCD display control module folder
… Sample program main folder
7
[continued from the previous page]
├
│
│
├
│
│
├
│
│
├
│
│
├
│
│
├
│
│
├
│
│
├
├
├
└
[rcAdc]
├ rcAdc.c
└ rcAdc.h
[rtc]
├ rtc.c
└ rtc.h
[saAdc]
├ saAdc.c
└ saAdc.h
[tbc]
├ tbc.c
└ tbc.h
[temp]
├ temp.c
└ temp.h
[timer]
├ timer.c
└ timer.h
[uart]
├ uart.c
└ uart.h
readme.txt
S16_div10_and_mod.asm
U8_Baro_Sample_Large.PID
U8_Baro_Sample_Small.PID
… RC-ADC control module folder
… Real-time clock control module folder
… SA-ADC control module folder
… Time base counter control module folder
… Temperature calculation module folder
… Timer control module folder
… UART communication control module folder
…
…
…
…
Description of compile options
Sample program assembler code (Div10)
Project file for large model MCU
Project file for samll model MCU
8
2.6.
Build Procedure
1 Start IDEU8, select the menu “Open” and open the project file (PID file). In the case that MCU memory model is
small model, the project file is “U8_Baro_Sample_Small.PID”. In the case of large model, the project file is
“U8_Baro_Sample_Large.PID”. Correspondence of MCU and PID file is shown below.
Table 2-2 Correspondence of MCU and PID file
Supported MCU
U8_Baro_Sample_Small.PID
ML610Q431/432
U8_Baro_Sample_Large.PID
ML610Q435/436
2 In the default setting, ML610Q431 is set as the target MCU.
If your target MCU is different, follow the procedure below to change the setting.
(1) Select the menu “Project” -> “Options” -> “Compiler/assembler”.
(2) In the displayed window, select the target MCU from the “Target microcontroller” list in the “General”
tab. Also, modify the following option in the “Additional options” field in the “Assembler control” group.
/DEFTARGET=TYPE(M6104XX)
About the “XX” part, replace with the type number of MCU
For example, if ML610Q432 is used, input the following option.
/DEFTARGET=TYPE(M610432)
(3) Remove the startup file “S610431SW.asm“ registered in the file tree of IDEU8. Instead of that, register
your target MCU’s startup file. (In the case of ML610Q432, it is S610432SW.asm.)
(4) Define the macro that represents the target MCU.
Select the menu “Project” -> “Options” -> “Compiler/assembler” -> ”Macro”tab. In the displayed
window, define the macro like following name.
_ML610Q4XX
About the “XX” part, replace with the type number of MCU
For example, if ML610Q432 is used, define the following macro.
_ML610Q432
In the case that the macro other than the type number in the above Table 2-2 is defined, the case that
macro such as above is not defined, or the case that the memory model that is supported by PID file is
different from the memory model of MCU that is defined by the above macro, the compiler issues the
following error at the beginning of the output messages.
Error : E2000 : #error : “Unknown target MCU”
(5) If necessary, modify other macro definitions.
About the available macro definitions, see the “readme.txt” in the sample program folder.
- For ML610Q43X series MCU
LCD_TYPE = 1
FREQ_TIMER_MODE = 0
_RTC_TYPE
_SAADC_REG
3 Select the menu “Project” -> “Rebuild”. Then the build procssing for the sample program starts.
4 When the build processing is completed, .abs file is generated in the project folder and .hex file is generated in
_output¥_hex folder.
9
2.7.
Restrictions
2.7.1.
About Available Functional Modules
In the functional modules that compose this sample program, the available functional modules are different by target
MCU, due to the difference of MCU peripherals. In the case that these functional modules are applied to user
application, available functional modules on each MCU are shown below.
Table 2-3 List of available functional modules
Supported MCU
SA-ADC Control Module *4
Pressure Calculation Module
RC-ADC Control Module *4
Temperature Calculation Module *4
UART Communication Control Module *4
UART Baud Rate Correction Module *4
Frequency measurement mode *4
Functional
modules
I2C Communication Control Module *4
EEPROM Control Module *4
LCD Display Control Module *4
Key Input Control Module *4
RTC Control
Module *5
Hardware RTC
Software RTC
Timer Control Module *4
Clock Control Module *4
Time Base Counter Control Module *4
BLD Control Module *4
ML610Q43X ML610Q42X
○
○ *2
○
○
○
○
○
○
○
○
○
○
×
○
○
○
○
○
○
○ *3
○
○
○
×
○
○
○
○
○
○
○
○
○
○
ML610Q41X
○ *2
○
○
○
○
○
○ *1
○
○
○ *3
○
×
○
○
○
○
○
ML610Q48X
×
○
○
○
○
○
○
○
○
×
○
×
○
○
○
○
○
○ : Available
× : Not available
*1: Frequency measurement mode by hardware is not available on ML610Q415 because it does not have low-speed crystal
oscillation clock.
*2: Function that uses the differential amplification input or the selection of amplifier gain and offset is not available.
*3: All display area of LCD panel can not be available, because the number of SEG pin that is connected to LCD panel
is not enough.
*4: For the details of these modules, please see the “ML610Q400 Series Sample Program AP Notes For
Sensor/Mesurement Application”.
*5: For the details of these modules, please see the “ML610Q400 Series Sample Program AP Notes For RTC
Application”.
2.7.2.
About Functions of Sample Program
This sample program is available on only ML610Q43X series MCU.
Note: This sample program is not available on ML610Q42X and ML610Q41X series MCU, because SA-ADC does not
support the differential amplification input and the selection of amplifier gain and offset, which are required for
operating the application. Also this sample program is not available on ML610Q48X series MCU, because it does not
have SA-ADC.
10
3.
Description of Functional Modules
3.1.
Air Pressure Calculation Module
3.1.1.
Built-in A/D Converter
3.1.1.1. Configuration of SA-ADC
This MCU has a 2-channel successive approximation type A/D converter (SA-ADC) with a built-in sample & hold.
This SA-ADC consists of two stages, the first one being the first amplifier that supports differential amplification input
and the second one being the second amplifier that allows gain and offset adjustment. By combining these two
amplifiers, various analog input values can be measured. In addition, by short-circuiting between input pins at the time
of differential amplification input, the offset value of the amplifiers can be measured.
AVDD
VREF
AVSS
AMPCON0
1st amplifier
(differential
input)
AIN0
AIN1
Successive
approximation
type
A/D
converter
AMPGAIN
2nd amplifier
(inversion
amplifier)
SADRnL,
SADRnH
Analog
selector
AMPOFFS
HSCLK
(4.096MHz/500KHz)
SADCON0,SADCON1,
SADMOD0
SADINT
8
Data bus
SADR0L:
SADR0H:
SADR1L:
SADR1H:
SADCON0:
SADCON1:
SADMOD0:
AMPOFFS:
AMPGAIN:
AMPCON0:
SA-ADC result register 0L
SA-ADC result register 0H
SA-ADC result register 1L
SA-ADC result register 1H
SA-ADC control register 0
SA-ADC control register 1
SA-ADC mode register 0
Amplifier offset register
Amplifier gain register
Amplifier control register 0
Figure 3-1 Configuration of SA-ADC
Table 3-1 List of Pins
Pin name
AVDD
VREF
AVSS
AIN0
AIN1
I/O
⎯
⎯
⎯
I
I
Description
Positive power supply pin for successive approximation type A/D converter
Reference power supply pin for successive approximation type A/D converter
Negative power supply pin for successive approximation type A/D converter
Successive approximation type A/D converter input pin 0
Successive approximation type A/D converter input pin 1
11
Direct input
A/D conversion input voltage
AVDD
VREF
AVSS
AINx
12-bit
successive
VADIN
approximation
variation range
type A/D
converter
VADIN
VREF
AVSS
A/D conversion input voltage
Amplification input
AVDD
VREF
AVSS
AINx
VAINx
2nd amplifier
(inversion
amplifier)
AMPGAIN
VADIN
VREF
12-bit
successive
VADIN
approximation variation range
type A/D
converter
Amplifier input
voltage
VAINx variation range
AMPOFFS
A/D conversion input voltage
Differential amplification input
AVDD
VREF
AVSS
AIN0
AIN1
VAIN0
VAIN1
1st amplifier
(differential
input)
2nd amplifier
(inversion
amplifier)
AMPGAIN
VAINdiff = VAIN1
−
VADIN
VREF
12-bit
successive
VADIN
approximation
variation range
type A/D
converter
VAINdiff
AMPOFFS
Amplifier input
voltage difference
variation range
VAIN0
Figure 3-2
Amplifier Configurations
* For details, refer to the chapter “Successive Approximation Type A/D Converter (SA-ADC)” of the User’s Manual
for your target MCU.
3.1.1.2. Input voltage for A/D converter in differential amplification input setting
The following equation 3.1.1.2-1 shows the theoretical equation for the output voltage from the second amplifier of
SA-ADC in differential amplification inupt setting.
VADIN = ((AIN1–AIN0) × AmpGain_1st – Ratio_AmpOffset × AVDD) × AmpGain_2nd × (–1)
+ (1/2 + Ratio_AmpOffset) ×AVDD
... (3.1.1.2-1)
VADIN
AIN1–AIN0
AmpGain_1st
AmpGain_2nd×(-1)
Ratio_AmpOffset
: Input voltage to A/D converter. That is, the output voltage from the second amplifier.
: Voltage difference between two input pins (AIN1 and AIN0).
: Gain of the first amplifier. It is fixed to 3 times.
: Gain of the second amplifier. It is selected by AMPGAIN register.
The multiplication of (-1) is due to the inversion amplifier.
: Amount of the input offset of the second amplifier [%].
It is selected by AMPOFFS register.
Example for calculating the input voltage to A/D converter (VADIN) is shown below.
Conditions:
AVDD is 3V.
Gain of the second amplifier is 1.
Amount of the input offset of the second amplifier is 6 %.
Voltage difference between two input pins is -0.3V.
VADIN = ((-0.3) ×3 –0.06×3) × 1 × (–1) + (1/2 + 0.06) ×3
= -(-0.9-0.18) + 1.68
= 0.6[V]
12
3.1.2.
Measurement by Air Pressure Sensor
To measure air pressure, the sample program introduces the air pressure sensor using effect of piezo resistive bridge
circuit. The value of air pressure is calculated from the voltage difference between two output pin of the sensor. To
perform A/D conversion of the voltage difference as the analog input signal, use SA-ADC in differential amplification
input setting.
This AP note describes how to mesure air pressure from the actual output of the sensor which is obtained by the
differential amplification input setting.
3.1.2.1. Operating Conditions
This section describes the operating condition, valid range and restrictions for the air pressure measurement.
3.1.2.1.1.Hardware
The following shows the operating conditions of hardware (MCU and air pressure sensor).
Power supply
Vref
AVss
: 3V
: 2.3V (describe later.)
: 0V (=GND)
Characteristics of the air pressure sensor is shown in Table
Manufacturer
Product number
Classify of Pressure
: 3V
: HSPPAR003C
: Absolute
Table 3-2 Characteristics of air pressure sensor
Item
Unit
Driving current Driving current
0.55mA
0.4mA
50.0 ~ 110.0
Range of measurement
kPa
pressure
Operating temperature
ºC
Bridge Resistance (Max.)
Ω
Bridge Resistance (Min.)
Ω
Driving Voltage (Max.)
V
Driving Voltage (Min.)
V
Full Span Output
mV
Output Voltage(110kPa)
mV
Output Voltage(50kPa)
mV
Output Voltage(101.3kPa)*
mV
* The data at 101.3kPa is a reference value.
-20 ~ 85
7000
5000
3.85
2.75
44
79
35
(72.6)
2.8
2.0
32
57.454545
25.45331
(52.8)
Driving current
: 0.4mA
The official driving voltage of the sensor is from 3.85V to 2.75V. Because the sample program assumes that the sensor
is drived by dry cell battery, it is designed so that the sensor is drived within 3V by reducing the driving current to
0.4mA. In this case, the output voltage becomes 1/1.375. (0.55/0.4 = 1.375)
13
3.1.2.1.2.Software
The following shows the operating conditions of software (application).
Range of measurement pressure
Unit of the pressure displayed on LCD
Operating temperature
Aaccuracy
: 500hPa ~ 1100hPa (It is the same as the air pressure sensor.)
: 1hPa
: -10 ºC ~ 40ºC
: ±(pressure difference × 1% + 3)hPa
(-10 ºC ~ 40ºC, 500hPa ~ 1100hPa)
±(pressure difference × 1% + 6.138)hPa (-10 ºC ~ 5ºC, lower than 784hPa)
3.1.2.1.3.Peripheral Circuit Composition of Sensor
Figure 3-3 shows the circuit diagram for air pressure measurement. Because the manufacturer recommends using a
constant current for the sensor driving current, the constant current circuit is connected to the sensor.
* The driving voltage of the sensor must be lower than the maximum output voltage of the operational amplifier which
is used for the constant current circuit. In the case that the power supply for the operational amplifier is the same as the
power supply for MCU (=3V), please be careful that the value of “(R3 + 7000Ω) × driving current” in Figure 3-3 must
be lower than 3V.
Figure 3-3
Circuit diagram for air pressure measurement
14
3.1.2.2. Range of A/D Conversion
According to Table 3-2, the output voltage difference of the air pressure sensor in 50kPa and 100kPa can be obtained.
By using the equation (3.1.1.2-1) in the section 3.1.1.2, the input voltage to A/D converter can be calculated and the
result is shown in Table 3-3.
Voltage
difference
VADIN
[mV]
[V]
2.3
B
57.452
52.812
25.453
0 2.27
A
50.0
A
0.851
0.153
0.035
0
B
Pressure kPa
-56.58
0
110.0
101.3
[Pressure - A/D input voltage]
characteristics
101.3
110.0
Pressure kPa
[Pressure - Voltage difference]
characteristics
50.0
Table 3-3 Characteristics of air pressure sensor
Pressure
(kPa)
50
101.3
110
(2.27)*
Sensor output
voltage
difference (mV)
Input voltage to
A/D converter
(V)
25.45331
52.81207
57.45185
0
0.850941
0.153292
0.034978
--
* The pressure when the sensor output voltage difference is 0mV is a reference value.
Because the range of the input voltage is from 0.851 to 0.03V, which corresponds to the air pressure measurement
range from 50kPa to 110kPa, it is desirable that the voltage of Vref is set to the same voltage as one at 110kPa
(=0.851V). But, Vref must be higher than 2.2V, due to the electrical characteristic of SA-ADC in MCU. Therefore, in
the sample program, Vref is set to approximately 2.3V by dividing AVDD with the resistor of 10kΩ and 33kΩ. Also, the
capacitor of 100µF is connected in order to prevent Vref from dropping, caused by current draining into Vref pin when
SA-ADC measurement starts.
* About the electrical characteristics of SA-ADC, refer to the chapter “Electrical Characteristics” of the User’s Manual
for your target MCU.
15
3.1.2.3. Air Pressure Calculation
To calculate the air pressure, in advance define Pressure - AD value characteristic, which is based on Pressure - Voltage
difference characteristic which is shown in the section 3.1.2.2. The air pressure is calculated by this characteristic and
A/D conversion result.
If we define the values of voltage difference when AD values are 0 and 4095 as Vdiff_0 and Vdiff_4095 respectively,
they are calculated as follows, assuming that the offset of the amplifier is 0.
Vdiff_0
= (0mV –1/2AVDD) / (-25.5)
= 58.823529 mV
= -31.372549 mV
Vdiff_4095
= (2300mV –1/2AVDD) / (-25.5)
From this result, A/D resolution is
(58.823529 - (-31.372549))/4095 = 90.196/4095 = 0.022mV/LSB
When the input voltage of A/D converter is 1/2AVDD (=1.5V), AD value is calculated as follows.
1.5 × (2.3 / 4095) = 2670.652
2670 × (2.3 / 4095) = 1.499634,
1.499634 - 1.5= -0.000366
2671 × (2.3 / 4095) = 1.500195,
1.500195 - 1.5= 0.000195
Because 2671 is the nearest AD value to 1.5V, 1/2AVDD is defined as 1.500195 in the sample program. At this time the
offset of AD value is set so that the voltage difference becomes 0 in Pressure - Voltage difference characteristic.
The offset of AD value is calculated as follows.
(Offset of AD value) = 2671 - 4095 = -1424
In the sample program, in order to enable a fine adjustment of the range of A/D conversion, the start position of the air
pressure calculation can be adjusted in units of 0.022mV by adjusting the offset of AD value.
VADIN
AD
value
[V]
2.3
4095
2671+offset
A
0.851
N110+offset
B
0.035
0
0
Pvref
50.0
A
N50+offset
110.0
[Pressure-A/D input voltage]
characteristic
0 Pvref
Pressure
kPa
B
0
2.27
50.0
110.0
[Pressure-A/D input voltage]
characteristic
N50: AD value at 50.0kPa
N110: AD value at 110.0kPa
Pvss: Pressure at VADIN=0
Pvref: Pressure at VADIN=Vref
Range of air
pressure
calculation
Pvss
Pressure
kPa
Note: Because the second amplifier of SA-ADC in MCU is the inversion amplifier, AD value decreases when the input
voltage increases.
When the value of AD value is n, the equation which directly calculates air pressure from Pressure - AD value
characteristic is as follows.
Press_n = Press_Min + Slope × V_n
... (3.1.2.3-1)
Press_n
Press_Min
Slope
V_n
: Calculated air pressure
: Minimum pressure of Pressure - Voltage difference characteristic
= 2.272876 kPa
: Slope (sensitivity) of Pressure - Voltage difference characteristic
= (110kPa - 50kPa) / (57.452mV - 25.453mV)
: Voltage difference which is converted from A/D to
= (90.196mV / 4095) × n
16
In the sample program, in order to reduce the error in calculation of air pressure, the range of air pressure measurement
(50kPa ~ 110kPa) is divided and the calculation parameters for each divided range is saved in ROM table. If the air
pressure sensor is changed, please change also this calculation table to match with the sensor’s characteristics.
In the air pressure calculation, in order to calculate real number as integer, a significant figure of each operand in the
above equation is adjusted, that is, shifted N bit to left.
Press_n
= (BasePress’ << N + (Slope’ << N) × (Inverted n - Inverted BaseAd)) >> N
= (BasePress + Slope’’ × (BaseAd - n + AD_Offset) ) >> N
*Assume that N = 8
AD_Offset
Inverted n
: Offset of AD value (= -1424)
: 4095 - AD value + AD_Offset
After this, “Inverted” means that 4095 - AD value + AD_Offset.
: Slope × (90.196mV / 4095) × 100 = 0.0413 × 100
This is a part of the equation 3.1.2.3-1.
It is multipled by 100 in order to perform the calculation in the unit of hPa.
: The integer value, made by shifting Slope’ N bit to left. (= 1058)
* In the case that N is 8, Slope’ multiplied by 256 is 1057.291469.
But, considering that the calculated result (Press_n) is rounded down
by shifting to right later, Slope’’ is rounded up so that the end result
of calculation becomes higher value.
: The value of the base AD value
(AD value which corresponds to the minimum air pressure in the divided range)
: The value of the minimum air pressure in the divided range
: The integer value, made by shifting BasePress’ N bit to left
(The base air pressure set in air pressure calculation table)
Slope’
Slope’’
BaseAd
BasePress’
BasePress
The air pressure calculation table is shown in Table 3-4. The value of BasePress is registered in this table after shifting
N bit to left, in order to reduce the number of calculation operations.
Table 3-4 Air pressure calculation table
Table address
0
1
2
3
Parameter
BaseAd
BasePress
1806
968 hPa ×2N
2198
806.1 hPa ×2 N
2567
653.7 hPa ×2 N
2940
499.7 hPa ×2 N
17
Range of air pressure(hPa)
x >= 968
968 > x >= 806.1
806.1 > x >= 653.7
653.7 > x >= 499.7
Press_n
Press_n01=Slope’×(BaseAd_0 – n01+ AD_Offset)+BasePress_0
P5
Press_n12=Slope’×(BaseAd_1 – n12+ AD_Offset)+BasePress_1
P4
Press_n45=Slope’×(BaseAd_5 – n45+ AD_Offset)+BasePress_5
P1
P0
0
0 BaseAd_0
BaseAd_4
4095
BaseAd_1
BaseAd_5
Actual
e
Approximation
AD value (n)
[Pressure-AD value]
characteristic
This portion
magnified.
Here, the maximum error between the linear approximation and actual characteristics is “e”.
If “e” is larger than the maximum error for measuring air pressure, it is necessary to make a finer portion and redo the
approximation procedure.
Example of calculation:
In the case that AD value is 623 and offset of AD value is -1424,
1 Look up the air pressure calculation table.
(AD value - offset of AD value) is lower than 2198.
Therefore, the table address is determined to 1.
Table address = 1
BaseAd = 2198
BasePress = 2063868
2 Calculate air pressure by using the table parameter.
Press_623 = (2063868 + 1058 * (2198-623-1424)) >> 8
= (2063868 + 1058 * 151) >> 8
= (2063868 + 159758) >> 8
= 2223626 >> 8
= 8686
→868.6(hPa)
18
3.1.2.4. Temperature Dependence of Voltage Difference
The voltage difference of the air pressure sensor changes, depending on temperature. Therefore, the temperature
correction is necessary for accurate measurement. The temperature characteristic of the sensor is described below.
The air pressure at the temperature T°C is calculated from Pressure - Voltage difference characteristic at 25°C by using
the following equation.
V25(T, Vt) = Vt / (1 + Kt(T))
V25(T, Vt)
Vt
Kt(T)
... (3.1.2.4-1)
: Voltage difference at 25°C, converted from voltage difference at T°C
: Voltage difference at T°C
: Temperature correction value
Kt(T) = A× (T - 25)2 + B × (T - 25)2
A = 6.88 ×10 -6
B = -7.41 ×10 -5
Press_t(T) = (V25(T,Vt) + Intercept25) / Slope25
Press_t(T)
Slope25
Intercept25
... (3.1.2.4-2)
: Air pressure at T°C
: Slope of Pressure - Voltage difference characteristic at 25°C
: Intercept of Pressure - Voltage difference characteristic at 25°C
19
The sample program correct the air pressure calculation result simply so that the error due to temperature dependence at
101.3kPa (1013hPa) is minimized, by using the following method.
1) According to the equation 3.1.2.4-1, 3.1.2.4-2 and 3.1.2.3-1, calculate air pressure, using AD value at temperature
T°C.
Press_t_n = Press_Min + Slope25 × V25(T, n)
... (3.1.2.4-3)
Press_t_n
n
V25(T, n)
Slope25
Press_Min
: Air pressure at T°C when AD value is n
: AD value at T°C
: Voltage difference at 25°C, converted from voltage difference at T°C
by using the equation 3.1.2.4-2
: Slope of Pressure - Voltage difference characteristic at 25°C
(It is the same as Slope in the equation 3.1.2.3-1)
: Minimum pressure of the range of A/D conversion
(It is the same as Press_Min in the equation 3.1.2.3-1)
2) Calculate air pressure in the equation 3.1.2.3-1, by using AD value which the calculation result of 1) is 101.3kPa.
3) Define the difference between 1) and 2) as the correction value for air pressure. The following shows the correction
values which corresponds to each temperatures. The sample program uses the correction value as the integer value in
the unit of 0.1hPa.
Temperature
(°C)
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
Correction
value(kPa)
-0.04323
-0.03081
-0.01975
-0.01006
-0.00172
0.005249
0.010858
0.015104
0.017979
0.019506
0.019663
0.018456
0.015886
0.011953
0.006658
0
-0.00802
-0.01741
-0.02815
-0.04026
-0.05374
-0.06857
-0.08476
-0.10234
-0.12124
-0.14156
-0.16318
-0.18622
-0.21055
-0.23632
20
Correction
value (0.1hPa)
-4
-3
-2
-1
0
1
1
2
2
2
2
2
2
1
1
0
-1
-2
-3
-4
-5
-7
-8
-10
-12
-14
-16
-19
-21
-24
[continued from the previous page]
10
9
8
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-0.26346
-0.29185
-0.32171
-0.35293
-0.38552
-0.4193
-0.4546
-0.49126
-0.52928
-0.56866
-0.6094
-0.65148
-0.69493
-0.73972
-0.78586
-0.83369
-0.88254
-0.93274
-0.98428
-1.03715
-1.09181
-26
-29
-32
-35
-39
-42
-45
-49
-53
-57
-61
-65
-69
-74
-79
-83
-88
-93
-98
-104
-109
The sample program uses the correction value which corresponds to the temperature rounded off to integer value.
Example:
The correction value at -9.5°C is regarded as the correction value at -10°C (= -109)
The correction value at -30.4°C is regarded as the correction value at 30°C (= -2)
In this method, the maximum error is -0.5728kPa (-5.728hPa), which is observed as the maximum error in the full scale
range at -9.9°C. Including the error due to A/D resolution (= 0.41hPa/LSB) also, the total error is 6.138hPa.
21
3.1.3.
Calibration
When performing highly precise air pressure measurement, a required calibration is shown.
The measured air pressure value shifts for every product. A cause has the following.
1) Offset voltage of the air pressure sensor
Offset (=Typical voltage difference - actual measurement) of the output voltage from the sensor may differ minutely
for every product of an air pressure sensor. Thereby, the input voltage to SA-ADC may shift.
2) Offset of the amplifier of SA-ADC built-in MCU
Offset of the amplifier built by SA-ADC may differ minutely for every product of MCU. Thereby, an A/D conversion
result may shift.
This sample has an air pressure calibrating function in order to solve this gap.
Compare reference air pressure value Pref with the air pressure measurement value Ps (the result of Procedure 6) in the
section "3.1.7.2 Air pressure calculation procedure") calculated by this software, and please correct Ps to become the
same as Pref by key operation. Henceforth, air pressure calibration value (Pref - Ps) is added to the measured air
pressure value. This value is determined as final air pressure value.
For key operation method, refer to "4.4 Functions of Sample Program".
Moreover, when air pressure calibration value is known beforehand, AD value which is counted backward from air
pressure calibration value can be added to the measured A/D conversion result. In this case, please calculate AD value
equivalent to an air pressure calibration value, and set the value to the following variable.
File
main.c
Variable name
_adcOffset
Type
short
meaning
AD value equivalent to air pressure calibration value
For example, when air pressure calibration value is 5hPa, AD value equivalent to this can be calculated as follows.
(AD value equivalent to air pressure calibration value)
= (Air pressure calibration value) / (Air pressure resolution per 1 AD value)
= (Air pressure calibration value) / ((Slope of Pressure - Voltage difference characteristic × (AD resolution))
= 5hPa / (((1100hPa – 500hPa) / (57.452mV – 25.453mV)) × (90.196mV / 4095) × (-1))
* AD resolution is multiplied by -1, because the input from the air pressure sensor is inverted when A/D conversion is
carried out.
= 5hPa / (-0.41hPa)
= -12
22
3.1.4.
API Function
The API function which this module provides is explained below.
3.1.4.1. barometer_calc Function
This function calculates the air pressure on 25℃Typical condition from AD value of SA-ADC.
Air pressure is returned as the result of calculation, in units of 0.1hPa.
(Example : In the case of 1013.3hPa, it is 10133.)
In case that it converts into a hectopascal, calculate it to 1/10.
Function
name:
Arguments:
Return
values:
int barometer_calc(
unsigned short adc_value
signed short adc_offset_value
unsigned short * baro
tBaroTableList * pTbl
)
unsigned short adc_value … AD value
signed short adc_offset_value … A/D offset value
When not adjusting the start A/D value of the air pressure calculation, specify 0.
unsigned short *baro …Pointer to the area which stores air pressure.(0.1hPa unit)
(Example : In the case of 1010.5hPa, it is 10105.)
tBaroTableList *pTbl … Pointer to an air pressure calculation table.
int
Air pressure calculation succeeded: BARO_R_OK(=0)
(AD value – AD offset val) is larger than maximum value(=BARO_MAX_AD_VALUE) :
BARO=R=ERR=H(=-1)
AD offset value is larger than BARO_MAX_AD_OFFSET_VALUE : BARO_R_ERR_H(=-1)
AD offset value is smaller than BARO_MIN_AD_OFFSET_VALUE : BARO_R_ERR_L(=-2)
23
3.1.5.
List of Constants
Table 3-1 Constants for Return Values
Constant name
BARO_R_OK
BARO_R_ERR_H
Defined
value
0
-1
BARO_R_ERR_L
-2
Description
Processing succeeded.
¾ AD value is larger than 4095
¾ AD offset value is larger than maximum value
(=RARO_MAX_AD_OFFSET_VALUE)
¾ (AD value - AD offset value) is larger than maximum
value (=RARO_MAX_AD_VALUE)
¾ AD offset value is smaller than minimum value
(=RARO_MIN_AD_OFFSET_VALUE)
Table 3-6 Constant for Calculation parameter
Constant name
Defined
value
8
BARO_FLOATING_LEN
BARO_MAX_AD_OFFSET_VALUE
BARO_MIN_AD_OFFSET_VALUE
BARO_MAX_AD_VALUE
BARO_MAX_TBL_NO
4
BARO_SLOPE
3.1.6.
1155
-1456
2940
1058
Description
Number of integer compensation bits of air pressure
calculation.
Maximum AD offset value
Minimum AD offset value
AD value at the minimum air pressure, when AD offset is
0.
(AD value at 49.97kPa)
Air pressure calculation table size.
(Number of division of the air pressure measurement
range.)
Slope of air pressure calculation. (For details, see the chapter
3.1.2.3)
Structures
This section describes the structures referred in the air pressure calculation table.
Air pressure calculation table
Typedef struct {
unsigned long
basePress;
unsigned short
baseAd;
} tBaroTableList;
// Base air pressure
// Base AD value
Table 3-7 Air pressure calculation table setting value
Table address
0
1
2
3
Defined value
baseAd
basePress
1806
2198
2567
2940
2478326
2063868
1673727
1279357
24
Air pressure range
(hPa)
x >= 968
968 > x >= 806.1
806.1 > x >= 653.7
653.7 > x >= 499.7
3.1.7.
Sample of Use
The subsection below shows the sample which uses the functional module offered with sample software.
3.1.7.1. A/D Conversion Procedure
The procedure, which uses SA-ADC module from the initialization to the acquirement of A/D conversion result by
the differential amplification input setting, is shown below.
Figure 3-4 Conversion Procedure
25
[Main Routine]
1) Set HSCLK.
¾ The SA-ADC counts HSCLK to set conversion time; therefore, it is necessary to set the settings for HSCLK
before conversion.
2) Initialize the SA-ADC control module.
¾ Set the following conversion conditions to the saAdc_init function and initialize the SA-ADC control module.
1 Specify the number of times conversion is performed.
The number of times of conversion specifies "Single AD conversion only" in the case that AD conversion is
performed by the differential amplification input. Because the amplifier settling time is required before AD
conversion starts.
2 Specify the range of clock frequency of HSCLK.
3 Specify the operating mode.
The AD conversion by the differential amplification input is specified.
4 Set the input offset of the 2nd amplifier.
5 Set the gain (multiplication factor) of the 2nd amplifier.
3) Wait for the amplifier to settle.
¾ Wait the required time for the amplifier settling (more than 94us).
4) Start SA-ADC conversion.
¾ Specify the channel 0 to the saAdc_execute function and start SA-ADC operation.
5) Wait for SA-ADC conversion completion.
¾ Wait until SA-ADC interrupt occurs (conversion complete).
6) Stop SA-ADC conversion
¾ Specify stopping of conversion in the designated parameter of the saAdc_execute function and stop SA-ADC
operation.
7) Acquire SA-ADC conversion results.
¾ Specify the channel 0 number to the saAdc_getResult function and acquire the SA-ADC conversion results. In a
differential amplification input, the conversion result of a channel 0 is surely acquired.
8) Stop operating the amplifier.
¾ In order to reduce power consumption, shut off the power supply for the amplifier by setting the analog input as
the direct input. In the sample program, it sets the following conditions to the saAdc_init function and
initializes the SA-ADC control module to the initial setting after power-on.
1 Specify the number of times conversion as "Single AD conversion only".
2 Specify the range of clock frequency of HSCLK as 1.5MHz~4.2MHz.
3 Specify the operating mode as the direct input.
4 Set the input offset of the 2nd amplifier as 0 %.
5 Set the gain (multiplication factor) of the 2nd amplifier as 1 time.
[SA-ADC interrupt (SADINT)]
1) SA-ADC conversion completion processing
¾ The SA-ADC interrupt processing sets the flag that indicates conversion completion.
26
3.1.7.2. Air pressure calculation procedure
The procedure, from the temperature measurement to the air pressure calculation by using the air pressure calculation
module, is shown.
[Main Routine]
1) RC-ADC conversion.
¾ This sample performs RC-ADC conversion required for temperature calculation, in order to carry out
temperature correction to the calculation result of air pressure.
NOTE:
For RC-ADC module details, refer to "3.2 RC-ADC Control Module" of "ML610Q400 series sample
program AP note sensor measurement application".
2) Temperature calculation
¾ Temperature value is calculated from the conversion result of RC-ADC based on the frequency ratio temperature conversion table for thermistor 103AT.
NOTE:
For SA-ADC module accuracy, refer to "3.3 Temperature Calculation Module" of "ML610Q400 series
sample program AP note sensor measurement application".
3) SA-ADC conversion
¾ The AD conversion of the voltage difference between AIN1 and AIN0 pin is carried out.
(For details, refer to the section 3.1.7.1)
4) AD value correction
¾ The AD value equivalent to air pressure calibration value is added to the acquired AD result.
(_adcOffset:default is 0)
5) Air pressure calculation
¾ The air pressure value is calculated with barometer_calc function using the acquired AD result and air pressure
calculation table for air pressure sensor HSPPAR003C.
¾ When temperature is outside of the measurement range (40.1°C or more, less than -10°C), the calculation itself
is skipped, and "----hPa" is displayed.
6) Temperature correction
¾ The air pressure correction value corresponding to the acquired temperature is acquired from an air pressure
compensation table. (For details, refer to the chapter 3.1.2.4)
¾ The air pressure is calculated by adding the air pressure correction value to the calculation result of
barometer_calc function.
7) Air pressure caribration
¾ The air pressure calibration value acquired by the calibration is added to the present air pressure.
¾ The final air pressure value is rounded within the limits.
It is fixed to 500hPa when air pressure value is less than 500 hPa.
It is fixed to 1100hPa when air pressure value is larger than 1100hPa.
NOTE:
When not performing temperature correction, the procedure of 1) and 2) is not needed.
27
4.
Description of the Sample Program
The following shows the functional specification of the sample program.
4.1.
Common Specifications
1) System clock
• SYSCLK=HSCLK (RC oscillation mode 500 kHz)
2) UART
• 9600 bps, 8-bit, no parity, 1 Stop bit, positive logic, LSB first
* To use RS232C interface mounted on ML610Q400 Series Demo Kit, it is necessary to set P42 and P43 as a
secondary function by selection of a port function jumper switch (short-circuit between 2-1 pins) on
ML610Q400 Series Demo Kit.
3) Timer
• Channels 0/1, 16-bit mode, operating clock LSCLK, overflow interval 10 ms
4) LCD driver
• Bias voltage multiplying clock: 2 kHz
• Bias
: 1/4 bias for the ML610Q431/Q432
: 1/3 bias for the ML610Q411/Q412/Q415 (fixed by hardware)
• Duty
: 1/4 duty
• Frame frequency
: 73 Hz
5) RTC
• Initial value of a date : 00/01/01
• Initial value of time
: 23/59/57
• Initial value of the day of the week
: 1(Sunday)
6) SA-ADC
• Conversion count
:1
• HSCLK
: 375 kHz to 1.1 MHz
• Operating mode
: Differential amplification input
• Input gain and offset : gain: 25.5, offset: 0%
7) RC-ADC
• Channel
:0
• Reference clock
: LSCLK
• Oscillation mode
: RS0-CS0 oscillation / RT0-CS0 oscillation
8) Temperature measurement range and accuracy
• −30 to +65°C (±1°C)
−50 to -31°C and +66 to +105°C (±2°C)
28
4.2.
Configuration of the LCD Panel
The following subsections describe the LCD panel configuration and types of display.
The LCD panel has two types of display patterns depending on the type of the LCD driver built into the MCU: one with
the display allocation function and the other without it. The section from here onward assumes that the LCD panel is
equipped with the display allocation function.
4.2.1.
LCD Display Image with Display Allocation Function
The display allocation function is available if DSPMOD1’s DASN (bit 2) can be set to “1”.
The display image in this case is shown below.
29
4.3.
Key Event
The key events that the sample program handles are shown below.
Short-press push:
Short-press release:
Long press:
Priority:
4.4.
Polling is performed at 128-Hz intervals from the time a key was pressed, and a short-press
push is confirmed if a match occurs four times. A short-press melody is output if it is a
valid event.
Polling is performed at 128-Hz intervals from the time a key was pressed, and a short-press
release is confirmed if a match occurs four times but the key is released in less than 2
seconds.
A long press is confirmed if a key is held down for 2 seconds or more. Once a long press is
confirmed, no further long press event occurs even if the key is held down continuously.
Key S1 > Key S2 > Key S3 > Key S4
Functions of Sample Program
Measurement of RC-ADC and SA-ADC is performed at intervals of 1 second (*1), and the temperature calculated from
the measurement result of RC-ADC and the air pressure calculated from AD value of SA-ADC are displayed on LCD.
And, measurement time, temperature, the count value of RC-ADC, AD value of SA-ADC, air pressure, air pressure
calibration value, and the adjusted baud rate count value are saved at EEPROM (*2).
(*1) "1-sec intervals" here means that the time from the end of the first measurement of the temperature and air pressure
to the start of the next measurement is 1 second. In this sample program, a measurement of the temperature and air
pressure takes about 0.7 second. Therefore, time from the start of the first measurement to the start of the next
measurement is about “0.7 + 1 = 1.7” second.
(*2) The data saved at EEPROM can be transmitted to PC via UART. And, adjustment of the count value for UART
baud rates is possible.
30
4.4.1.
State Transition
Reset by RESET_N pin
or
reset by WDT overflow
System initialization
Initialization
end
Barometer
Application
initialization
Initialization
end
Long S3 press
SA-ADC conversion results in
E2PROM are being cleared
Short S3 press
SA-ADC conversion that is
SA-ADC conversion results in
E2PROM are being transmitted
performed at 1-sec intervals is
being stopped
Short S3 press or
transmission complete
Clearing complete
Short S2 press
Short S2 press
SA-ADC conversion that is
performed at 1-sec intervals is
being activated
Long S4 press
A lapse of 1 sec
(Executes SA-ADC
conversion)
Short S4 press
Short S2 press
Air pressure calibration Short S3 press
Figure 4-2
State Transition Diagram (SA-ADC Measurement)
31
State
System initialization
Barometer Application
initialization
SA-ADC conversion
that is performed at
1-sec intervals is being
stopped
SA-ADC conversion
that is performed at
1-sec intervals is being
activated
SA-ADC conversion
results in E2PROM are
being transmitted
Description
After power-on, the barometer application will be in this state.
The signature of EEPROM preservation area is checked and the writing of the signature of this
sample and clear of reserve area.
The number of the saved SA-ADC conversion result is read from EEPROM, and barometer
application is initialized.
A short S2 key press starts SA-ADC conversion.
A short S3 key press transmits the SA-ADC conversion results stored in EEPROM.
A long S3 key press clears the SA-ADC conversion results stored in EEPROM. (*)
Performs temperature measurement and SA-ADC conversion at 1-sec intervals and corrects baud
rate.
The calculation result of air pressure is displayed in the "Air pressuer display" area of the LCD as a
decimal number.
Stores the elapsed time, conversion results, and corrected baud rate in EEPROM.
A short S2 key press stops SA-ADC conversion.
A long S4 key press SA-ADC conversion is stopped and it shifts to air pressure calibration. But,
when it is the following conditions, it does not shift to air pressure calibration.
¾ Measured temperature is outside renge of -10 to 40 .
When transmission of all data has been completed, a transition is made to the "SA-ADC
conversion that is performed at 1-sec intervals is being stopped" state.
A short S3 key press stops transmission and makes a transition to the “SA-ADC conversion that is
performed at 1-sec intervals is being stopped” state.
SA-ADC conversion
results in E2PROM are
being cleared
After clearing the number of the saved SA-ADC conversion result is read from EEPROM, a
transition is made to the "SA-ADC conversion that is performed at 1-sec intervals is being
stopped" state.
Air pressure
calibration
A short S2/S3 key adjusts the air pressure value currently displayed.
S2 key : The air pressure value to display is increased by 1.
(A maximum is 1100hPa, or the measured air pressure, which could not be calibrated, plus
600hPa.)
S3 key : The air pressure value to display is decreased by 1.
(A minimum is 500hPa, or the measured air pressure, which could not be calibrated, minus
600hPa.)
A short S4 key press makes a transition to the "SA-ADC conversion that is performed at 1-sec
intervals is starting" state.
* When you operate a sample program for the first time, in order to avoid incorrect operation, please clear the data of
EEPROM by a long S3 key press.
32
4.4.2.
Description of LCD Display
Figure 4-3
The time display after power-on
Figure 4-4 A display during air pressure measurement (25°C)
Figure 4-5 A display during air pressure measurement (-5.5°C)
33
Figure 4-6 A display during air pressure measurement
(Temperature is outside of the air pressure measurement range)
Figure 4-7 A display during air pressure calibration
Name
Mode display
Clock time display
Temperature display
Air pressure display
Pressure mark display
Temperature mark display
Measurement mark display
Content to be displayed
Displays the "BARO". (Abbreviation of Barometer)
Displays the "CALB" during air pressure calibration. (Abbreviation of Calibration)
Displays the time elapsed after activation in the range of “ 0:00:00” to “23:59:59”.
Only the digits of hours are zero-suppressed.
Displays the temperature calculated from the RC-ADC conversion results. If the
temperature is a negative value, “−” is displayed at one digit before the significant digit.
Displayable temperature values are in the range of “−50.0” to “105.0” and zero
suppression is performed to the displayed value. (It does not display immediately after
Power-ON and during air pressure calibration.)
Displays the air pressure calculated from the SA-ADC conversion results as a decimal
number. The range is "1100" to "500", and zero suppression is performed to the
displayed value. When temperature is out of range in air pressure measurement, it is
displayed as "----."The air pressure will be set up as the present air pressure is displayed
during air pressure calibration. (It does not display immediately after Power-ON.)
Displays the "hPa" mark. (It does not display immediately after Power-ON.)
Displays the "°C" mark. (It does not display immediately after Power-ON.)
During air pressure measurement, "1" is displayed on the upper left.
34
4.4.3.
Description of UART Display
SA1 00:00:01 SADR=123 BARO=1020[hPa] CALB=0000 RC1 CNT= 616A4 020.0[C] UABRT= 33
SA1 00:00:02 SADR=122 BARO=0999[hPa] CALB=0000 RC1 CNT= 616A3 019.9[C] UABRT= 32
SA1 00:00:11 SADR=011 BARO=0990[hPa] CALB=-020 RC1 CNT= 5883C –10.0[C] UABRT= 33
SA1 00:00:12 SADR=012 BARO=0980[hPa] CALB=-020 RC1 CNT= 5883B –10.4[C] UABRT= 34
SA1 00:00:13 SADR=012 BARO=----[hPa] CALB=-020 RC1 CNT= 5B096 –50.0[C] UABRT= 34
...
Content to be displayed
Type of ADC
Measured clock time
Measurement results (A/D value)
Display data
Displays the “SA1”
Displays in the range of 00:00:00 to 23:59:59
Displays in the range of 000 to FFF (in the hexadecimal format), after
“SADR=”.
Measurement results
Displays in the range of 0000 to 9999 (in the decimal format), after
(air pressure value)
“BARO =”.
Displays the "----" when the air pressure stored in EEPROM is
negative value.
Air pressure calibration value Displays in the range of -600 to 600 (in the decimal format), after “CALB =”.
Displays the type of ADC
Displays the “RC1”
Measurement results (Count value)
Displays in the range of 000000 to FFFFFF (in the hexadecimal format), after
“CNT =”.
Measurement results (Temperature value) Displays in the range of -50.0[C] to 105.0[C] (in the decimal format).
Baud rate count value
Displays in the range of 000 to FFF (in the hexadecimal format), after
“UABRT=”.
4.4.4.
Explanation of Key Operation
4.4.4.1. SA-ADC measurement
S1
S2
S3
Key
Short press
Long press
Short press
Long press
Short press
Long press
Short press
S4
Long press
Operation
No effect.
No effect.
Starts/stops SA-ADC measurement.
No effect.
Starts/stops transmission of the SA-ADC measurement result data stored in EEPROM.
- Other than during data transmission -> Starts data transmission.
- During data transmission -> Stops data transmission.
Clears all the SA-ADC measurement result data stored in EEPROM.
No effect.
It shifts to air pressure calibration.
It does not shift, when measurement temperature is the outside range of -10℃ to 40℃.
4.4.4.2. Air pressure calibration
S1
S2
Key
Short press
Long press
Short press
Long press
S3
S4
Short press
Long press
Short press
Long press
Operation
No effect.
No effect.
The air pressure value to display is increased by 1.
(A maximum is 1100hPa, or the measured air pressure, which could not be calibrated, plus
600hPa.)
No effect.
The air pressure value to display is decreased by 1.
(A minimum is 500hPa, or the measured air pressure, which could not be calibrated, minus
600hPa.)
No effect.
It shifts to the SA-ADC measurement.
No effect.
35
4.4.5.
UART Data Formats
Table 4-1 shows the data format for UART transmission in SA-ADC measurement mode
Table 4-1 SA-ADC measurement result transmission data format
0
Size
(byte)
2
Type of ADC
“SA”
2
1
Channel No.
“1”
3
4
1
2
Space
Hour data
“”
“00” to ”23”
6
1
:
“:”
7
2
Minute data
“00” to ”59”
9
1
:
“:”
10
12
13
18
21
22
2
1
5
3
1
5
Second data
Space
SADR=
A/D value
Space
BARO=
“00” to ”59”
“”
“SADR=”
“000” to ”FFF”
“”
“BARO=”
27
4
Air pressure
500 to 1100
or “----”
31
36
37
5
1
5
42
4
46
47
49
50
51
1
2
1
1
4
hPa
Space
CALB=
Air pressure
calibration value
Space
Type of ADC
Channel No.
Space
CNT=
55
6
Count value
61
62
67
70
71
77
1
5
3
1
6
3
Offset
1
80
Total
81
*Data value is text data.
Content of data
Value of data
“[hPa]”
“”
“CALB=”
Remarks
Fixed to “1”, due to the differencial
amplification input.
Insert a space as a data delimiter.
BCD format
Insert a colon “:” as a clock-time
delimiter.
BCD format
Insert a colon “:” as a clock-time
delimiter.
BCD format
Insert a space as a data delimiter.
Insert a space as a data delimiter.
BCD format
* Displays the "----" when the air pressure
stored in EEPROM is negative value.
Insert "[ hPa]" as air pressure unit.
Insert a space as a data delimiter.
-600 to 600
BCD format
Insert a space as a data delimiter.
Space
Temperature
℃
Space
UABRT=
BRT value
“”
“RC”
“1”
“”
“CNT=”
“000000”
to ”FFFFFF”
“”
-50.0 to 105.0
“[C]”
“”
“UABRT=”
“000” to ”FFF”
Line feed
“¥r”
Fixed to channel 1.
Insert a space as a data delimiter.
Insert a space as a data delimiter.
Insert "[C]" as temperature unit.
Insert a space as a data delimiter.
Insert a linefeed code to indicate the
termination of data.
36
4.5.
EEPROM Memory Map
The memory map of EEPROM in the sample program is shown below.
Address
0x0000
to
0x000E
Area name
Size
Management information storage
area
15bytes
SA-ADC measurement result
storage area
1800 bytes
(for 100
data items)
Reserve area
30953bytes
0x000F
to
0x0716
0x0717
to
0x7FFF
4.5.1.1. Management Information Storage Area
Management information is stored in the following data format.
Table 4-5
Size
(bytes)
Offset
0
11
11
2
13
2
Total
15
Management Information Storage Area Storage Data Format
Content of data
Value of data
Remarks
Signature
The number of
SA-ADC measurement
result data items that
have been stored
Reserve
“U8AmpSample”
ASCII data
0 to 65535
Binary data
0x0000
37
-
4.5.1.2. SA-ADC Measurement Result Storage Area
SA-ADC measurement results are stored successively in the following data format. In the sample program, the maximum
number of data items that can be stored in the SA-ADC measurement storage area is 100.
Table 4-6 SA-ADC Measurement Result Storage Data Format
Offset
Size
(bytes)
0
1
Type of ADC
0
1
1
Channel No.
1
2
3
4
5
1
1
1
2
Hour data
Minute data
Second data
SA-ADC value
0 to 23
0 to 59
0 to 59
“000”~”FFF”
Content of data
Value of data
Fixed to “1”, due to the differencial
amplification input.
7
2
Air pressure value
0 to 0x9999,0xFFFF
9
2
Air pressure
calibration value
0xF600 to 0x0600
11
3
RC-ADC
count value
0 to 0xFFFFFF
14
2
2
18
*Data value is binary data.
16
Remarks
Temperature value
0xF500 to 0x1050
BRT value
0 to 0xFFF
Total
38
BCD format
BCD format
BCD format
BCD format
When an air pressure calculation result is an
error, data 0xFFFF is saved. (An error is the
case where the barometer_calc function
returns value other than BARO_R_OK)
BCD format
* When air pressure calibration value is
negative, it saves so that 1 may be set to higher
4 bits and it can distinguish that it is negative.
BCD format
* The value which is multiplied by 10 is saved.
When Temperature value is negative, it saves
so that 1 may be set to higher 4 bits and it can
distinguish that it is negative.
Revision History
39
Revision History
Page
Edition
Date
2
April 16, 2010
Previous
Edition
Current
Edition
–
–
Description
Initial Edition
40