|
基本数据
Question
1
HT82XX Keyboard/Mouse/Joystick MCU 内容如何?
Answer
HT82XX Keyboard/Mouse/Joystick MCU 包含HT82K68A/E (PS/2)
多媒体或无线键盘编码MCU; HT82K94A/E, HT82K95A/E, HT82K96A/E键盘编码MCU,
HT82J97A/E, HT82M99A/E鼠标编码MCU (USB+ PS/2) . 上列IC型号末码 "A" 为
Mask Type MCU, IC型号末码 "E" 为 OTP Type MCU, 其它细节规格请参考 Holtek
Data Sheet。
Question
2
HT82XX Keyboard/Mouse/Joystic MCU 的工作频率为何?
Answer
-
HT82K68A/HT82K68E的工作频率: 在 5V, 3.3V 及
3 个电池的应用, 工作频率达 Max. 8MHz (3.3V)。 在 3V及 2 个电池的应用, 工作频率达
Max. 6MHz (2.2V)。
-
HT82K96A/HT82K96E的工作频率: 在5V应用下,为配合USB的通讯,工作频率必需选用6MHz
or 12MHz。 在5V应用下,若不用USB功能,工作频率范围为1MHz~12MHz。
Question
3
HT82K96A/E, HT82J97A/E 的ADC 有几种 mode?
Answer
根据参考电压的不同,可分为Internal ADC与External ADC模式,在Internal
ADC模式,参考电压为VDD-GND,在External ADC模式,参考电压为VRH-VRL,在对ADC转换数据有较高精确度需求时,请使用External
ADC模式。
Question
4
HT82K96A/E, HT82J97A/E ADC的分辨率(Resolution)是几bit?
Answer
HT82K96A/E, HT82J97A/E 内含的ADC为8-bit,其值可透过ADR缓存器获得。
Question
5
HT82K96A/E, HT82J97A/E ADC提供几个通道(channel)?
Answer
6个Channel,分别为AN0, AN1, AN2, AN3, AN4,
AN5。程序设计人员可透过ACS0~ACS2(ADSC缓存器的bit0~bit2) 设定要对何Channel 动作。
Question
6
HT82K96A/E, HT82J97A/E ADC 有那几种Sampling clock Source?
Answer
HT82K96A/E, HT82J97A/E 有4种ADC sampling clock source
(6MHz, 3MHz, 1.5MHz, 0.75MHz),程序设计人员可透过ADSC Register
ADCS0~ADCS1 来设定ADC sampling clock source。
Question
7
关于USB interface的Register 放在那些地址?
Answer
HT82XX Keyboard/Mouse/Joystick MCU(HT82K68A/E除外)将USB
interface 有关Register分别放在Bank0 RAM的1AH~1CH (USC, USR, SCC)
地址及Bank1 RAM 的41H~4BH (Pipe_ctrl, AWR, STALL, PIPE, SIES,
MISC, FIFO0~FIFO3) 地址。Bank1 RAM内的Register因型号不同略有差异;
细节规格请参考Holtek Data Sheet。
Question
8
HT82XX Keyboard/Mouse/Joystick MCU(HT82K68A/E除外) 支持何种USB规格?
Answer
支援USB 1.1 Low speed spec. 及HID 1.1 spec.。
Question
9
HT82XX Keyboard/Mouse/Joystick
MCU(HT82K68A/E除外)有多少Endpoints?
Answer
HT82K96A/E有4个endpoints (1个control endpoint及3个 Interrupt
endpoints);HT82K95A/E有3个endpoints (1个control endpoint及2个
Interrupt endpoints);HT82J97A/E及HT82M99A/E有2个endpoints
(1个control endpoint及1个 Interrupt endpoint)。每一个endpoint都有对应8
X 8 bytes FIFO buffer存取资料。
Question
10
什么是Interrupt Endpoint?
Answer
HT82XX Keyboard/Mouse/Joystick MCU(HT82K68A/E除外)
的Interrupt Endpoint内含8 X 8 bytes FIFO buffer,可support
USB的Interrupt transfer传输。HID class下Keyboard 或mouse data
是透过Interrupt Endpoint传输至PC。细节Interrupt transfer传输规格请参考USB1.1
spec.。
功能说明
Question
1
HT82系列 Keyboard/Mouse/Joystick MCU 功能有何不同?
Answer
|
Part No. |
VDD |
Clock
Mode |
Program
Memory |
Data Memory |
Interface |
I/O |
Timer |
A/D |
PWM |
Stack |
Package |
|
SRAM |
EEPROM |
8-bit |
16-bit |
HT82K68E
HT82K68A |
2.2V~5.5V |
RC/Crystal |
3Kx16 |
160x8 |
-- |
PS/2 |
37 |
1 |
-- |
-- |
-- |
6 |
20/28SOP,
48SSOP |
HT82K94E
HT82K94A* |
2.2V~5.5V |
Crystal |
6Kx16 |
224x8 |
-- |
USB+PS/2 |
40 |
1 |
1 |
-- |
-- |
8 |
40DIP,
48SSOP |
HT82K95E
HT82K95A |
4.2V~5.5V |
Crystal |
4Kx15 |
160x8 |
-- |
USB+PS/2 |
32 |
1 |
1 |
-- |
-- |
8 |
20/28SOP,
20/48SSOP |
HT82K95EE
HT82K95AE |
4.2V~5.5V |
Crystal |
4Kx15 |
160x8 |
128x8 |
USB+PS/2 |
32 |
1 |
1 |
-- |
-- |
8 |
20/28SOP |
HT82K96E
HT82K96A |
4.4V~5.5V |
Crystal |
4Kx15 |
160x8 |
-- |
USB+PS/2 |
32 |
1 |
1 |
8-bitx6ch |
-- |
8 |
20/28SOP,
20/48SSOP |
HT82J97E
HT82J97A |
4.0V~5.5V |
Crystal |
2Kx14 |
96x8 |
-- |
USB+PS/2 |
20 |
-- |
1 |
8-bitx6ch |
8-bitx2 |
4 |
20/28SOP |
HT82M99E
HT82M99A |
4.0V~5.5V |
Crystal |
2Kx14 |
96x8 |
-- |
USB+PS/2 |
12 |
-- |
1 |
-- |
-- |
4 |
18/20DIP,
18/20SOP |
HT82M99EE
HT82M99AE |
4.0V~5.5V |
Crystal |
2Kx14 |
96x8 |
128x8 |
USB+PS/2 |
12 |
-- |
1 |
-- |
-- |
4 |
20DIP/SOP |
注:细节规格请参考Holtek Data Sheet。
Question
2
间接寻址如何使用?
Answer
首先将要读写之Data Memory的地址先存入地址指针缓存器 (MP),然后对IAR执行读写 (例如: MOV a,
IAR),即可读到MP所指到的Data (MP的内容当地址)。间接寻址功能特别方便于数列 (array)
的处理,一般先将数列地址放入MP做运算后再读取所需的数列Data。
Question
3
查表指令如何使用,有何注意事项?
Answer
查表指令有二种,一种是TABRDC指令,此指令读取目前指令所在表数据,另一种为TABRDL指令,此指令固定读取最后一页表数据。要查表时首先必需将表的Low
Address填入TBLP再执行查表指令,表的Low Byte Data将存入指令指定的内存;表的High Byte
Data被存入TBLH中,要注意未满16-Bit之表Data高位被补0。
Question
4
WDT选用WDT OSC时钟源时,看门狗如何计算?
Answer
WDT OSC的时钟周期在工作5V时约介于8 ms~33 ms,看门狗的溢出时间为,时钟周期 x 2
(WS2~WS0),例如:选WS2~WS0=7,则看门狗溢出时间将介于为8 ms x
27=1 sec 到33 ms x 27=4.2 sec。
Question
5
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
6
2个CLR WDT指令如何使用?
Answer
2个CLR WDT可以增加系统可靠性。若程序有2个主要的交替循环Loop;则可在1个Loop放CLR
WDT1,在另1个Loop放CLR
WDT2,一旦程序错误或受噪声干扰造成一直停留在某一个Loop时;WDT就会启动,发出WDT
Time-out重新启动CPU。
Question
7
8-Bit TMR值如何设定?
Answer
8-Bit Timer/Counter为一向上数之计数器 (Counter),每当Counter数到255
(0FFH) 溢位0H时产生中断 (Interrupt),所以若要计数为N (N < 256);则TMR值要设定成
256-N,设定好后启动TMR;TMR即从设定值往上数到255溢出到0 (即256),故所得值即256-(256-N)=N。
Question
8
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
9
16-Bit Timer/Counter的设定和读取顺序?
Answer
HT82 Keyboard/Mouse MCU内部Data
Bus均为8-Bit,对于16-Bit的数据必需两次才能完成,对16-Bit Timer/Counter的写必需先写Low
Byte然后High Byte,而读的顺序必需先读High Byte然后Low Byte。
Question
10
8-Bit Timer/Counter之Timer Mode如何设定?
Answer
因Timer/Counter有3种模式,即Timer、Event Counter和Pulse
Width等3种。 要执行Timer Mode要执行以下动作设定:
-
设定Timer/Counter为Timer Mode
(TM1、TM0=10H)
-
设定计数初始值 (TMR)
-
打开相对应中断致能旗标 (ETI和EMI)
-
设定 Timer ON (TMRC.4=1)
当Timer被打开后,Timer开始向上计数,若Timer OFF
(TMRC.4=0),则Timer立即停止。下次Timer再ON,则从上次停留值继续往上数,直到满位溢出产生中断,同时Timer
重新加载初始值。
Question
11
HT82K96A/HT82K96E 的16-Bit Timer/Counter之Timer Mode如何设定?
Answer
因HT82K96A/HT82K96E 的 Timer/Counter有3种模式,即Timer、Event
Counter和Pulse Width等3种。要执行Timer Mode要执行以下动作设定:
-
设定Timer/Counter为Timer Mode
(TM1、TM0=10H)
-
设定计数初始值 (TMR)
-
打开相对应中断致能旗标 (ETI和EMI)
-
设定 Timer ON (TMRC.4=1)
当Timer被打开后,Timer开始向上计数,若Timer OFF
(TMRC.4=0),则Timer立即停止。下次Timer再ON,则从上次停留值继续往上数,直到满位溢出产生中断,同时Timer
重新加载初始值。
Question
12
HT82K96A/HT82K96E 的Timer/Counter之Event Counter Mode如何设定?
Answer
因HT82K96A/HT82K96E 的Timer/Counter有3种模式,即Timer、Event
Counter和Pulse Width等3种。要执行Event Counter Mode要执行以下动作:
-
设定Timer/Counter为Event Counter Mode
(TM1、TM0=01H)
-
选择TE; TE=1则Count Falling
Edge,TE=0则Count Rising Edge
-
设定计数初始值 (TMR)
-
打开相对应中断致能旗标 (ETI和EMI)
-
控制Timer ON (TMRC.4=1)
Question
13
HT82K96A/HT82K96E 的8-Bit Timer/Counter之Pulse Width
Mode如何设定?
Answer
因HT82K96A/HT82K96E 的Timer/Counter有3种模式,即Timer、Event
Counter和Pulse Width等3种。要执行Pulse Width Mode要执行以下动作:
-
设定Timer/Counter为Pulse Width Mode
(TM1、TM0=11H)
-
选择TE; TE=1量High Pulse,TE=0量Low Pulse
-
设定TMR计数初始值 (一般设定=0)
-
打开相对应中断致能旗标
-
打开Timer ON (TMRC.4)
执行完以上步骤,程序可抽空Check TON值,若TON=0表示Pulse
Width量度完成,Timer的值即是Pulse时间的宽度。
Question
14
HT82K96A/E, HT82K95A/E的16-Bit Timer/Counter之Pulse Width
Mode如何设定?
Answer
因HT82K96A/E, HT82K95A/E Timer/Counter有3种模式,即Timer、Event
Counter和Pulse Width等3种。
要执行Pulse Width Mode要执行以下动作:
-
设定Timer/Counter为Pulse Width Mode
(TM1、TM0=11H)
-
选择TE; TE=1量High Pulse,TE=0量Low Pulse
-
设定TMR计数初始值 (一般设定=0)
-
打开相对应中断致能旗标
-
打开Timer ON (TMRC.4)
执行完以上步骤,程序可抽空Check TON值,若TON=0表示Pulse
Width量度完成,Timer的值即是Pulse时间的宽度。
Question
15
什么是Control Endpoint
Answer
HT82K96A/HT82K96E的Control Endpoint内含8 X 8 bytes FIFO
buffer,可support USB的control transfer传输。所有USB命令都是透过Control
endpoint来传输。
Question
16
Holtek MCU 之Stack 除了做CHIP reset之外, 有无其它方法可以重设 stack
pointer?
Answer
堆栈指针会受到中断与呼叫附程序与返回指令影响,除此之外,除了透过CHIP reset,
并无其它方法可以重设(reset) Holtek MCU 的堆栈指针。
Question
17
请问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
18
HT82K94E/HT82K94A的Remote Wake-up Function如何设定?Answer
通过缓存器AWR(42H)的Bit0设定, 该位为0,无此功能,将该位设置为1, 则MCU具备Remote
Wake-up功能。
应用说明
Question
1
没有Push和POP指令;中断时数据要如何备份?
Answer
虽然没有Push和POP指令,程序员仍可指定专用记忆RAM BYTE (例如:db ACCStack; for ACC
Storage)
储存中断时会被破坏的数据。首先将ACC存入专用内存,然后利用ACC依序将Status和其它数据搬移至各别之专用内存。在中断返回前,再反序将其它备份数据,Status和ACC回存,最后再执行RETI返回主程序。
Question
2
可以在Interrupt Service Routine内执行Call吗?
Answer
因为HT82 Keyboard/Mouse Type MCU
Stack数目有限,在Interrupt中执行Call要特别注意,如果在进入Interrupt时Stack已经满了,则会造成Stack
Over,而使得程序无法返回。所以若要在Interrupt内执行Call,必需考虑在最差情况下之Stack使用数目,务必使在最差状况下进入Interrupt仍有Stack空间。
Question
3
中断处理中可否允许相同的中断再进入?
Answer
理论上在进入中断时MCU会自动清除EMI旗标 (EMI=0),并禁止所有中断的再进入,若中断处理中用软件设定EMI旗标
(EMI=1),则在Stack有空之下,所有中断(含相同中断)皆可再进入。要允许相同的中断再进入,需特别注意备份数据的处理,应避免已备份之数据被再进入的中断所破坏。若不是非常紧急中断,一般不建议中断再中断。
Question
4
没使用到的I/O Pin如何处理?
Answer
若不用之I/O Pin浮接时,会造成IC的耗电,最好的处理方式就是将不用的I/O Pin设定成Output
Pin。如果要设成Input Pin则要选择Pull-high
电阻,如果不选用Pull-high电阻,则将Pin脚接地。
Question
5
已经进入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
6
PA (and PC0~PC3 for HT82K68A/HT82K68E) 已经 Low 为何没有唤醒 MCU?
Answer
PA (and PC0~PC3 for HT82K68A/HT82K68E) 的唤醒为瞬间下降缘触发,若在执行
HALT 之前这 些 port 已经 Low,且在 HALT 期间一直维持在
Low,因为没有下降缘动作,所以无法唤醒MCU。
Question
7
为何外部中断有下降缘,仍然没有唤醒MCU?
Answer
虽然MCU可由中断唤醒,但严格的说是要靠中断要求旗标 (Request Flag)
EIF由0变1才能唤醒。若在MCU进入HALT之前EIF已经设定
(EIF=1),则再来之INT无法改变EIF的值,亦即是EIF不能由0变1,所以不能唤醒MCU。
Question
8
可以让外部中断不产生唤醒MCU吗?
Answer
在执行HALT之前先清除EMI再设定EIF=1,则外部中断就无法唤醒MCU。
Question
9
MCU Power On时,VDD的上升时间有何限制?
Answer
MCU Power On时为了使Reset可以完全成功,建议Power On
VDD上升时间在20ms以内。当电池逐渐没电,电池内阻增大,造成VDD上升缓慢会影响Reset成功。
Question
10
HT82K68A/HT82K68E I/O pin 之使用需注意哪些事项?
Answer
-
PC0 及 PC1 是专为 PS2 mode 设计使用, 当使用
pull-high 之 option 时, 其电阻为 4.7 Kohm (其它 I/O port 为 12 Kohm),
当切成 output mode 时, PC0 及 PC1 为 open drain (NMOS output)。
-
PE2 ~ PE4 为 output only, 皆为 open drain
(NMOS output), 此 3 pin 乃设计成驱动 LED 使用, sink 能力较弱, 可省略外加之限流电阻。
-
PC2 设计成和 external interrupt 共享, 可透过 PE0
来选择上升缘或下降缘触发, 当 PE0 输出 high 时选 上升缘触发, 当 PE0 输出 low 时选下降缘触发。
Question
11
HT82K96A/HT82K96E ADC 如何使用?
Answer
使用A/D要执行以下动作:
-
选定特定通道 (ACS2、ACS1、ACS0)。
-
选定ADC sampling clock source (ADCS1,
ADCS0)
-
打开ADC,设定ADON bit =1
-
命令A/D开始转换 (0 --> 1 -->
0),此时A/D显示忙碌 (EOCB=1)。
-
等待76个TAD时钟,A/D显示转换完成 (EOCB=0)。
-
读取数据 (ADR)。
Question
12
如何读写 Control Endpoint或Interrupt Endpoints数据?
Answer
程序员可从USB Register MISC (46H) 设定读写何组FIFO数据,后以MISC Ready bit
状态知道 FIFO是否允许读写,再透过对应FIFO指标 Register (FIFO0~FIFO3)来读取data。
Question
13
如何读取FIFO数据?
Answer
HT82K96A/HT82K96E FIFO读取是以Packet 方法,程序员欲开始读FIFO数据时,
-
选择一组FIFO,设定为读取mode (MISC TX bit =
0),设定REQ bit为 1
-
检查Ready bit直到状态 = 1
-
透过FIFO指针Register读取FIFO数据,同时记录已读取数据数目
-
重复步骤2, 3, 直到Ready bit为0,标示FIFO数据已读完。
-
Set MISC TX bit=1
-
将REQ bit清除为 0,完成读取动作
故程序员在读取FIFO数据,是透过FIFO指针Register一个byte
,一个byte读取,同时要自行记录一Package
读取有几个byte。HT82K96A/HT82K96E最多只允许同一package读取数据长度为8个bytes。
Question
14
如何知道FIFO的读取数据为 Zero length Handshake?
Answer
若PC 送出Zero length Handshake资料给HT82K96A/HT82K96E,MISC
Register的LEN0 bit 会设定为1通知MCU,但此bit状态不会自动清除,程序员必需自行清除此bit状态为0。
Question
15
如何写入FIFO数据?
Answer
HT82K96A/HT82K96E FIFO写入是以Packet 方法,程序员欲开始写FIFO数据时,
-
设定一组FIFO,设定为写入mode (MISC TX bit =
1),设定REQ bit为 1
-
检查Ready bit直到状态 = 1
-
透过FIFO指针Register写入,同时记录已写入数据数目
-
重复步骤2, 3直到数据已写完或Ready
bit为0,标示FIFO不允许写入数据。
-
Set MISC TX bit= 0
-
将REQ bit清除为 0,完成写入动作。
故程序员在写入FIFO数据,是透过FIFO指针Register一个byte
,一个byte写入,同时要自行记录一Package
写入有几个byte。HT82K96A/HT82K96E最多只允许同一package写入数据长度为8个bytes。
Question
16
如何产生Zero length Handshake数据?
Answer
写入Zero length Handshake数据步骤如下
-
设定第一组FIFO,MISC TX bit=1,将REQ bit 设定为 1
-
检查Ready bit直到状态=1
-
Set MISC TX bit= 0
-
将REQ bit清除为 0,完成写入动作。
Question
17
如何设定FIFO为Input or Output?
Answer
可透过设定MISC 的Tx bit 来决定FIFO为Input or Output。Tx bit=1设定output
FIFO;Tx bit=0设定Input FIFO 。细节规格请参考Holtek Data Sheet。
Question
18
FIFO指标 Register与Endpoints如何匹配?
Answer
HT82K96A/HT82K96E内含4组FIFO,分别匹配4组Endpoints。若透过FIFO0
指针Register 读写数据,数据会用Endpoint 0 传输。同理若用FIFO1 指标Register
读写数据,数据会用Endpoint 1 传输;用FIFO2 指针Register 读写数据,数据会用Endpoint 2
传输;用FIFO3 指针Register 读写数据,数据会用Endpoint 3 传输。
Question
19
如何知道有USB signal传输?
Answer
HT82K96A/HT82K96E内有USB internal Interrupt (vector 04H)
,一旦HT82K96A/HT82K96E侦测有USB valid signal,会以USB
Interrupt告之MCU,MCU再配合USC Register决定是何种USB 信号。细节规格请参考Holtek
Data Sheet。
Question
20
如何知道是USB Suspend 信号?
Answer
若有USB Suspend信号发生,USB Interrupt会被触发,且USC Register SUSP
bit会设定为1。细节规格请参考Holtek Data Sheet。
Question
21
如何知道是USB Resume信号?
Answer
若有USB Resume信号发生,USB Interrupt会被触发,且USC Register both SUSP
and RESUME bit会设定为1。细节规格请参考Holtek Data Sheet。
Question
22
如何知道是USB读写Endpoint?
Answer
若有USB Suspend信号发生,USB Interrupt会被触发,USC Register SUSP
bit会设定为0,且USR Register对应的Endpoint Request flag (EP0IF, EP1IF,
EP2IF, EP3IF) 会被设定。细节规格请参考Holtek Data Sheet。
Question
23
如何知道是USB Pre-Reset?
Answer
USB Pre-Reset是HT82K96A/HT82K96E在侦测到USB
Reset信号开始时通知MCU的Interrupt信号。触发时USC Register SUSP bit会设定为0。
Question
24
如何确保在USB Suspend mode时可符合少于500µA 规定?
Answer
要符合少于500µA 规定,程序员要确保在进入PC Suspend mode前,清除USBCKEN (SCC.3=0)
,注意Input Pin不可浮接,再执行Halt指令。但程序员要确保在PC Wakeup 时,要再设定USBCKEN
(SCC.3=1) ,确保HT82K96A/HT82K96E USB SIE工作正常。细节规格请参考Holtek Data
Sheet
Question
25
如何确保HT82K96A/HT82K96E USB SIE工作正常?
Answer
因要符合USB suspend mode current少于500µA spec.。程序员在suspend mode
会将USBCKEN bit设定为0,此时USB SIE clock会停止。为确保USB SIE在device
Wakeup后能正常工作。程序员在USB Interrupt Subroutine下,侦测USC Register SUSP
bit为0时,或在RESUME mode下(USC Register Resume bit为1时), SCC
Register的USBCKEN bit必须设定为1。
Question
26
如何设定为USB mode 或PS2 mode?
Answer
可透过USR Register的SPS2 与SUSB bit 设定来configure
HT82K96A/HT82K96E为USB mode 或PS2 mode。SPS2=1, SUSB=0为PS2
mode;SPS2=0,SUSB=1为USB mode。
Question
27
在USB mode 下程序员可读取D+, D- 信号吗?
Answer
在USB mode 下程序员可透过USC Register的PS2DAI 及PS2CKI bit 读取D+,
D-信号,但无法透过PS2DAO及PS2CKO写入。
Question
28
在PS2 mode下程序员如何读写CLK, DATA信号?
Answer
在PS2 mode下程序员可透过USC Register的PS2DAI 及PS2CKI bit 读取CLK,
DATA信号,透过PS2DAO及PS2CKO写入 CLK, DATA信号。
Question
29
当系统时钟选择RC振荡器时,应用电路上OSC1外接的电阻与电容有何功能?电容可以不加吗?
Answer
OSC1外加电阻是为了产生一bias以控制内部的RC充放电,电阻值决定RC震荡频率。外加电容建议为470pF,OSC1外加电容是为了避免和OSC2产生交越干扰,以便让OSC2输出一稳定1/4系统频率的频率。假如你不需要使用到OSC2输出的1/4系统频率的频率,那么电容器是可以省略的。
Question
30
3 pin 之resonator/crystal用于MCU之时基时, 电容之Vss
pin可改接Vdd吗?
Answer
3pin之resonator/crystal 用于MCU之时基时,配合Layout方便, 电容之Vss
pin亦可改接Vdd。
Question
31
写程序时,如欲在program
memory建立Table,如何建于绝对地址,为何ORG不适用,有其它方法吗?
Answer
ORG expression : expression 是对于目前SECTION
起始地址的offset,并非绝对地址,可使用SECTION来建立Table于绝对地址,例如:
table .section at 300 'code'
-即可将接下去之Table起始位置建立于绝对地址300。
Question
32
HT82K96A/E有4个endpoint,是否可以全部使用呢?
Answer
可以;USB协议规定,低速的设备一个功能(如keyboard)最多只能使用除endpoint0以外的2个endpoint,这两个endpoint是单向的,传输方向可以任意定义。HT82K96A/E可以做多功能设备(如keyboard+mouse+joystick),这种情况下4个endpoint可以使用在不同的功能中(不同的功能使用不同的interface区分)。
Question 33
HT82K94E/HT82K94A核内提供了程序直接访问的TBHP缓存器, 该如何应用?
Answer
TBHP是被应用于MCU查询其ROM中的表格的时候使用到的缓存器,而HT82K94E/HT82K94A可在Mask
Option选项中将其致能或禁能。当TBHP被Disable, 使用“TABRDC(M)”和“TABRDL(M)”两指令查询表格时,只需给TBLP赋值,TBHP中的值无效,当TBHP被Enable,使用“TABRDC(M)”之前,还需给TBHP赋值,
使用“TABRDL(M)”时,TBHP认定为最后一个PAGE的首址高位。
譬如,如下一段程序:
# INCLUDE HT82K94E.INC
CODE.SECTION‘CODE‘
…
MOV A, 05H
MOV TBHP, A
MOV A, 60H
MOV TBLP, A
TABRDC R_Buf0
MOV A, TBLH
MOV R_Buf1, A
…
ORG 0060H
DC 1122H, 3344H
ORG 0560H
DC 5566H, 7788H
假设语句“TABRDC
R_Buf0”在ROM的首页,则这程序执行后的结果将会是这样的:如果TBHP被Disable,读表得到的值将是R_Buf0=22H,R_Buf1=11H,
而如果TBHP被Enable,读表得到的值就是R_Buf0=66H,R_Buf1=55H。
注意事项
Question
1
请问OTP dice 烧录流程为何?
Answer
Question
2
我需要使用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
3
我使用OTP DICE,但是发现烧录不良率较高,这是为什么呢?
Answer
首先,要排除打线不良的问题,一般来说打线不良是OTP
DIE烧录不良的重要原因。如果你自己没有办法确定打线是否良好,可以通过技术支持的方式,将绑定完好没有封胶的样片寄到HOLTEK相关的技术服务部门分析。
Question
4
我使用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
5
请问MCU的Reset 与Oscillator线路设计有无需注意事项?
Answer
请参阅 "应用范例" 网页,其中的 "HA0075S" 供使用者参考。
其它
Question
1
HT82 Keyboard/Mouse MCU 的 ESD 及 Latch-up 能力如何?
Answer
HT82 Keyboard/Mouse MCU 为适合在工业产品使用, 在 ESD 和 Latch-up 特别加强。
在 ESD 方面: 依据美国军方标准 MIL-STD-883E 3015.7, 采用人体放电模式测试, 每一 I/O
脚皆超过正负 5KV 以上。
在 Latch-up方面: 依据 JEDEC-NO.17 标准, 采用 Current Mode 方式测试, 每一
I/O 脚皆超过正负 100mA以上。
Question
2
HT82 Keyboard/Mouse MCU 是否提供 Dice form?
Answer
Holtek 目前HT82 Keyboard/Mouse MCU 仅有HT82K68A/HT82K68E
系列提供Mask type 及 OTP type 的 Dice form 的量产服务, 但使用 OTP Dice 量产时,
客户要特别注意打线及烧录的操作问题。
Question
3
什么USB signal会产生USB Interrupt?
Answer
以下USB信号会产生USB Interrupt:
-
USB Suspend
-
USB Resume
-
USB Pre-Reset
-
USB读写Endpoint
Question
4
当系统时钟选择RC振荡器时,频率误差为何?
Answer
当系统时钟选择RC振荡器时,由于制程的因素造成的每个批号频率误差为±20%。假如外加电阻之误差为±5%,那么总频率误差就是±25%。
Question
5
使用Assembly Directives之MACRO,可否节省Program
memory之空间,对MCU之执行速度有何影响?
Answer
在Assemble后MACRO所属指令将填入Program space,故对Program
memory之空间和MCU之执行速度没有影响,但其使的程序简化,容易维护。 |