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