Basic Information Functional Description Application Description Points to Note Others

Basic Information


Question 1

Can I install HT-IDE3000 on Windows 2000 system and any precaution should be taken?

Answer

HT-IDE3000 can operate properly on Windows 95/98/NT/2000/XP. Please note that for Windows NT/2000/XP, the installation should be performed under administrator's privilege.


Question 2

What is the highest system frequency that HT-ICE can emulate?

Answer

The HT-ICE can emulate up to 24MHz, but user should refer to the MCU data sheet for actual device operating frequency range.


Question 3

What kind of programmers that are available in Holtek, and what are the differences? 

Answer

There are three kinds of programmers in Holtek. First is the new version of HT-ICE which integrates the programmer on board. It is suitable for use in product development stage. Second is the HT-Writer which comes handy and can do the programming independently, or it can be connected to a PC via an RS232 port. The third and the last is the HandyWriter. Note that this model of programmer is out of production, however, service to this model of programmer is available 'till the end of year 2004.


Question 4

How to connect to the Textool or 20-Pin Header when using HT-Writer for device programming?

Answer

Just simply connect the 12 corresponding programming signals between the device and the Textool. 

OTP Pin Name

Programming Signal

40-Pin Textool

20-Pin Header

PA0

AD0

6

8

PA1

AD1

5

6

PA2

AD2

4

4

PA3

AD3

3

2

PA4

CLK

38

10

PA5

CS

37

12

PA6

RW

36

14

OSC1

Ground

33

 

OSC3

Ground

13

 

VDD

VDD

32

18

RES

VPP

31

20

VSS

Ground

11

11, 13, 15, 16, 17, 19

(Note: For devices that have no OSC3 pin, only the rest of the 11 pins are required to be connected.)

For package form devices, if the pin-out does not fit the programmer, then a dedicated adapter card is needed which is available in Holtek. For DICE form, simply connect the corresponding 11 or 12 signals between the DICE and the 40-pin Textool or 20-pin Header. Note that the connections of the 11 pins should be as short as possible.


Question 5

What is the maximum current that can be supplied by VCC in the HT-ICE? Also what is the output current that can be supplied by the I/Os?

Answer

The simulator internal VCC can supply a maximum current of approximately 600ma. All of the I/Os together can supply a current of about 300mA.


Question 6

What operating systems will not work with the IDE-3000.

Answer

The HT-IDE3000 can be used under the Windows 95/98/NT/2000/XP operating systems. For more details consult the HT-IDE3000 handbook.


Question 7

When hardware simulating the HT46R71D, when measuring the charge pump output pin VCHP voltage, why is the voltage-doubler effect not apparent?

Answer

During simulation, when measuring the voltage-doubler voltage on pin VCHP, it is important to ensure that the program is simulating at full speed. This is because during simulation, it is important to ensure that the charge pump is operating at a normal output frequency of around 20KHz, to allow the charge pump to operate correctly.


Functional Description

 


Question 1

Does HT-IDE3000 support Simulator and how to invoke this feature?

Answer

The Simulator feature for HT46/HT47/HT48/HT49/HT95 series is available in HT-IDE3000 v6.0. User can switch to the simulation mode in the Debug Options dialog. Furthermore, user can invoke the VPM (Virtual Peripheral Manager) to simulate the behavior of some common peripheral devices.


Question 2

Why the pull-high/non pull-high Option is fixed at pull-high for certain MCU I/O lines ?

Answer

Due to the package pinout limitation, some of the I/O lines are not used and they are automatically fixed to pull-high to reduce the power consumption.


Question 3

What is the purpose of Generate Demo File (.DMO) function in the HT-IDE3000?

Answer

With the .DMO file and HT-DEMO.EXE, user can demonstrate the already developed project in a PC where HT-IDE3000 is not installed. Please note the Debug feature is not available in the demo mode.


Question 4

Why the 16-bit timer counts are different from what I expect when using step?

Answer

Because of the constraints of ICE itself, 16-bit timer should be examined by setting breakpoints instead of step function.


Question 5

How can I convert my OTP project into a Mask type MCU project?

Answer

In the Project Option Dialog box, select the counterpart Mask MCU and its associated options and then ReBuild this project to convert into the Mask type MCU project.


Question 6

Is there any limitation on function size?

Answer

A function's code size cannot exceed the size of a ROM bank, i.e. 8K, not the MCU's ROM size. If you have a large function please split it into several functions.


Question 7

Are there bit manipulation and variable address reading statements within Holtek's C language, if so what are they?

Answer

Holtek's C language is similar to the standard C language. Included is not only &(AND), |(OR), ^(XOR), ~(NOT), <<(SHIFT LEFT), >>(SHIFT RIGHT), but also integer and long integer shift left/right with or without carry flag. For defined variables, * and & pointers are available. Please refer to the chapter 10 of the HT-IDE3000 User's Manual from webpage http://www.holtek.com.cn/referanc/referanc.htm.


Question 8

Can the HT-IDE3000 software simulator simulate the A/D interrupt?

Answer

The software simulator is not able to simulate the A/D functions therefore is not able to implement an A/D interrupt.


Question 9

How to change the variable contents under the HT-IDE environment for debugging purposes?

Answer

You may change the contents in the RAM window.

  • If the variable is defined by using the EQU directive, simply change the contents of the corresponding address in the RAM window.

  • If the variable is defined by using the DB directive, you may first type the "variablename" in the Watch window, the address and current value will then be displayed. Afterwards, go back to the RAM window and use the address shown to change the variable contents.


Question 10

How to examine the 2-dimension array contents from the Watch window?

Answer

Take a 2-dimension array unsigned char x[2][2] for example;
Currently, a 2-dimension array expression is not supported in the HT-IDE3000 environment, enter .x[0][0] and .x[0][1] pointing to the same RAM location. However, users may watch the array variable by using a 1-dimesion expression;
enter .x[0] for viewing .x[0][0] contents
enter .x[1] for viewing .x[0][1] contents
enter .x[2] for viewing .x[1][0] contents 
enter .x[3] for viewing .x[1][1] contents


Question 11

When using the USB conversion cable, do I also require driver software? Do I need to use the PC parallel port?

Answer

  1. When using the USB cable no driver software is required.

  2. One end of the USB cable is connected to the USB port on the PC, the other end is connected to the socket on the ICE. It is not necessary to use the parallel port.


Question 12

Why, when using the C-compiler, if I want to write to the LCD in a subroutine, the data is not displayed.

Answer

When a global variable is used in a sub-routine, the C-compiler will use the Bank Pointer, which it will clear to zero. At this time if data is written to the LCD Bank, the data will be written to Bank 0, which will result in no effect on the LCD display.


Question 13

If the variable aa is setup as: "aa equ 20h", how can I setup bit definitions of aa, for example cc = aa.1, or dd = aa.2?

Answer

Use the statement:

cc equ [20h].1 or cc equ[aa].1


Question 14

What is the difference between the two statements "LABEL DB 1" and "LABEL DB ?" ?

Answer

Both statements are identical, however it is recommended that only one type is used. The first type is the older form of statement.


Question 15

If using Holtek C to write my program, when defining a constant in a file, in another file how can I access use it?

Answer

Presently the C-compiler does not have this function. In Page 30 of the HT-IDE3000 PROGRAMMER'S GUIDE FOR HOLTEK C LANGUAGE.PDF it says that "A CONSTANT STRING MUST BE USED IN THE C FILE WITH THE MAIN FUNCTION."


Question 16

When using the new version of the HT46 emulator, can all of Holtek MCU types be programmed using the onboard writer, or can only the HT46 types be programmed?

Answer

The emulator can program all types of Holtek MCUs.


Question 17

In Holtek C, how can I determine the number of program execution cycles?

Answer

You can use the Cycle Count function under the View Menu, within the HT-IDE3000.


Question 18

Is it possible to use the HT-Writer2C to program the full range of Holtek MCU devices?

Answer

With the exception of the HT48EXX devices, the HT-Writer2C can program all of the Holtek MCU devices.


Application Description

 


Question 1

Why I might get errors in the comments sometimes?

Answer

The possible reason is that the C preprocessor control code is present in the comments. The binary code FD, FE are the control codes of the C preprocessor, they should not be used in the C file, even in the comments. If you write your comments not in English, please make sure the above control codes are not used.


Question 2

Why the following simple files get so many errors?

//def.h
extern int b

//a.c
#include "def.h"
unsigned char a;

Error(C2080) ./def.h 1 : illegal character '#'
Error(C2049) ./def.h 1 : syntax error; found '2' expecting ';'
Error(C2001) ./def.h 1 : unrecognized declaration

Answer

The errors are caused by there is no carriage return in the last line of the def.h file. Please make sure that the last line of your source file has a carriage return. The HT-IDE editor always inserts a carriage return in the last line.


Question 3

If I define a variable tmp

extern unsigned int tmp;
unsigned int tmp @ 0x40;

it will get compile errors ?

Answer

If you define a data variable with specified address, you should not also declare it an extern variable in the same file. Actually, an extern variable declaration is used in the file which dose not defined it. For example,

//main.c
//extern unsigned int tmp; // it is wrong to declare tmp as 
//extern variable in the same file
unsigned int tmp @ 0x40; // define tmp variable
....

//fuction.c
extern unsigned int tmp; // tmp is not defined in the function.c, it should be declared as extern variable
....


Question 4

Regarding Holtek C compiler, if I declare a variable

unsigned long int two_byte;

is there an easy way to access the higher order byte or lower order byte directly?

Answer

To minimize the code, you might use the union/struct data type.

union {
unsigned long word;
struct{
unsigned int lo; 
unsigned int hi; // be careful the order
}byte;
}mydata;

mydata.word = 0x1234;
lo = mydata.byte.lo //MOV A, _mydata
//MOV _lo,A
hi = mydata.byte.hi;//MOV A, _mydata[1]
// MOV _hi,A


Question 5

How can a bit variable be assigned to a designated memory location in the C language? 

Answer

In the Holtek C language, a bit variable can be designated to a memory location by using #define _c_0a_0 where 0a is the designated address. However, if the variable is defined by the db directive, because the address is assigned via the C compiler, this should have been acquired first by checking the actual address from the watch window.


Question 6

If using inline assembly language in the C language, which uses internal resources, such as registers, accumulator etc, should these resources be specially taken care of or will they be managed properly though the C compiler?

Answer

With the exception of the interrupt service routines, it is not necessary for programmers to take care of the registers and accumulator, as they will be handled correctly through the C compiler. In interrupt service routines, whatever resources are used, with the exception of the PC, ACC and STATUS registers, should be stored first and then restored before leaving the interrupt service routine.


Question 7

In order to reduce the power consumption of the MCUs the Halt mode is used, however during emulation the system wakes up unintentionally, how can I solve this problem?

Answer

The MCU will wake up from a halt condition when any interrupt request flag changes state from 0 to 1. In other words when any interrupt condition occurs, the MCU will wake up if it is in the Halt condition. Although some unused interrupts may already have been disabled as they are not required by the application program, however if their request flag changes state from 0 to 1, the MCU will still wake up if it is in the Halt mode and even if these interrupts are not enabled. To solve this problem and prevent false wake up situations from occurring, the request flag of any unused interrupts should first be set to 1.


Question 8

When in the MS-DOS mode of Windows 98/XP, how can I assemble and compile my code?

Answer

The assembly syntax is as follow:
hasmw32.exe /hide= window handle /chip=chipname /z asmfile objfile

Note that:
/hide=window handle (under DOS there is no window handle to setup 8 digit hex code, for example 12345678)
/chip=chipname chipname is the chip name being presently used
/z include debug information
asmfile specify assembly file name
objfile specify object file name

example:
hasmw32.exe /hide=12345678 /chip=ht48r50a-1 /z test.asm test.obj

The link syntax is as follows:
hlinkw32.exe /hide= window handle objs,tsk,map,dbg,libs
/hide=window handle (under DOS there is no window handle to setup 8digit hex code, for example 12345678) 
objs : specify object file name
tsk : specify task file name
map : specify map file name
dbg : specify debug file name
libs : specify library file name

example:
hlinkw32.exe /hide=12345678 t1.obj+t2.obj , t1.tsk,t1.map,t1.dbg,l1.lib+l2.lib


Question 9

In MS-DOS mode under Windows 98/XP, when running an assemble/compile, if I want to create a list file what parameters should I add?

Answer

assembly syntax:
hasmw32.exe /hide= window handle /chip=chipname /z asmfile objfile listfile
link syntax:
hlinkw32.exe /hide= window handle objs,tsk,map,dbg,libs


Question 10

In the MS-DOS mode of Windows 98/XP, when I run an assemble/compile operation in the HT-IDE, the command used is as follows:
hasmw32.exe /hide=1/chip=ht48c50 /z test.asm test.obj
However as it does not execute correctly, what is the problem?

Answer 

A. You must not use /hide=1
/hide=XXXXXXXX requires an 8-digit hex code value, therefore change to:
/hide=12345678
B. /chip=ht48c50 - note that this device does not exist, only devices which are listed in the \include directory can be specified here, therefore change to:
/chip=HT48C50-1

Question 11

When using the emulator to simulate the 16-bit timer function, the software simulator can correctly load the initial timer value, but when connected to the hardware simulator, there seems to be abnormal operation. How can I resolve this problem?

Answer

When connected to the emulator, if using the single step function, then this error will occur. However if the emulator is permitted to free-run past the "load timer register" instructions there will be no problem. The problem can be eliminated by setting a breakpoint just after the "load timer register" statements and allowing the program to free-run to this point.


Question 12

The HT48RA0-2 has 32 bytes of RAM, therefore why when I only want to use 28~29 bytes does the C-compiler refuse to write?

Answer

The C-compiler reserves a certain area of RAM for use by interrupt & function parameter & local function variables. The actual amount required is not the same and depends on the application program's use of the interrupt & function parameter & local function variables. As a result not all of the RAM is available for use by the programmer.


Question 13

In the C language, how can I define and access the LCD display memory?

Answer

int seg0 @0x142; 

This statement shows the variable seg0 defined in bank1 start address 42H. After this you can directly manipulate seg0 for LCD operations. It is not necessary to use a group of statements to manipulate the bank pointer. Now the LCD area can be operated on using the MP1/IAR1 indirect addressing register pair.


Question 14

In the C language, when using assembly language functions, can variable names within the functions be randomly defined?

Answer

No, this is not possible as there is a specific way in which these variable names are defined. The variable names, in the assembly language functions, are formed by adding a different number to the end of the assembly language function name. According to the number of variables, the order of this added number ranges from 0 to n.


Question 15

Can the special USB cable for the HT-ICE be used by other computer peripheral products, for example USB printers?

Answer

This USB cable was specifically designed for use by the HT-ICE and therefore cannot be used by other computer peripheral devices.


Question 16

How can I determine if the basic functions of the emulator are problem free?

Answer

The IDE-3000 development system incorporates diagnostic tests, which can enable you to determine if the system has some basic problems. When all the diagnostic tests have been run and no errors reported, then you can be more or less assured that the emulator is working normally.


Question 17

For the same Holtek C language program, why is it that the execution code for the HT48E devices is longer than that for the HT48R devices?

Answer

This is because the RAM in the HT48E series is divided into two banks. Before manipulating any variables, the value of the BP must be given. If all the variables are declared to be in BANK0, then the generated code will be identical. For more details consult the HT-IDE3000 HOLTEK C handbook.


Question 18

Can the software simulator generate an OTP file?

Answer

No, this is not possible. However the hardware emulator can still be selected even if not connected. The system will generate an error message telling you that the ICE is not connected, however by ignoring this message and continuing, an OTP file can be generated. 


Question 19

How can I use the internal function _delay()?

Answer

This function allows the MCU to implement a fixed delay. If the delay is setup to be zero then an endless loop will be generated. The _delay() function can only accept constants and cannot accept variables. For example: _delay(100), will implement a delay time of 100 instruction cycles.


Question 20

Why is it that when using the HT-Writer, and then after choosing the MCU type, the HT-Writer issues a ROM Format Error. When this error message appears, is the writer still functioning normally?

Answer

The reason as to why this error message is generated is because the presently selected MCU type is different from the previously HT-Writer downloaded OTP MCU type. However it will not affect normal operation of the writer. 


Question 21

In Holtek C, how can I implement bit operations?

Answer

  • 1. Use Macro Definition:
    ?#define cSetb0 0x01、#define cSetb1 0x02…………#define cSetb7 0x80
    equivalent macro definition #define bitset(var,bitnum) (var|=1<<bitnum)
    ?#define cClrb0 0xfe、#define cClrb1 0xfd…………#define cClrb7 0x7f
    equivalent macro definition #define bitclr(var,bitnum) (var&=~(1<<bitnum))
    ?#define cTestb0 0x01、#define cTestb1 0x02…………#define cTestb7 0x80
    equivalent macro definition #define bittest(var,bitnum) ((var)&(1<<bitnum))

  • 2. Use absolute address:
    uchar flags @0x40;

    #define key_scan_f _40_0 //flags...key_scan enable
    #define key_dis_f _40_1
    #define key_long_f _40_2 //flags..long_key
    #define alarm_flag _40_3 //flags...send alam data
    #define ms500_flag _40_4 //flags...500ms
    #define min_flag _40_5 // flags...1 minute
    #define buzzer_flag _40_6 //flags...driver buzzer

  • 3. Use C type struct structure:
    struct out{
    unsigned motor:1; //motor
    unsigned relay:1; //relay
    unsigned speaker:1; //speaker
    unsigned led_red:1; //red indicator light
    unsigned led_green:1; //green indicator light
    unsigned :3; //Highest three bits not used
    }out;
    ;;;;;;;;;
    if(buzzer_flag)out.speaker=1;

Question 22

When the assembly process is allocating functions or variables in C language files, what setups are required for the functions or variables in the C language file?

Answer

In the C files, C functions or variables which are to be assembled and transferred should be named using capital letters. Because in Holtek C there are no public retained characters, therefore it is not necessary to declare them as public.
The functions and variables in the C file must be declared as extern; note that before the function or variable names in the C file an underscore must be added.


Question 23

When using mixed language programming, how are the C-language files and the .ASM files put together?

Answer

First it is not possible to place an include.ASM file in a C language file. Also it is not possible to place an include.C file into a .ASM file. If this is done then a compiler error will be generated. Next, each different file must be added to the working project using the following method: from the Menu select Project→Edit, then place the different files into the project. For issues involving the interaction of functions in different files, consult the HT-IDE3000 handbook.



Points to Note

 


Question 1

Why my project work fine with internal clock and doesn't work when choosing the external clock as system clock?

Answer

Please make sure the IO interface card is connected properly and the crystal is correct and well placed.


Question 2

Why the HT-ICE fails to connect to the PC?

Answer

Please check first the connection of the HT-ICE and then invoke the HT-IDE3000 built-in diagnosis program Hdiag32.EXE. If the HT-IDE3000 is running under the Windows NT/2000/XP, please make sure HT-IDE3000 is installed under the Administrator's Privilege.


Question 3

Why the checksums of .COD file of the same project generated in different PC are different?

Answer

The .COD file contains also the HT-IDE3000 version information and the company and region information provided by user, therefore the checksum of .COD files may be different. However, this won't affect the fabrication of Mask MCUs.


Question 4

There are two chips on the HT47X20 ICE interface card, namely RFADOSC-1 and RFADOSC-2, what are they for and what's the difference between them?

Answer

When the HT-ICE emulates the HT47C20-1/HT47R20A-1, the chip RFADOSC-1 is used and when emulates the HT47C20L, the chip RFADOSC-2 is used.


Question 5

What's the difference between the VDD and Low-volt-vdd on the HT47 ICE interface card?

Answer

The VDD provides 5V output sourcing from HT-ICE and Low-volt-vdd is the power input of R-F circuitry and should be provided with the same voltage as its final product applications.


Question 6

What's the difference between VDD and EXT_VDD on the HT46 ICE interface card?

Answer

On the HT46 ICE interface card, the 5V on VDD is provided by HT-ICE and EXT_VDD is the power supply to ADC circuitry. There is a jumper on the interface card, which allows the user to select either the internal 5V power supply from HT-ICE or external power supply, which is the same voltage as its final product applications.


Question 7

Which writer should I use to burn an unprogrammed MCU OTP chip?

Answer

You are recommended to use the HT-Writer with the ID Check function disabled to burn the MCU OTP unprogrammed chips.


Question 8

Although I am using the 32 kHz Real Time Clock Oscillator in my application, why is there is no socket for the 32 kHz crystal on the HT-ICE Interface card?

Answer

The HT-ICE already contains an integrated 32 kHz oscillator, therefore when the HT-ICE needs to emulate the RTC clock, an external 32 kHz crystal is not required.


Question 9

Is it possible to connect the HT-ICE to the PC via a USB port?

Answer

A dedicated Printer to USB Cable is available from Holtek to connect the HT-ICE to the USB port. Please contact us, or your local agent for details.


Question 10

Is it possible to connect the HT-Writer to the PC via a USB port?

Answer

Yes, this may be easily achieved by using any readily available standard RS-232 to USB converting cable.


Question 11

On the new HT48 ICE, why is it that when running the Testing IO EV0 diagnostics do I receive a PC output error?

Answer

Place SW2 on the HT48 ICE Interface card in the down position, because the up position selects the Carrier Output. For most situations SW2 should be in the down position.


Question 12

Why after a period of time of burning OTP devices, using the HT-Writer, the successful burn rate deteriorates? 

Answer

Check that there is good contact between the OTP devices and the 40-pin Textool socket. It is recommended that this socket is regularly cleaned of any debris or dust that may collect inside.


Question 13

After applying power to the HT-WRITER, why does the red LED flash, the buzzer emit a sound indicating an error condition and the software show a Flash Erase message? 

Answer

This is a normal phenomena, only after downloading an OTP will the writer operate normally.


Question 14

After installing the newly purchased ICE and after installing the software, why do I receive a message indicating that a .dll is missing?

Answer

This may be caused by a previous installation of an old software version. To remedy, check if there are old versions of the software, if so delete any folders containing these files and reinstall the new software.


Question 15

On the HT49 ICE interface card, why, when connected to an external LCD, all of the pixels are dark or bright and do not change?

Answer

This is because the VLCD voltage is either too high or too low. To overcome this problem, connect the output of a variable resistor to VLCD to provide a variable voltage to this pin, in order to obtain the correct level of black/white contrast.


Question 16

When emulating the HT48X05A-1, why does pin PC.0 give an output voltage of approximately 2.5V?

Answer

All of the HT48 series devices all require an interface card; on this interface card there is an SW2 switch. If the HT48CA6, which is remote control type of MCU, is being emulated, the switch should be placed at the HT48XA6 carrier output position. This is because pin PC0 is pin-shared with the carrier output REM, which has an output voltage of approximately 2.5V. When the HT48 MCU series devices are being emulated, the SW2 should be placed at the "Others" position, in which case the PC.0 pin will have the normal I/O voltage function and voltage levels. When HT48 MCU devices other than the HT48CA6 are being emulated, if pin PC.0 is discovered to be at the wrong levels, it should be because of the wrong position of switch SW2. This error voltage is caused by influence of the transistor Q1 and PC.0.


Question 17

What are the OTP dice programming steps for COB form?

Answer

  • Bond the dice to the COB

  • Program the dice on the COB

  • Conduct a COB functional test

  • Encapsulate the COB and afterwards solder the other devices


Question 18

What are the differences and notes that should be taken in programming Dice and Package forms?

Answer

  • If Dice forms are not coated, their contents can be erased by a UV eraser when subjected under 40 to 60 minutes of reprogramming.

  • Due to the bonding, PCB and tooling issues, the Dice form programming has a low yield rate compared to package form programming. Those that failed to pass COBs can be erased by a UV-eraser for 40 to 60 minutes. Check the bonding and PCB situations to ensure to have a higher programming yield. 


Question 19

I want to produce my products with an OTP dice form on board, how do I program those OTP dice devices?

Answer

To program OTP devices, 11 pins are required and they should be reserved on the PCB. Please check your local agent for detailed information of those pins. Users should prepare the connecting cable from those 11 pins to the 40-pin TEXTOOL on the programmer and then follow the standard programming procedure to burn the device on the PCB. Note that the tracks of those 11 pins on the PCB should be as short as possible and among them the PA0~PA6 should avoid connections to the outputs of other devices. If this situation cannot be avoided, a 1K ohm resistor in series with each line is recommended. In addition, the cable from the PCB to the programmer should be less than 15 cm.


Question 20

What points should be noted to keep a good programming yield? 

Answer

  • IC storage, programmer maintenance, software version update and socket replacement which might be oxidized, deformed or corrupted and may result in bad connection in the programming.

  • Qualified programming environment with electrostatic protection, stable power supply and computer systems, in addition, not to operate in a high temperature/humidity and dusty environment. 


Question 21

When I use the HT-Writer to program the OTP Dice, an "MCU: Cannot identify" message will pop up. Is this a bonding problem or an OTP defect?

Answer

For the package form of OTP devices, its product ID will be burnt into the device which can be used to display the device information in the message window, however, if the product ID code is missing, a warning message will pop up. This is usually the case for dice form OTP devices which have no product ID. To disable this warning function, deselect the Check ID option under the Options menu. If the HT-Writer is to be used in stand-alone mode, set the switch DIP1, which is located on the back of the HT-Writer to the OFF position.


Question 22

How do I select the A/D reference voltage source when emulating the A/D function.

Answer

On the interface card there is a jumper known as JP2. This jumper is used to select the reference voltage source. If the HT-ICE supplied 5V source is to be used as the reference voltage then the JP2 jumper should be placed so as to short positions 1 and 2. If an external voltage source is to be used as the reference then jumper JP2 should be placed so as to short positions 2 and 3. The external source can then be connected to JP3 and JP4.


Question 23

When using the HT-WRITER on its own to program data into the OTP devices, when the process fails and the red light flashes how can I continue programming other devices?

Answer

After the red light flashes, when the switch is pressed, the HT-WRITER will enter the waiting mode, when the switch is pressed again the programmer will continue to program other devices.


Question 24

Why is it that when using the HT95 ICE, when the low battery detect is disabled everything runs fine, however when the low battery detect is enabled problems occur? The LBFG bit which is bit 4 in the LCDC register, does not change and remains at a 1 value (battery low)?

Answer

The low battery detect in the ICE needs to be disabled, as there is no way to simulate this function. However in the OTP and Mask devices the function is normal.


Question 25

For the HT46R24/HT46C24 devices, how can the event counter/pulse width measurement function be simulated in the HT46 ICE?

Answer

Because of the 28 pin package limitations of the HT46R24/HT46C24 devices, the TMR1, PD1 and PWM1 pins share a common pin. However on the interface card on the HT46 ICE, the TMR1 pin is independent, so the PD1 pin cannot be used as an event counter or pulse width measurement pin. The independent TMR1 pin on the interface card must be used.


Question 26

When using the HT49R50A-1 series devices with the HT-IDE3000 6.3, the software has been setup to program an OTP device, but the .OTP file is not generated. Why does this happen?

Answer

To produce the OTP file, an OTP type MCU must be selected as the chosen device. The emulation hardware requires that the file will be generated after the compilation takes place. However it should be noted that an emulator is not necessary to produce the .OTP file as this can be still be generated with the emulator hardware disconnected.


Question 27

On the Interface Card for the HT46R65, PD4 and INTO have separate pins, however on the device these pins are common. During emulation how do I connect these pins?

Answer

If you are using the most recent interface card (Part number CPCB46SER0001A), then when the blue switch on the interface card for the HT46R65 is used, everything will be fine. However if you are using the old interface card version (Part number CPCB46SER0000A), then it is necessary to connect the PD4 and INTO pins together on the target board.


Question 28

How can I compile my program to create a file that can be used by third party programmers?

Answer

After compilation the system will generate an .otp file, this is the file you need which can be used to program an OTP device using a HOLTEK or Hi-Lo programmer.


Question 29

How can a serial number be programmed into the devices?

Answer

The HT-WRITER has a S/N function which can program a serial number into each device. The S/N function should be enabled from within the HT-WRITER operating software where the S/N address and value can be setup. It should be noted that the address where the S/N is programmed into must be a vacant program memory address to enable the program to run normally. Otherwise, if the S/N address is setup to be an already used program memory address, the results achieved from the emulator will be different to that from the programmed OTP device and will result in erroneous operation.


Question 30

During OTP programming, if a S/N is programmed into the device, will an error message be generated during verification?

Answer

Programming the S/N into the device will not influence the verification process and will therefore not cause an error message to be created.


Question 31

When using the HT-49 ICE to simulate the LCD, why does the LCD not illuminate?

Answer

First check if the LCD output waveform is correct. If there is no LCD waveform, then adjust the value of the VLCD (VR2) on the ICE until a correct waveform appears. If it still does not appear, then check if the corresponding LCD RAM has no values.


Question 32

When using the LCD software simulator within the HT-IDE3000 software, why is it when the emulator 220V AC power supply is the same as the PC, the display is normal, otherwise the display is abnormal?

Answer

When a notebook computer is using its own internal battery, the two grounds will be different, which can cause the problem mentioned. When the emulator and notebook computer are using the same 220V AC power supply, the ground lines will be the same, which will not influence the operation of the LCD simulator.


Question 33

When using the ICE as a hardware simulator, is it necessary to insert a programmed OTP dev ice into the interface card?

Answer

The Holtek ICE hardware fully simulates the MCU device in real time and therefore does not need a programmed device to be inserted into the interface card. The IC socket on the interface card only requires a flat cable to be connected between it and the target board. The application program written into the IDE can then be used to fully emulate the action of an actual device. Only until after the program has been fully debugged is it necessary to program an actual OTP device.


Question 34

When using the HT-WRITER, why is it not possible to download the HT95A40P OTP file?

Answer

This may be because the HT-WRITER you are using was produced before the HT95A40P device was released. If this is the case the software for the Writer may not contain the information for this device in which case an upgrade for your present writer should be obtained from your Holtek representative.


Question 35

When using the ICE, on the interface card at Y1, if I use a 32768 Hz crystal, it does not run. Why does this happen?

Answer

On the interface card, position Y1 represents the location of the IC oscillator pins OSC1 and OSC2. The 32768 Hz crystal cannot be connected to these pins. The HT-ICE has an internal 32K crystal which can be used to emulate the actual 32K oscillator. If this is to be selected as the system oscillator, then at the Configuration Options, select Fsys to be the RRCCLK for Fsys.


Question 36

When using the CICE48C00CCF ICE to simulate the HT48XA1/XA3 everything runs normally, however when simulating the HT48XA5 device, the ICE does not operate normally, why is this?

Answer

This is due to the fact that the HT48XA5 device has a 40K X 16 Program memory capacity. For proper emulation the CICE48E000004A should be used.


Question 37

Why, when programming the HT82K96E it cannot be recognised by the programmer hardware?

Answer

This is because the HT82K96E has other application requirements, and is therefore not pre-written with an ID code. For this reason it cannot be automatically recognised by the programmer. For this reason, when programming the HT82K96E, the device type should be selected manually.


Question 38

When connecting an LCD panel in my application, the LCD display does not function correctly and appears to flash. What is the reason for this?

Answer

When using the LCD simulator or connecting an LCD panel, the LCD driver clock should be setup to be as close to 4kHz as possible. For example, if fsys=4MHz, the clock source(fs) = fsys/4 = T1 = 1MHz. Therefore the LCD driver clock should be setup to be fs/28 = 1MHz/28 = 3906Hz. If this is done the LCD DISPLAY should display data normally.


Question 39

When simulating the HT46R51A/52A/53A/54A, when using MP0 and MP1, why is it not possible to indirectly address Bank0?

Answer

Because the IDE-3000 conforms to MP having 7-bits, it is not possible to directly address the full Bank0 area. By masking the option choice that MP is 8-bits this problem can be resolved.


Question 40

When simulating the HT46R71D, why is it not possible to load a value into chprc?

Answer

This condition should be because the charge pump source has not been properly selected. Attention should be paid to ensure that the J3 interface connection and the actual application are the same. J3 is used as the charge pump source selection, when connected to INT_VDD, it will be 3.3V, if it is selected to be EXT_VDD, then the voltage source is determined by the pins J9 and J10 (2.2V~5.5V).


Question 41

When declaring array constants in HOLTEK C, are there any problems which should be noted?

Answer

When reading array constants certain index values, the compiler result will use call instructions for its implementation. Therefore at this time it is important to manage the stack correctly. Especially if inside an interrupt routine, if the array constants are used, then before entering the interrupt routine it is important to ensure that at least 2 levels of stack are available, otherwise a stack overflow may occur.


Others

 


Question 1

When using C in several files, after compiling, but when placing the interrupt points in the document, after running, no interrupt occurs. Why does this happen?

Answer

As normally this problem will not occur it is recommended that the program is run again or the HT-IDE3000 software is installed again.