|
Basic Information
Question 1
What are the contents of the Cost-Effective I/O type MCUs?
Answer
Together there are a total of 4 devices in the Holtek Cost-Effective I/O MCU series. Made up from different memory sizes of 0.5K and 1K and supplied in both OTP and Mask versions they are known by name as the HT48R05A-1/HT48C05 and HT48R06A-1/HT48C06. The specifications and description of each device can be found in its relevant data sheet.
|
Part
No.
|
VDD
|
System
Clock
|
Program
Memory
|
Data
Memory
|
I/O
|
Timer
|
Interrupt
|
PFD
|
Stack
|
Package
|
|
8-bit
|
16-bit
|
Ext.
|
Int.
|
HT48R062
HT48C062 |
2.2V~5.5V |
400kHz~8MHz |
1Kx14 |
32x8 |
11 |
- |
- |
- |
- |
- |
1 |
16DIP/NSOP |
HT48R05A-1
HT48C05 |
2.2V~5.5V |
400kHz~8MHz |
0.5Kx14 |
32x8 |
13 |
1 |
- |
1 |
1 |
v |
2 |
16SSOP,
18DIP/SOP |
HT48R06A-1
HT48C06
|
2.2V~5.5V |
400kHz~8MHz |
1Kx14 |
64x8 |
13 |
1 |
- |
1 |
1 |
v |
2 |
16SSOP,
18DIP/SOP |
| HT48R07A-1 |
2.2V~5.5V |
400kHz~8MHz |
1Kx14 |
64x8 |
19 |
1 |
- |
1 |
1 |
v |
2 |
24SKDIP/SOP/SSOP |
| HT48R08A-1 |
2.2V~5.5V |
400kHz~8MHz |
2Kx14 |
96x8 |
13 |
1 |
- |
1 |
1 |
v |
2 |
16SSOP,
18DIP/SOP |
| HT48R09A-1 |
2.2V~5.5V |
400kHz~8MHz |
2Kx14 |
96x8 |
19 |
1 |
- |
1 |
1 |
v |
2 |
24SKDIP/SOP/SSOP |
| HT48R0AA-1* |
2.2V~5.5V |
400kHz~8MHz |
4Kx15 |
160x8 |
23 |
1 |
1 |
1 |
22 |
v |
6 |
24/28SKDIP/SOP |
Question 2
What kind of small outline package is available for Cost-Effective I/O type
MCUs?
Answer
For HT48R05A-1/HT48C05 and HT48R06A-1/HT48C06, besides 18-pin standard DIP and SOP forms, the 16-pin SSOP package with only
237 mil x 193mil outline is also provided to fit user's applications.
Question 3
Are the Cost-Effective I/O 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 4
What is the operating frequency of the Cost-Effective I/O type
MCUs?
Answer
For 5V/3.3V or 3-cell battery applications, the maximum operating frequency is 8MHz (3.3V). For 3V or 2-cell battery applications the maximum operating frequency is 4MHz (2.2V).
Question 5
What is the duration of the Power On Reset?
Answer
For the HT48 I/O 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 6
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 7
Why do the HT48R05A-1/HT48C05 devices have only 62 instructions in their instruction set when the other Holtek MCU devices have 63 instructions?
Answer
The instruction set for the HT48R05A-1/HT48C05 devices does not contain a TABRDL instruction.
Functional Description
- Question 1
What are the differences between the various devices in the Cost-Effective I/O type
MCUs?
- Question 2
What are the special features and characteristics of the Cost-Effective I/O type
MCUs?
- Question 3
How to use the indirect memory addressing mode?
- Question 4
How are the table read instructions used and are there any special points to note?
- Question 5
Can the Call instruction be used within an interrupt routine?
- Question 6
When in HALT mode why does the device continue to consume power?
- Question 7
Why, when PA is low the device cannot wake up?
- Question 8
Why, when a low going edge is presented on the external interrupt pin the MCU does not wake-up?
- Question 9
What is the difference between choosing the WDT oscillator or the fSYS/4 clock as the WDT clock source?
- Question 10
When the 8-bit Timer/Counter clock is sourced from the
Prescaler, can the Prescaler be reset?
- Question 11
How is 8-bit Timer/Counter setup in the Timer Mode?
- Question 12
How is the 8-bit Timer/Counter setup in the Event Counter Mode?
- Question 13
How is the 8-bit Timer/Counter setup in the Pulse Width Mode?
- Question 14
How is the PFD and Buzzer Mode setup?
- Question 15
For 2-cell battery applications (2.2V~3.8V), is the Low Voltage Reset
(LVR) still available?
- Question 16
In the HALT mode, is there any power consumption associated with the Low Voltage Reset
(LVR) circuitry?
- Question 17
For Holtek's MCUs, is there any way to reset the stack pointer other than by a chip RESET?
- Question 18
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?
- Question 19
How to use the timer auto-reload function of Holtek
MCUs?
- Question 20
What is the function of the WDT?
- Question 21
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?
- Question 22
When the LVR function is activated, what voltage will VDD have to fall to for the RAM contents to change and for a reset to
occur?
- Question 23
When the HT48R062 is under the low voltage reset (LVR) conditions, will the system clock still oscillate?
Question 1
What are the differences between the various devices in the Cost-Effective I/O type
MCUs?
Answer
HT48R05A-1 and HT48R06A-1 are the same even in package forms except the following features:
| |
HT48R05A-1/HT48C05 |
HT48R06A-1/HT48C06 |
| Program Memory |
0.5Kx14 |
1Kx14 |
| Data Memory |
32x8 |
64x8 |
Question 2
What are the special features and characteristics of the Cost-Effective I/O type
MCUs? Answer
Operating Voltage range of 2.2V ~ 5.5V
Industrial standard temperature range of -40oC ~ +85oC
Low Voltage Reset function
Fully compatible OTP and Mask Types
For further details consult the relevant Holtek data sheet
Question 3
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 4
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 5
Can the Call instruction be used within an interrupt routine?
Answer
For HT48R05A-1/HT48C05 and HT48R06A-1/HT48C06, there is only a 2-level stack. When entering an interrupt routine, quite often 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 6
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 7
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 8
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 EIF changes from "0" to "1". If when the MCU enters a HALT condition the EIF flag is already set to "1", then a further interrupt will have no effect on the status of the EIF flag, which will remain in its present "1" condition. As a transition a wake-up will not occur.
Question 9
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 10
When the 8-bit Timer/Counter clock is sourced from the
Prescaler, can the Prescaler be reset?
Answer
The Prescaler will start to count after a Power On Reset, so there is no means for the user to reset the Prescaler contents.
Question 11
How is 8-bit Timer/Counter setup in the Timer Mode?
Answer
There are three modes available for the 8-bit Timer/Counter, i.e. Timer Mode, Event Counter Mode and Pulse Width Mode. To setup in the Timer Mode, the following process should be followed:
-
Set to Timer Mode by writing 10H to TM1, TM0
-
According to the user timer period requirements set the Prescaler by writing the appropriate values to the bits PSC2~PSC0
-
Set the initial timer TMR value
-
Enable the corresponding interrupt by setting the ETI and EMI bit
-
Start the Timer by setting the TON bit of the TMRC
Once the Timer is enabled, it will count up and will be stopped when the TON bit in the TMRC register is cleared. If the Timer is enabled once again, the counter will start counting from the value where it was stopped. If the Timer overflows, an internal interrupt request will be issued and the TMR will be reloaded with the initial value.
Question 12
How is the 8-bit Timer/Counter setup in the Event Counter Mode?
Answer
There are three modes available for the 8-bit Timer/Counter, i.e. Timer Mode, Event Counter Mode and Pulse Width Mode. To set in the
Event Counter Mode, the following process should be followed:
-
Set to Event Counter Mode by writing 01H to TM1, TM0
-
Select TE=1 to count on the falling edge and TE=0 to count on the rising edge
-
Set the Timer initial value into TMR
-
Enable the corresponding interrupt by setting the ETI and EMI bits
-
Start the Timer by setting the TON bit in the TMRC register
Question 13
How is the 8-bit Timer/Counter setup in the Pulse Width Mode?
Answer
There are three modes available for the Timer/Counter, i.e. Timer Mode, Event Counter Mode and Pulse Width Mode. To set in the
Pulse Width Mode, the following process should be followed:
-
Set to Pulse Width Mode by writing 11H to TM1, TM0
-
Select TE=1 to measure a High Pulse Width and TE=0 to measure a Low Pulse Width
-
According to the Pulse Measurement width requirements set the Prescaler value
(PSC2~PSC0=n)
-
Set the Timer initial value, TMR, usually set to 0H for
Pulse Width Measurements
-
Enable the corresponding interrupt by setting the ETI and EMI bits
-
Start the Timer by setting the TON bit in the TMRC
After the Timer/Counter is enabled, the user can poll the TON bit, if one pulse measurement is complete, the TON bit will be cleared to 0 and the count value multiplied by 2
n+1 is the measured pulse width.
Question 14
How is the PFD and Buzzer Mode setup?
Answer
The PFD and Buzzer are identical in their operation. To utilize the PFD or Buzzer Mode, the following process should be followed:
-
To implement the PFD or Buzzer function, the corresponding configuration option should be chosen
-
Set the Prescaler (PSC2~PSC0=n) value and TMR initial value from the formula FPFD =
(fSYS / (2n+1x(256-TMR)x2))
-
Start the Timer by setting the TON bit in the TMRC
-
Set PB.0 and PB.1 to be in Output Mode, i.e.PBC.0 and PBC.1=0
After these steps are taken, set PB.0=1 which will turn on the PFD or the Buzzer ON. If set the PB.0=0 will turn the PFD or Buzzer OFF.
Question 15
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 16
In the HALT mode, is there any power consumption associated with the Low Voltage Reset
(LVR) circuitry?
Answer
In the HALT mode, the Low Voltage Reset function has no effect, therefore, there is no power consumption considerations when in the HALT mode.
Question 17
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 18
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 19
How to use the timer auto-reload function of Holtek MCUs?
Answer
If you wish to assign the timer a start counting value that will be automatically reloaded after each timer overflow, the following steps may be taken;
If you wish to change the start counting value, you may simply save the new value to TMR, which will be loaded after the next timer overflow.
Question 20
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 21
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 22
When the LVR function is activated, what voltage will VDD have to fall to for the RAM contents to change and for a reset to
occur?
Answer
When the VDD voltage is between 0.9V and the VLVR voltage for a time exceeding 1ms, the LVR function will instigate a system reset and the RAM values will not change. If the VDD voltage falls below, 0.9V then it is not guaranteed that the RAM values will not change.
Question 23
When the HT48R062 is under the low voltage reset (LVR) conditions, will the system clock still oscillate?
Answer
Under low voltage (LVR) conditions, the system clock will still run, only when the VDD voltage is less than required to produce oscillation, will the system clock cease running.
Application Description
- Question 1
In the HT48X10 and HT48X30 series of devices when a "0" is written to bit 7 of the memory pointer MP, when it is read out, why does it give a value of "1"?
- Question 2
As there are no Push and POP instructions, when an interrupt occurs how is the data backed-up?
- Question 3
When an interrupt is being serviced will other occurring identical interrupts be effective?
- Question 4
Is it possible to disable the wake-up function of the external interrupt?
- Question 5
If the WDT oscillator clock is selected how is the WDT timing calculated?
- Question 6
What is the purpose of 2 CLR WDT instructions?
- Question 7
Can the HT48 series of MCUs be used to implement an LCD driver?
- Question 8
When using an external RC system clock, how can I setup an accurate frequency?
- Question 9
What are the OTP dice programming steps for COB form?
- Question 10
What should I do to use an external crystal during my program development?
- Question 11
When in the low power mode, how should any unused inputs be managed? Also, what is meant by a no load condition?
- Question 12
When using a 3-pin resonator/crystal in my MCU application can the capacitor be connected to VDD instead of
VSS?
- Question 13
How can I/Os be used to measure temperature?
- Question 14
If I want to use the timer to wake up the system when in the HALT mode, I encounter the following problem. The Holtek datasheet says that after the HALT instruction is executed the system clock will be stopped, if this happens how can the timer be used to wake up the system?
- Question 15
In the HT48X05A-1/HT48X06A-1 devices, in the Program Memory table data area, why is some high data high incorrectly read back? For example, for table data written as 0FFFFH, after reading the data 03FFFH is returned?
- Question 16
When using the tools to change the value of bits in the PA port register from "0" to "1", why when after checking the content of the register, I cannot see that the PA pin has changed its value.
- Question 17
In the crystal oscillator application circuit, why is a resistor connected to the crystal?
Question 1
In the HT48X10 and HT48X30 series of devices when a "0" is written to bit 7 of the memory pointer MP, when it is read out, why does it give a value of "1"?
Answer
The HT48X10 Data RAM address is located at the address range 40H~7FH and the HT48X30 Data RAM is located at the address range 20H~7FH. Because the data RAM capacity does not exceed 80H, a 7-bit memory pointer (Bit0~Bit6) is adequate. Reading bit 7 of MP will always give a value of "1" irrespective of what value has been written into it. If the value "70H" is written to MP it will be read back as "F0H" but in fact the actual address pointed to is "70H" which is correct for the indirect addressing operations.
Question 2
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 3
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 4
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 EIF bit is set to "1" the external interrupt will have no wake-up function.
Question 5
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 WDT period ranging from 8ms to 33ms. The watchdog time is calculated from the formula: WDT period x
2(WS2~WS0).
For example if WS2~WS0 = 7H then the watchdog time will range from 8 ms x
27=1 sec to 33 ms x 27=4.2 sec.
Question 6
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 7
Can the HT48 series of MCUs be used to implement an LCD driver?
Answer
Yes they can, but the implementation will be limited to 1/2 bias with pull-high and pull low resistors connected to the I/O pin. Three different voltage levels can then be obtained by setting up the pin as an output and setting it high, setting up the pin as an input, and setting up the pin as an output and setting it low.
Question 8
When using an external RC system clock, how can I setup an accurate frequency?
Answer
The external components for the RC system oscillator are connected to pin OSC1, with the open-drain pin OSC2 being left open. However if it is required to measure the actual frequency of the oscillator, this can be done by connecting a pull-high resistor to the OSC2 pin and measuring the output frequency. The frequency on this pin will be equal to Fsys/4.
Question 9
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 10
What should I do to use an external crystal during my program development?
Answer
Firstly, in selecting the Options for SYSFREQ, keep the "Internal" not checked which will let you use external clock source. Secondly, insert the crystal into Y1 position on the Interface Card, meanwhile make sure that the jumper JP4 is set to crystal. Now you can use the external crystal during your program development.
Question 11
When in the low power mode, how should any unused inputs be managed? Also, what is meant by a no load condition?
Answer
Any unused I/O lines could be setup as inputs, but a pull-high resistor must be connected to these inputs, otherwise these floating inputs may consume power. Another method would be to setup any unused I/O lines as outputs and set these lines to
a "0" level. A no load condition means that no connection is made to the I/Os. In this situation the only connections to the MCU are VDD, VS OSC1/OSC2 and RESB.
Question 12
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 13
How can I/Os be used to measure temperature?
Answer
The I/Os can be used in a charge/discharge circuit to measure temperature, however 3 I/Os are required, 2 outputs and one input. One of the outputs is connected to a reference fixed value resistor R1 while the other output is connected to a temperature dependent resistor R2. The other sides of these two resistors are connected together and also connected to a capacitor C1. The other end of the capacitor is connected to ground. The threshold voltage of the input is used to check the charge and discharge times of the capacitor. R1 is used as a reference to make corrections to the measured value of temperature made by R2. The measurement principle is: ΔT1=R1C1 ΔT2=R2C1
--> R2=ΔT2R1/ΔT1
Question 14
If I want to use the timer to wake up the system when in the HALT mode, I encounter the following problem. The Holtek datasheet says that after the HALT instruction is executed the system clock will be stopped, if this happens how can the timer be used to wake up the system?
Answer
When in the HALT condition, the system clock is stopped, so if the timer source clock originates from the system clock, the timer will also cease its counting function when the system enters the HALT mode. However if the timer clock source originates from another clock source such as the RTC, the timer will continue to function even when in the HALT mode. In this case when a counter overflow occurs, the system will be woken up if it is in the HALT mode.
Question 15
In the HT48X05A-1/HT48X06A-1 devices, in the Program Memory table data area, why is some high data high incorrectly read back? For example, for table data written as 0FFFFH, after reading the data 03FFFH is returned?
Answer
For the Program Memory area of the HT48X05A-1/HT48X06A-1 devices, each word has a width of 14 bits. Therefore for the data mentioned above the highest bits cannot be stored and will be read back as zeros. For this reason, if we try to store the data 0FFFF, only 3FFF will actually be stored as it is only 14 bits wide. Reading back from bits that do not exist will give the value of "0".
Question 16
When using the tools to change the value of bits in the PA port register from "0" to "1", why when after checking the content of the register, I cannot see that the PA pin has changed its value.
Answer
When changing a specific bit value on the PA data register, only bits that are setup as outputs will be changed. Bits to be changed must first be setup as outputs by writing a zero to the corresponding bit of the PAC register.
Question 17
In the crystal oscillator application circuit, why is a resistor connected to the crystal?
Answer
This is to ensure that the oscillator will turn off when the MCU supply voltage drops below its normal working voltage. If the LVR is enabled, the resistor can be omitted.
Points to Note
Question 1
How is the 8-bit timer setup?
Answer
The 8-bit timer/counter is a count up timer which upon reaching a count of 255 (0FFH) will reset itself to 00H and generate an internal interrupt signal. To obtain different timer counts, say N, of less than 256, the timer should be first preset with a fixed value of 256-N. After setting up this preset value the timer should be activated which will enable it to count from this preset value to 255. The value that the timer is to count N, is therefore given by the formula 256-(256-N)=N.
Question 2
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 3
For household appliance applications, under what circumstances should the LVR function be used? Also under what circumstances should the LVR not be used?
Answer
The LVR voltage is set at around 3.3V. For most battery powered applications it is normally not required to use the LVR, however for applications supplied by the regular utility mains supply the LVR can be used.
Question 4
When using different writer tools to program the OTP devices why are different checksums obtained?
Answer
This is because different methods of checksum calculation are used by different writers.
Question 5
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 15cm.
Question 6
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 7
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 8
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.
Others
Question 1
What are the ESD and Latch up features of the Cost-Effective I/O type
MCUs?
Answer
As the Cost-Effective I/O type 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 2
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 3
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 4
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 5
Many of the Holtek MCUs have a Low Voltage Reset function. When this operates what is the condition of the I/O, OSC pins etc?
Answer
When the power supply voltage falls below the specified LVR voltage, the LVR function will be activated. When this happens the I/O pins will revert to an input condition, and the oscillator will start up. The LVR voltage will vary according to the process, for details consult the DC characteristics section of the datasheet.
Question 6
What is the difference between the activation of an LVR function and pulling the RES pin low?
Answer
The difference is that in the case of the LVR, if the operating voltage falls below the LVR voltage but remains higher than the lowest operating voltage, the oscillator will continue running. However if the RES pin is pulled low the oscillator will be always be stopped.
Question 7
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 8
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 9
For applications where the I/O pin connection to the application
circuitry is rather long, what external protection measures should
be taken?
Answer
The I/O pins have Schmitt trigger inputs, also the inputs have
protection diodes between the pin and VDD and VSS. As a result the
noise rejection capabilities of the devices is high, however to
reduce the possibility of noise interference yet further, it is
recommended that a resistor is placed in series with the I/O pin.
Question 10
How can I manage unused areas of program memory?
Answer
In order to preserve program reliability, and prevent erroneous operation due to false jumps, it is recommended that unused area of program memory are written with a "JMP 00H" instruction. This has a machine code of 2800H. If this is done, should the program jump to an unused area of program memory, the program will return to the start address, which should ensure the prevention of erroneous operation.
Question 11
After compiling, how can I determine the amount of program memory area used by my program?
Answer
The .map file can be opened to see the ROM conditions. The .map file and the
.prj file are in the same folder. If the file cannot be found, then before program compilation, under the Option Menu Command, select Project and ensure that the "Generate Map File" option has been selected. When the next compilation is executed the .map file will be generated.
Question 12
In the C-language code, when using include to encompass a file, why when using the IDE3000, during program compilation the end of the included file exhibits an error?
Answer
When the IDE3000 uses a non-IDE3000 text editor tool (such as the UltraEdit-32) for program editing, if after effective characters there is an EOF (end flag), then during compilation, the file end will possibly display an error.
|