|
基本数据
Question
1
HT47 R-F Type MCU内容如何?
Answer
R-F型MCU提供1K 的Mask Type、2K的OTP Type及2K 的Mask
Type,编号为HT47C10L、HT47R10A-1、HT47R20A-1/HT47C20-1/HT47C20L总共5颗IC,规格功能请参考Holtek
Data Sheet。 (型号中的"C" 代表 Mask Type,型号中的"R"代表 OTP
Type,型号中的"L"代表 Low Voltage Version)。
Question
2
HT47 R-F Type MCU功能有何不同?
Answer
|
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 |
注: 1.
IC型号中包含"C"则表示该型号为MASK版本;包含"R"则表示该型号为OTP版本;包含"L"则表示该型号为低电压版本。
2. 细节规格请参考Holtek Data Sheet。
Question
3
HT47 R-F Type MCU提供何种类的封装型式?
Answer
HT47R10A-1/HT47C10L : 44 QFP
HT47R20A-1/HT47C20/HT47C20L : 64 QFP
Question
4
HT47 R-F Type MCU有何重要功能及特性?
Answer
工作电压范围 2.2V ~ 5.5V;HT47CXXL工作电压1.2V ~ 2.2V 工业温度规格 -40°C
~ +85°C OTP / Mask Type MCU相容 其它请参考 Holtek Data
Sheet
Question
5
HT47 R-F Type MCU的工作频率为何?
Answer
HT47R10A-1/HT47R20A-1/HT47C20-1 在5V、3.3V及3个电池的应用,工作频率达Max.
8MHz (3.3V)。
在3V及2个电池的应用,工作频率达Max. 4MHz (2.2V)。
HT47C20L 在1个电池的应用,工作频率为 32.768kHz (1.2V~2.2V)。
HT47C10L 在1个电池的应用,工作频率为 26kHz~40kHz (1.5V)。
Question
6
HT47 R-F Type MCU的ESD及Latch-up能力如何?
Answer
HT47 R-F Type MCU为适合在工业产品使用;在ESD和Latch-up特别加强。
在ESD方面;依据美国军方标准MIL-STD-883E
3015.7;采用人体放电模式测试;每一I/O脚皆超过正负5KV以上。
在Latch-up方面;依据JEDEC-NO.17标准,采用Current
Mode方式测试,每一I/O脚皆超过正负100mA以上。
Question
7
Power On Reset时间为何?
Answer
在3V时,Power On Reset时间为45ms~180ms;5V时,Power On
Reset的时间为35ms~140ms
Question
8
当系统时钟选择RC振荡器时,频率误差为何?
Answer
当系统时钟选择RC振荡器时,由于制程的因素造成的每个批号频率误差为±20%。假如外加电阻之误差为±5%,那么总频率误差就是±25%。
Question
9
PA2置于红外载波输出时,输出频率为多少?
Answer
红外载波的输出频率为系统时钟的12
分频,当系统频率为480kHz时,载波频率为40kHz。
功能说明
Question
1
HT47 R-F Type MCU有两组MP使用有何不同?
Answer
MP0/IAR0和MP1/IAR1必需配对使用,其中MP0/IAR0只能用在RAM
BANK0,MP1/IAR1则可以在任何RAM BANK使用。
Question
2
查表指令如何使用,有何注意事项?
Answer
查表指令有二种,一种是TABRDC指令,此指令读取目前指令所在表数据,另一种为TABRDL指令,此指令固定读取最后一页表数据。要查表时首先必需将表的Low
Address填入TBLP再执行查表指令,表的Low Byte Data将存入指令指定的内存;表的High Byte
Data被存入TBLH中,要注意未满16-Bit之表Data高位被补0。
Question
3
PA已经Low为何没有唤醒MCU?
Answer
MCU的PA
Port唤醒为瞬间下降缘触发,若在执行HALT之前PA已经Low,且在HALT期间一直维持在Low,因为没有下降缘动作,所以无法唤醒MCU。
Question
4
为何外部中断有下降缘,仍然没有唤醒MCU?
Answer
虽然MCU可由中断唤醒,但严格的说是要靠中断要求旗标 (Request Flag)
EIF0/EIF1由0变1才能唤醒。若在MCU进入HALT之前EIF0/EIF1已经设定
(EIF0/EIF1=1),则再来之INT无法改变EIF0/EIF1的值,亦即是EIF0/EIF1不能由0变1,所以不能唤醒MCU。
Question
5
HT47 R-F Type MCU RTC、WDT和Time Base之时钟源选择?
Answer
HT47X20 R-F Type MCU之RTC、WDT、BUZZER和Time
Base之时钟源必需同时选择,且由Configuration Option选择。当系统频率为RTC
OSC时,则RTC、WDT和Time Base之时钟源为RTC OSC。
当系统频率不是RTC OSC时;则时钟源有以下3种:
-
fSYS/4
-
RTC OSC
-
WDT OSC
HT47C10L R-F Type MCU之RTC、WDT和BUZZER之时钟源为内部32kHz RC
OSC。
Question
6
系统时钟选用RTC OSC时,RTC、WDT和Time Base之时钟源,仅能选RTC OSC?
Answer
当系统时钟为RTC OSC时,因RTC OSC不受HALT影响,亦即是这是一个不停的时钟源。此时WDT
OSC显然多余。为了省电所以将WDT OSC关闭,并将其时钟源固定为RTC OSC。
Question
7
WDT时钟源选用WDT OSC时,看门狗时间如何计算?
Answer
WDT OSC的时钟周期在工作5V时约65µs(32µs~130µs),看门狗时间约为65µs x
215=2.13 Sec到65µs x 216=4.26 Sec之间。
Question
8
WDT Clock Source选择WDT OSC和选择 fSYS/4有何差别?
Answer
WDT Clock Source选择WDT OSC则在系统误入HALT时WDT Timer仍然继续工作,当WDT
Time-out可以再启动系统。若选择
fSYS/4则在误入HALT后,则一直沈睡下去无法Wake-up,但选择WDT OSC则需花一些代价
(消耗电流)。在另外一种情形,如果系统正常就有HALT功能,且在HALT时不希望被WDT叫醒,则此时WDT Source可选
fSYS/4。
Question
9
2个CLR WDT指令如何使用?
Answer
2个CLR WDT可以增加系统可靠性。若程序有2个主要的交替循环Loop;则可在1个Loop放CLR
WDT1,在另1个Loop放CLR
WDT2,一旦程序错误或受噪声干扰造成一直停留在某一个Loop时;WDT就会启动,发出WDT
Time-out重新启动CPU。
Question
10
16-Bit TMR值如何设定?
Answer
16-Bit Timer/Counter为一向上数之计数器 (Counter),每当Counter数到65535
(0FFFFH)溢位0H时产生中断 (Interrupt),所以若要计数为N (N <
65536);则TMR值要设定成 65536-N,设定好后启动TMR;TMR即从设定值往上数到65535溢出到0
(即65536),故所得值即65536-(65536-N)=N。
Question
11
16-Bit Timer/Counter的设定和读取顺序?
Answer
HT47 R-F Type MCU内部Data
Bus均为8-Bit,对于16-Bit的数据必需两次才能完成,对16-Bit Timer/Counter的写必需先写Low
Byte然后High Byte,而读的顺序必需先读High Byte然后Low Byte。
Question
12
Timer/Counter之Timer Mode如何设定?
Answer
因HT47R20A-1,HT47C20 Timer/Counter有4种模式,即Timer、A/D
Counter、Event Counter和Pulse Width等4种。HT47C10L 除了没有Event
Counter之外, 还有其它3种。
HT47R20A-1,HT47C20要执行Timer Mode要执行以下动作设定:
-
设成 Timer/Counter mode (ADC/TM=0)
-
设定Timer/Counter为Timer Mode 并选择时钟源
(TS、TM1、TM0=000B, 001B, 010B 分别代表选择了不同的时钟源)
-
设定计数初始值 (TMR)
-
开相对应中断致能旗标 (ETI和EMI)
-
设定 Timer ON (TMRC.4=1)
HT47C10L要执行Timer Mode要执行以下动作设定:
-
设成 Timer/Counter mode (ADC/TM=0)
-
设定Timer/Counter为Timer Mode (TM1、TM0=10B
),时钟源为内部系统频率 fSYS
-
设定计数初始值 (TMR)
-
开相对应中断致能旗标 (ETI和EMI)
-
设定 Timer ON (TMRC.4=1)
Question
13
Timer/Counter之Event Counter Mode如何设定?
Answer
HT47R20A-1,HT47C20 Timer/Counter有4种模式,即Timer、A/D
Counter、Event Counter和Pulse Width等4种。
HT47R20A-1,HT47C20要执行Event Counter Mode要执行以下动作:
-
设成 Timer/Counter mode (ADC/TM=0)
-
设定Timer/Counter为Event Counter Mode
(TS、TM1、TM0=100B)
-
选择TE; TE=1则Count Falling
Edge,TE=0则Count Rising Edge
-
设定计数初始值 (TMR)
-
打开相对应中断致能旗标 (ETI和EMI)
-
控制Timer ON (TMRC.4=1)
Question
14
Timer/Counter之Pulse Width Mode如何设定?
Answer
HT47R20A-1,HT47C20 Timer/Counter有4种模式,即Timer、A/D
Counter、Event Counter和Pulse Width等4种。HT47C10L 除了没有Event
Counter之外, 还有其它3种。
HT47R20A-1,HT47C20 要执行Pulse Width Mode要执行以下动作:
-
设成 Timer/Counter mode (ADC/TM=0)
-
设定Timer/Counter为Pulse Width Mode
(TS、TM1、TM0=101B)
-
选择TE; TE=1量High Pulse,TE=0量Low Pulse
-
设定TMR计数初始值 (一般设定=0)
-
打开相对应中断致能旗标
-
打开Timer ON (TMRC.4)
执行完以上步骤,程序可抽空Check TON值,若TON=0表示Pulse Width量度完成。
HT47C10L 要执行Pulse Width Mode要执行以下动作:
-
设成 Timer/Counter mode (ADC/TM=0)
-
设定Timer/Counter为Pulse Width Mode
(TM1、TM0=11B)
-
选择TE; TE=1量High Pulse,TE=0量Low Pulse
-
设定TMR计数初始值 (一般设定=0)
-
打开相对应中断致能旗标
-
打开Timer ON (TMRC.4)
执行完以上步骤,程序可抽空Check TON值,若TON=0表示Pulse Width量度完成。
Question
15
HT47 R-F Type MCU RTC如何使用?
Answer
HT47R20A-1,HT47C20 RTC类似Time Base设定,最大的差别为其频率可以软件设定。
首先Configuration Option选好时钟源。
-
依需要,程序随时设定RTC除频。fRTC=fS/28~215
(其中 fS为前项之时钟源)。
-
依据中断需求设定中断致能旗标(ERTI=1)。
以上设定完成,RTC会不停运作,每次RTC到时,RTC旗标会被设定(RTF=1),并产生相应中断。
HT47C10L Time Base功能类似HT47X20 RTC设定,最大的差别为其频率来源为内部32kHz RC
OSC (并非精准的32.768KHz)。
Question
16
HT47 R-F Type MCU Buzzer如何使用?
Answer
HT47R20A-1及HT47C20使用Buzzer要先执行以下设定:
-
Configuration Option设定PA0、PA1成CMOS
Output。
-
Configuration Option选择Buzzer。
-
Configuration Option选定时钟源
(同RTC、WDT和Time Base时钟源)。
-
Configuration
Option设定Buzzer频率。fBUZZER=fS/22~29
(fS为前项时钟源)。
以上设定完成,在程序中设定PA0和PA1即可控制Buzzer输出。
当PA0、PA1=0,则BZ、BZ两者输出,当PA0=0、PA1=1则仅BZ输出,当PA0=1则BZ、BZ两者皆不输出。
HT47C10L使用Buzzer要先执行以下设定:
-
Software Option设定PA0、PA1成Buzzer。
-
Software
Option设定Buzzer频率。fBUZZER=fSYS/22~25
(fSYS为系统频率)。
以上设定完成,在程序中设定PA0和PA1即可控制Buzzer输出。
当PA0、PA1=0,则BZ、BZ两者输出,当PA0=0、PA1=1则仅BZ输出,当PA0=1则BZ、BZ两者皆不输出。
Question
17
HT47 R-F Type MCU PFD如何使用?
Answer
使用PFD要执行以下设定:
Configuration Option选择PFD功能输出。
设定PFD频率;fPFD=fINT/2 x (65536-N)
其中fINT为Timer之时钟源
打开选定之Timer (TON)
以上设定完成;在程控PA3=0,则PFD输出。
Question
18
HT47 R-F Type MCU的Time Base如何使用?
Answer
使用Time Base要执行以下设定:
-
首先Configuration Option选好时钟源。
-
依需要;Configuration Option选择Time Base除频。
fTIME
BASE=fS/212~215
(其中fS为前项之时钟源)。
-
依据中断需求设定中断致能旗标 (ETBI=1)。
以上设定完成,Time Base会不停的运作,每次Time Base到时,Time
Base旗标会被设定(TBF=1),并产生相应中断。
Question
19
HT47 R-F Type MCU LCD频率如何设定?
Answer
设定LCD频率要执行以下设定:
1. Configuration Option时钟源 (同RTC、WDT
& Time Base时钟源)。
2. Configuration Option选除级,使LCD频率
(fLCD=fS/22~28)
约为4kHz。(fS为上述之时钟源)
Question
20
HT47 R-F Type MCU LCD Bias选R Type或C Type有何差别?
Answer
LCD选R Type可省零件,而选C Type可较省电,若介意耗电问题可选C
Type,若没有耗电顾虑可以选省3颗电容的R Type。但要注意选C Type LCD且1/3
Bias时LCD的电压是3/2 VLCD。
Question
21
HT47 R-F Type MCU的系统频率有那些?
Answer
HT47R20A-1 MCU的系统频率来源有三种,如下:
-
外部RC
-
外部 Crystal
-
外部 RTC OSC Crystal
HT47C20 MCU的系统频率来源有二种,如下:
-
外部RC
-
外部 Crystal
HT47C20L MCU的系统频率来源有一种,如下:
-
外部 RTC OSC Crystal
HT47C10L MCU的系统频率来源有一种,如下:
-
内部 32k RC OSC
Question
22
MCU Power On时,VDD的上升时间有何限制?
Answer
MCU Power On时为了使Reset可以完全成功,建议Power On
VDD上升时间在20ms以内。当电池逐渐没电,电池内阻增大,造成VDD上升缓慢会影响Reset成功。
Question
23
低电压Reset (LVR) 在HALT时,是否会耗电?
Answer
-
HT47R20A-1 LVR在HALT时没有作用,所以没有耗电问题。
-
HT47C20L LVR在HALT时有作用,所以会有耗电问题。电流大小请参考
DATA SHEET。
-
HT47C20 and HT47C10L 无 LVR,但 HT47C10L
具备 LVD (Low Voltage Detector)功能。
Question
24
Holtek MCU 之Stack 除了做CHIP reset之外, 有无其它方法可以重设 stack
pointer?
Answer
堆栈指针会受到中断与呼叫附程序与返回指令影响,除此之外,除了透过CHIP reset,
并无其它方法可以重设(reset) Holtek MCU 的堆栈指针。
Question
25
可否仅把PA0~PA1其中一口掩膜选择设置为蜂鸣器输出?
Answer
不能,当PA0~PA1掩膜选择设置为蜂鸣器输出时,两个口同时有波形输出。
Question
26
请问WDT之功能为何?
Answer
Watchdog Timer(WDT)主要用于监视MCU内部功能(software及hardware)之执行是否正常,
使用者必须适当设计software及运用clear WDT(CLR WDT, CLR WDT1, CLR WDT2)之指令,
使程序正常执行时, WDT不会overflow, 并且在当系统不正常执行时, WDT可以overflow造成WDT
reset, WDT reset之效能, 主要由software设计所决定。
Question
27
HT47C10L在进入Halt时,其内部振荡情形如何?
Answer
Ht47C10L的在进入halt mode时,如果在OPT1(26H)中选择STANDBY为0,LCD
off,内部振荡停止。
选择STANDBY为1,Lcd驱动仍然处于工作状态,振荡32K也不会停止。 如果在选择OPT1(26H)El
Enable,振荡128k也会工作。
Question
28
LVR 功能打开时,LVD的功能打开是否有效?
Answer
LVR的动作点在2.7V~3.3V之间,LVD的动作点在3.0V~3.6V之间,LVD的动作点一般比LVR大,所以LVR打开后LVD功能打开仍有效。
应用说明
Question
1
间接寻址如何使用?
Answer
首先将要读写之Data Memory的地址先存入地址指针缓存器 (MP),然后对IAR执行读写 (例如: MOV a,
IAR),即可读到MP所指到的Data (MP的内容当地址)。间接寻址功能特别方便于数列 (array)
的处理,一般先将数列地址放入MP做运算后再读取所需的数列Data。
Question
2
HT47 R-F converter如何使用, 其原理为何?
Answer
在HT47系列中比较特殊的地方就是R-F A/D converter, 在使用的时候需先设定ADCR 缓存器,
选择使用ADC mode, 选择TIMER A或TIMER B overflow时, TIMER A and TIMER
B就停止计时及计数, 还要选择哪一个R与C要震荡, 设定完ADCR 之后, 再设定TIMER A和TIMER
B要count的值, 最后让 timer on, R-F converter就开始计时及计数; 在timer A
overflow or timer B overflow时, timer A和 timer B 就停止自动计数,
然后可以读取 timer A 或是 timer B 的转换值; 其原理是利用 RC OSC 的震荡频率与 R 及 C
的值成比例; 所以将受测电阻RT与一个参考电阻 RS 分别再与参考电容 CS 组成 RC 振荡器, 因 RT-CS
振荡与RS-CS 振荡共享 CS 电容, 故 RT 与 RS 会与 count 值成一定的比例, 而 RS因为是参考电阻,
故必需使用精密电阻。
Question
3
没有Push和POP指令;中断时数据要如何备份?
Answer
虽然没有Push和POP指令,程序员仍可指定专用记忆RAM BYTE (例如:db ACCStack; for ACC
Storage)
储存中断时会被破坏的数据。首先将ACC存入专用内存,然后利用ACC依序将Status和其它数据搬移至各别之专用内存。在中断返回前,再反序将其它备份数据,Status和ACC回存,最后再执行RETI返回主程序。
Question
4
可以在Interrupt Service Routine内执行Call吗?
Answer
因为HT47 R-F Type MCU
Stack数目有限,在Interrupt中执行Call要特别注意,如果在进入Interrupt时Stack已经满了,则会造成Stack
Over,而使得程序无法返回。所以若要在Interrupt内执行Call,必需考虑在最差情况下之Stack使用数目,务必使在最差状况下进入Interrupt仍有Stack空间。
Question
5
中断处理中可否允许相同的中断再进入?
Answer
理论上在进入中断时MCU会自动清除EMI旗标 (EMI=0),并禁止所有中断的再进入,若中断处理中用软件设定EMI旗标
(EMI=1),则在Stack有空之下,所有中断(含相同中断)皆可再进入。要允许相同的中断再进入,需特别注意备份数据的处理,应避免已备份之数据被再进入的中断所破坏。若不是非常紧急中断,一般不建议中断再中断。
Question
6
没有用到的I/O Pin如何处理?
Answer
若不用之I/O Pin浮接时,会造成IC的耗电,最好的处理方式就是将不用的I/O Pin设定成Output
Pin。如果要设成Input Pin则要选择Pull-high
电阻,如果不选用Pull-high电阻,则将Pin脚接地。
Question
7
已经进入HALT Mode为何还有耗电?
Answer
MCU进入HALT会将系统OSC关闭,但WDT OSC (如果Option选WDT Enable) 和RTC
OSC仍在工作,而且全部I/O会保持HALT前状态,除了WDT OSC和RTC OSC会耗一些电外,最要注意的是Input
Port是否浮接或者Output Port是否仍有负载,这些I/O处理要非常小心,否则会耗大电流。
Question
8
可以让外部中断不产生唤醒MCU吗?
Answer
在执行HALT之前先清除EMI再设定EIF=1,则外部中断就无法唤醒MCU。
Question
9
Timer/Counter之A/D Counter Mode如何设定?
Answer
因HT47R20A-1,HT47C20 Timer/Counter有4种模式,即Timer、A/D
Counter、Event Counter和Pulse Width等4种 。HT47C10L 除了没有Event
Counter之外, 还有其它3种。
HT47R20A-1,HT47C20要执行A/D Counter Mode要执行以下动作:
-
设成 Timer/Counter mode (ADC/TM=0)
-
选择R-F A/D channel (设定M3、M2、M1、M0)
-
设定Timer/Counter为A/D Counter Mode
(TS、TM1、TM0=011B)
-
设定计数初始值 (TMR)
-
打开相对应中断致能旗标 (ETI和EMI)
-
控制Timer ON (TMRC.4=1)
HT47C10L要执行A/D Counter Mode要执行以下动作:
-
设成 Timer/Counter mode (ADC/TM=0)
-
选择R-F A/D channel (设定MODE)
-
设定Timer/Counter为A/D Counter Mode
(TM1、TM0=01B)
-
设定计数初始值 (TMR)
-
打开相对应中断致能旗标 (ETI和EMI)
-
控制Timer ON (TMRC.4=1)
Question
10
HT47 R-F Type MCU A/D 如何设定?
Answer
HT47R20A-1,HT47C20要执行R-F A/D Counter Mode要执行以下动作(以TIMER A
overflow时, ADC 停止计数为例):
-
设成 A/D Counter Mode (ADC/TM=1)
-
选择TIMER B R-F A/D channel
(设定M3、M2、M1、M0)
-
选择TIMER A时钟源 (TS、TM1、TM0=000B, 001B,
010B)
-
选择TIMER A overflow时, 则停止
ADC计数(OVB/OVA=0)
-
设定 TIMER A 计数初始值
-
设定 TIMER B 计数初始值为0
-
控制Timer ON (TMRC.4=1)
执行完以上步骤,程序可抽空Check TON值,若TON=0表示ADC量度完成。读取TIMER B 的计数值,可参考
DATA SHEET上的范例程序
HT47C10L要执行R-F A/D Counter Mode要执行以下动作(以TIMER B overflow时,
ADC 停止计数为例):
-
设成 A/D Counter Mode (ADC/TM=1)
-
选择TIMER B R-F A/D channel (设定MODE)
-
选择TIMER A时钟源 (TM1、TM0=10B)
-
选择TIMER B overflow时, 则停止
ADC计数(OVB/OVA=1)
-
设定 TIMER B 计数初始值
-
设定 TIMER A 计数初始值为0
-
控制Timer ON (TMRC.4=1)
执行完以上步骤,程序可抽空Check TON值,若TON=0表示ADC量度完成。读取TIMER A 的计数值,可参考
DATA SHEET上的范例程序
Question
11
为何HT47R20A-1及HT47C20 Input Port执行完SET和CLR指令后变成Output Port?
Answer
这种状况会发生在一个Port (8
Bit)部份Bit当Input其它Bit当Output的情形。当MCU执行Read-Modify-Write指令
(SET、CLR、…)时,MCU会将整个Port读入,经运算修改部份Bit后再将整个Port写出。虽然程序没有对其中之Input
Port修改,但如果不幸在读取Input Port时;其值刚好为0,则此Bit被写出为0,使得此Bit变成Output
Port,为了避免此情况发生,建议对混用的I/O Port建立I/O Port RAM Buffer,所有指令皆对RAM
Buffer运算;然后再将RAM Buffer搬到I/O Port,如此没有读Port动作即可避免问题发生。
Question
12
在什么情形下要关闭32K快速起振?
Answer
MCU开机上电后32K振荡器起动快速起振。若考虑省电可在2秒钟后关闭快速起振,如此在3V工作电压下可省1~2µA,在5V工作电压下可省3~4µA。
Question
13
2颗电池 (2.2V~3.8V) 的工作电压操作可以使用LVR吗?
Answer
LVR的动作点在2.7V~3.3V之间,所以2.2V的工作电压不能选择LVR,若一定要侦测2.2V低压,可以外加Voltage
Detector (HT70XX系列)。
Question
14
在Data Sheet的Reset电路,是否可适用各种应用状况?
Answer
Data
Sheet所提供的Reset电路一般可适用各种应用状况,若在特殊情形,要参考当时环境及Noise,再设计适当Reset电路。
Question
15
当系统时钟选择RC振荡器时,应用电路上OSC1外接的电阻与电容有何功能?电容可以不加吗?
Answer
OSC1外加电阻是为了产生一bias以控制内部的RC充放电,电阻值决定RC震荡频率。外加电容建议为470pF,OSC1外加电容是为了避免和OSC2产生交越干扰,以便让OSC2输出一稳定1/4系统频率的频率。假如你不需要使用到OSC2输出的1/4系统频率的频率,那么电容器是可以省略的。
Question
16
对于HT47R20A-1与HT47C20-1,其VLCD引脚输入电压可以大于VDD吗?
Answer
HT47R20A-1与HT47C20-1,其VLCD输入电压可以大于VDD,但是最高的LCD波形电压仍应维持在2.2V到5.5V工作电压范围内。换言之,对于R-type
1/2 或 1/3 bias,以及C-type 1/2
bias应用,VLCD输入电压范围为2.2V到5.5V;对于C-type 1/3
bias应用,由于内部有升压线路,最高LCD波形电压会是VLCD输入电压的1.5倍,所以VLCD输入电压范围为1.5V到3.6V。请注意,对于低压Mask型MCU,在应用时V3与VDD接在一
起,固定做为LCD的输入电压,最高LCD波形电压会是V3输入电压的2倍。
Question
17
HT47C20L的LVD在halt状态时,怎样处理会省电?
Answer
如果程序中不需要LVD的功能,可以在mask option中 LVD选
Disable﹔如果程序中需要LVD的功能,注意进入halt时要用software disable
LVD﹔但在此种情况下,耗电会大于前种情况。
Question
18
用HT46/HT47/HT48/HT49系列单片机的BZ/BZB功能时感觉声音不够响亮,该怎么办?
Answer
BZ/BZB的输出频率要与蜂鸣器的频率对应,每种蜂鸣器都有各自的中心频率,设置的频率要尽量靠近中心频率。如果蜂鸣器直接接在BZ,BZB两个管脚,那么这两个管脚
对应的IO口都要设成输出。
Question
19
使用HOLTEK MCU做一个声音的产品,在程序中,会应用到查表:
| TABLE1: |
DC 0FFE1H,0FE32H,0FA34H,0FC78H |
|
|
DC 0FECDH,0FEDCH,0FE57H,0FD87H |
; 16位表格值 |
请问16位的查表表格定义能否按TABLE1的格式?
Answer
HOLTEK各系列MCU的ROM有不同的字节长度,每一个字节最低含14个位,最多含16个位。 字节长度为16位的MCU可以按TABLE1格式定义出16位表格,其它MCU只能定义出最长14位或15位的表格。
注意事项
- Question 1
HT47
R-F Type MCU是否提供Dice form?
- Question 2
HT47系列中,
R-F converter是否有sensor间之干扰问题, 是否有解决办法?
- Question 3
HT47X20
ICE之interface card上之RFADOSC-1与RFADOSC-2 IC有何功能, 区别与如何使用?
- Question 4
HT47
ICE之interface card上之VDD与Low-volt-vdd有何区别与如何使用?
- Question 5
请问OTP
dice 烧录流程为何?
- Question 6
我需要使用OTP的DIE生产,请问如何烧录?
- Question 7
我使用OTP
DICE,但是发现烧录不良率较高,这是为什么呢?
- Question 8
我使用HT-Writer烧录OTP
DICE,联机的时候出现"MCU:Cannot
identify"信息会出现在信息窗口中,是打线不好?还是OTP有问题?
- Question 9
请问MCU的Reset
与Oscillator线路设计有无需注意事项?
- Question 10
3
pin 之resonator/crystal用于MCU之时基时, 电容之Vss pin可改接Vdd吗?
- Question 11
使用Assembly
Directives之MACRO,可否节省Program memory之空间,对MCU之执行速度有何影响?
- Question 12
写程序时,如欲在program
memory建立Table,如何建于绝对地址,为何ORG不适用,有其它方法吗?
- Question 13
请问要如何以C语言读取OTP
WRITER烧入IC之序号?
-
Question 14
使用ICE模拟时,若在Interface
Card上的Y1使用32768Hz的X'tal,为何无法起振?
-
Question 15
请问在使用带 LCD 之母体作 LCD simulator或接上LCD panel时,
LCD DISPLAY 无法正确点亮,且会闪烁,原因为何?
Question
1
HT47 R-F Type MCU是否提供Dice form?
Answer
Holtek 同时提供OTP Type及Mask Type MCU的Dice form的量产服务,但使用OTP MCU
Dice量产时,客户要特别注意打线及烧录的操作问题。
Question
2
HT47系列中, R-F converter是否有sensor间之干扰问题, 是否有解决办法?
Answer
一般R-F converter均有干扰问题, Holtek已解决此问题, 并已通过专利, 故无干扰问题存在。
Question
3
HT47X20 ICE之interface card上之RFADOSC-1与RFADOSC-2 IC有何功能,
区别与如何使用?
Answer
当模拟HT47C20/HT47R20A-1时使用RFADOSC-1,
当模拟HT47C20L时使用RFADOSC-2。
Question
4
HT47 ICE之interface card上之VDD与Low-volt-vdd有何区别与如何使用?
Answer
HT47 ICE 之 interface card 上之 VDD 为 ICE 所提供的 5V,
Low-volt-vdd 是 R-F 的电源, 需连接和实际量产的产品同样的电源。
Question
5
请问OTP dice 烧录流程为何?
Answer
Question
6
我需要使用OTP的DIE生产,请问如何烧录?
Answer
HOLTEK的OTP烧录会使用到11根引脚,所以如果需要使用OTP的DIE生产,在画PCB时,需要预留出这11根引脚,关于引脚的详细定义请向相关的代理商索取。使用者需制作治具将11根引脚连接到烧录器的40
PIN的Textool上,之后就可以按照OTP封装片的烧录程序烧录。
需要注意的是,在PCB
Layout的时候,使用到的这11根引脚在PCB上的走线不要过长,其中PA0~PA6做烧录使用避免连结到其它线路的输出,如无法避免则需串接1kohm电阻,
以免影响烧录;从PCB到烧录器的联机不要超过15cm,越短越好。
Question
7
我使用OTP DICE,但是发现烧录不良率较高,这是为什么呢?
Answer
首先,要排除打线不良的问题,一般来说打线不良是OTP
DIE烧录不良的重要原因。如果你自己没有办法确定打线是否良好,可以通过技术支持的方式,将绑定完好没有封胶的样片寄到HOLTEK相关的技术服务部门分析。
Question
8
我使用HT-Writer烧录OTP DICE,联机的时候出现"MCU:Cannot
identify"信息会出现在信息窗口中,是打线不好?还是OTP有问题?
Answer
OTP的封装片在出厂前会有一些信息在里面,使用HT-Writer
烧录器时会显示于信息窗口中。如果OTP芯片中没有此等信息,那么烧录程序就会认为无法辨认此ID,会出现这么一个警告信息。而OTP
DICE一般来说,出厂前是不会有这样的信息的,所以烧录器会不认识此颗IC。
如在Option菜单中将Check ID的选择去掉,这样在今后的烧录过程中,烧录程序就不会再去Check
IC里面的ID信息;如果是脱机烧录模式的话,请将HT-Writer背面的DIP开关的DIP1拨为OFF,这样在脱机烧录的时候,就不会去Check
IC里面的ID信息了。
Question
9
请问MCU的Reset 与Oscillator线路设计有无需注意事项?
Answer
请参阅 "应用范例" 网页,其中的 "HA0075S" 供使用者参考。
Question
10
3 pin 之resonator/crystal用于MCU之时基时, 电容之Vss
pin可改接Vdd吗?
Answer
3pin之resonator/crystal 用于MCU之时基时,配合Layout方便, 电容之Vss
pin亦可改接Vdd。
Question
11
使用Assembly Directives之MACRO,可否节省Program
memory之空间,对MCU之执行速度有何影响?
Answer
在Assemble后MACRO所属指令将填入Program space,故对Program
memory之空间和MCU之执行速度没有影响,但其使的程序简化,容易维护。
Question
12
写程序时,如欲在program
memory建立Table,如何建于绝对地址,为何ORG不适用,有其它方法吗?
Answer
ORG expression : expression 是对于目前SECTION
起始地址的offset,并非绝对地址,可使用SECTION来建立Table于绝对地址,例如:
table .section at 300 'code'
-即可将接下去之Table起始位置建立于绝对地址300。
Question
13
请问要如何以C语言读取OTP WRITER烧入IC之序号?
Answer
在C语言中须以Inline assembly来读取OTP WRITER烧入IC之序号, 程序范例如下:
首先, 宣告一变量并指定 ram 地址 unsigned long series_num @0x80;
然后, 将 serial number 读入此 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
使用ICE模拟时,若在Interface
Card上的Y1使用32768Hz的X'tal,为何无法起振?
Answer
Interface card上的Y1等于是实际IC的OSC1,OSC2,无法使用32K
X'tal;HT-ICE本身已内建32K
X'tal,用ICE模拟时,若选择32K当系统频率,只需在Configuration Option将Fsys设为RTCCLK
for Fsys即可。
Question 15
请问在使用带 LCD 之母体作 LCD simulator或接上LCD panel时, LCD DISPLAY
无法正确点亮,且会闪烁,原因为何?
Answer
在使用 LCD simulator或接上LCD panel时,LCD driver clock
应设成接近4kHz才行. 例如当 fsys=4MHz,clock source(fs)=fsys/4=T1=1MHz,
LCD driver clock 应设定成 fs/28=1MHz/28=3906Hz,LCD
DISPLAY 即可正常显示。
其它
Question 1
在ICE上能模拟LVR和LVD吗?
Answer
ICE上用的VDD是固定的5V,所以不能仿真LVR和LVD功能。
|