|
Basic Information
Question 1
What are the contents of the HT48E I/O Type MTP MCU WITH EEPROM?
Answer
Together there are a total of 5 devices in the Holtek I/O Type MTP MCU WITH EEPROM series. Made up from different MTP memory sizes of 1K, 2K, 4K and 8K and 128x8, 256x8 EEPROM data memory. They are known by name as the HT48E06, HT48E10, HT48E30, HT48E50 and HT48E70. The specifications and description of each device can be found in its relevant data sheet.
Question 2
What are the special features and characteristics of the HT48E I/O Type MTP MCU WITH EEPROM?
Answer
Operating Voltage range of 2.2V ~ 5.5V
Industrial standard temperature range of -40oC ~ +85oC
Low Voltage Reset function
MTP Program Memory
EEPROM data Memory
For further details consult the relevant Holtek data sheet
Functional Description
Question 1
What is the operating frequency of the HT48E I/O Type MTP MCU WITH EEPROM?
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 2
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.
Application Description
- Question 1
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 2
How are the table read instructions used and are there any special points to note?
- Question 3
As there are no Push and POP instructions, when an interrupt occurs how is the data backed-up?
- Question 4
Can the Call instruction be used within an interrupt routine?
- Question 5
When an interrupt is being serviced will other occurring identical interrupts be effective?
- Question 6
How should unused I/O pins be managed?
- Question 7
When in HALT mode why does the device continue to consume power?
- Question 8
Why, when PA is low the device cannot
wake up?
- Question 9
Why, when a low going edge is presented on the external interrupt pin the MCU does not wake-up?
- Question 10
Is it possible to disable the wake-up function of the external interrupt?
- Question 11
If the WDT oscillator clock is selected how is the WDT timing calculated?
- Question 12
What is the difference between choosing the WDT oscillator or the fSYS/4 clock as the WDT clock source?
- Question 13
What is the purpose of 2 CLR WDT instructions?
- Question 14
How is the 8-bit timer setup?
- Question 15
How is the 16-bit timer setup?
- Question 16
What is the access sequence of the 16-bit Timer/Counter?
- Question 17
In the HT-IDE3000 development system, in the debug section under the options menu, why am I not able to select the simulation mode?
- Question 18
How is the MTP Starter Kit connected to a personal computer?
- Question 19
In the HT48EXX series of MCUs, there are two banks, Bank 0 and Bank 1. If I want to read and write to a RAM location, how do I confirm that the location is Bank 0 or Bank 1?
Question 1
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 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
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
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 9
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 10
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 11
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 12
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 13
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 14
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 15
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 16
What is the access sequence of the 16-bit Timer/Counter?
Answer
For the HT48E I/O Type MTP MCU WITH EEPROM, 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 17
In the HT-IDE3000 development system, in the debug section under the options menu, why am I not able to select the simulation mode?
Answer
In the HT-IDE development system, not all of the MCU devicvivianes can be simulated in software.
Question 18
How is the MTP Starter Kit connected to a personal computer?
Answer
The MTP Starter Kit utilises the USB interface to connect to the PC. The package contains a USB cable as well as a CD, the contents of which include an operating manual and handbook.
Question 19
In the HT48EXX series of MCUs, there are two banks, Bank 0 and Bank 1. If I want to read and write to a RAM location, how do I confirm that the location is Bank 0 or Bank 1?
Answer
In the HT48EXX series of MCUs, the Bank Pointer, BP, is used to decide which RAM Bank is to read or written to. When BP is 0, then the Bank 0 area will be selected, when BP is 1, then the Bank 1 area is selected. It is important to note that, when executing a read or write to Bank 1, it is necessary to use the MP1 memory pointer for indirect
addressing.
Others
Question 1
What are the ESD and Latch up features of the HT48E I/O Type MTP MCU WITH EEPROM? Answer
As the HT48E I/O Type MTP MCU WITH EEPROM 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
Are the HT48E I/O Type MTP MCU WITH EEPROM 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.
|