1、HT单片机技术问答集此问答集主要收录了一些在使用 Holtek 产品时,用户普遍会遇到的问题:Question 1HT-ICE内部的VCC可提供多大的电流?I/O口最大的输出电流是多少?Answer 仿真器内部的VCC可提供电流大概为600mA。所有的I/O输出电流总和在300mA左右。_Question 2为何我的程序在设定16- bit Timer时,用Step观察的结果与我预期的不一样? Answer由于ICE设计上的原因,对于16bit Timer的运作,是不宜用Step指令观察其结果,正确的方法应是在设定Timer的指令前后设定断点,再分别观察执行的结果。_Question 3软件仿
2、真是否能够生成OTP档?Answer 不可以。但可以选择硬件仿真编译,编译器会提示无法连接ICE,但会生成OTP档。_Question 4HT-49 ICE仿真LCD时,为什么LCD没有显示? Answer 首先检测LCD的输出波形对不,如果LCD没有输出波形,去调整ICE接口板上的VLCD(VR2)电阻,直到波形正常。如果还是没有显示,则查看LCD RAM对应的LCD有没有值,是否是因为对LCD RAM没有间接寻址造成的。_Question 5 HT48 I/O Type MCU的工作频率为何? Answer 在5V、3.3V及3个电池的应用,工作频率达Max. 8MHz (3.3V)。在3
3、V及2个电池的应用,工作频率达Max. 4MHz (2.2V)。 _Question 6当系统频率选用Int. RC + RTC时Timer的Clock Source有何选择? Answer 当系统频率选用Int. RC + RTC时Timer的Clock Source有fSYS/4和RTC OSC两种选项,当选用fSYS/4时,则HALT时Timer跟着停止。若选用RTC OSC,则HALT时,此Timer不会停止;亦即是此Timer可以当Real Time Clock (RTC)使用。_Question 7HT MCU具有LVR功能,它动作时,MCU的I/O、OSC等管脚处于何种状态? A
4、nswer 当电压低于低电压复位电压时,此时LVR启动。当最小工作电压Vdd和和会对运算符左边的操作数执行向右或向左的位移运动,移动的位数由运算符右边的操作数决定,如果进行右移操作则左边高位会补0,反之进行左移操作则右边低位会补0,同时需要注意右移或左移时的移出数据会进入标志位C,从而改变C标的原值 。_Question 12采用系统频率来自内部RC震荡的时候,请问误差是多少? Answer 因为芯片工艺和温度等等影响,一般内部RC的误差最大可以达到40%左右。因此如果需要蜂鸣器输出或者计时等功能,建议采用外部RC或者晶振。 _Question 13如何在程序中通过软件设置来解决因干扰引起的重
5、置问题? Answer 防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到。在恶劣环境影响下,单片机可能受到较大干扰,最常见的现象就是重置,至于程序跑飞可以用软件陷阱和看门狗将程序拉回到重置状态。Holtek MCU提供有TO(暂停旗标位)和PDF(看门狗溢出旗标位)旗标缓存器,可以用来判断重置原因;另外也可以自己在RAM中埋一些旗标。在每次程序重置时,通过判断这些旗标,可以判断出不同的重置原因;还可以根据不同的旗标直接跳到相应的程序段,这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新重置过。_Question 14当芯片内部的程序空间没有被写满时,如何处理空余的程序
6、空间? Answer 为了保证程序运行的可靠性,防止程序乱跑之后跳入未编程的ROM空间,建议将所有的空余程序空间全部写JMP 00H ,机器代码是2800H。这样一旦程序跑到空余程序空间,也会马上跳到程序开头执行,避免程序跑错。_Question 15生产中发现HT1380很多不能可靠起振,是否对晶体要求很高,HOLTEK是否有相应的指导意见?Answer 出现晶体不可靠起振的原因比较多,与晶体的质量当然有关系,但1380对晶体的要求不高。首先你要根据我们datasheet上推荐的参数设计振荡电路,另外,晶体尽可能的靠近IC,避免因衰减导致不可靠起振。_Question 16在使用汇编语言编程
7、时,针对如HT46R24等具有多个RAM Bank的MCU,是否可以对定义在非RAM BANK 0中的变量进行直接寻址操作?Answer不可以。在汇编语言中,不管BP是何值,直接寻址方式只能对RAM Bank 0内的数据寄存器进行操作,如需对RAM BANK 0以外的通用数据存储器进行操作的话只能通过MP1进行间接寻址操作。_Question 17HT46R23、HT46R24各提供2及4 channel PWM output,如各channel之PWM register填入一样的值, 请问于不同时间依次enable 各channel之PWM output,是否可产生不同相位的PWM outp
8、ut 波形?Answer无法产生不同相位的PWM output 波形, 因为各channel之PWM output 来自同一个PWM counter。_Question 18HT MCU具有LVR功能,它动作时,MCU的I/O、OSC等管脚处于何种状态? Answer 当电压低于低电压复位电压时,此时LVR启动。当最小工作电压Vdd R2=T2R1/T1。_Question 32Ht49R50A-1是否有内置32768晶体? Answer HT49内部有两个晶体振荡电路,其一是32768晶体振荡电路,另一个是400KHZ8MHZ的晶体振荡电路,这两个电路外部需要接晶体才能正常工作。另外,芯片内
9、部还有一个WDT的RC振荡电路,外部不需要接任何电路。_Question 33请教一下holtek c语言中没有float类型,那小数该怎么表示?Answer 用整数保存咯(原始的AD值 或则 将电压值扩大10倍,100倍保存),然后需要显示的时候再处理成小数来显示,计算的话就用整数计算就可以了,反正你的计算过程也没人看到,全部再内部处理的。最简单的,就是用除法,除10,把位数一个一个的分离出来 比如1.01,扩大100倍后就是101,也就是65H,需要把它换成小数显示的时候,就是(65H/100)=1(整数部分),然后(65H%100)得余数1,然后1/10,得小数点后第一位,1%10得余数
10、。_Question 34请问HT的工程师:46RU25 AD采样的速度如何?能否满足交流采样的速度,频率4070Hz,每周期采样80个点左右?Answer tadc典型为80个tad ,tadcs典型为32个tad ,整个时间为tadc+tadcs ,而tad最小为1us,所以典型为112us 。应该差不多够采80个点吧,这些在规格书里都有说明。_Question 35求AD转换C语言范例Answer unsigned long ad_temp; void main() _acsr=0x01; _adcr=0x21; _start=0; _start=1; _start=0; while(_
11、eoc); *(unsigned char *)&ad_temp+1)=_adrh; *(unsigned char *)&ad_temp+0)=_adrl; /ad_temp移位 _nop(); _Question 36HT46RB70的时钟是否支持RC Oscillator? Answer HT46RB70的时钟不支持RC Oscillator,其只支持Crystal Oscillator (6M or 12M)。_Question 37 HT82 Keyboard/Mouse MCU 的 ESD 及 Latch-up 能力如何? Answer HT82 Keyboard/Mouse MCU
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1