Basic Information Functional Description Application Description Points to Note Others

Basic Information

 

Question 1

What are the contents of the HT47 R-F type MCUs?

Answer

Together there are a total of 4 devices in the Holtek HT47 R-F type MCU series. Made up from different memory sizes of 1K and 2K and supplied in OTP and Mask versions. They are known by name as the HT47C10L, HT47R10A-1, HT47R20A-1, HT47C20-1 and HT47C20L. The specifications and description of each device can be found in its relevant data sheet.


Question 2

What are the differences between the various devices in the HT47 R-F type MCUs ?

Answer

Please check on the table below for the differences. For more detailed information consult the data sheet.

Part No. VDD System
Clock
Program
Memory
Data
Memory
I/O LCD Timer Interrupt R-F

IR
Carrier

PFD Stack Package
16-bit RTC Ext. Int.
HT47R10A-1
HT47C10-1
2.2V~
5.5V
400kHz~
8MHz
1Kx16 32x8 8 9x4 1 v 1 2 1ch -- -- 2 44QFP
HT47C10L 1.2V~
2.2V
32768Hz --
HT47R20A-1
HT47C20-1
2.2V~
5.5V
400kHz~
8MHz
2Kx16 64x8 12 19x4
or
20x3
1 v 1 3 2ch v v 4 64QFP
HT47C20L 1.2V~
2.2V
32768Hz --

Question 3

What kind of packaging is supplied for the HT47 R-F type MCU?

Answer

HT47R10A-1/HT47C10L : 44 QFP
HT47R20A-1/HT47C20-1/HT47C20L : 64 QFP


Question 4

What are the special features and characteristics of the HT47 R-F type MCUs?

Answer

Operating Voltage range of 2.2V ~ 5.5V; HT47CXXL 1.2V ~ 2.2V
Industrial standard temperature range of -40oC ~ +85oC
Fully compatible OTP and Mask Types
For further details consult the relevant Holtek data sheet


Question 5

What is the operating frequency of the HT47 R-F type MCUs?

Answer

For HT47R10A-1/HT47R20A-1/HT47C20-1 in 5V, 3.3V or 3-cell battery applications, the maximum operating frequency is 8MHz (3.3V). While in 3V or 2-cell battery applications, the maximum operating frequency is 4MHz (2.2V).

For HT47C20L in 1-cell battery applications, the operating frequency is 32.768kHz (1.2V~2.2V).

For HT47C10L in 1-cell battery applications the operating frequency is 26kHz~40kHz (1.5V).


Question 6

What are the ESD and Latch up features of the HT47 R-F type MCUs?

Answer

As the HT47 R-F type series of MCUs possess exceptional ESD and Latch up protection they are suitable for industrial use. In the area of ESD protection the devices conform to the US military spec MIL-STD-883E 3015.7 and each I/O can withstand in excess of 5KV of body static. Regarding latch-up, the devices conform to the JEDEC-NO.17 specification, when tested in current mode, each I/O can withstand in excess of 100mA.


Question 7

What is the duration of the Power On Reset?

Answer

For the HT49 LCD type MCU at 3V operating voltage, the Power On Reset time range is 45ms~180ms; at 5V, the Power On Reset time range is 35ms~140ms.


Question 8

What is the system frequency tolerance if an RC oscillator is used as the system clock?

Answer

If the RC oscillator is selected, due to tolerances in the device processing, a nominal ±20% frequency tolerance from lot to lot is expected. Assuming that the external resistor has a ±5% tolerance, then the overall frequency tolerance would be ±25%.

The above specified tolerance is provided as a reference only and is not guaranteed. For applications where a more precise frequency source is required it is recommended that either a resonator or crystal frequency source is used.


Question 9

If PA2 is setup as an IR carrier output what is the output frequency?

Answer

The IR carrier output is the system frequency clock divided by 12, therefore for a system frequency of 480kHZ the IR carrier frequency will be 40kHz.


Functional Description

 


Question 1

The HT47 R-F type MCUs have two memory pointers, what is the difference between them?

Answer

MP0/IAR0 and MP1/IAR1 are pairs of registers that need to be used together. MP0/IAR0 can only be used by RAM BANK 0 while MP1/IAR1 can be used by any RAM BANK.


Question 2

How are the table read instructions used and are there any special points to note?

Answer

There are two kinds of table read instructions, the first is the TABRDC instruction which is used to read data from the present program memory page. The second is the TABRDL statement which can read data from the last page of program memory. When reading data from tables it is first necessary to place the low byte of the program memory address where the data is stored, into the table pointer register TBLP. The table read instruction can then be executed which will place the low byte of the table data into the register indicated by the table read instruction. The high byte of the table data will be placed into the TBLH register. Note that the highest unimplemented bits in the data high byte will read as "0".


Question 3

Why, when PA is low the device cannot wake up?

Answer

The PA port pins can all be configured to wake up the device but are activated only on a low going edge. If the corresponding PA pin was low when the HALT instruction was executed then the low logic state of this pin will have no wake up effect as no low going transition exists.


Question 4

Why, when a low going edge is presented on the external interrupt pin the MCU does not wake-up?

Answer

Although the MCU can be woken up by an external interrupt, the actual wake process takes place only when the Interrupt Request Flag EIF0/EIF1 changes from "0" to "1". If when the MCU enters a HALT condition the EIF0/EIF1 flag is already set to "1", then a further interrupt will have no effect on the status of the EIF0/EIF1 flag, which will remain in its present "1" condition. As a transition a wake-up will not occur.


Question 5

What are the clock sources of RTC,WDT and Time Base available for the HT47 R-F type MCUs?

Answer

For the HT47 R-F type MCU, the RTC, WDT and Time Base use the same clock source. The clock source is chosen in the configuration options.

If RTC OSC is chosen as the system clock, the RTC, WDT and Time Base use the RTC OSC as clock source;
If RTC OSC is not chosen as the system clock, the RTC, WDT and Time Base, there are three clock resources available, namely:

  1. fSYS/4

  2. RTC OSC

  3. WDT OSC

For HT47C10L, only internal 32kHz RC oscillator is available as the RTC, WDT and Time Base clock source. 


Question 6

If the RTC OSC is selected as the system clock, why the clock source for RTC, WDT and Time Base is fixed to RTC OSC?

Answer

The RTC OSC is an independent clock source which keeps on oscillating even in the HALT mode. If the RTC is selected as the system clock, there is no need to have another WDT OSC. Under the power saving consideration, WDT clock source is therefore fixed to RTC OSC.


Question 7

If the WDT oscillator clock is selected how is the WDT timing calculated?

Answer

The WDT oscillator at an operating voltage of 5V has a typical period of 65µs (range of 32µs~130µs). The watchdog time will range from 65µs x 215=2.13 Sec. to 65µs x 216=4.26 Sec.


Question 8

What is the difference between choosing the WDT oscillator or the fSYS/4 clock as the WDT clock source?

Answer

If the WDT oscillator clock is chosen as the clock source then if the system enters a HALT condition the WDT timer will continue to function. When the WDT time-outs the system will be woken up from its HALT state. If the fSYS/4 clock is chosen as the WDT clock source then the WDT will cease to function and system will not be woken up when a HALT state is entered. The cost in choosing the WDT oscillator is that some power will be consumed by its clock. For systems that operate with HALT feature and need not to be woken up from HALT by WDT overflow, in this case the fSYS/4 clock source should be selected.


Question 9

What is the purpose of 2 CLR WDT instructions?

Answer

Two CLR WDT instructions feature increases the system reliability. If the program contains two loops in the main program a CLR WDT1 instruction can be placed in one loop and a CLR WDT2 instruction in the other loop. If a malfunction occurs, perhaps due to noise, and the program enters an infinite loop none of the CLR instructions in the other loop will be executed, therefore the WDT will overflow and generate a reset signal to reset the MCU.


Question 10

How is the 16-bit timer setup?

Answer

The 16-bit timer/counter is a count up counter, which upon reaching a value of 65535 (0FFFFH) will reset itself to 0000H and generate an internal interrupt signal. To obtain different timer counts, say N, of less than 65536, the timer should be first preset with a fixed value of 65536-N. After setting up this preset value the timer should be activated which will enable it to count from this preset value to 65535. The value that the timer is to count N, is therefore given by the formula 65536-(65536-N)=N.


Question 11

What is the access sequence of the 16-bit Timer/Counter?

Answer

For the HT47 R-F type MCU, the internal data bus is 8-bit wide, therefore for the 16-bit Timer/Counter, the user has to write the Low Byte data first and then write the high byte data. To read the Timer/Counter contents, the user has to first read the High Byte data first and then the Low Byte data.


Question 12

How is 8-bit Timer/Counter setup in the Timer Mode?

Answer

For HT47R20A-1 and HT47C20 Timer/Counter, there are four modes available, namely Timer Mode, A/D Counter Mode, Event Counter Mode and Pulse Width Measurement Mode. For HT47C10L, there are three modes available except Event Counter Mode.

To set HT47R20A-1 and HT47C20 in the Timer Mode, the following process should be followed:

  1. Set to the Timer/Counter Mode (ADC/TM=0)

  2. Set the Timer/Counter in the Timer Mode and select the clock source (TS, TM1, TM0=000B, 001B, 010B for different clock source)

  3. Set the Timer initial value

  4. Enable the corresponding interrupt by setting the ETI and EMI bit

  5. Start the Timer by setting the TON bit (TMRC.4=1)

To set HT47C10L in the Timer Mode, the following process should be followed:

  1. Set to the Timer/Counter Mode (ADC/TM=0)

  2. Set the Timer/Counter in the Timer Mode (TM1, TM0=10B), internal system clock as the timer clock source

  3. Set the Timer initial value

  4. Enable the corresponding interrupt by setting the ETI and EMI bit

  5. Start the Timer by setting the TON bit (TMRC.4=1)


Question 13

How is the Timer/Counter setup in the Event Counter Mode?

Answer

For HT47R20A-1 and HT47C20 Timer/Counter, there are four modes available, namely Timer Mode, A/D Counter Mode, Event Counter Mode and Pulse Width Measurement Mode. For HT47C10L, there are three modes available except Event Counter Mode.

To set HT47R20A-1 and HT47C20 in the Event Counter Mode, the following process should be followed:

  1. Set to the Timer/Counter Mode (ADC/TM=0)

  2. Set the Timer/Counter in the Event Counter Mode (TS, TM1, TM0=100B)

  3. Set TE=1 for falling edge counting; set TE=0 for rising edge counting

  4. Set the Timer initial value

  5. Enable the corresponding interrupt by setting the ETI and EMI bit

  6. Start the Timer by setting the TON bit (TMRC.4=1)


Question 14

How is the Timer/Counter setup in the Pulse Width Mode?

Answer

For HT47R20A-1 and HT47C20 Timer/Counter, there are four modes available, namely Timer Mode, A/D Counter Mode, Event Counter Mode and Pulse Width Measurement Mode. For HT47C10L, there are three modes available except Event Counter Mode.

To set HT47R20A-1 and HT47C20 in the Pulse Width Measurement Mode, the following process should be followed:

  1. Set to the Timer/Counter Mode (ADC/TM=0)

  2. Set the Timer/Counter in the Pulse Width Measurement Mode (TS, TM1, TM0=101B)

  3. Select TE=1 to measure a High Pulse Width and TE=0 to measure a Low Pulse Width

  4. Set the Timer initial value (usually set to 0)

  5. Enable the corresponding interrupt by setting the ETI and EMI bit

  6. Start the Timer by setting the TON bit (TMRC.4=1)

After the Timer/Counter is enabled, the user can poll the TON bit, if the pulse width measurement is complete, the TON bit will be cleared to 0.

To set HT47C10L in the Pulse Width Measurement Mode, the following process should be followed:

  1. Set to the Timer/Counter Mode (ADC/TM=0)

  2. Set the Timer/Counter in the Pulse Width Measurement Mode (TM1, TM0=11B)

  3. Select TE=1 to measure a High Pulse Width and TE=0 to measure a Low Pulse Width

  4. Set the Timer initial value (usually set to 0)

  5. Enable the corresponding interrupt by setting the ETI and EMI bit

  6. Start the Timer by setting the TON bit (TMRC.4=1)

After the Timer/Counter is enabled, the user can poll the TON bit, if the pulse width measurement is complete, the TON bit will be cleared to 0.


Question 15

How is the HT47 R-F type MCU RTC setup?

Answer

RTC setup is quite similar to Time Base setup, the key difference is that frequency can be selected in software. To utilize the RTC, the following process should be followed:

  1. Select RTC frequency from the formula fRTC=fS/28~215 (fS is the clock source mentioned above) by writing to the control register bits.

  2. Enable the corresponding interrupt by setting the ERTI bit

After these steps are taken, if the RTC overflows, an internal interrupt request will be issued by setting RTF.

Note that the HT47C10L time base function is similar to that of HT47R20A-1 and HT47C20 RTC. The difference is the HT47C10L clock source is the internal 32kHz RC oscillator instead of a precise external 32.768 kHz crystal oscillator.


Question 16  

How is the HT47 R-F type MCU Buzzer setup? 

Answer  

To utilize the Buzzer Mode in HT47R20A-1 and HT47C20, the following process should be followed:

  1. Choose PA0 and PA1 as CMOS output in the configuration options

  2. Select Buzzer Mode in the configuration options

  3. Select clock source (same as RTC, WDT and Time Base) in the configuration options

  4. Select Buzzer frequency from the formula fBUZZER=fS/22~29 (fS is the clock source mentioned above)

After these steps are taken, set PA0 and PA1 to control the Buzzer output. When PA0=0 and PA1=0, both BZ and BZ pins output; When PA0=0 and PA1=1, BZ pin outputs only; When PA0=1, both BZ and BZ pins no buzzer output.

To utilize the Buzzer Mode in HT47C10L, the following process should be followed:

  1. Select PA0 and PA1 as Buzzer output via the software options

  2. Select Buzzer frequency via the software options from the formula fBUZZER=fS/22~29 (fS is the clock source mentioned above)

After these steps are taken, set PA0 and PA1 to control the Buzzer output. When PA0=0 and PA1=0, both BZ and BZ pins output; When PA0=0 and PA1=1, BZ pin outputs only; When PA0=1, both BZ and BZ pins no buzzer output.


Question 17

How is the HT47 R-F type MCU PFD setup?

Answer

To utilize the PFD Mode, the following process should be followed:

  1. Select PFD Mode in the configuration options

  2. Select PFD frequency from the formula FPFD=fINT/2 x (65536-N) where fINT is the timer clock source

  3. Start the Timer by setting the TON bit in the TMRC

After these steps are taken, set PA3=0 to enable PFD output.


Question 18

How is the HT47 R-F type MCU Time Base setup?

Answer

To utilize the Time Base Mode, the following process should be followed:

  1. Select clock source (same as RTC, WDT and Time Base) in the configuration options

  2. Select Time Base frequency from the formula fTIME BASE=fS/212~215 (fS is the clock source mentioned above)

  3. Enable the corresponding interrupt by setting the ETBI bit

If the Time Base overflows, an internal interrupt request will be issued.


Question 19

How is the HT47 R-F type MCU LCD frequency setup?

Answer

To set the LCD frequency, the following process should be followed:

  1. Select clock source (same as RTC, WDT and Time Base) in the configuration options

  2. Select the division ratio in the configuration options to set the LCD frequency to be around 4kHz from the formula fLCD=fS/22~28 (fS is the clock source mentioned above)


Question 20

What is the difference in selecting R or C type as LCD Bias?

Answer

If the C type bias is selected, an external capacitor is needed, yet it is much power saving. If the R type bias is selected, no external capacitor is needed, but more power consuming. If power consumption is not a key issue, user may choose the R type bias which can save 3 capacitors. Please note when choose C type and 1/3 bias, the LCD voltage is 3/2 VLCD.


Question 21

What are the system clock sources available for the HT47 R-F type MCUs?

Answer

For the HT47R20A-1 MCU, there are three system clock resources available, namely:

  1. External RC Oscillator

  2. External Crystal Oscillator

  3. External RTC Oscillator

For the HT47C20 MCU, there are two system clock resources available, namely:

  1. External RC Oscillator

  2. External Crystal Oscillator

For the HT47C20L MCU, there is only one system clock resource available, namely:

  1. External RC Oscillator

For the HT47C10L MCU, there is only one system clock resource available, namely:

  1. Internal 32kHz RC Oscillator


Question 22

What is the constraints on VDD during Power On?

Answer

To ensure the Power On Reset operates successfully, the VDD rising voltage is recommended to be completed within 20ms. For battery applications, the internal resistance will increase due to the low battery condition and will slow the rising edge of the power supply increasing the possibility of Power On Reset failures.


Question 23

In the HALT mode, is there any power consumption associated with the Low Voltage Reset (LVR) circuitry?

Answer

In the HALT mode, for HT47R20A-1 the Low Voltage Reset function has no effect, therefore, there is no power consumption considerations when in the HALT mode; for HT47C20L the Low Voltage function is active, therefore the power consumption issue should be taken into consideration, please refer to the data sheet for details.

Please note that HT47C20 and HT47C10L have no LVR function, but HT47C10L has an LVD (Low Voltage Detect) function.


Question 24

For Holtek's MCUs, is there any way to reset the stack pointer other than by a chip RESET?

Answer

The stack pointer is affected by the execution of interrupts as well as by any subroutine calls which occur in the application program. In addition, any return instructions will also affect the stack pointer. However, it is not possible for the user to directly reset the stack pointer by any means other than the chip RESET.


Question 25

Can one pin from the PA0~PA1 pair by selected by configuration option as a single buzzer output?

Answer

This is not possible as both pins must be selected together and if so they will both output the buzzer signal.


Question 26

What is the function of the WDT?

Answer

The WDT is designed to monitor the MCU software and hardware operations. Users should employ the CLEAR WDT (CLR WDT or CLR WDT1 and CLR WDT2 ) instructions should any abnormal operation or malfunction happens when a WDT overflow would occur which will then reset the MCU to resume normal operation. The WDT monitoring effects mainly depend on the software program design.


Question 27

When the HT47C10L enters the Halt mode, what is the condition of its internal oscillator?

Answer

When the HT47C10L enters the HALT mode, if the OPT1 (26H) internal register has set the STANDBY bit to 0, LCD off condition, the internal oscillator will be off. When the STANDBY bit is set to 1, the LCD driver will continue to function and the 32K oscillator will continue to run. If the OPTION register internal ELMODE bit is enabled, the 128K oscillator will also run.


Question 28

After the LVR function is selected, will the LVD function still be effective?

Answer

The LVR voltage range is between 2.7V and 3.3V while the LVD voltage range is between 3.0V and 3.6V. As the LVD voltage is greater than the LVR voltage, then the LVD will still be effective even if the LVR function is selected. 


Application Description

 


Question 1

How to use the indirect memory addressing mode?

Answer

First the address to be read or written must be placed in the relevant memory pointer, known as MP. After this any instruction that refers to the Indirect Register, known as IAR, (e.g. MOV a, IAR) will result in action taking place on data pointed to by the memory pointer (MP). Indirect memory addressing is particularly useful for operations on data arrays by first placing the first array address in the memory pointer. Data can then be read or written from different places in the array by manipulating the data pointer.


Question 2

In the HT47 R-F type MCUs, what is the principle of R-F A/D Converter and how to use it?

Answer

One unique feature of the HT47 R-F type MCU is its internal R-F A/D Converter. To utilize this function, the ADCR register should be setup to choose the ADC mode and to select either Timer A or Timer B as a timer or as a counter with which the R or C oscillator input is to be measured. When Timer A (or Timer B) overflows, the user can read the conversion value in Timer B (or Timer A). The principle behind the R-F A/D Conversion is that the RC oscillation frequency is proportional to the R or C value. By comparing the counter values of the RC network formed by variable resistor RT and a high precision reference resistor RS, the user can convert the external physical parameters into a digitized value.


Question 3

As there are no Push and POP instructions, when an interrupt occurs how is the data backed-up?

Answer

Although there are no PUSH or POP instructions, the programmer can still assign memory space. (Example db: ACCStack for ACC Storage) to store the interrupt backup data. To do this first store the ACC data in an area of memory, after which the status register and other data to be stored can be stored in similar dedicated memory locations. Before returning to the main program the data should be retrieved similarly but in a reverse order i.e. ACC is the last to be retrieved. When this is completed a RETI instruction should be executed to return to the main program.


Question 4

Can the Call instruction be used within an interrupt routine?

Answer

Because of the limitations in size of the MCU Stack, programmers must be exceptionally careful if using a call instruction inside an interrupt routine. If the program is in an interrupt routine and the stack is full, then executing a call instruction will result in a stack-over situation preventing the program from returning properly from the interrupt routine. Therefore if it is necessary to execute call instruction from within interrupt routines it is imperative that the worst case condition regarding stack requirements are considered. Before entering interrupt routines it is essential to verify that enough stack levels are available.


Question 5

When an interrupt is being serviced will other occurring identical interrupts be effective?

Answer

In normal operation when the MCU enters an interrupt routine the EMI flag will be cleared (EMI=0), which will prevent any corresponding interrupts from being serviced. However if the program is used to actively set the EMI flag (EMI=1) when an interrupt is being serviced then if the stack is not full, all other interrupts (including identical interrupts) will be effective. If multiple interrupts are necessary the programmer must take great care to ensure that the backed up data from the present interrupt is not corrupted by any following interrupts. Unless in cases of absolute necessity it is strongly recommended that multiple interrupts are not permitted.


Question 6

How should unused I/O pins be managed?

Answer

Any unused I/O pins should be managed properly so as to prevent from power consuming. The best method to prevent this is to set any unused pins as outputs however if set as inputs they should be selected to have a pull up option. If a pull-high option is not used then the pin should be tied to ground.


Question 7

When in HALT mode why does the device continue to consume power?

Answer

When the MCU enters the HALT mode the oscillator is stopped. However if the WDT oscillator (if WDT is enabled in the options) or if the RTC oscillator is still running then some power will be consumed. In addition, the I/Os will maintain the condition they were in when the HALT instruction was executed. It is important to check if the I/Os inputs are floating or outputs remain loaded in the HALT mode that they might consume power.


Question 8

Is it possible to disable the wake-up function of the external interrupt?

Answer

If before entering a HALT condition the EMI is first cleared and then if the EIF0/EIF1 bit is set to "1" the external interrupt will have no wake-up function.


Question 9

How is the HT47 R-F type MCU A/D Counter Mode setup?

Answer

For HT47R20A-1 and HT47C20 Timer/Counter, there are four modes available, namely Timer Mode, A/D Counter Mode, Event Counter Mode and Pulse Width Measurement Mode. For HT47C10L, there are three modes available except Event Counter Mode.

To set HT47R20A-1 and HT47C20 in the A/D Counter Mode, the following process should be followed:

  1. Set to the Timer/Counter Mode (ADC/TM=0)

  2. Choose the R-F A/D channel (M3, M2, M1, M0)

  3. Choose Timer/Counter as A/D Counter Mode (TS, TM1, TM0=011B)

  4. Set the Timer initial value

  5. Enable the corresponding interrupt by setting the ETI and EMI bit

  6. Start the Timer by setting the TON bit (TMRC.4=1)

To set HT47C10L in the A/D Counter Mode, the following process should be followed:

  1. Set to the A/D Counter Mode (ADC/TM=1)

  2. Choose the R-F A/D channel (set MODE)

  3. Choose Timer A clock source (TM1, TM0=01B)

  4. Set Timer initial value

  5. Enable the corresponding interrupt by setting the ETI and EMI bit

  6. Start the Timer by setting the TON bit (TMRC.4=1)


Question 10

How is the HT47 R-F type MCU A/D setup?

Answer

To set HT47R20A-1 and HT47C20 in the R-F A/D Counter Mode, the following process should be followed: (take Timer A overflows then ADC stops for example)

  1. Set to the A/D Counter Mode (ADC/TM=1)

  2. Choose the R-F A/D channel for Timer B (M3, M2, M1, M0)

  3. Choose Timer A clock source (TS, TM1, TM0=000B or 001B or 010B)

  4. Set ADC counting stops when Timer A overflows (OVB/OVA=0)

  5. Set Timer A initial value

  6. Set timer B initial value as 0

  7. Start the Timer by setting the TON bit (TMRC.4=1)

After the Timer/Counter is enabled, the user can poll the TON bit, if the ADC is complete, the TON bit will be cleared to 0 and user can read the count value in Timer B. Please refer to the data sheet for examples.

To set HT47C10 in the R-F A/D Counter Mode, the following process should be followed: (take Timer B overflows then ADC stops for example)

  1. Set to the A/D Counter Mode (ADC/TM=1)

  2. Choose the R-F A/D channel for Timer B (set MODE)

  3. Choose Timer A clock source (TM1, TM0=10B)

  4. Set ADC counting stops when Timer A overflows (OVB/OVA=1)

  5. Set Timer B initial value

  6. Set timer A initial value as 0

  7. Start the Timer by setting the TON bit (TMRC.4=1)

After the Timer/Counter is enabled, the user can poll the TON bit, if the ADC is complete, the TON bit will be cleared to 0 and user can read the count value in Timer A. Please refer to the data sheet for examples.


Question 11

Why, for HT49 LCD type MCU an input could be unexpectedly changed as an output after executing SET or CLR instructions?

Answer

Usually this could happen when input and output lines are assigned in the same I/O port and the SET or CLR bit manipulation instructions are employed for output control. The SET and CLR bit manipulation instructions employ Read-Modify-Write operations, when used on I/O port, it will first read the entire port execute the defined bit operations and then write to I/O port. If the input line happens to be low externally on the line during Read phase, this input line will therefore to be read as 0 and write back to low and function as an output line. To avoid this situation, users are recommended to operate on the I/O Port RAM Buffer and then write the Buffer contents to I/O port.


Question 12

Under what situations the users should turn the Quick Start-up Oscillating (QOSC) off?

Answer

During power on, the Quick Start-up Oscillating is activated to shorten the start-up time. However, if power consumption is a key issue, 2 seconds later after power on, users may turn the Quick Start-up Oscillating scheme off by setting QOSC =1. Usually, this will save power consumption around 1~2µA in 3V applications and 3~4µA in 5V applications.


Question 13

For 2-cell battery applications (2.2V~3.8V), is the Low Voltage Reset (LVR) still available?

Answer

For the HT48 I/O type MCU, the Low Voltage Reset (LVR) function operates in the range of 2.7V ~3.3V, therefore the LVR feature is not applicable. If a 2.2V voltage detection function needed in applications, an external Voltage Detector (HT70XX) is recommended.


Question 14

Are the Reset circuits provided in the data sheets suitable for all applications?

Answer

Usually, the Reset circuits provided in the data sheets are applicable for most applications. Under some circumstances, a noisy environment for example, the Reset circuit might need to be modified for special user considerations.


Question 15

If the RC oscillator is selected as the system clock, what are the purposes of the external resistor and capacitor? Can the capacitor be omitted?

Answer

The external resistor on the OSC1 pin is used to generate bias to control the internal RC charge and discharge. The frequency of the RC oscillator is determined by the value of this external resistor. The recommended 470pF external capacitor, which is connected to the OSC1 pin, is added to avoid cross-talk to the OSC2 line. The OSC2 pin is provided to supply an output frequency of 1/4 system frequency. However, if this 1/4 system frequency output, OSC2, is not utilized, the external capacitor on OSC1 pin can be omitted.


Question 16

Can a voltage higher than VDD be supplied to the VLCD pin of the HT47R20A-1 and HT47C20-1? 

Answer

A higher than VDD voltage supplied to VLCD pin of HT47R20A-1 and HT47C20-1 is permitted. However, the value chosen for VLCD should ensure that the highest LCD signal voltage is within the normal operating voltage range of 2.2V to 5.5V. Therefore for devices with R-type bias and C-type 1/2 bias, the VLCD supply voltage should be within 2.2V to 5.5V, while for devices with C-type 1/3 bias, the highest LCD signal voltage is 1.5 times that of the VLCD supplied voltage due to the internal charge pump, the VLCD supply voltage should be within 1.5V to 3.6V. Note that for low voltage Mask type MCUs, the V3 pin will be fixed to VDD as the LCD supply voltage. The highest LCD signal voltage will be 2 times of V3 voltage.


Question 17

In the HALT mode, how can the power be minimized for the LVD function in the HT47C20L.

Answer

If the application does not require the LVD function, then the LVD should be disabled in the configuration options. However if the LVD function is required, it is important to note that when in the HALT condition, the software can still disable the LVD function to reduce power consumption. However it should be noted that the power consumed here will be more than if the configuration options disabled the LVD.


Question 18

When using the BZ/BZB function in the HT46/HT47/HT48/HT49 series devices, the sound emitted is not loud enough, what can I do about this?

Answer

The frequency generated on the BZ/BZB outputs should match the center frequency of the piezo-buzzer connected to these pins. Each different type of piezo-buzzer has its own center frequency. The MCU generated frequency must be as close to this as possible to achieve maximum volume from the buzzer.


Question 19

When using a Holtek MCU in a voice application, within the software I wish to use look up table data as follows:
TABLE1: DC 0FFE1H,0FE32H,0FA34H,0FC78H
DC 0FECDH,0FEDCH,0FE57H,0FD87H ; 16bit table values

Is it possible for Look up table data definitions of 16-bits to accept the format of data given in TABLE1?

Answer

The Holtek MCU range each contain different Program Memory widths, ranging from 14 bits to 16 bits. MCUs that contain 16 bit Program Memory widths can accept data as shown in TABLE1 above, however other MCUs can only define data tables that are either 14 or 15-bits wide.


Question 20

What are the points to note when enabling the LVR/LVD in the HT47C20L?

Answer

1. If the LCD has be selected to be turned off when the device enters the power down mode, then the LVR/LVD will also be disabled.

2. When the LVR/LVD is enabled, the V1, V2, C1 and C2 pins must be connected to capacitors, otherwise the LVR/LVD function will not run normally. As the LVD/LVR function in this device is supplied by the LCD charge pump, therefore it is necessary to connect the charge pump capacitors.

 


Points to Note

 


Question 1

Are the HT47 R-F type MCUs available in Dice form?

Answer

Holtek provides a service to supply customers with high volume requirements for Dice Form MCUs. Available for the full range of devices it is important that customers take note of the special requirements of dice form devices for bonding and OTP programming.


Question 2

For the HT47 R-F type MCU, Is there any sensor interference issue to the R-F converters?

Answer

Usually R-F converters encounter sensor interference problem. Holtek's patent features can help users avoiding the sensor realted interference issues.


Question 3

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/HT47R20A-1, the chip RFADOSC-1 is used and when emulates the HT47C20L, the chip RFADOSC-2 is used.


Question 4

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 5

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 6

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 7

What could be the reasons for low yield programming of OTP DICE devices?

Answer

Firstly, you should exclude bonding failure possibilities, as these are the major reasons for poor programming yield. If you are not sure whether there is a bonding issue, you may get assistance from our technical support personnel by sending us the decapsulated samples.


Question 8

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 9

What precautions should I take in designing the MCU Reset and Oscillator circuit?

Answer

Please refer to the "HA0075E" in the Application Notes section of our company web site.


Question 10

When using a 3-pin resonator/crystal in my MCU application can the capacitor be connected to VDD instead of VSS?

Answer

When using 3-pin resonator/crystals, for reasons of layout convenience, the capacitor can be connected to VDD instead of VSS.


Question 11

When using the MACRO assembly directive can I save Program Memory space? Also does it affect the MCU execution speed?

Answer

After the assembly process, all of the instructions belonging to the MACRO will be written into Program Memory area, therefore there is no influence on either the Program Memory space or on the speed of execution. However as the code has been simplified program maintenance will be easier.


Question 12

When writing my program, if I want to create a Table in Program Memory, how do I start my table at a specific address? If the ORG statement is not suitable are their other methods of implementation?

Answer

When using the ORG expression, this can only be used to indicate the offset from the start address of the present section. To overcome this problem the SECTION directive can be used to establish a table at any specific address, for example:

table .section at 300 'code'

This statement can be used to indicate the specific address where the table should begin.


Question 13

How can I use C language to read the serial number written into an OTP by the OTP writer?

Answer

When using the C language you must use inline assembly to read the IC serial number, which is written by the OTP writer. An example program is shown below:

First declare a variable to indicate a ram address.
unsigned long serial_num @0x80;
Then read out the serial number to this variable.

#asm

tblp equ [07h]

; define table address

mov a,20h

mov tblp,a 

; set table pointer to 20h (series number at 20h of last page)

tabrdl [80h] 

; load first byte of series number to series_num (0x80h);

inc tblp

tabrdl [81h] 

; second byte of series number

inc tblp

tabrdl [82h] 

; third byte of series number

inc tblp

tabrdl [83h] 

; fourth byte of series number

#endasm


Question 14

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 15

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 16

When using the HIRC, if the I/O pin which is shared with OSC1 is to be used as an AC zero crossing detector, will there be any influence on the HIRC oscillation frequency? If yes, which MCUs will be affected and how can this problem be resolved??

Answer

If the HIRC is used and if the I/O pin which is shared with OSC1 is used as an AC zero crossing detector pin, the HIRC oscillation frequency will be influenced.
The affected MCUs are:
All MCUs whose I/O pin is pin-shared with OSC1 (including the enhanced OTP type MCU and Flash type MCU etc.)
How to resolve this issue:
1. Avoid using the I/O pin that is shared with OSC1 as AC zero crossing detector pin.
2. If the problem can still not be resolved, add external circuitry to ensure that the voltage applied on the OSC1 pin remains withing the range of VDD and VSS.


Others

 


Question 1

On the ICE, can the LVR and LVD be simulated?

Answer

As the supply voltage from the ICE to the interface card VDD is 5V only, it is not possible to simulate the LVR and LVD functions.