HT45F0005A Induction Cooker Flash MCU Features CPU Features • Operating voltage =16MHz: 3.3V~5.5V ♦ • Up to 0.25μs instruction cycle with 16MHz system clock at V • Power down and wake-up functions to reduce power consumption • Oscillator types Internal High Speed 16MHz RC – HIRC ♦...
HT45F0005A Induction Cooker Flash MCU General Description The device is a Flash Memory type 8-bit high performance RISC architecture microcontroller especially designed for induction cooker applications. For memory features, the Flash Memory offers users the convenience of multi-programming features. Other memory includes an area of RAM Data Memory as well as an area of true EEPROM memory for storage of non-volatile data such as serial numbers, calibration data etc.
2. The OCDSDA and OCDSCK pins are supplied for the OCDS dedicated pins and as such only available for the HT45V0005A device which is the OCDS EV chip for the HT45F0005A device. Pin Description The function of each pin is listed in the following table, however the details behind how each pin is configured is contained in other sections of the datasheet.
Page 11
HT45F0005A Induction Cooker Flash MCU Pin Name Function Descriptions PAPU General purpose I/O. Register enabled pull-up PAWU CMOS and wake-up PAS2 PA4/C2VO/VREF/AN4 C2VO PAS2 — CMOS Comparator 2 output (before debounce) VREF PAS2 — A/D converter external reference voltage input PAS2 —...
Page 12
HT45F0005A Induction Cooker Flash MCU Pin Name Function Descriptions PBPU CMOS General purpose I/O. Register enabled pull-up PBS2 PBS2 NMOS I C clock line PB4/SCL/PWMO/C0VO/ PWMO PBS2 — CMOS PWM output OPINN1/AN3 C0VO PBS2 — CMOS Comparator 0 output (before debounce)
HT45F0005A Induction Cooker Flash MCU Absolute Maximum Ratings Supply Voltage ......................V -0.3V to 6.0V Input Voltage ..................... V -0.3V to V +0.3V Storage Temperature ..................... -60°C to 150°C Operating Temperature ....................-40°C to 85°C Total ............................-80mA Total ............................80mA Total Power Dissipation ......................
HT45F0005A Induction Cooker Flash MCU Operating Frequency Characteristic Curve System Operating Frequency 16MHz 3.3V 5.5V Operating Voltage System Start Up Time Characteristics Ta=25°C Test Conditions Symbol Parameter Min. Typ. Max. Unit Conditions — /64, f — — System Start-up Time...
HT45F0005A Induction Cooker Flash MCU Test Conditions Symbol Parameter Min. Typ. Max. Unit Conditions Input Leakage Current or V — — ±1 μA LEAK TCn Input Pin Minimum Pulse Width — — — — Note: The R internal pull high resistance value is calculated by connecting to ground and enabling the input pin with a pull-high resistor and then measuring the pin current at the specified supply voltage level.
HT45F0005A Induction Cooker Flash MCU Test Conditions Symbol Parameter Min. Typ. Max. Unit Conditions LVD enable, voltage select LVDIN — -10% 1.23 +10% pin=1.23V — LVD enable, voltage select 2.2V — LVD enable, voltage select 2.4V Low Voltage Detection —...
HT45F0005A Induction Cooker Flash MCU Operational Amplifier Electrical Characteristics Ta=25°C Test Conditions Symbol Parameter Min. Typ. Max. Unit Conditions Additional Current for Operational No load — μA Amplifier Enable Without calibration — (OPOOF[5:0]=100000B) Input Offset Voltage With calibration — Common Mode Voltage Range —...
HT45F0005A Induction Cooker Flash MCU C Electrical Characteristics Ta=25°C Test Conditions Symbol Parameter Min. Typ. Max. Unit Conditions No clock debounce — — C Standard Mode (100kHz) f — 2 system clock debounce — — Frequency (Note) 4 system clock debounce —...
Time System Architecture A key factor in the high-performance features of the Holtek range of microcontrollers is attributed to their internal system architecture. The device takes advantage of the usual features found within RISC microcontrollers providing increased speed of operation and enhanced performance. The...
HT45F0005A Induction Cooker Flash MCU the high byte register. Reading the low byte register, PCRL, will read the low byte data of the current program execution address, and place the high byte data of the program counter into the 8-bit PCRH buffer.
Page 25
HT45F0005A Induction Cooker Flash MCU If the stack is full and an enabled interrupt takes place, the interrupt request flag will be recorded but the acknowledge signal will be inhibited. When the Stack Pointer is decremented, by RET or RETI, the interrupt will be serviced.
HT45F0005A Induction Cooker Flash MCU Arithmetic and Logic Unit – ALU The arithmetic-logic unit or ALU is a critical area of the microcontroller that carries out arithmetic and logic operations of the instruction set. Connected to the main microcontroller data bus, the ALU receives related instruction codes and performs the required arithmetic or logical operations after which the result will be placed in the specified register.
HT45F0005A Induction Cooker Flash MCU 000H Initialisation Vector 004H Interrupt Vectors 03CH n00H Look-up Table nFFH 0FFFH 16 bits Program Memory Structure Special Vectors Within the Program Memory, certain locations are reserved for the reset and interrupts. The location 000H is reserved for use by the device reset for program initialisation. After a device reset is initiated, the program will jump to this location and begin execution.
Page 28
HT45F0005A Induction Cooker Flash MCU Table Program Example The following example shows how the table pointer and table data is defined and retrieved from the microcontroller. This example uses raw table data located in the Program Memory which is stored there using the ORG statement.
The provision of Flash type Program Memory provides the user with a means of convenient and easy upgrades and modifications to their programs on the same device. As an additional convenience, Holtek has provided a means of programming the microcontroller in- circuit using a 4-pin interface. This provides manufacturers with the possibility of manufacturing their circuit boards complete with a programmed or un-programmed microcontroller, and then programming or upgrading the program at a later stage.
Induction Cooker Flash MCU On-Chip Debug Support – OCDS There is an EV chip named HT45V0005A which is used to emulate the HT45F0005A device. The EV chip device also provides an “On-Chip Debug” function to debug the real MCU device during the development process.
HT45F0005A Induction Cooker Flash MCU Special Purpose Data Memory (Sector 0 ~ Sector 1) General Purpose Data Memory (Sector 0 ~ Sector 3) Sector 0 Sector 1 Sector 2 Sector 3 Data Memory Structure Data Memory Addressing For the device that supports the extended instructions, there is no Bank Pointer for Data Memory.
HT45F0005A Induction Cooker Flash MCU Special Function Register Description Most of the Special Function Register details will be described in the relevant functional section; however several registers require a separate description in this section. Indirect Addressing Registers – IAR0, IAR1, IAR2 The Indirect Addressing Registers, IAR0, IAR1 and IAR2, although having their locations in normal RAM register space, do not actually physically exist as normal registers.
HT45F0005A Induction Cooker Flash MCU Example 2 data .section ‘data’ adres1 db ? adres2 db ? adres3 db ? adres4 db ? block db ? code .section at 0 ‘code’ org 00h start: mov a, 04h ; setup size of block...
HT45F0005A Induction Cooker Flash MCU Program Counter Low Register – PCL To provide additional program control functions, the low byte of the Program Counter is made accessible to programmers by locating it within the Special Purpose area of the Data Memory. By manipulating this register, direct jumps to other program locations are easily implemented.
HT45F0005A Induction Cooker Flash MCU In addition, on entering an interrupt sequence or executing a subroutine call, the status register will not be pushed onto the stack automatically. If the contents of the status register are important and if the subroutine can corrupt the status register, precautions must be taken to correctly save it.
HT45F0005A Induction Cooker Flash MCU EEPROM Data Memory Structure The EEPROM Data Memory capacity is 128×8 bits for the device. Unlike the Program Memory and RAM Data Memory, the EEPROM Data Memory is not directly mapped into memory space and is therefore not directly addressable in the same way as the other types of memory.
Page 38
HT45F0005A Induction Cooker Flash MCU Bit 6 EREN: Data EEPROM erase enable 0: Disable 1: Enable This bit is used to enable Data EEPROM erase function and must be set high before Data EEPROM erase operations are carried out. This bit will be automatically reset to zero by hardware after the erase cycle has finished.
HT45F0005A Induction Cooker Flash MCU Read Operation from the EEPROM Reading data from the EEPROM can be implemented by two modes for this device, byte read mode or page read mode, which is controlled by the EEPROM operation mode selection bit, MODE, in the EEC register.
HT45F0005A Induction Cooker Flash MCU For page erase operations the start address of the desired EEPROM page should first be placed in the EEA register and the dummy data to be written should be placed in the EED register. The maximum data length for a page is 16 bytes.
HT45F0005A Induction Cooker Flash MCU write enable control bit, namely WREN, is changed from “1” to “0”, the internal page buffer will also be cleared. Note that when the WREN bit is changed from “0” to “1”, the internal page buffer will not be cleared.
HT45F0005A Induction Cooker Flash MCU Programming Considerations Care must be taken that data is not inadvertently written to the EEPROM. Protection can be enhanced by ensuring that the Write Enable bit is normally cleared to zero when not writing. Also the Memory Pointer high byte register, MP1H or MP2H, could be normally cleared to zero as this would inhibit access to Sector 1 where the EEPROM control register exists.
Page 43
HT45F0005A Induction Cooker Flash MCU JMP BACK MOV A, EED ; move read data to register MOV READ_DATA, A PAGE_READ_FINISH: CLR IAR1 ; disable EEPROM read function CLR MP1H Erasing a Data Page to the EEPROM − polling method MOV A, 040H ; setup memory pointer low byte MP1L MOV MP1L, A ; MP1 points to EEC register MOV A, 01H ; setup memory pointer high byte MP1H MOV MP1H, A SET IAR1.4 ; set MODE bit, select page operation mode MOV A, EEPROM_ADRES ; user defined address MOV EEA, A ; ~~~~ The data length can be up to 16 bytes (Start) ~~~~ CALL WRITE_BUF CALL WRITE_BUF JMP Erase_START ; ~~~~ The data length can be up to 16 bytes (End) ~~~~...
Page 44
HT45F0005A Induction Cooker Flash MCU Writing a Data Byte to the EEPROM – polling method MOV A, 040H ; setup memory pointer low byte MP1L MOV MP1L, A ; MP1 points to EEC register MOV A, 01H ; setup memory pointer high byte MP1H MOV MP1H, A CLR IAR1.4 ; clear MODE bit, select byte operation mode MOV A, EEPROM_ADRES ; user defined address MOV EEA, A MOV A, EEPROM_DATA ; user defined data MOV EED, A CLR EMI SET IAR1.3 ; set WREN bit, enable write operations SET IAR1.2 ; start Write Cycle – set WR bit – executed immediately ; after setting WREN bit SET EMI BACK: SZ IAR1.2 ; check for write cycle end...
HT45F0005A Induction Cooker Flash MCU Oscillators Various oscillator options offer the user a wide range of functions according to their various application requirements. The flexible features of the oscillator functions ensure that the best optimisation can be achieved in terms of speed and power saving. Oscillator selections and operation are selected through the application program by using some control registers.
As Holtek has provided the device with both high and low speed clock sources and the means to switch between them dynamically, users can optimise the operation of their microcontroller to achieve the best performance/power ratio.
HT45F0005A Induction Cooker Flash MCU High Speed Oscillator HIRC IDLE0 Prescaler SLEEP HIRCEN Low Speed Oscillator CKS2~CKS0 LIRC IDLE2 SLEEP LIRC Prescaler Timers CLKSEL[1:0] Device Clock Configurations Note: When the system clock source f is switched to f from f...
HT45F0005A Induction Cooker Flash MCU FAST Mode This is one of the main operating modes where the microcontroller has all of its functions operational and where the system clock is provided the high speed oscillator. This mode operates allowing the microcontroller to operate normally with a clock source from the HIRC high speed oscillator.
Page 49
HT45F0005A Induction Cooker Flash MCU • SCC Register Name CKS2 CKS1 CKS0 — — — FHIDEN FSIDEN — — — — — — Bit 7~5 CKS2~CKS0: System clock selection 000: f 001: f 010: f 011: f 100: f 101: f...
HT45F0005A Induction Cooker Flash MCU Operating Mode Switching The device can switch between operating modes dynamically allowing the user to select the best performance/power ratio for the present task in hand. In this way microcontroller operations that do not require high performance can be executed using slower clocks thus requiring less operating current and prolonging battery life in portable applications.
Page 51
HT45F0005A Induction Cooker Flash MCU FAST Mode CKS2~CKS0=111 SLOW Mode FHIDEN=0, FSIDEN=0 HALT instruction is executed SLEEP Mode FHIDEN=0, FSIDEN=1 HALT instruction is executed IDLE0 Mode FHIDEN=1, FSIDEN=1 HALT instruction is executed IDLE1 Mode FHIDEN=1, FSIDEN=0 HALT instruction is executed...
Page 52
HT45F0005A Induction Cooker Flash MCU Entering the SLEEP Mode There is only one way for the device to enter the SLEEP Mode and that is to execute the “HALT” instruction in the application program with both the FHIDEN and FSIDEN bits in the SCC register equal to “0”.
HT45F0005A Induction Cooker Flash MCU • The I/O ports will maintain their present conditions. • In the status register, the Power Down flag, PDF, will be set and the Watchdog time-out flag, TO, will be cleared. • The WDT will be cleared and resume counting as the WDT function is always enabled.
HT45F0005A Induction Cooker Flash MCU Watchdog Timer The Watchdog Timer is provided to prevent program malfunctions or sequences from jumping to unknown locations, due to certain uncontrollable external events such as electrical noise. Watchdog Timer Clock Source The Watchdog Timer clock source is provided by the internal clock, f...
HT45F0005A Induction Cooker Flash MCU Bit 0 WRF: WDT Control register software reset flag 0: Not occurred 1: Occurred This bit is set high by the WDT Control register software reset and cleared by the application program. Note that this bit can only be cleared to zero by the application program.
HT45F0005A Induction Cooker Flash MCU Reset and Initialisation A reset function is a fundamental part of any microcontroller ensuring that the device can be set to some predetermined condition irrespective of outside parameters. The most important reset condition is after power is first applied to the microcontroller. In this case, internal circuitry will ensure that the microcontroller, after a short delay, will be in a well-defined state and ready to execute the first program instruction.
Page 57
HT45F0005A Induction Cooker Flash MCU RSTD Internal Reset Low Voltage Reset Timing Chart • Low Voltage Reset Registers The LVRC and TLVRC registers are used to control the Low Voltage Reset function. Register Name LVRC LVS7 LVS6 LVS5 LVS4 LVS3...
Page 58
HT45F0005A Induction Cooker Flash MCU • RSTFC Register Name — — — — — LVRF — — — — — — — — — — “x”: Unknown Bit 7~3 Unimplemented, read as “0” LVRF: LVR function reset flag Bit 2...
HT45F0005A Induction Cooker Flash MCU Reset Initial Conditions The different types of reset described affect the reset flags in different ways. These flags, known as PDF and TO are located in the status register and are controlled by various microcontroller operations, such as the SLEEP or IDLE Mode function or Watchdog Timer.
Page 60
HT45F0005A Induction Cooker Flash MCU Power On WDT Time-out WDT Time-out Register Reset (Normal Operation) (IDLE/SLEEP) - - - 1 1 1 1 1 - - - 1 1 1 1 1 - - - u u u u u...
Page 61
HT45F0005A Induction Cooker Flash MCU Power On WDT Time-out WDT Time-out Register Reset (Normal Operation) (IDLE/SLEEP) CMP0DLY - - 0 0 0 0 0 0 - - 0 0 0 0 0 0 - - u u u u u u...
“-” stands for unimplemented Input/Output Ports Holtek microcontrollers offer considerable flexibility on their I/O ports. With the input or output designation of every pin fully under user program control, pull-high selections for all ports and wake-up selections on certain pins, the user is provided with an I/O structure to meet the needs of a wide range of application possibilities.
HT45F0005A Induction Cooker Flash MCU Pull-high Resistors Many product applications require pull-high resistors for their switch inputs usually requiring the use of an external resistor. To eliminate the need for these external resistors, all I/O pins, when configured as a digital input have the capability of being connected to an internal pull-high resistor.
HT45F0005A Induction Cooker Flash MCU However, it should be noted that the program will in fact only read the status of the output data latch and not the actual logic status of the output pin when the IECM is set to “0”.
HT45F0005A Induction Cooker Flash MCU • IFS Register Name — IFS4 IFS3 IFS2 IFS1 IFS0 — — Bit 7 Unimplemented, read as “0” Bit 6~5 D6~D5: Reserved, must be fixed at “0” Bit 4 IFS4: TC1 input source pin selection...
HT45F0005A Induction Cooker Flash MCU READ PORT Function The READ PORT function is used to manage the reading of the output data from the data latch or I/O pin, which is specially designed for the IEC 60730 self-diagnostic test on the I/O function and A/D paths.
HT45F0005A Induction Cooker Flash MCU Digital Output Function READ PORT function enabled, A/D Converter AN0 Pin-shared path switched on automatically AN13 External analog input channel selection A/D Channel Input Path Internally Connection Programming Considerations Within the user program, one of the first things to consider is port initialisation. After a reset, all of the I/O data and port control registers will be set high.
Page 72
HT45F0005A Induction Cooker Flash MCU CLKSEL[1:0] T0PSC2~ T0PSC0 Prescaler Data bus T0M1 Reload 8-bit Timer/Event Counter T0M0 Preload Register C0VOD T0EG T0ECS Pulse Width 8-bit Timer/Event Overflow to T0M1~T0M0 Measurement Counter (TMR0) Interrupt Mode Control T0ON Note: The C0VOD is sourced from the Comparator 0 output (after debounce).
Page 75
D7~D0: Timer/Event Counter n preload register bit 7 ~ bit 0 Timer/Event Counter Control Registers – TMR0C, TMR1C, TMR2C, TMR3C0/TMR3C1 The flexible features of the Holtek microcontroller Timer/Event Counters enable them to operate in several different modes, the options of which are determined by the contents of their respective control registers.
Page 76
HT45F0005A Induction Cooker Flash MCU In addition, the T3RSEN bit in the TMR3C1 register is only available for the Timer/Event Counter 3 and related to the PPG retrigger function mode configuration. • TMR0C Register Name T0M1 T0M0 T0ECS T0ON T0EG...
Page 77
HT45F0005A Induction Cooker Flash MCU Bit 4 T1ON: Timer/Event Counter 1 counting enable control 0: Disable 1: Enable T1EG: Timer/Event Counter 1 active edge selection Bit 3 In Event Counter Mode: 0: Count on rising edge 1: Count on falling edge...
HT45F0005A Induction Cooker Flash MCU Timer/Event Counter Operating Modes The Timer/Event Counters can operate in different operating modes, any in the timer mode, the event counter mode, the pulse width measurement mode, the PPG non-retrigger function mode or the PPG retrigger function mode. The operating mode is selected using the TnM1~TnM0 bits in the TMRnC register or the T3M1~T3M0 bits in the TMR3C0 register.
Page 80
HT45F0005A Induction Cooker Flash MCU continue counting. The interrupt can be disabled by ensuring that the Timer/Event Counter 0/1/3 interrupt enable bit in the corresponding interrupt control register is reset to zero. It should be noted that in the event counter mode, even if the microcontroller is in the SLEEP or...
Page 81
HT45F0005A Induction Cooker Flash MCU It should be noted that in this mode the Timer/Event Counter 0/1/3 is controlled by logical transitions on the TC0 pin or C0VOD signal, the TC1 pin, and the C0VOD signal and not by the logic level.
HT45F0005A Induction Cooker Flash MCU When the Timer/Event Counter is read, or if data is written to the preload register, the clock is inhibited to avoid errors, however as this may result in a counting error, this should be taken into account by the programmer.
HT45F0005A Induction Cooker Flash MCU Analog to Digital Converter The need to interface to real world analog signals is a common requirement for many electronic systems. However, to properly process these signals by a microcontroller, they must first be converted into digital signals by A/D converters. By integrating the A/D conversion electronic circuitry into the microcontroller, the need for external components is reduced significantly with the corresponding follow-on benefits of lower costs and reduced component space requirements.
HT45F0005A Induction Cooker Flash MCU A/D Converter Register Description Overall operation of the A/D converter is controlled using a series of registers. A read only register pair exists to store the A/D converter data 12-bit value. The remain two control registers which setup the operating conditions and control function of the A/D converter.
Page 86
HT45F0005A Induction Cooker Flash MCU • SADC0 Register Name START ADBZ ADCEN ADRFS SACS3 SACS2 SACS1 SACS0 Bit 7 START: Start the A/D conversion 0→1→0: Start A/D conversion This bit is used to initiate an A/D conversion process. The bit is normally low but if set high and then cleared low again, the A/D converter will initiate a conversion process.
HT45F0005A Induction Cooker Flash MCU Bit 4~3 SAVRS1~SAVRS0: A/D converter reference voltage selection 00: External VREF pin input 01: Internal A/D converter power, V 1x: External VREF pin input These bits are used to select the A/D converter reference voltage. When the internal A/D converter power is selected as the reference voltage, the hardware will automatically disconnect the external VREF input.
HT45F0005A Induction Cooker Flash MCU The SAINS2~SAINS0 bits in the SADC1 register are used to determine whether the analog signal to be converted comes from an external channel input or internal analog signal. The SACS3~SACS0 bits in the SADC0 register are used to determine which external channel input is selected to be converted.
HT45F0005A Induction Cooker Flash MCU A/D Conversion Rate and Timing Diagram A complete A/D conversion contains two parts, data sampling and data conversion. The data sampling which is defined as t takes 4 A/D conversion clock cycles and the data conversion takes 12 A/D converter clock cycles.
HT45F0005A Induction Cooker Flash MCU • Step 5 If the A/D input signal is selected to come from the internal analog signal by configuring the SAINS2~SAINS0 and the external channel analog signal input will be automatically switched off regardless of the SACS3~SACS0 bits value. After this step, go to Step 6.
HT45F0005A Induction Cooker Flash MCU 1.5 LSB FFFH FFEH FFDH A/D Conversion Result 0.5 LSB 4096 4093 4094 4095 4096 Analog Input Voltage Ideal A/D Conversion Function A/D Converter Programming Examples The following two programming examples illustrate how to setup and implement an A/D conversion.
Page 92
HT45F0005A Induction Cooker Flash MCU Example 2: using the interrupt method to detect the end of conversion clr ADE ; disable ADC interrupt mov a,0Bh ; select f /8 as A/D clock and A/D input signal ; comes from external channel mov SADC1,a ; select VDD as A/D reference voltage source...
HT45F0005A Induction Cooker Flash MCU C Interface The I C interface is used to communicate with external peripheral devices such as sensors, EEPROM memory etc. Originally developed by Philips, it is a two line low speed serial interface for synchronous serial data transfer. The advantage of only two lines for communication, relatively simple communication protocol and the ability to accommodate multiple devices on the same bus has made it an extremely popular interface type for many applications.
HT45F0005A Induction Cooker Flash MCU START signal from Master Send slave address and R/W bit from Master Acknowledge from slave Send data byte from Master Acknowledge from slave STOP signal from Master C Interface Operation The IICDEB1 and IICDEB0 bits determine the debounce time of the I C interface.
Page 95
HT45F0005A Induction Cooker Flash MCU C Data Register The IICD register is used to store the data being transmitted and received. Before these devices write data to the I C bus, the actual data to be transmitted must be placed in the IICD register. After the data is received from the I C bus, these devices can read it from the IICD register.
Page 96
HT45F0005A Induction Cooker Flash MCU Bit 1 IICEN: I C enable control 0: Disable 1: Enable The bit is the overall on/off control for the I C interface. When the IICEN bit is cleared to zero to disable the I...
HT45F0005A Induction Cooker Flash MCU Bit 1 IAMWU: I C address match wake-up control 0: Disable 1: Enable This bit should be set to 1 to enable the I C address match wake-up from the SLEEP or IDLE Mode. If the IAMWU bit has been set before entering either the SLEEP or...
Page 98
HT45F0005A Induction Cooker Flash MCU Start Configure the pin-shared I/O ports to I C function Set IICEN Write Slave Address to IICA C Bus Interrupt ? CLR IICE SET IICE Poll IICF to decide Wait for Interrupt when to go to I...
Page 99
HT45F0005A Induction Cooker Flash MCU C Bus Slave Address Acknowledge Signal After the master has transmitted a calling address, any slave device on the I C bus, whose own internal address matches the calling address, must generate an acknowledge signal. The acknowledge signal will inform the master that a slave device has accepted its calling address.
HT45F0005A Induction Cooker Flash MCU Start IICTOF=1? SET IICTOEN HAAS=1? CLR IICTOF HTX=1? SRW=1? RETI Read from IICD to CLR HTX release SCL Line SET HTX CLR TXAK RETI Write data to IICD to Dummy read from IICD release SCL Line...
Page 101
HT45F0005A Induction Cooker Flash MCU When an I C time-out counter overflow occurs, the counter will stop and the IICTOEN bit will be cleared to zero and the IICTOF bit will be set high to indicate that a time-out condition has occurred.
HT45F0005A Induction Cooker Flash MCU Programmable Pulse Generator – PPG The device includes a Programmable Pulse Generator, PPG, which privdes a 9-bit PPG output channel. The PPG has a programmable period of 512×T, where T is 1/f or 2/f for an output pulse width.
HT45F0005A Induction Cooker Flash MCU The PPG consists of a PPG control circuit, a PPGTIMER counter, a PPG counter and a PPG output control. The PPG counter consists of a 9-bit up-counter timer, two sets of 9-bit counter preload data registers and two sets of 9-bit counter approach registers.
Page 104
HT45F0005A Induction Cooker Flash MCU • PPGC0 Register Name PRSEN OVCEN — C5PSPEN C3PSPEN C2PSPEN C1PSPEN — — Bit 7 PST: PPG software trigger bit 0: Stop PPG 1: Restart PPG The PST is a software trigger bit, if this bit is set to “1” the PPG counter will start counting and this bit will be cleared to zero when a PPG counter overflow occurs or when the PPG counter stop counting.
Page 105
HT45F0005A Induction Cooker Flash MCU Bit 1 C2PSPEN: Stop the PPG counter using the C2VOD falling edge trigger input enable control 0: Disable 1: Enable When stopping the PPG counter using the C2VOD trigger input is disabled, the PPG module output can be stopped by the software control bit, PST, only. When stopping...
Page 106
HT45F0005A Induction Cooker Flash MCU • PPGC2 Register Name — — — PPGDEC3 PPGDEC2 PPGDEC1 PPGDEC0 — — — — — — Bit 7~5 Unimplemented, read as “0” Bit 4 DVS: PPGTA reverse voltage increment period selection 0: Every 8/f 1: Every 16/f When the C1VOD signal is low and PPGDEC[3:0]≠0000, the PPGTA is...
Page 107
HT45F0005A Induction Cooker Flash MCU This bit is only valid when PPGSAMD=0. Since the pulse width approach operation is controlled by hardware when PPGSAMD=1, a software write is invalid. PPGSAEN PPGSAMD Software Write Hardware Write Read “x”: Don’t care Bit 6...
Page 108
HT45F0005A Induction Cooker Flash MCU • PPGATC1 Register Name PPGHTMD — — PPGCNT1 PPGCNT0 PPGSA2 PPGSA1 PPGSA0 — — — — Bit 7 PPGHTMD: PPGTIMER counter trigger source selection in the hardware approach mode 0: C4VOD rising 1: PPGTON Bit 6~5 Unimplemented, read as “0”...
Page 109
HT45F0005A Induction Cooker Flash MCU Bit 1~0 PPGASA1~PPGASA0: PPGTA approach value change selection – change N value 00: Unchanged 01: Unchanged 10: +1 11: -1 Note: 1. When PPGSA[2:0]=000/111, the PPGSA[2:0] bits will not increase or decrease according to PPGASA[1:0] and will be fixed to at 000 or 111.
Page 110
HT45F0005A Induction Cooker Flash MCU • PPGTEX Register Name — PPGTD8 — PPGTB8 — PPGTC8 — PPGTA8 — — — — — — — — “x”: Unknown Bit 7 Unimplemented, read as “0” PPGTD8: PPG counter approach register D bit 8...
HT45F0005A Induction Cooker Flash MCU Bit 1~0 PPGTPSC1~PPGTPSC0: PPGTIMER prescaler rate selection 00: f /128 01: f /256 10: f /512 11: f /1024 • PPGTMR1 Register Name Bit 7~0 D7~D0: PPGTIMER preload register T1 bit 7 ~ bit 0 •...
HT45F0005A Induction Cooker Flash MCU Non-retrigger Function The PPG unit has a non-retrigger function to inhibit further PPG triggers. The PPG will be non- triggered by one of the following conditions: • PPG is active • During the non-retrigger period which starts counting once the PPG has stopped. Only available...
HT45F0005A Induction Cooker Flash MCU The PPG output waveforms, after the non-retrigger and retrigger functions are used, are shown below. PPGOUT Non-retrigger Timer (Timer/Event Counter 2) Re-trigger Timer (Timer/Event Counter 3) PPGOUT (New) (A) PPG is not triggered because it is in the non-triggered period.
HT45F0005A Induction Cooker Flash MCU Example 2: Since the first trigger type is a rising edge after the PPG starts, the PPG counter is triggered by a rising edge until the PPG stops. PPG Clock Start Trigger PPG Pulse < 0.5×t...
HT45F0005A Induction Cooker Flash MCU The Methods to Start PPG Output The methods to start PPG output, which can be divided into software starting and hardware starting. There are three kinds of hardware starting signals, namely synchronization signal starting signal (C0INT00INT) and TM timer timing start signal (PPGRTG).
Page 116
HT45F0005A Induction Cooker Flash MCU The CnPSPEN bits are the PPG stopping enable or disable bits using the CnVOD(n=1/2/3/5) trigger input. If these bits are enabled, the PPG timer stopping input can be triggered by a CnVOD(n=1/2/3/5) falling edge. The PRSEN bit will be cleared to zero by a CnVOD(n=1/2/3/5) falling edge, no matter whether the PPG is in an active period or not.
HT45F0005A Induction Cooker Flash MCU Hardware Setting Set the CnRLEN(n=1/3/5) bit to “1”. When the CnVOD signal changes from high to low, it will generate a falling edge trigger signal and the PPG output signal will be changed from the original PPGTA to PPGTB.
Page 119
HT45F0005A Induction Cooker Flash MCU Step 1. Set the PPG trigger times and the approach value by configuring the PPGACNT[1:0] and PPGASA[2:0] bits the PPGATC1 register respectively. Step 2. Select after how many times to adjust the PPG trigger times and the approach value by setting the PPGTIMES[2:0] bits in PPGATC2 register.
Page 120
HT45F0005A Induction Cooker Flash MCU In the t1~t2 interval, when PPGTA is equal to PPGTC, the PPGACF bit will be set to 1 by the hardware. Note that the PPGACF bit can be cleared by the software, but it cannot set high by the software. When PPGACF=1, the software does not clear this bit to zero, it also can be automatically clear to zero by the hardware when the next C4VOD rising edge or PPGTON bit changes from 0 to 1 occurs.
Page 121
HT45F0005A Induction Cooker Flash MCU Step 9. If the PPGATCD interrupt is used, the interrupt control registers must be correctly configured to ensure the PPGATCD interrupt function is active. The master interrupt control bit, EMI, the PPGATCD interrupt control bit, PPGATCDE, and associated Multi-function interrupt enable bit must be set high in advance.
Page 122
HT45F0005A Induction Cooker Flash MCU Signals/ C0INT00INT C4VOD PPGSAEN PPGADJF PPGTMMD[1:0] PPGTON PPGTA[8:0] PPGTC[8:0] PPGTD[8:0] PPGACF PPGADF Bits t2~t3 t3~t0 Note: 1. If the PPGTC/PPGTD is larger than PPGTA, the PPGTA increases to approach PPGTC/PPGTD. When the PPGTC/PPGTD minus PPGTA is less than PPGSA, the PPGTA will add the PPGSA value after PPG being triggered.
Page 123
HT45F0005A Induction Cooker Flash MCU Zero crossing Zero crossing Zero crossing by Software by Software by Software CMP4DA Code C4VOD PPGTON PPGADJF PPGTMMD[1:0] PPGTIMER PPGTMR1 PPGTMR2 PPGTMR3 PPGTMR1 PPGTMR2 PPGTMR3 Counter PPGTC PPGTC (New) PPGTD (New) PPGTA PPGTD PPGTA (New)
HT45F0005A Induction Cooker Flash MCU Comparators The device has six integrated comparators, known as CMP0~CMP5. Five of the comparators, CMP1~CMP5, which have a D/A converter, are used for over voltage protection functions, which provide protection mechanisms or generate output signals for different applications, such as over voltage detection, surge voltage detection, over current detection (valley detection) and zero crossing detection.
HT45F0005A Induction Cooker Flash MCU Comparator Registers The overall operation of the internal comparators is controlled using a series of registers. Register Name CMP0C0 C0CMPOP C0COFM C0COF5 C0COF4 C0COF3 C0COF2 C0COF1 C0COF0 CMP0C1 C0EN C0HYSON1 C0HYSON0 TRGMOD C0VOINV INTS C0CRS1...
Page 126
HT45F0005A Induction Cooker Flash MCU Bit 2 INTS: INT00 source selection 0: PPGIN 1: C0VO Bit 1~0 C0CRS1~C0CRS0: Comparator 0 offset voltage calibration reference input selection 00: Comparator 0 negative input is selected 01: Comparator 0 positive input is selected...
Page 127
HT45F0005A Induction Cooker Flash MCU • CMPnC0 Register (n=1~5) Name CnCMPOP CnCOFM CnCRS CnCOF4 CnCOF3 CnCOF2 CnCOF1 CnCOF0 Bit 7 CnCMPOP: Comparator n digital output 0: Positive input voltage < negative input voltage 1: Positive input voltage > negative input voltage...
Page 128
HT45F0005A Induction Cooker Flash MCU • CMPnC1 Register – (n=1~3, 5) Name CnEN CnHYSON1 CnHYSON0 CnVOD CnVOINV CnDB2 CnDB1 CnDB0 Bit 7 CnEN: Comparator n enable control 0: Disable 1: Enable If this bit is cleared to “0”, the Comparator n and D/A Converter n will be switched off and no power will be consumed.
Page 129
HT45F0005A Induction Cooker Flash MCU Bit 3~2 C2CTL1~C2CTL0: Comparator 2 input selection 00: Select DAC2 as negative input and CP2P as positive input 01: Select CP2N as negative input and DAC2 as positive input 1x: Select CP2N as negative input and CP2P as positive input Bit 1 Unimplemented, read as “0”...
HT45F0005A Induction Cooker Flash MCU Comparator Input Offset Calibration Function (n=0, m=5; n=1~5, m=4) The comparator n includes an input offset calibration function. The calibrated data is stored in the CnCOF[m:0] bits. The CnCOFM is the calibration mode control bit and the CnCRS or C0CRS[1:0] is used to indicate the input reference voltage source in the calibration mode.
HT45F0005A Induction Cooker Flash MCU C3DA CP3N C0VO C0DBC[5:0] INT0S C3CMP0P C3DB C3VOD C3LEBD C3LD[5:0] CMP3INT (C3IS=0) CMP3INT (C3IS=1) Note: It is recommended to change the C3IS and C3LEBEN bit settings between two PPG triggers (within the PPG active+non-retrigger duration) to avoid unpredictable states of comparator 3 output.
Page 132
HT45F0005A Induction Cooker Flash MCU Operational Amplifier Registers The internal Operational Amplifier normal operation and input offset voltage calibration function are controlled by three registers. The OPS register is used to control the switches on or off. The OPC register is used to control the OPAMP function enable or disable and select the gain. The OPO bit together with the OPOCAL register are used in the offset calibration procedure.
HT45F0005A Induction Cooker Flash MCU Step 1. Set OPOOFM=1 and OPORSP=1, the OPAMP is now under offset calibration mode. To make sure V as minimal as possible after calibration, the input reference voltage in calibration should be the same as the input DC operating voltage in normal mode operation.
HT45F0005A Induction Cooker Flash MCU • PWMC Register Name PWMEN1 PWMEN0 — — — PWMPSC2 PWMPSC1 PWMPSC0 — — — — — — Bit 7~6 PWMEN1~PWMEN0: PWM enable control 00: Disable, output low 01: Disable, output high 1x: Enable Note that after the PWMEN[1:0] bits are enabled, the first PWM modulation cycle period and duty may not match the expected waveform.
Page 136
HT45F0005A Induction Cooker Flash MCU overall PWM cycle frequency is f /256. However, when in the (6+2) mode the PWM modulation frequency will be f /64. (6+2) Bits PWM Mode Modulation A (6+2) bits mode PWM cycle is divided into four modulation cycles, which are named as Modulation cycle 0 ~ Modulation cycle 3.
HT45F0005A Induction Cooker Flash MCU Peripheral Clock Output The Peripheral Clock Output allows the device to supply external hardware with a clock signal synchronised to the microcontroller clock. PCKEN Prescaler 0000 0001 0010 0011 Output 0100 Polarity Control 0101 /2048...
HT45F0005A Induction Cooker Flash MCU Bit 6 PCKD: PCK output control 0: Inactive 1: Active This bit is used to control the PCK output active or inactive. If this bit is cleared to zero, the PCK output status is determined by the PCKPOL bit.
HT45F0005A Induction Cooker Flash MCU Register Name CRCDL CRCDH CRC Register List • CRCCR Register Name — — — — — — — POLY — — — — — — — — — — — — — — Bit 7~1 Unimplemented, read as “0”...
Page 140
HT45F0005A Induction Cooker Flash MCU CRC Computation Each write operation to the CRCIN register creates a combination of the previous CRC value stored in the CRCDH and CRCDL registers and the new data input. The CRC unit calculates the CRC data register value is based on byte by byte.
HT45F0005A Induction Cooker Flash MCU 4. Write the table data low byte into the CRCIN register and execute the CRC calculation with the current CRCSUM value. Then a new CRCSUM result will be obtained and stored in the CRC checksum register pair, CRCDH and CRCDL.
HT45F0005A Induction Cooker Flash MCU Note that the Bandgap circuit is enabled when the LVD or LVR function is enabled or when the VBGEN bit is set high. VLVD2~VLVD0: LVD voltage selection Bit 2~0 000: V ≤1.23V LVDIN 001: 2.2V 010: 2.4V...
HT45F0005A Induction Cooker Flash MCU Interrupts Interrupts are an important part of any microcontroller system. When an internal function such as a Timer or an A/D converter requires microcontroller attention, their corresponding interrupt will enforce a temporary suspension of the main program allowing the microcontroller to direct attention to their respective needs.
Page 144
HT45F0005A Induction Cooker Flash MCU Each register contains a number of enable bits to enable or disable individual registers as well as interrupt flags to indicate the presence of an interrupt request. The naming convention of these follows a specific pattern. First is listed an abbreviated interrupt type, then the (optional) number of that interrupt followed by either an “E”...
Page 145
HT45F0005A Induction Cooker Flash MCU Bit 2 CP1E: Comparator 1 interrupt control 0: Disable 1: Enable Bit 1 CP4E: Comparator 4 interrupt control 0: Disable 1: Enable Bit 0 EMI: Global interrupt control 0: Disable 1: Enable • INTC1 Register...
Page 146
HT45F0005A Induction Cooker Flash MCU Bit 4 LVF: LVD interrupt request flag 0: No request 1: Interrupt request Bit 3 DEE: Data EEPROM interrupt control 0: Disable 1: Enable Bit 2 CP5E: Comparator 5 interrupt control 0: Disable 1: Enable...
Page 147
HT45F0005A Induction Cooker Flash MCU • MFI0 Register Name — — CP0F PPGATCDF — — CP0E PPGATCDE — — — — — — — — Bit 7~6 Unimplemented, read as “0” Bit 5 CP0F: Comparator 0 interrupt request flag 0: No request...
Page 148
HT45F0005A Induction Cooker Flash MCU • MFI2 Register Name — — — — — — — — — — — — Bit 7~6 Unimplemented, read as “0” Bit 5 T3F: Timer/Event Counter 1 interrupt request flag 0: No request 1: Interrupt request Note that this bit must be cleared to zero by the application program when the interrupt is serviced.
HT45F0005A Induction Cooker Flash MCU Interrupt Operation When the conditions for an interrupt event occur, such as a Timer/Event Counter n overflow or A/D conversion completion etc., the relevant interrupt request flag will be set. Whether the request flag actually generates a program jump to the relevant interrupt vector is determined by the condition of the interrupt enable bit.
HT45F0005A Induction Cooker Flash MCU the interrupt is enabled, the stack is not full and the comparator 1~5 inputs generate a comparator output transition, a subroutine call to the comparator 1~5 interrupt vectors, will take place. When the interrupt is serviced, the comparator 1~5 interrupt request flags, CP1F~CP5F, will be automatically reset and the EMI bit will be automatically cleared to disable other interrupts.
HT45F0005A Induction Cooker Flash MCU EEPROM Interrupt An EEPROM interrupt request will take place when the EEPROM interrupt request flag, DEF, is set, which occurs when an EEPROM erase or write cycle ends. To allow the program to branch to its respective interrupt vector address, the global interrupt enable bit, EMI, and EEPROM interrupt enable bit, DEE, must first be set.
HT45F0005A Induction Cooker Flash MCU PPGATCD Interrupt The PPGATCD interrupt is contained within the Multi-function interrupt. A PPGATCD interrupt request will take place when the PPGATCD interrupt request flag, PPGATCDF, is set, a situation that will occur when the PPGTA approaches PPGTC/PPGTD has completed. To allow the program...
In the case of Holtek microcontroller, a comprehensive and flexible set of over 60 instructions is provided to enable programmers to implement their application with the minimum of programming overheads.
The standard logical operations such as AND, OR, XOR and CPL all have their own instruction within the Holtek microcontroller instruction set. As with the case of most instructions involving data manipulation, data must pass through the Accumulator which may involve additional programming steps.
HT45F0005A Induction Cooker Flash MCU Instruction Set Summary The instructions related to the data memory access in the following table can be used when the desired data memory is located in Data Memory sector 0. Table Conventions x: Bits immediate data...
Page 157
HT45F0005A Induction Cooker Flash MCU Mnemonic Description Cycles Flag Affected Data Move MOV A,[m] Move Data Memory to ACC None MOV [m],A Move ACC to Data Memory Note None MOV A,x Move immediate data to ACC None Bit Operation CLR [m].i...
HT45F0005A Induction Cooker Flash MCU Extended Instruction Set The extended instructions are used to support the full range address access for the data memory. When the accessed data memory is located in any data memory sector except sector 0, the extended instruction can be used to directly access the data memory instead of using the indirect addressing access.
Page 159
HT45F0005A Induction Cooker Flash MCU Mnemonic Description Cycles Flag Affected Branch LSZ [m] Skip if Data Memory is zero Note None LSZA [m] Skip if Data Memory is zero with data movement to ACC Note None LSNZ [m] Skip if Data Memory is not zero...
HT45F0005A Induction Cooker Flash MCU Instruction Definition ADC A,[m] Add Data Memory to ACC with Carry Description The contents of the specified Data Memory, Accumulator and the carry flag are added. The result is stored in the Accumulator. Operation ACC ← ACC + [m] + C...
Page 161
HT45F0005A Induction Cooker Flash MCU ANDM A,[m] Logical AND ACC to Data Memory Description Data in the specified Data Memory and the Accumulator perform a bitwise logical AND operation. The result is stored in the Data Memory. Operation [m] ← ACC “AND” [m]...
Page 162
HT45F0005A Induction Cooker Flash MCU DAA [m] Decimal-Adjust ACC for addition with result in Data Memory Description Convert the contents of the Accumulator value to a BCD (Binary Coded Decimal) value resulting from the previous addition of two BCD variables. If the low nibble is greater than 9 or if AC flag is set, then a value of 6 will be added to the low nibble.
Page 163
HT45F0005A Induction Cooker Flash MCU JMP addr Jump unconditionally Description The contents of the Program Counter are replaced with the specified address. Program execution then continues from this new address. As this requires the insertion of a dummy instruction while the new address is loaded, it is a two cycle instruction.
Page 164
HT45F0005A Induction Cooker Flash MCU Return from subroutine Description The Program Counter is restored from the stack. Program execution continues at the restored address. Operation Program Counter ← Stack Affected flag(s) None RET A,x Return from subroutine and load immediate data to ACC...
Page 165
HT45F0005A Induction Cooker Flash MCU RLCA [m] Rotate Data Memory left through Carry with result in ACC Description Data in the specified Data Memory and the carry flag are rotated left by 1 bit. Bit 7 replaces the Carry bit and the original carry flag is rotated into the bit 0. The rotated result is stored in the Accumulator and the contents of the Data Memory remain unchanged.
Page 166
HT45F0005A Induction Cooker Flash MCU SBC A, x Subtract immediate data from ACC with Carry Description The immediate data and the complement of the carry flag are subtracted from the Accumulator. The result is stored in the Accumulator. Note that if the result of subtraction is negative, the C flag will be cleared to 0, otherwise if the result is positive or zero, the C flag will be set to 1.
Page 167
HT45F0005A Induction Cooker Flash MCU SIZ [m] Skip if increment Data Memory is 0 Description The contents of the specified Data Memory are first incremented by 1. If the result is 0, the following instruction is skipped. As this requires the insertion of a dummy instruction while the next instruction is fetched, it is a two cycle instruction.
Page 168
HT45F0005A Induction Cooker Flash MCU SUB A,x Subtract immediate data from ACC Description The immediate data specified by the code is subtracted from the contents of the Accumulator. The result is stored in the Accumulator. Note that if the result of subtraction is negative, the C flag will be cleared to 0, otherwise if the result is positive or zero, the C flag will be set to 1.
Page 169
HT45F0005A Induction Cooker Flash MCU TABRD [m] Read table (specific page) to TBLH and Data Memory Description The low byte of the program code (specific page) addressed by the table pointer (TBLP and TBHP) is moved to the specified Data Memory and the high byte moved to TBLH.
HT45F0005A Induction Cooker Flash MCU Extended Instruction Definition The extended instructions are used to directly access the data stored in any data memory sections. LADC A,[m] Add Data Memory to ACC with Carry Description The contents of the specified Data Memory, Accumulator and the carry flag are added.
Page 171
HT45F0005A Induction Cooker Flash MCU LCLR [m] Clear Data Memory Description Each bit of the specified Data Memory is cleared to 0. Operation [m] ← 00H Affected flag(s) None LCLR [m].i Clear bit of Data Memory Description Bit i of the specified Data Memory is cleared to 0.
Page 172
HT45F0005A Induction Cooker Flash MCU LDECA [m] Decrement Data Memory with result in ACC Description Data in the specified Data Memory is decremented by 1. The result is stored in the Accumulator. The contents of the Data Memory remain unchanged.
Page 173
HT45F0005A Induction Cooker Flash MCU LRL [m] Rotate Data Memory left Description The contents of the specified Data Memory are rotated left by 1 bit with bit 7 rotated into bit 0. Operation [m].(i+1) ← [m].i; (i=0~6) [m].0 ← [m].7...
Page 174
HT45F0005A Induction Cooker Flash MCU LRRA [m] Rotate Data Memory right with result in ACC Description Data in the specified Data Memory is rotated right by 1 bit with bit 0 rotated into bit 7. The rotated result is stored in the Accumulator and the contents of the Data Memory remain unchanged.
Page 175
HT45F0005A Induction Cooker Flash MCU LSDZ [m] Skip if decrement Data Memory is 0 Description The contents of the specified Data Memory are first decremented by 1. If the result is 0 the following instruction is skipped. As this requires the insertion of a dummy instruction while the next instruction is fetched, it is a three cycle instruction.
Page 176
HT45F0005A Induction Cooker Flash MCU LSIZA [m] Skip if increment Data Memory is zero with result in ACC Description The contents of the specified Data Memory are first incremented by 1. If the result is 0, the following instruction is skipped. The result is stored in the Accumulator but the specified Data Memory contents remain unchanged.
Page 177
HT45F0005A Induction Cooker Flash MCU LSWAP [m] Swap nibbles of Data Memory Description The low-order and high-order nibbles of the specified Data Memory are interchanged. Operation [m].3~[m].0 ↔ [m].7~[m].4 Affected flag(s) None LSWAPA [m] Swap nibbles of Data Memory with result in ACC Description The low-order and high-order nibbles of the specified Data Memory are interchanged.
Page 178
HT45F0005A Induction Cooker Flash MCU LTABRDL [m] Read table (last page) to TBLH and Data Memory Description The low byte of the program code (last page) addressed by the table pointer (TBLP) is moved to the specified Data Memory and the high byte moved to TBLH.
HT45F0005A Induction Cooker Flash MCU Package Information Note that the package information provided here is for consultation purposes only. As this information may be updated at regular intervals users are reminded to consult the Holtek website the latest version of the Package/Carton Information.
HT45F0005A Induction Cooker Flash MCU 20-pin SOP (300mil) Outline Dimensions Dimensions in inch Symbol Min. Nom. Max. 0.406 BSC 0.295 BSC 0.012 — 0.020 C’ 0.504 BSC — — 0.104 0.050 BSC 0.004 — 0.012 0.016 — 0.050 0.008 —...
Page 181
HOLTEK disclaims all liability arising from the information and its application. In addition, HOLTEK does not recommend the use of HOLTEK’s products where there is a risk of personal hazard due to malfunction or other reasons. HOLTEK hereby declares that it does not authorise the use of these products in life-saving, life-sustaining or safety critical components.
Need help?
Do you have a question about the HT45F0005A and is the answer not in the manual?
Questions and answers