EasyPlay User’s Guide October 21, 2011 Copyright © 2011 by HOLTEK SEMICONDUCTOR INC. All rights reserved. Printed in Taiwan. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form by any means, electronic, mechanical photocopying, recording, or otherwise without the prior written permission of HOLTEK SEMICONDUCTOR INC. EasyPlay User’s Guide Contents Contents ....................................................................................................................................... 2 Chapter 1 Outline...................................................................................................................... 4 EasyPlay Development Tool Introduction...............................................................................................4 Chapter 2 Quick Start ............................................................................................................... 5 Starting the EasyPlay.............................................................................................................................5 Creating a New Project ..........................................................................................................................5 Download and Demo .............................................................................................................................8 Chapter 3 Project Design ....................................................................................................... 10 Scenes Dialogues................................................................................................................................ 11 Scripts Dialogues ................................................................................................................................. 11 API Dialogues ...................................................................................................................................... 12 Sound Files Dialogues ......................................................................................................................... 12 The Add Button is Used to Add the Sound Files ........................................................................... 12 The Del Button is Used to Delete a Sound File ............................................................................ 13 Small Technique ........................................................................................................................... 13 RAM Dialogues.................................................................................................................................... 14 Trigger Dialogues................................................................................................................................. 15 EasyPlay Window Menu ...................................................................................................................... 16 Project Menu ................................................................................................................................ 16 Utilities Menu ................................................................................................................................ 17 Help Menu .................................................................................................................................... 17 Chapter 4 Project Mode.......................................................................................................... 18 Demo Board Hardware Structure......................................................................................................... 18 HT83F02 Hardware Structure....................................................................................................... 18 HT83F22 Hardware Structure....................................................................................................... 18 Mode Function Description .................................................................................................................. 19 Binary Timing ....................................................................................................................................... 22 2 I C Timing ............................................................................................................................................ 22 COMBO Timing.................................................................................................................................... 23 Holtek Serial Bus Timing...................................................................................................................... 23 Chapter 5 Script API ............................................................................................................... 24 Assign, Operation ................................................................................................................................ 24 Assign........................................................................................................................................... 24 Operation...................................................................................................................................... 24 VolumeSet, VolumeGet........................................................................................................................ 24 VolumeSet .................................................................................................................................... 24 VolumeGet.................................................................................................................................... 24 VoicePlay ............................................................................................................................................. 24 CALL, RET........................................................................................................................................... 24 CALL............................................................................................................................................. 24 RET .............................................................................................................................................. 24 Sleep, Stop, Delay_ms, Comment ....................................................................................................... 25 Sleep ............................................................................................................................................ 25 Stop .............................................................................................................................................. 25 Delay_ms...................................................................................................................................... 25 Comment ...................................................................................................................................... 25 2 EasyPlay User’s Guide Jmp_EQU, JumpTo.............................................................................................................................. 25 Jmp_EQU ..................................................................................................................................... 25 JumpTo ......................................................................................................................................... 25 Check_sum, Triangle_Wave ......................................................................................................... 25 Communication_ISR, KeyTrigger......................................................................................................... 26 Communication_ISR..................................................................................................................... 26 KeyTrigger .................................................................................................................................... 26 Dispatch, DispatchWave ...................................................................................................................... 26 Dispatch........................................................................................................................................ 26 DispatchWave............................................................................................................................... 27 Input and Output .................................................................................................................................. 27 Input.............................................................................................................................................. 27 Output........................................................................................................................................... 27 OutputSharePort.................................................................................................................................. 28 Record ................................................................................................................................................. 28 RecordPlay .......................................................................................................................................... 28 RecordErase........................................................................................................................................ 28 RecordEraseAll.................................................................................................................................... 28 ReadRecordNum ................................................................................................................................. 28 UserAPI0/1/2/3 .................................................................................................................................... 28 Chapter 6 Application Examples........................................................................................... 29 Key Applications .................................................................................................................................. 29 Function Requirements................................................................................................................. 29 Functional Description .................................................................................................................. 29 Demonstration Figure Description ................................................................................................ 31 EasyPlay Trigger Window Content ............................................................................................... 37 Programming and Demo Environments........................................................................................ 42 Key and Transmission Applications ..................................................................................................... 44 Key Requirements ........................................................................................................................ 44 Recording and Audio Function Applications......................................................................................... 47 Function Requirements................................................................................................................. 47 Functional Description .................................................................................................................. 48 Programming and Demo Environments........................................................................................ 49 3 EasyPlay User’s Guide Chapter 1 Outline EasyPlay Development Tool Introduction The EasyPlay Development Tool is an easy to use software development tool designed for the HT83Fxx series of voice devices. It is an interface development tool that can simulate in a single project items such as scenes, scripts, sound files etc. ensuring that designers have their demo boards and projects up and running as fast as possible. For projects with a large number of voice segments, the EasyPlay development tool also provides a superior and greatly simplified development process. EasyPlay stores scenes, scripts and sound files with a certain format in the VROM of the HT83Fxx. As the VROM in the HT83Fxx device series is Flash type memory, the implementation of voice and functional updates becomes a much simplified and convenient process, and one which does not require HT83Fxx device replacement. An example could be any kind of voice function electrical appliance, such as an electronic scale, which although perhaps initially using English, could be very easily and quickly converted to use other languages. 4 EasyPlay User’s Guide Chapter 2 Quick Start Starting the EasyPlay Double click the EasyPlay icon Creating a New Project Step1. Choose "New" Step 1 5 EasyPlay User’s Guide Step2. Audio Output Window Step 2a Step 2b Step 2d Step 2c Step 2e There are 5 configuration options: Step 2a. MCU Body Step 2b. Voice ROM Capacity Step 2c. MCU Oscillator Selection Step 2d. MCU Operating Frequency Step 2e. Speaker Drive Selection After selecting the required configuration options, click the “Next” button. Step3. There are six operating modes within the EasyPlay. Choose DIRECT-8 for this example. The other operating modes will be introduced later. Step 3 6 EasyPlay User’s Guide Step4. Input the project name and setup the storage location. Step 4 Step5. Confirm all settings Step 5 Step6. New Project Now Created Step 6 7 EasyPlay User’s Guide Download and Demo Step1. Generate a PND File Step 1 Step2. Setup the Hardware Platform Step3. Select the programming method according to requirements. The other options will be introduced later. Step3a. First choose the calibration method for the programming process and for pre-programming. Step3b. Click “Program PROM +VROM” to start programming the program data and voice data. Step 3b Step 3a 8 EasyPlay User’s Guide Step4. Demo Method Step 4a. After programming, then use the hardware as described in Step 2 Step 4b. In the Trigger dialogue box, select “KeyTrigger” Step 4c. Corresponding key sketch map - Demo Board HT83F02_EASYPLAY: A. Software Platform Key Numbers (Key#) B. Hardware Platform Key Number KEY9 K EY 10 K E Y 11 K EY 12 K EY 13 K E Y 14 K EY 15 K E Y 16 KEY1 K EY 2 KEY3 K EY 4 K EY 5 KEY6 K EY 7 Step 4b Step 4d Step 4d. Click the button to enable the required function (play the numbered voice) 9 KEY8 EasyPlay User’s Guide Chapter 3 Project Design The EasyPlay provides Scenes, Scripts, API, Sound Files, RAM and Trigger dialogues. A complete project is divided into several Scenes, each of which corresponds to one Script composed of API, Sound Files, RAM and Trigger. The relationship of each scene, except for the one located in the first location, is a parallel one. If the script related to the scene does not have an API for scene jumping, the scene and its successive scenes are will have a consecutive relationship. The APIs in the script dialogue have a consecutive relationship. Therefore, the first step of a project design is to add scenes to the Scenes dialogue and then have scenes correspond to the script content according to the project requirements. Each scene connection is implemented by a scene jump API. Note: A hidden scene jump is generated by an external key trigger or a communication trigger. Therefore, if a key trigger or communication trigger is configured during the scene initialisation, when either of them occurs, the MCU will jump to the configured scenes. The operation process is as follows. 10 EasyPlay User’s Guide Scenes Dialogues Scenes dialogue includes Add Scene and Del Scene operating buttons. Step 1. The Add Scene button is used to add a scene in the Scenes dialogue. Step 2. The Del Scene button is used to delete a scene in the Scene dialogue. Input Scene name, click “OK” In the Scenes dialogue, click the scene to be deleted and press “Del Scene”. Step 1 Step 2 Note: The first scene is executed when the MCU receives a power on reset. The scene is placed at the first scene location in the Scenes dialogue. Scripts Dialogues The Scripts dialogue includes Adjust Script, Add and Delete operating buttons. (A) The Adjust Script button is used to adjust the scripts sequence. Step 1. Click the Adjust Script button to pop up the Scripts dialogue. Step 2. Click the script to be adjusted, click the Move Up or Move Down button to shift the script up or down. Step 2 Step 1 11 EasyPlay User’s Guide Add Button Step 1. Select the required script from the dialogue box on the right, and click the button. Step 2. A script can also be added by double clicking the required script file. Step 2 Step 1 (C) Delete a script: Select the script to be deleted and press the “DEL” button. API Dialogues The API dialogue includes the API required by the Scripts. By using add the API will be added to the Scripts. Sound Files Dialogues The Sound Files dialogue includes Add and Del operating buttons. The Add Button is Used to Add the Sound Files Step 1. Click “Add” to pop up the window and find the .WAV file to be added. Step 2. Click “Open” to pop up the format selection window. Voice ROM Status Information Step 2 12 Step 1 button, EasyPlay User’s Guide Note: (1) The WAV file must be in a MONO WINDOWS PCM format with a sound frequency sampling of about 16bits. (2) The relationship between the maximum sampling rate and compression format of the sound file (.wav) is listed as the table below for an 8MHz system frequency. Compression Format Maximum Sound Sampling Rate HT-ADPCM 15K PCM12 18K The Del Button is Used to Delete a Sound File Click the Del button to delete the sound file to be deleted from the Sound Files page. Small Technique (1) Choose the sound file from the Sound Files page. Click the Nickname to rename. Click the Compression Mode to modify. (2) Click the right key after a sound file is chosen to pop up the modification menu. Add a sound file Delete a sound file 13 EasyPlay User’s Guide RAM Dialogues Click the RAM button and then the EasyPlay interface will change as shown: Provides 20 data registers from RAM00 to RAM19. A nickname can be supplied for the user memory. “Name” means the Nickname function can be executed. “System Reserved” means the Nickname function is forbidden. Note: (1) When the Check_sum() API is used, RAM18 is used to store the calibration and result. (2) For Binary, I2C, Holtek bus and Combo modes, RAM19 is used to store the received data byte. 14 EasyPlay User’s Guide Trigger Dialogues Click the Trigger button to change the EasyPlay to the following: The Trigger dialogue is used to display the function configuration of the input key, which is only activated when the “Direct-8”, “Matrix-16” or “COMBO” modes is selected. The Trigger dialogue includes Add and Del buttons. Step 1. Click “Add” to pop up the Set Name window. Step 2. Display all function configurations of the 8 input keys. Step 3. Click the Key# box to setup the function scene of the key. Step 4. The Del button is used to delete the key function table in the Trigger dialogue. Step 1 Step 2 Step 3 Step 4 15 EasyPlay User’s Guide Small Technique: In the Scenes dialogue, click the right key to pop up a function menu. In the Scripts dialogue, click the right key to pop a function menu. The clicked script becomes a note. EasyPlay Window Menu Project Menu (1) Project/Project setting: Modifies the project setting. Note: The “MCU” modification can be executed only within bodies of the same type. Group A: HT83F02-1Mb/2Mb/4Mb/8Mb/16Mb/32Mb/64Mb/128Mb Group B: HT83F22-1Mb/2Mb/4Mb/8Mb/16Mb/32Mb/64Mb/128Mb 16 EasyPlay User’s Guide (2) Project/Build the project: Creates a .pnd project file. Utilities Menu Export to file: Exports the Scenes and Scripts content in the EasyPlay as a text file. Print option table: Prints the option info etc. as an Approved Sheet text file. Program: Programs the .PND file into the MCU and the voice Flash with four options. Program PROM: Programs the program code only. Program VROM: Programs the voice data code. Program PROM+VROM: Programs both the program code and voice data code. Download with Verify: Calibrates the program process. Note: For Flash type devices, after compilation, the Project/Project setup must select the Program PROM+VROM for programming so as to implement the correct modification. Help Menu The Help menu includes information such as the EasyPlay version info, copyright date option and the EasyPlay user’s menu option. 17 EasyPlay User’s Guide Chapter 4 Project Mode Demo Board Hardware Structure HT83F02 Hardware Structure Name PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PC0~1 PC2 Direct-8 K0 K1 K2 K3 K4 K5 K6 K7 O0 O1 /BZ SO0-SO1 SO2 Matrix-16 R0 R1 R2 R3 R4 R5 R6 R7 C1 C2 /BZ SO0-SO1 SO2 Binary D0 D1 D2 D3 D4 D5 D6 K7 O0 O1 /BZ SO0-SO1 SO2 I 2C O0 O1 O2 O3 O4 O5 O6 O7 SDA SCL /BZ SO0-SO1 SO2 Holtek O0 O1 O2 O3 O4 O5 DATA CLK /BZ SO0-SO1 SO2 Combo K0 K1 K2 K3 K4 K5 K6 K7 /BZ SO0-SO1 SO2 SDA SCL Note: K0~K7 = input keys O = output R = input C = column output /BZ = power control signal D = data SDA/SCL = I2C data and clock lines DATA/CLK = Holtek communication data and clock lines SO = common ports (PC0-PC2), which are used as output ports when used as I/O. HT83F22 Hardware Structure Name PA2 PA3 PA4 PA5 PA6 PA7 PA1 PB5 PB6 PB7 PB0~4 Direct-6 K1 K2 K3 K4 K5 K6 ES FL RD /BZ SO Matrix-8 R0 R1 R2 R3 C0 C1 ES FL RD /BZ SO Binary D0 D1 D2 D3 D4 K6 ES FL RD /BZ SO I 2C I0 I1 I2 I3 SDA SCL ES FL RD /BZ SO Holtek I0 I1 I2 I3 DATA CLK ES FL RD /BZ SO Combo K0 K1 K2 K3 SDA SCL ES FL RD /BZ SO PC0~7 O0~O7 Note: K1-K6 = input keys O = output I = input R = matrix row key input C = matrix column key input /BZ = the HT82V739 enabled signal D = data SDA/SCL = I2C data and clock lines DATA/CLK = Holtek communication data and clock lines RD = “busy” recording signal ES = record erase indicator FL = write SPI FLASH or erase SPI FLASH failed indicator SO = selective output, namely when PB0,PB1 and PB2 are selected to be I/O ports, then PB0,PB1 and PB2 will they be used as output ports and PB3-4 will be used as fixed output ports. 18 EasyPlay User’s Guide Mode Function Description Taking the HT83F02 as an example, the description is as follows: Mode Function Description HT83F02 I/O Input/Output Sketch Map Direct-8 1. Uses PA as an output port to connect the 8 keys to ground 2. Uses PB0~PB1 as pins for user output ports 3. Uses PB2 as the power control output port Matrix-16 1. Uses PA, PB1 and PB2 ports to form an 8x2 matrix keyboard with PA as inputs, PB0 and PB1 as outputs. 2. Uses PB2 as the power control output port Binary 1. Uses PA0~PA6 and PA7 ports to form parallel trigger inputs 2. Uses PA7 as the trigger input and PA0~PA6 as parallel output ports. 3. See “Binary Timing” for its timing reference. The data is saved in RAM19. I2 C 1. Uses PB0~PB1 as I2C Slave ports 2. Uses PA0~PA7 as user output ports 3. Uses PB2 as the power control output port 2 4. See “I CTiming” for the timing reference. The data is saved in RAM19. 19 EasyPlay User’s Guide Mode Function Description HT83F02 I/O Input/Output Sketch Map Holtek 1. Uses PA6~PA7 as Holtek serial bus Slave ports 2. Uses PA0~PA5 as user output ports 3. Uses PB2 as the power control output port 4. See “Holtek Serial Bus Timing” for the timing reference. The data is saved in RAM19. Combo 1. Uses PB0~PB1 as the I2C Slave ports 2. Uses PA as an input port to connect the eight keys to ground 3. Uses PB2 as the power control port 4. See “COMBO Timing” for the timing reference. The data is saved in RAM19. Taking the HT83F22 as an example, the description is as follows: Mode Function Description HT83F22 I/O Input/Output Sketch Map Direct-6 1. PA2~PA7 ports connect the six keys to ground 2. Uses PA1 as an SPI Flash Erase indicator 3. Uses PC0~PC7 as user ports 4. Uses PB5 as a write or erase SPI Flash indicator 5. Uses PB7 as the power control output Matrix-8 1. Uses PA2~PA5 and PA6~PA7 to form a 4×2 matrix keyboard with PA2~PA5 as column inputs and PA6 and PA7 as row inputs 2. Uses PA1 as a SPI Flash Erase indicator 3. Uses PC0~PC7 as user output ports 4. Uses PB5 as a write or erase SPI Flash indicator 5. Uses PB7 as the power control output port 20 EasyPlay User’s Guide Mode Function Description HT83F22 I/O Input/Output Sketch Map Binary 1. Uses PA2~PA6 and PA7 to form a column trigger input 2. Uses PA7 as a trigger input port with PA2~PA6 as parallel data input ports 3. Uses PA1 as an SPI Flash Erase indicator 4. Uses PC0~PC7 as user output ports 5. Uses PB5 as a write or erase SPI Flash indicator 6. Uses PB7 as the power control output port 7. See “Binary Timing” for the timing reference. The data is saved in RAM19. I2 C 1. Uses PA6~PA7 as the I2C Slave port 2. Uses PA2~PA5 as user outputs 3. Uses PA1 as an SPI Flash Erase indicator 4. Uses PC0~PC7 as user output ports 5. Uses PB5 as a write or erase SPI Flash indicator 6. Uses PB7 as the power control port 2 7. See “I C Timing” for timing reference. The data is saved in RAM19. Holtek 1. Uses PA6~PA7 as the Holtek serial bus Slave port 2. Uses PA2~PA5 as user output ports 3. Uses PA1 as a SPI Flash Erase indicator 4. Uses PC0~PC7 as user output ports 5. Uses PB5 as a write or erase SPI Flash indicator 6. Uses PB7 as the power control output port 7. See “Holtek Serial Bus Timing” for timing reference. The data is saved in RAM19. Combo 2 1. Uses PA6~PA7 as the I C Slave port 2. Uses PA2~PA5 to connect the four keys to ground 3. Uses PA1 as an SPI Flash Erase indicator 4. Uses PC0~PC7 as user output ports 5. Uses PB5 as a write or erase SPI Flash indicator 6. Uses PB7 as the power control port 7. See “COMBO Timing” for the timing reference. The data is saved in RAM19. 21 EasyPlay User’s Guide Binary Timing Timing Figure PA0~PA6/ PA2~PA6 D0~D6 / D0~D4 PA7 Tr The input trigger time (Tr) of PA7 is 10~20ms. The time interval between two successive communications must be less than 150us. Each communication data byte is saved in RAM19. I2C Timing For I2C communication, the Master timing must obey the following timing for the Slave, namely the HT83Fxx, to response correctly. Each I2C communication is composed of the following content: S, SA, SR, M, D, A and P. The interval of two successive communications should not be less than 150us. Each data byte is saved in RAM19. Note: (1) After the HT83Fxx receives a Slave Address (SA) and responds (ACK), SCL will be set to a low level. Therefore the external MCU should wait for the HT83Fxx to release the SCL before data transmission. (2) In the timing figure above, the Slave Address from the master is B4H (180) while the I2C Device Address is set to 90. 22 EasyPlay User’s Guide COMBO Timing This is a combination mode using both I2C and Direct-Key modes. See the “I2C Mode” for the I2C communication timing. Each I2C communication is composed of S, SA, SR, M, D, A and P. The interval between two successive communications should not be less than 150us. Each communication byte data is saved in RAM19. Holtek Serial Bus Timing For Holtek serial bus communication, the Master timing must obey the following timing order for the Slave HT83Fxx device to response correctly. t1: The time for the MCU to receive instructions after power up. t1 must be greater than 400ms. t2: The time for the MCU to receive 8-bits of data, in other words 1 byte. This will be invalid if the MCU is unable to receive one complete data byte within the time span. To receive another byte, t2 must be less than 50ms. t3: The time for the MCU to be woken up to receive an input byte. t3 must be greater than 10ms and less than 18ms. t4: The positive half CLK cycle period for the synchronised data. t4 must be greater than 300us and less than 4ms. t5: The negative half CLK cycle period for the synchronised data. t5 must be greater than 300us and less than 4ms. The interval of two successive communications must not be less than 150us. Each communication data byte is saved in RAM19 23 EasyPlay User’s Guide Chapter 5 Script API The API is divided into two parts, one part refers to all MCU devices and the other part only refers to a specific MCU device. In the following API description, part one to ten refers to the common API, while part 11 refers to the specific API for the HT83F02/22. Parts 12 to 16 refer to the specific API for the HT83F22. Assign, Operation Assign Assign is used to give value to one specific RAM unit with a decimal constant value range of 0 to 255 or RAM content value. Operation Operation is used for specific RAM units or one RAM unit for addition (+), subtraction (-), (AND), (OR) and (XOR) operations. The constant is a decimal digit ranging from 0 to 255. VolumeSet, VolumeGet VolumeSet VolumeSet is used to adjust the volume during broadcasting. The volume levels are subdivided into 0, 1, 2, 3, 4, 5, 6, 7 levels. The level 0 is the mute status while the volume increases in amplitude from 1 to 7 levels with a maximum at level 7. VolumeGet VolumeGet is used to supply the current volume level value to a specific RAM unit which is selectable from RAM0 to RAM19. VoicePlay VoicePlay is used to play the .wav file using the default sampling rate. CALL, RET CALL CALL is used to call a Scene. It must be used with RET and with only one stack. RET RET is used to call back a Scene, no parameter provided. 24 EasyPlay User’s Guide Sleep, Stop, Delay_ms, Comment Sleep Sleep implements the sleep function of the system, no parameter provided. Stop Stop is used to stop playing sound and goes on executing next API. Delay_ms Delay_ms implements the delay function with the units in ms. The delay period ranges from 0 ms to 65535 ms. Comment Comment is used to comment Scripts. Jmp_EQU, JumpTo Jmp_EQU Jmp_EQU means conditionally jumping to a specific scene. The “Jump to” dialogue is the Scene selection box in which the Scene to jump to can be selected from the menu. Dialogue boxes behind “if” is used to setup the “Jump to” conditions. The “Jump to” condition depends on whether the values before and after and equal sign (=) are the same. The first and second dialogue boxes in the “Jump to” condition dialogue are the RAM unit selection boxes, ranging from RAM0 to RAM9. The third dialogue box is the operator selecting box, including addition (+), subtraction (-), (AND), (OR) and (XOR) operators. The forth dialogue is the RAM unit or constant input box with a RAM unit ranging from RAM0 to RAM19 and a constant from 0 to 255. Scene Operator RAM RAM or Constant JumpTo JumpTo means is a non conditional jump to a specific scene. “Jump to”dialogue is the Scene selection box. Check_sum, Triangle_Wave Check_sum Check_sum is used for Voice ROM(SPI) calibration and detection. The result will be saved in RAM18. If RAM18=00H, the calibration is correct or else RAM18=01H. No parameter is provided for Check_sum. Triangle_Wave Triangle_Wave is used to output a 1K Hz trangle wave from the AUDIO port of the MCU. There is a time parameter for the Triangle_Wave meaning the output time of the triangle wave. The time range is 0 to 25.5s. Note: If the time parameter is zero, the MCU will continuously output triangle waves. 25 EasyPlay User’s Guide Communication_ISR, KeyTrigger Communication_ISR Communication_ISR is used to setup a single Scene data communication between the MCU and the external device. Scene Communication_ISR can only select Binary, Holtek, Combo or I2C modes. KeyTrigger KeyTrigger is used is used to setup the external MCU keys, each of which corresponds to a related scene. KeyTrigger can only select Direct-8, Matrix-16 and Combo modes. Dispatch, DispatchWave This is a parallel branching process. When an operation result is generated, it will dispatch the main program to other processing procedures so as to meet the requirement of the application. Dispatch Dispatch is used to transfer data from an indicated RAM value to a scene. When the RAM value is smaller or equal to the number of dispatch scenes, the RAM value corresponds to the specified scene. The dispatch scene order number starts from a zero value. When the RAM unit number minus 1 is greater than the dispatch scene, the RAM value corresponds to the first dispatch scene. “Dispatch” includes parameters of the RAM unit and the dispatch scene. The “Memory:” box is the RAM unit selecting menu. The “Scene:” box displays the scenes to be dispatched. The “Content: Scene:” column displays the dispatch scene that has been added. The number of added scenes should be less than or equal to 255. The order of the dispatched scenes can be changed by dragging them with the mouse. Dispatch 26 EasyPlay User’s Guide The button is to add a dispatch scene. To operate first select the location to be added from the “Content: Scene” then the required scene from the “Scene” column by clicking . The button deletes all dispatched scenes. Clicking on the “Content Scene” content. will remove all of Note: (1) It is acceptable for an “empty scene” to be a dispatch scene. However an effective empty scene must be located between or before a non-empty scene. (2) A jump to an “empty scene” means no jump. DispatchWave The DispatchWave is used to play the .wav file in the DispatchWave according to the specific RAM value. The sequence of the RAM value corresponds with that of the .wav file in the DispatchWave. The order number starts from zero. When the number of RAM values are less than the number of the .wav files added to the DispatchWave, both will corresponds to each other. When the RAM value is larger than the number of.wav files added to DispatchWave, the RAM value that is larger than the .wav file number will correspond to the first .wav file in DispatchWave. DispatchWav Note: (1) The number of the DispatchWave is smaller than or equal to 255. (2) The “Content: Sound File” in the DispatchWave allows an “empty space”, yet an effective empty space should be located between or before the sound files. The “empty space” means no sound will be played. Input and Output Input Input is used to read the MCU PA port status and transfer it to the user RAM. No parameters are available for the Input. Output Output is used to transfer the user specified RAM value to the port selected to be an output, such as the PB0-PB2 ports of the HT83Fx0 in the Direct-8 mode. 27 EasyPlay User’s Guide OutputSharePort OutputSharePort is the specified API in the HT83F02/22. OutputSharePort is used to output the RAM value or constant specified by the user to an I/O port, such as the PC0-PC2 ports in the HT83F02 or the PB0-PB4 ports in the HT83F22. Record Record is the specified API in the HT83F22. Record is to record sound according to the specified RAM value order and using an 8kHz sampling rate. When the RAM value is larger than the existing total number of recordings, the current recording will be located exactly after the previous recording, otherwise recording will be executed according to the RAM number sequence. RecordPlay RecordPlay is the specified API in the HT83F22. RecordPlay is used to play a previous recording in the sequence as specified by the indicated RAM value. When the RAM value is larger than the current total recording, the last recording file will be played. RecordErase RecordErase is the specified API in the HT83F22. RecordErase is used to delete one recorded file from the sequence related to the specified RAM value. When the specified RAM value is larger than the current total recording, the last recording file will be the one to be deleted. RecordEraseAll RecordEraseAll is the specified API in the HT83F222. RecordEraseAll is used to delete all recordings. ReadRecordNum ReadRecordNum is the specified API in the HT83F22. ReadRecordNum is to read the total number of the current recording. UserAPI0/1/2/3 UserAPI0/1/2/3 is the specified API in the HT83F22. In the possible system resource range of the HT83F22, the user can write program code with UserAPI and execute those program codes in the flow designated by the user. The program code must be written in the Source file under the a project folder according to the related location of the UserAPI_HT83F22.asm file. The UserAPI is divided into two type. One type is the API (UserAPI0/1) without scene jumping functions and the other is the API (UserAPI2/3) with scene jumping functions. 28 EasyPlay User’s Guide Chapter 6 Application Examples Key Applications Function Requirements The example uses the HT83F02 MCU. Five Keys: K1 -- Play the current sound file K2 -- Play the previous sound file K3 -- Play the next sound file K4 -- Increase volume and play the current sound file K5 -- Reduce volume and play the current sound file Play 8 sound files Functional Description Build a project using the Direct-8 mode in the HT83F02 according to requirements. The window content of the EasyPlay Scenes and Scripts is as follows: Scenes Scripts Selection = 0x00 Comments (1) The parameter of the current playing sequence of the sound file. The given value is zero. (2) See EasyPlay RAM in this example. Start Max_Selection = 0x08 The parameter of the maximum playing sequence. The given value is 8. Zero = 0x00 The value given to Zero is 0. Max_Vol = 0x08 Maximum play volume parameter. The given value is 8. Vol = Volume Volume parameter. The given value is the current level of the played volume. KeyTrigger(KeyTrigger) Sleep() Play_Current Play_PREV Play_NEXT DispatchWave(Selection) (1) Initialise the key trigger “Scene”. (2) See EasyPlay Trigger for reference. MCU enters the sleep mode. (1) Dispatch the sound file by the Selection value. (2)See DispatchWave for reference. Sleep() MCU enters the sleep mode. Jump to Selection_to_Min if Selection = Zero + 0x00 When the playing sequence parameter reaches the minimum, jump to the “Selection_to_Min” scene. Selection = Selection - 0x01 Or the playing sequence parameter will be minus one. JumpTo(Play_Current) Jump to the “Play_Current” scene. Selection = Selection + 0x01 Play sequence parameter plus 1. Jump to Selection_to_Max if Selection = Max_Selection + 0x00 When the playing sequence parameter reaches the maximum value, jump to the “Selection_to_Max” scene. JumpTo(Play_Current) Or jump to the Play_Current scene. 29 EasyPlay User’s Guide Scenes Selection_to_Max Selection_to_Min Scripts Selection = Zero + 0x00 Return to the first playing sequence. JumpTo(Play_Current) Jump to the Play_Current scene. Selection = Max_Selection - 0x01 Return to the last playing sequence. JumpTo(Play_Current) Jump to the Play_Current scene. Dispatch(Vol) Volume_Control Volume - Volume + Vol_to_Min Vol_to_Max V0 V1 V2 V3 V4 V5 V6 Comments JumpTo(Play_Current) (1) Dispatch the volume level with the Vol value. (2) See Dispatch for reference. Jump to the Play_Current scene. Sleep() MCU enters the sleep mode. Jump to Vol_to_Min if Vol = Zero + 0x00 When the volume parameter reaches the minimum, jump to the “Vol_to_Min” scene. Vol = Vol - 0x01 Or the volume parameter will be minus 1. JumpTo(Volume_Control) Jump to the Volume_Control scene. Vol = Vol + 0x01 Volume parameter plus 1. Jump to Vol_to_Max if Vol = Max_Vol + 0x00 When the volume parameter reaches the maximum, jump to the “Vol_to_Max” scene. JumpTo(Volume_Control) Or jump to the Volume_Control scene. Vol = Max_Vol - 0x01 The volume level returns to the end one. JumpTo(Volume_Control) Jump to the Volume_Control scene. Vol = Zero + 0x00 The volume level returns to the first one. JumpTo(Volume_Control) Jump to the Volume_Control scene. Volume = 0x00 The current volume level is the mute status. JumpTo(Play_Current) Jump to the Play_Current scene. Volume = 0x01 The current volume level has a given value of 1. JumpTo(Play_Current) Jump to the Play_Current scene. Volume = 0x02 The current volume level has a given value of 2. JumpTo(Play_Current) Jump to the Play_Current scene. Volume = 0x03 The current volume level has a given value of 3. JumpTo(Play_Current); Jump to the Play_Current scene. Volume = 0x04; The current volume level has a given value of 4. JumpTo(Play_Current); Jump to the Play_Current scene. Volume = 0x05; The current volume level has a given value of 5. JumpTo(Play_Current); Jump to the Play_Current scene. Volume = 0x06; The current volume level has a given value of 6. JumpTo(Play_Current); Jump to the Play_Current scene. Volume = 0x07; The current volume level has a given value of 7, the maximum. JumpTo(Play_Current); Jump to the Play_Current scene. V7 30 EasyPlay User’s Guide Demonstration Figure Description Enable the EasyPlay, select “Project” from the menu and click “New” to pop up an “Audio Output” window. The “Audio Output” window in the EasyPlay is shown below. Step1 Step2 Step3 Step4 Step5 Step6 In the “Audio Output” window, there are five configuration columns: Step 1. MCU selection: Select the HT83F02. Step 2. Voice ROM: Select the Voice ROM capacity to be 8M bits. Step 3. OSC: Select the MCU oscillating mode to be HIRC@5V. Step 4. Sys Freq: Select the MCU system operating frequency to be 12M. Step 5. Speaker Driver: Select the speaker driving method to be PWM&DAC. Step 6. If the user is already in the “Audio Output” window, after all the configurations are set, click the “Next” button, after which a “Project Wizard” window will pop up. 31 EasyPlay User’s Guide There are six operating modes in the EasyPlay. Choose DIRECT-8 for the example here. After setting up the EasyPlay operating mode, click “Next” and a “Project setting” window will pop up. Input the project name and setup the storage location. Click “Next” and a “Confirm” window will pop up. Confirm the summarised content. 32 EasyPlay User’s Guide The default basic structure setup is now complete Add a sound file. Step2 Step1 Step 1. In the Sound Files page, click “Add” and an “Open” window will pop up. Step 2. Select a sound file, click “Open” and a Select Compression Mode window will pop up. 33 EasyPlay User’s Guide Select the compression mode: Following the above, select the compression mode from the Select Compression Mode window. In the Sound Files page, select the corresponding compression mode and the compression mode menu will show up. Note: Click Nickname column to modify the name. Delete Scenes Step1 Step2 Step 1. Select all files in the Scenes column and click the right key. Step 2. Choose “Delete the scene” to delete the original content. 34 EasyPlay User’s Guide Add Scenes and Set a Name Click the right key in the Scenes dialogue, choose “Add a scene” and the Set Name dialogue will pop up for the user to set a name. This shows all the Scene names in this example. Modify the Parameter Name In the RAM page, click the Nickname column to input the parameter name. 35 EasyPlay User’s Guide Give values: Step1. Choose “Assign” from the API page. Step2. Choose the RAM parameter from the Memory column and select a RAM parameter. Step3. Choose a RAM parameter or fill in a constant with a range of 0~255 in the Memory / Constant column. Step4. Choose the Scene to be edited from the Scenes dialogue. Step5. Add the API function to the Scripts. Step6. The API function will now be displayed in the Scripts. Step4 Step6 Step5 Step2 Step3 Step1 Acquire the Sound Volume Step1. Choose “VolumeGet” from the API page. Step2. Choose a RAM parameter from the Read Volume column. Step3. Add the API function to the Scripts. Step4. The API function will now be displayed in the Scripts. Step2 Step4 Step3 Step1 36 EasyPlay User’s Guide Edit the Trigger Content Step1. Click the “KeyTrigger” in the Trigger page, and “KeyTrigger” will be displayed as shown the red dotted box below. The related content of the key number (key#) and the scene will be shown in the red box below. Step2. Click the column as the red arrow indicates for a scene selection menu. Step3. A box without a check mark means no function. Step4. Click the “KeyTrigger” column in this example. Step5. Add the function to the Scripts. Step2 Step1 Step4 Step3 Step5 EasyPlay Trigger Window Content 37 EasyPlay User’s Guide Adjust the Scripts Sequence Method I Step1. Click the scene to be adjusted from the Scripts column. Choose “Start” in this example. Step2. Click “Adjust Script” and an “Adjust Script” dialogue will pop up. Step3. Click the item to be adjusted. Step4. Click “Move Up” and the item to be adjusted will shift up and then click “OK” when it reaches a proper location. Step1 Step4 Step3 Step2 Method II Click the item to be adjusted from the Scripts column and shift it by dragging up and down. 38 EasyPlay User’s Guide DispatchWave Step2 Step5 Step3 Step6 Step4 Step1 Step1. Click “DispatchWave” in the API page to display the function column. Step2. Choose the RAM parameter from the Memory column. Step3. Click the required sound file. Step4. In the Content: Sound File dialogue, choose a proper location to place the required sound file. Step5. Add the sound file in Step 3 to the Step 4 location. Step6. Add the API function to the Scripts. Conditional Scene Jumping Step1. Click “Jmp_EQU” in the API page and the function column will show up. Step2. Click the scene to jump to. Step3. Choose the proper parameters for the left and right side of the equal sign according to requirements. Step4. Add the API function to the Scripts. Step2 Step3 Step4 Step1 39 EasyPlay User’s Guide Operation Application Step1. Click “Operation” in the API page to show the function column. Step2. Place the operation result at the right side of the equal sign to the selected RAM parameter. Step3. Choose the RAM parameter according to requirements. Step4. Choose the operation symbol according to requirements. Step5. Choose the RAM parameter or add a constant with a range of 0~255 according to requirements. Step6. Add the API function to the Scripts. Step6 Step2 Step3 Step4 Step5 Step1 No Conditional Scene Jumping Step1. Click “JumpTo” in the API page to display the function column. Step2. Choose the scene to jump to. Step3. Add the API function to the Scripts. Step2 Step3 Step1 40 EasyPlay User’s Guide Dispatch Content Step1. Click “Dispatch” in the API page to display the function column. Step2. Choose the RAM parameter from the Memory column. Step5. According to requirements add the “Scene:” items to the “Content: Scene” column. Step6. Add the API function to the Scripts. Step2 Step4 Step3 Step1 Volume Setting Step1. Click “VolumeSet” in the API page to display the function column. Step2. Choose a value 0-7 from the Set Volume column. Step3. Add the API function to the Scripts. Step2 Step3 Step1 41 EasyPlay User’s Guide Programming and Demo Environments Create .PND file Method I Choose the following function according to the location Method II Click the icon in the red circle Programming Step1. Based on Fig.1, create the hardware platform in advance. Step2. Choose the programming method according to requirements. See details in the Project Design Chapter. Step2 42 EasyPlay User’s Guide Programming and Demo Environments PA7 PA0 PB0 PB7 VSS Fig.1 Note: 1. The DC POWER is a DC9V~12V power supply which will automatically switch to the USB power during programming. The external power is only for demonstration purposes and is not used for the programming process. 2. After the USB programming has finished, no external power is needed for demonstration. 3. Key Diagram A. Software Platform Key Number (Key#) B. Hardware Platform Key Number KEY9 KEY10 KEY11 KEY12 KEY13 KEY14 KEY15 KEY16 KEY1 KEY2 KEY3 KEY4 KEY5 KEY6 KEY7 KEY8 43 EasyPlay User’s Guide Key and Transmission Applications Key Requirements The example uses the HT83F02 MCU. Six keys: K1 -- Play a single song once K2 -- Continuously play 8 songs once K3 -- Non-stop playing K4 -- Stop playing K5 -- Increase volume K6 -- Decrease volume I2C communication data can be received from an external master device and according to the received data can be related to the key function. Functional Description Build a project using the COMBO mode according to the selected HT83F02 requirements. The window content of the EasyPlay Scenes and Scripts is as follows: Scenes Start Play_Current Play_NEXT Scripts Comments KeyTrigger(Disable); Key trigger function is disabled. Selection = 0x00; (1) Sound file play sequence parameter. The given value is zero. (2) See EasyPlay RAM for this example. Max_Selection = 0x08 Maximum playing sequence parameter. The given value is 8. Zero = 0x00; The value given to Zero is 0. Max_Vol = 0x08; Maximum playing volume parameter. The given value is 8. Vol = Volume; Volume parameter. The given value is the current level of the volume played. Communication_ISR(I2C_ISR); Initialize the data communication “Scene”. KeyTrigger(KeyTrigger); (1) Initialise the key trigger “Scene”. (2) See EasyPlay Trigger for reference. Sleep(); MCU enters the sleep mode. DispatchWave(Selection); (1) Dispatch the sound file using the Selection value. (2) See DispatchWave for reference. Sleep(); MCU enters the sleep mode. Selection = Selection + 0x01; Play sequence parameter plus 1. Jump to Selection_to_Max if Selection = Max_Selection + 0x00; When the playing sequence parameter reaches the maximum value, jump to the “Selection_to_Max” scene. JumpTo(Play_Current); Or jump to the Play_Current scene. Selection = Zero + 0x00; Return to the first play sequence0. JumpTo(Play_Current); Jump to the Play_Current scene. VoicePlay(001_en); Play the sound file “001_en” VoicePlay(002_en); Play the sound file “002_en” VoicePlay(003_en); Play the sound file “003_en” VoicePlay(004_en); Play the sound file “004_en” Play_Continuous VoicePlay(005_en); Play the sound file “005_en” VoicePlay(006_en); Play the sound file “006_en” VoicePlay(007_en); Play the sound file “007_en” Selection_to_Max Play_Repeat VoicePlay(008_en); Play the sound file “008_en” Sleep(); MCU enters the sleep mode. VoicePlay(001_en); Play the sound file “001_en” VoicePlay(002_en); Play the sound file “002_en” VoicePlay(003_en); Play the sound file “003_en” VoicePlay(004_en); Play the sound file “004_en” VoicePlay(005_en); Play the sound file “005_en” 44 EasyPlay User’s Guide Scenes Play_STOP Volume_Control Volume - Volume + Vol_to_Min Vol_to_Max V0 V1 V2 V3 V4 V5 V6 V7 I2C_ISR Test_Mode Check_sum_ok Scripts Comments VoicePlay(006_en); Play the sound file “006_en” VoicePlay(007_en); Play the sound file “007_en” VoicePlay(008_en); Play the sound file “008_en” JumpTo(Play_Repeat); Jump to the Play_Repeat scene Stop(CH0); Stop playing. Sleep(); MCU enters the sleep mode. Dispatch(Vol); (1) Dispatch the volume level with the Vol value. (2) See Volume Setting for reference. Sleep(); MCU enters the sleep mode. Jump to Vol_to_Min if Vol = Zero + 0x00; When the volume parameter reaches the minimum, jump to the “Vol_to_Min” scene. Vol = Vol - 0x01; Or the volume parameter will reduce by 1. JumpTo(Volume_Control); Jump to the Volume_Control scene. Vol = Vol + 0x01; Volume parameter plus 1. Jump to Vol_to_Max if Vol = Max_Vol + 0x00; When the volume parameter reaches the maximum, jump to the “Vol_to_Max” scene. JumpTo(Volume_Control); Or jump to the Volume_Control scene. Vol = Max_Vol - 0x01; The volume level returns to the end one. JumpTo(Volume_Control); Jump to the Volume_Control scene. Vol = Zero + 0x00; The volume level returns to the first one. JumpTo(Volume_Control); Jump to the Volume_Control scene. Volume = 0x00 The current volume level is the mute status. Sleep(); MCU enters the sleep mode. Volume = 0x01; The current volume level has a given value of 1. Sleep(); MCU enters the sleep mode. Volume = 0x02; The current volume level has a given value of 2. Sleep(); MCU enters the sleep mode. Volume = 0x03; The current volume level has a given value of 3. Sleep(); MCU enters the sleep mode. Volume = 0x04; The current volume level has a given value of 4. Sleep(); MCU enters the sleep mode. Volume = 0x05; The current volume level has a given value of 5. Sleep(); MCU enters the sleep mode. Volume = 0x06; The current volume level has a given value of 6 Sleep(); MCU enters the sleep mode. Volume = 0x07; The current volume level has a given value of 7, the maximum. Sleep(); MCU enters the sleep mode. I2C_Trigger = I2C_DATA AND 0x07; Transmit the lowest 3 bits of the I2C_DATA to I2C_Trigger. Dispatch(I2C_Trigger); See I C Data Relation for reference. Sleep(); MCU enters the sleep mode. Check_sum(); Accumulate and calibrate the VROM space. RAM1 = 0x00; The value given to RAM1=0. Jump to Check_sum_ok if RAM18 = RAM1 + 0x00; If the accumulation and calibration of VROM is correct, then RAM18=0 or else RAM18=1. Jump to Check_sum_ok if it is correct. Triangle_Wave(1.0 S); Incorrect, the AUDIO port outputs a 1S triangle wave. Delay_ms(1000); Pause for 1S. Triangle_Wave(1.0 S); Re-output 1S triangle wave. KeyTrigger(KeyTrigger); Initialise the key trigger “Scene”. Sleep(); MCU enters the sleep mode. Triangle_Wave(5.0 S); If the accumulation and calibration of VROM is correct, the AUDIO port outputs a 5S triangle wave. 2 KeyTrigger(KeyTrigger); Initialise the key trigger “Scene”. Sleep(); MCU enters the sleep mode. 45 EasyPlay User’s Guide EasyPlay RAM Window Content EasyPlay Trigger Window Content DispatchWave Window Content 46 EasyPlay User’s Guide Volume Setting Window Content I2C Communication Data Relation Window Content Recording and Audio Function Applications Function Requirements Five keys: K1 -- Erase all recordings K2 -- Add one recording K3 -- Play files in upward cycle K4 -- Play files in downward cycle K5 -- Stop recording/playing 47 EasyPlay User’s Guide Functional Description Choosing the Direct-6 mode in the HT83F22 to start a project according to requirements. The windows of the EasyPlay Scenes and Scripts are as follows: Scenes Start EraseAllRecord AddOneRecord PlayRecord_Up PlayRecord_Down STOP Scripts Comments KeyTrigger(KeyTrigger); Initialise the key trigger “Scene”. Sleep(); MCU enters the sleep mode. RecordEraseAll(); Erase all recordings. Sleep(); MCU enters the sleep mode. RecordIndex = ReadRecordNum; Read the present recorded item to the recording sequence. Record(RecordIndex); Record a sound. Sleep(); Recording completed automatically, the MCU enters the sleep mode. RecordNum_max = ReadRecordNum; Read the present recording number to the RecordNum_max. Jump to STOP if ZERO = RecordNum_max + 0x00; If no recording, no file is played. Call(Up_PlayRecordNum); Call the subroutine that adjusts the record/playing sequence parameter. RecordPlay(PlayRecordNum); Play the recording file according to the recording sequence parameter. Sleep(); MCU enters the sleep mode after the recording file is played. RecordNum_max = ReadRecordNum; Read the current recording number to the RecordNum_max. Jump to STOP if ZERO = RecordNum_max + 0x00; If no recording is done, no file will be played. Call(Down_PlayRecordNum); Call the subroutine that adjusts the record/playing sequence parameter. RecordPlay(PlayRecordNum); Play the file according to the record/playing sequence parameter. Sleep(); MCU enters the sleep mode after the recording file is played. Sleep(); Stop recording or playing and enter the sleep mode. Jump to Up_max if RecordNum_max=PlayRecordNum+0x01; If the recording/playing sequence parameter reaches the maximum, jump to the “Up_MAX” scene. PlayRecordNum = PlayRecordNum+0x01; Or the record/playing sequence parameter increases by 1. RET(); Return from subroutine. PlayRecordNum = 0x00; The record/playing sequence returns to the first one. RET(); Return from subroutine. Jump to Down_MIN if ZERO = PlayRecordNum + 0x00; If the recording/playing sequence parameter reaches the minimum, jump to the “Down_MIN” scene. PlayRecordNum = PlayRecordNum – 0x01; Or the recording/playing sequence parameter reduces by 1. RET(); Return from subroutine. PlayRecordNum = ReadRecordNum; Read the current recording number to the parameter of the record/playing sequence. Up_PlayRecordNum Up_MAX Down_PlayRecordNum Down_MIN PlayRecordNum= PlayRecordNum – 0x01; The record/playing sequence returns to the end. RET(); Return from subroutine. 48 EasyPlay User’s Guide The EasyPlay RAM and Trigger window content is as follows. Programming and Demo Environments Programming and demo environment diagrams Demo Board HT83F22_EASYPLAY Key Placement Hardware Platform Key Number KEY1 KEY2 KEY3 KEY4 49 KEY5 KEY6 KEY7 KEY8 KEY9 KEY10 EasyPlay User’s Guide Software Platform Key Number (Key#) a) Combo Operating Mode The key numbers related to the hardware are KEY5-KEY8. b) Direct-6 Operating Mode The key numbers related to the software are KEY5-KEY10. c) Matrix-8 Operating Mode The key numbers related to the hardware are KEY1-KEY8. 50 EasyPlay User’s Guide Holtek Semiconductor Inc. (Headquarters) No.3, Creation Rd. II Science Park. Hsinchu, Taiwan Tel: 886-3-563-1999 FAX: 886-3-563-1189 http://www.holtek.com Holtek Semiconductor Inc. (Taipei Sales Offeice) 4F-2, No. 3-2, YuanQu St., Nankang Software Park, Taipei 115, Taiwan Tel: 886-2-2655-7070 FAX: 886-2-2655-7373 FAX: 886-2-2655-7383 (International sales hotline) Holtek Semiconductor Inc. (Shenzhen Sales Offeice) 5F, Unit A, Productivity Building, No.5 Gaoxin M 2nd Road, Nanshan District, Shenzhen, China 518057 Tel: 86-755-8616-9908 FAX: 86-755-8616-9722 Holmate Semiconductor(USA), Inc. (North America Sales Office) 46712 Fremont Blvd., Fremont, CA 94538 Tel: 1-510-252-9880 FAX: 1-510-252-9885 Http:// www.holmate.com Copyright 2011 by HOLTEK SEMICONDUCTOR INC. The information appearing in this Data Sheet is believed to be accurate at the time of publication. However, Holtek assumes no responsibility arising from the use of the specifications described. The applications mentioned herein are used solely for the purpose of illustration and Holtek makes no warranty or representation that such applications will be suitable without further modification, nor recommends the use of its products for application that may present a risk to human life due to malfunction or otherwise. Holtek’s products are not authorized for use as critical components in life support devices or systems. Holtek reserves the right to alter its products without prior notification. For the most up-to-date information, please visit our web site at http://www.holtek.com 51