Basic Information Functional Description Application Description Points to Note Others

Basic Information

 

Question 1

What compression formats does the HT86 series support?

Answer

The HT86 supports compression formats such as 8-bit PCM, 6-bit ulaw PCM, 4-bit ADPCM and 12-bit PCM.


Question 2

Can the HT86 series play both MIDI and WAV files?

Answer

Both file formats can be played, however after file conversion by the tools, only 2 MIDI channels can be played.


Functional Description

 


Question 1

The DAC of the HT86 series appears to be different from that of other Voice ICs?

Answer

The HT86 series utilises a voltage output type of DAC. It generates a better sound quality than the more common current output type of DAC. AUD1 can connect directly to the HT82V733 amplifier to drive a speaker. If it is required to drive a speaker using a single transistor, connect AUD0 and add the bias resistor.


Question 2

*Delete*


Question 3

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 4

When using the HT86072 device, why is it when I use the TABRDC instruction, that the table data read back is always from the first page, and that it seems not possible to read data from other pages?

Answer

When using the TABRDC table read instruction in the HT86 series of devices, because the they contain 16-bit tables it necessary to use both the TBLP and TBHP instructions to correctly address the full range. If the TBHP register only contains its initial value of 00H after power up, then if the TABRDC instruction is used it will only read data from the first page of program memory.


Question 5

When using the SPEECH MACRO to play a voice, why does the start and end of the output have a broken sound?

Answer

When using the SPEECH MACRO the (fVoiceUp) and (fVoiceDown) flag should be set to "1" to resolve this problem.


Question 6

What are the functional differences between the HT86030, HT86070 and the other devices in the HT86xx series?

Answer

The functional characteristics of the HT86030 and HT86070 and the original devices in the HT86XX are the same. However the number of I/Os are reduced to 16, and there is one less 16-bit timer and no Real Time Clock function, resulting in reduced costs and increased competitive advantages.


Question 7

What is the difference between the choosing the WDT clock source as WDT OSC or T1 ?

Answer

If the WDT Clock Source is chosen as the WDT OSC, then when the system enters the Power Down mode the WDT timer will continue to function and when an overflow occurs the system will be woken up. If T1 is chosen as the clock source, then when the system enters the Power Down mode, then the WDT has no means of waking up the system. However choosing the WDT OSC comes with the cost of slightly increasing the power consumption of the device. Under conditions where the system is stable and does not have to be woken up by the WDT, then the T1 clock source could be selected.


Question 8

The HT86R384 has three 16-bit programmable timer/event counters, what are their differences?

Answer

Timer/Event Counter 0 and Timer/Event Counter 1, have three operating modes: event counter mode (uses external clock), timer mode (uses internal clock) and pulse width measurement mode. Their overflow interrupt service vector is located at 0008H and 000CH respectively. As the Timer/Event Counter 2 clock source can only come from the internal signal T1, therefore it only has one operating mode, which is the timer mode, with an overflow interrupt vector at 0010H.


Question 9

What is the order for the setup and reading of the 16-Bit Timer/Counters ?

Answer

For the HT86R384 device, as the TMR3 is an 8-bit timer, therefore there is no special order for setting up or reading the timer. However the other counters are 16-bit counters which require two operations in a fixed order for setup and reading. When writing to the 16-bit Timer/Counter, it is necessary to first write the Low Byte and then write the High Byte. Also when reading the order should be to first read the High Byte and then read the Low Byte.


Question 10

How is the 16-bit Timer/Event Counter setup?

Answer

The 16-bit counter is a count-up Timer/Event counter, which upon reaching its maximum count of 65535 (0FFFFH) and overflowing to zero, will generate an interrupt. Therefore if it is required to count to a value of N, where N<65535, the timer must be setup with a value equal to 65536-N.
After setting up and starting the Timer/Event counter, the counter will start to count up from this preloaded value to 65535 and on the next count will overflow to zero (namely 65536). The counter value is therefore 65536-(65536-N)=N.


Application Description

 


Question 1

Why are their changes in frequency when the volume is adjusted during sound play?

Answer

  1. When batteries are used for an extended period their input resistance increases and output voltage will reduce in magnitude. This may cause some variations in the operation frequency of the oscillation circuit within the device. Changing the batteries will of course resolve this problem.

  2. The large AC currents required by the speaker driver circuits may also cause variations in the power supply. Connecting a suitable electrolytic capacitor, such as 47µf, between the power supply lines will help to resolve this problem.


Question 2

Within the .wav programming software, the volume has been set to its highest level, however when the sound is played it is still too low?

Answer

In a PC multimedia environment, if a high quality speaker is utilised, then all sounds will be heard due to the speaker's good frequency response. However, for applications such as toys, the speaker connected to the Voice IC, is often a low cost component with poor frequency response. As a result, sound energy will be lost as such speakers will not be able to replicate all the original sounds that were heard using the PC multimedia speakers, resulting in a lower volume output. In such applications, when recording, it is suggested that the frequency is adjusted by the equalizer to take into account the lower frequency response of the lower cost speakers.


Question 3

Is it normal for the temperature of the speaker driver transistor to be high?

Answer

Driving a speaker directly using a transistor is known as a class-A amplifier circuit. There should be no problem having the transistor run at a higher temperature. However to avoid this situation, it might be useful to investigate using the HT82V733 amplifier as an alternative means of driving the speakers.


Question 4

If the power environment of the application circuitry is not of a high standard, will this affect the sound quality of the IC?

Answer

If the power contains noise, the sound quality will be influenced by such noise, which will be transferred from the IC power to the sound output port. One method of reducing this IC noise is to connect a 47ohm resistor between VDD of the IC and the power line and then to connect a 10uf capacitor between the VDD pin and VSS.


Question 5

What tools are required to record a section of music from a CD to an IC?

Answer

There are two ways to record sounds from a CD onto an IC:

  1. Place a CD into a traditional audio CD player. Play and record the sound into the PC by using a standard PC SoundBlaster or compatible card. Software such as the standard recording program within Windows or other shareware or professional recording programs are all suitable. A file quality of 8KHz and 16-bit is recommended.

  2. Audio CD can be transferred to 44.KHz and 16-bit wav files from the PC. Use the program to transfer the files to a lower sampling rate suitable for the project.


Question 6

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 7

Why is the played voice frequency of the ICE different from the original frequency?

Answer

This is because the VROM Manager System Clock Option and the System Frequency Configuration Option are not the same. When changed to be the same the problem will be resolved.


Question 8

Can the number of played voice sounds in the HT86 exceed 255?

Answer

Yes it can. It is only necessary to change the related voice bank and the play routine.


Question 9

Does the VOICE ROM in the HT86 series have other uses?

Answer

Yes, other data can be placed in the voice rom, which can then be accessed through the relevant address and data registers.


Question 10

When the voice output has finished playing, why is there still several hundred ma of current flowing?

Answer

After the voice output has finished playing, the DAC circuit should be turned off by clearing bit 0 of the Voice Register to ensure that no excess current is used. If a SPEECH routine is called then the VoiceDown flag should be set to a 1 level.


Question 11

On the HT86P00 there is a piggy backed 74HC139 IC, but why is this required?

Answer

Piggy backing is only required if more than one EPROM or Flash Rom device is required, where a 74HC139 device has to be utilised. If only a single Rom device is required then the 74HC139 is not required.


Question 12

When an interrupt is being handled can other interrupts take place?

Answer

In theory when the MCU enters an interrupt routine, the EMI bit will be automatically cleared (EMI=0). This has the action of preventing further interrupts from occurring. However, if during an interrupt routine, the EMI bit is reset high (EMI=1), and if the stack is not full, the other interrupts can take place.
To enable the other interrupts, it is necessary to take care to handle any backed up data. This is to prevent any backed up data being corrupted by the most recent interrupt. If the interrupt is not of an emergency nature, it is recommended that interrupt nesting is avoided.


Question 13

In the HT86XXX series, what is the relationship between DAH, DAL and VOL and the AUD output voltage ?

Answer

VOL determines the largest deviation value of the AUD output voltage from (1/2) VDDA. DAH and DAL determine the deviation from (1/2) VDDA. When VOL is not equal to 00H and with DAH, DAL > 80H, 00H, the output voltage will be greater than (1/2) VDDA. When DAH, DAL < 80H, 00H, the output voltage will be less than (1/2) VDDA.
Example: When the highest 3 bits of VOL are 111, and when DAH = 0FFH and DAL = 0F0H, then the AUD output voltage is VDDA. When DAH = 00H and DAL = 00H, then the AUD output will be VSSA. When the highest 3 bits of VOL are 000, and with DAH and DAL at any value, the AUD output will be equal to 1/2 VDDA.


Question 14

Are there any points to note when using the table read instruction in the HT86XX series of microcontrollers?

Answer

The Program Memory is subdivided into pages with each page having 256 addresses with an address range from 00H to FFH. When the TABRDL table read instruction is executed in the HT86XX series of microcontrollers, it is the 256 locations within the last page that are read. Before using this instruction, it is necessary to provide the Table Pointer register, TBLP, with the correct address of the data to be read. When the TABRDC table read instruction is executed, then the page number of the data to be read should be placed into the TBHP register and then the address of the data to be read, placed in the TBLP register. In this way data can be read from any area of Program Memory.


Points to Note

 


Question 1

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

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 2

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 3

Why is the voice output that is actually played different from the one that is requested?

Answer

The played output is the previously transmitted Tracknumber/Tracknumber2 register value and not the requested one. When changed to the same number the problem will be rectified.


Question 4

In the VOICE ROM, when storing and playing as midi or voice what are the differences?

Answer

When playing a midi file, it is only possible to access the first 64K bits of data to play the voice file, therefore when storing or playing a midi file, it must be placed before the VOICE FILE.