这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 单片机应用编程技巧100问(转)

共29条 2/3 1 2 3 跳转至
工程师
2008-04-02 09:11:23     打赏
11楼

45. 在单片机的应用方面应注重哪几个方面的学习? 


答:学习的过程基本上可分四个阶段: 

第一阶段是先浏览教科书里的硬体部分,大至了解单片机的硬体结构。如
ROM、RAM、地址、I/O口等,以及看一些厂家的Data Sheet如HOLTEK网
站有提供简体版各项MCU资料,来加强IC所提供各项资源的印象。 

第二阶段就是了解二进位数字、十六进位数和软体方面的内容。尽管有很多
高阶语言可用于单片机的编程,但我觉得初学还是以组合语言为好(即汇编语
言),更有利于和硬体结合,掌握硬体结构。知道组合语言、机器语言、 指令、
程式、根源程式、目的程式等概念后,就从MOV指令开始,学习组合语言和编
程,在此如HOLTEK的MCU组合语言系统有63条指令,简单又好理解它们怎
样和硬体联系,更有助于一般学习单片机的指令整合与运用.因此其方法可先了
解几条基本的MOV指令和它的机器语言,大致建立起单片机的硬体和软体概念,


来知道单片机的硬体是由指令控制指挥的。 

第三阶段按照编程器的使用手册,熟悉使用编程器。现在的编程器一般都和
电脑相连,只要具备基本电脑知识的人都可很快掌握操作步骤。如果初学者想要
快点熟悉使用单片机的开发系统,HOLTEK有提供单片机开发系统详细操作资
料,可上HOLTEK网站(www.holtek.com.cn) 来Download HT-IDE3000使用手册。 

第四阶段是依*实验板,学习掌握单片机的组合语言指令系统和简单编程。
同时和前面所学硬体知识结合组装,起到主学软体,巩固硬体的双重作用。开始
时可用别人编的简单程式在实验板上进行验证、分析,主要是熟悉该学习方法,
在应用方面主要针对单片机I/O各项介面的使用,如A/D,D/A,PWM输出口
的应用,LCD与VFD的控制,以及如何规范各项串列输出入口的通讯协定等,
对其所控制的各项元器件须先分析驱动能力,如电流电压问题等。 

 


46. 当今世界单片机的应用与发展有什么不同? 


答:对于应用与发展是一体两面,是以市场为导向,当有市场需求时,在其应用
层面的规划和分析,而引导单片机朝此方面的发展。 

 


47. 在中国,单片机在哪方面有较好的前景? 


答:观察之前几年以来各家厂商的销售地区比重,可以发现中国大陆市场比重逐
渐提升,台湾与北美市场则逐渐衰退,主要原因在于多项产品制造基地转移至大
陆,MCU在大陆的需求也随之提升。销货至大陆的MCU产品,多应用于电话、
Caller ID、玩具与LCD等产品,预计在未来,销货至大陆的比重仍将持续增加。
在中国产品应用领域可分为五大项目,包括电脑周边(高速Modem、DSC、NB
中的电源管理等)、通讯产业、消费性产品(家电、冷气等)、车用市场(定速器、
控制器、防盗器)及工业上的应用。有部份厂家将特别瞄准消费性产品市场跨入,
如Audio方式将朝多媒、MP3解决方案前进,另外在PC连结应用上,包括无线、
网路及标准应用产品,都会有一系列产品推出。另外在电源系统应用方面,在
UPS(不断电系统)、Server Power(伺服器电源)、Charger(充电器)等应用上;以及
周边应用领域方面,针对Game Device、记忆卡、读卡机、及Pen Drive(随身碟)
等应用上。逻辑IC包括微处理器(MPU)、微控制器(MCU)、特殊应用IC(ASIC)、
可程式逻辑元件(PLD)以及一般的标准应用IC(ASSP)等,不同的逻辑IC有其发
展方向,而MCU产品则朝向整合型产品发展,希望能在单一的IC中加入更多
的功能,以降低使用者在系统设计上的困难度与成本。 

 


48. 虽然16位也很多,但是真正低端用户还是用4,8位。高性能要求的现
在可以选用32位单片机。而16位只能是充当一个过渡的角色。这样认为对
吗? 


答:基本上可以这样说,微控制器历经4位元、8位元、16及32位元等开发过
程,投入厂商众多,亦无所不在地应用于各种生活领域,只要与操作介面有关的
范围,都能发现MCU的踪迹,MCU的使用数量,在国外甚至成为评估收入、
经济状况的指标之一。由于汽车、家电和消费电子产品的销售稳健,因此将使
2003年MCU市场充满活力。32位元MCU市场之中,成长最快的领域仍属因汽
车、可上网手机、PDA、印表机、数位相机、高速MODEM和其它应用对其需
求较大,市场机构预估2003年将成长30%、2004年上升38%。虽然32 bit市场
成长潜力雄厚,不过目前能以32 bit为主力的厂商毕竟少数,而无论是国内外的


IC供应商,现阶段的产品发展策略重心仍摆在8 bit领域的市场之中,而8 bit及
32 bit MCU也成为厂商跨入发展的对象,至于16 bit MCU产品虽然速度比8 bit
快,但由于16 bit介于8与32之中尴尬位置,且32 bit价格也逼近16 bit,因此
对于业者对于16 bit产品的着墨程度相较之下少了许多。 

 


49. 将原来的51系统过渡到ARM系统,需要注意哪些事情以及如何入手? 


答:51系统转为ARM系统是比较困难的。ARM提供一系列内核、体系扩展、
微处理器和系统芯片方案,并且现在已经发展了好几种内核了,现在主要有以下
几种: 

ARM7:小型、快速、低能耗、集成式RISC内核 

ARM7TDMI(Thumb):它将ARM7指令集同Thumb扩展结合在一起,减少了内
存容量和系统成本;而且还利用嵌入式ICE调试技术,简化了系统设计;并且
有DSP增强扩展改进了性能。 

ARM9TDMI:采用5阶段管道化ARM9内核,同时配备Thumb扩展、调试和
Harvard总线。 

如果只是想学习上手的话,建议先做个最小系统板,根据硬件写一个能够启
动的小代码包括初始化端口,屏蔽中断,把程序拷贝到SRAM中;完成代码的
重映射;配置中断句柄,连接到C语言入口。其实还是多实践,多点经验,多
上上电子网站,吸取他人的开发经验,会对自己的成长有所帮助的。 

 


50. holtek的编程语句是否就是C51或是相关的,能否介绍有关汽车电子设
计的资料或网站地址? 


答:HOLTEK的编程语句就汇编指令来说,与MCS51是不一样的,但是很多指
令比较类似;而C语言,每家公司的C编译器都会有点差异,但是很多与TURBO 
C相似,所以还是有很大相似性,所以可读性要比汇编语言好得多,但是不同厂
家也还是有一定差别


工程师
2008-04-02 09:13:08     打赏
12楼

51. 如何理解如下概念: 


MTP = Multi-Time Programming (via parallel programmer) 

ISP = In-System Programming (via serial interface) 

IAP = In-Application Programming ? 

答:MTP即指单片机的程序可重复烧写,其程序记忆体(Program ROM)可分以下
几种: 

① Window with EPROM:提供使用者更改程式的空间,具视窗式陶瓷包装,利
用紫外线灯清除资料,可重复烧写,但包装成本非常高,仅适合小量生产或
实验使用。 
② EEPROM:属于可重复写入/清除之元件,此类记忆体使得程式之内容可加以
清除或修改,而无需使用开窗之包装,可节省包装之成本,亦方便重复使用,
但生产制程较复杂。 
③ Flash EPROM:当须要清除/写入较大量的非挥发性程式记忆体时,Flash 
EPROM比传统式EEPROM可提供较好的解决之道,因为Flash EPROM较

 

EEPROM于清除/写入周期次数及速度上表现更好。利用Flash ROM来当作
程式记忆体,由于封装上不需要EPROM特殊的视窗式陶瓷包装,使用上价
格与OTP(One Time Programming)相差不大,相当合理,又具有多次重复烧写
的功能。 


ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以
编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以
用ISP方式擦除或再编程。ISP的实现相对要简单一些,一般需要很少的外部电
路辅助实现,通用做法是内部的记忆体可以由上位机的软体通过串口来进行改
写。对于单片机来讲可以通过SPI或其他的串列介面接收上位机传来的资料并写
入记忆体中。所以即使我们将晶片焊接在电路板上,只要留出和上位机介面的这
个串口,就可以实现晶片内部记忆体的改写,而无须再取下晶片。 

ISP的优点 ISP技术的优势是不需要编程器就可以进行单片机的实验和开
发,单片机晶片可以直接焊接到电路板上,调试结束即成成品,免去了调试时由
于频繁地插入取出晶片对晶片和电路板带来的不便。 

 


IAP(In-Application Programming)指MCU可以在系统中获取新代码并对自
己重新编程,即可用程式来改变程式。IAP的实现相对要复杂一些,在实现IAP
功能时,单片机内部一定要有两块存储区,一般一块被称为BOOT区,另外一
块被称为存储区。单片机上电运行在BOOT区,如果有外部改写程式的条件满
足,则对存储区的程式进行改写操作。如果外部改写程式的条件不满足,程式指
标跳到存储区,开始执行放在存储区的程式,这样便实现了IAP功能。IAP技术
是从结构上将Flash记忆体映射为两个存储体,当运行一个存储体上的用户程式
时,可对另一个存储体重新编程,之后将程式从一个存储体转向另一个。 

IAP的优点 IAP技术是从结构上将Flash记忆体映射为两个存储体,当运行
一个存储体上的用户程式时,可对另一个存储体重新编程,之后将程式从一个存
储体转向另一个。而IAP的实现更加灵活,通常可利用单片机的串列口接到电
脑的RS232口,通过专门设计的固件程式来编程内部记忆体,可以通过现有的
INTERNET或其他通讯方式很方便地实现远端升级和维护。 

 

 

52. 目前市场上单片机开发系统产品型号很多。想开发51系列单片机,选用
什么型号的仿真器和编程器(每次编一片即可)比较好? 


答:正如您所说的现在51系列单片机的仿真器产品型号很多,关于选用什么型
号的仿真器,因为HOLTEK的IC不是51内核,仿真器都是HOLTEK自行开发,
故并不能给你非常好的建议。而且市面的51仿真器,林林总总1500--10000价
格不等,所以要选择的话可以在网上google一下有关仿真器的论坛,看看其他
用户的评价,选择一个性价比最好的仿真器。 


工程师
2008-04-02 09:13:55     打赏
13楼

53. HOLTEK的C语言是否有关于位操作和读定义的寄存器地址的指令,如
果有,它们是什么? 


答:HOLTEK的C语言与标准C类似,不仅有标准C的位操作、&(按位与、按
位或)、^(按位异或)、~(取反)、<<(左移)和>>(右移);还有相应的内建函数实现
对整型和长整型的带和不带进位C的左移和右移。对已定义变量的地址的操作
也与标准C相同,可通过指针运算符 * 和 & 来实现。 

 

54. 在完成程序编写运行以后看到的结果是存储器中从R0到R7都被占用,
而我根本就没用到几个,这是为什么? 


答:要看用的是什么型号的单片机,不同型号的单片机R0到R7的定义是不同
的。如果R0~R7是被定义成特殊寄存器的话,那么运行过程中自然会影响到这
些寄存器,例如执行运算程序就会影响状态特殊寄存器的值。如果R0~R7是被
定义成通用寄存器的话,那么可能就是在程序的开头没有初始化,单片机在上电
复位时,通用寄存器的值通常是随机的。 

 


55. 请推荐一些比较好的理论及实践教材,以其配套的编译仿真烧录的硬软
件? 


答:当今单片机市场种类繁多,应用广泛。以HOLTEK公司为例。HOTLEK的单
片机是RISC结构的8位单片机,它可以广泛应用在家用电器、安全系统、掌上
游戏等方面。大概来说可以分成I/O型单片机、LCD型单片机、A/D型单片机、
A/D with LCD型单片机等等。


工程师
2008-04-02 09:14:53     打赏
14楼
56. 将PWM做到100kHz(8bit以上)的方法有哪些?最好是支持c编译的。 


答:要做到PWM频率100kHz(8bit)以上,单片机的频率要求100kHz*256=25。
6MHz。所以,要实现这种要求的单片机需要满足两个条件:1。单片机有PWM
输出;2。系统频率达到25。6MHz,或者单片机内部能自己提供25。6MHz的
频率(ATtiny15内部就有提供一个25。6MHz的频率做为定时/计数器的时钟)。 

 


57. ARM董事长认为,医疗电子将成为下一个10年推动电子产业增长的动
力,EMS预测医疗电子将成为最大的代工市场。蓝牙使医疗产品移动能力增
强将会广泛应用,那么随着医疗电子发展,单片机在这一领域应用会变大吗?
医疗电子应用的最多是几位单片机? 


答:随着16/32位嵌入式RISC发展,是会扩大医疗电子领域的应用。 

一般的电子医疗保健系列产品有如下: 笔式电子体温计、婴儿奶嘴式电子
体温计、测温音乐奶瓶、妇女电子体温计,电子血压计等系列产品,在医疗电子
仪器有酸碱度测定器,比色计等此类产品可用8位单片机来完成。 

但从研究制造方面来说,针对医疗电子仪器,目前已有厂商制造心电图机、
酸碱度测定器、电子测温计等仪器,仪器中心可自制示波器(oscilloscope)、显
微镜等,以及X光机、超声诊断仪、电脑断层成像系统、心脏起博器、监护仪、
辅助诊断系统、专家系统等,较大型复制的医疗嵌入式系统电子仪器就须用上
16位,32位单片机来完成。 

 


58. 普通商业级单片机的使用温度范围为0-70度,在低于0度和高于70度
环境中使用会出现什么问题?商业级芯片和工业及芯片除温度范围不同外,
在其他方面还有区别吗?(如抗干扰性能) 


答:一般单片机根据工作温度可分为民用级(商业级)、工业级和军用级三种:


民用级的温度范围是0℃~70℃,工业级是-40℃~85℃,其HOLTEK的MCU就
属于此项等级,军用级是-55℃~125℃。如果是一般普通商业级单片机,在超规
格范围使用IC时,就有可能部份IC无法工作,或工作运作不正常等发生。 

至于抗干扰性能,是属于整个产品的EMS(电磁杂讯耐受性)检测,它是
EMC(电磁相容)中的一项检测, 另一项是EMI(电磁辐射干扰)。各国都有其EMC
认证标准,例如目前在欧洲EMC指令下常用的测试规范下,针对其中法规
EN61000-4-2是做静电试验(ESD),本项试验目的为测试试件承受直接来自操
作者及相对物件所产生之静电放电效应的程度,其法规范如下: 

Air Discharge 

Leve1 2KV 

Leve2 4KV 

Leve3 8KV 

Leve4 15KV 

以上是举个例子,就如抗静电能力,不只跟IC性能有关,也跟应用电路及
PCB Layout有直接关联。 

 


59. 各种各样的输入怎么样与MCU进行通讯? 


答:首先必须确定此类输入信号是否与MCU系统的信号电平兼容,如果不兼容,
则需要外接电路或用集成块来完成电平转换。其次就是选择通讯方式,通信的基
本方式分为并行通信和串行通信,两者各有其优劣,并行通信速度快,缺点是数
据有多少位,就需要多少根传输线。这在位数较多,传输距离又远时就不太适宜;
而串行通信与前者相反,传输成本低,但是传送速度较低。最后,为了确保通信
的成功,通信双方必须有一系列的约定,即通信协议,它对什么时候开始通信、
什么时候结束通信、何时交换信息等问题都必须作出明确的规定。 

 


60. 那种型号的51单片机具有两个串口、16KEPROM、512个字节的RAM? 


答:PHILIPS半导体的P87C591应该能满足此条件,目前生产51单片机的半导
体厂家有INTEL、ATMEL、PHILIPS、ANANOG DEVICES、DALLAS等,可
以登陆其网站,查询相应的产品信息。 


工程师
2008-04-02 09:15:32     打赏
15楼

61. 在嵌入式开发中软件抗干扰有哪些问题?如何解决? 


答:关于软件抗干扰问题和策略,如果在实际应用中能很好的遵循这些原则,再
配合硬件电路的抗干扰措施,基本上可以消除干扰影响。但有时往往因为程序本
身的复杂度和芯片资源的限制,再加上编程人员本身的能力限制,不能做到十分
完善。所以我们只能给出一些建议,至于具体的实现,就需要各位在平时的项目
实践中不断的摸索和积累经验。以下是之前有关软件抗干扰的问题答复,谨供参
考: 

防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所
以只能看单片机抗干扰能力够不够强了。单片机干扰最常见的现象就是复位;至
于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片
机软件抗干扰最重要的是处理好复位状态。 

一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外也可以自
己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出
不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序


运行有连续性,用户在使用时也不会察觉到程序被重新复位过。 

 


62. 语音识别会不会是单片机下个消费热点? 


答:语音识别在多年前即开始应用在低阶玩具上,如遥控车的左右前后控制,教
育玩具利用发语音方式,依记忆体大少能容纳的长度经压缩编码采集后储存各字
词,日后再发相同语音经单片机处理辨识后,即可作出相应动作。 依成本不同,
影响相关的MCU资源和速度,以及所利用的辨识技术algorithm (运算法则)的优
劣,记忆体大少等,所设计出的产品其辨识率和字词长度亦有很大差异。 此低
阶市场在现今芯片价格下降应有可为,就看产品创新应用是否吸引人!高阶的语
音识别应用是在PC(个人计算机)上,有CPU等级的资源速度和硬盘大少的记忆
容量, 但此市场和硬件(单片机)无关! 

另一个语音识别应用是嵌入式系统,如目前的手机大都配备语音辨识电话
簿,其实一般的嵌入式系统如PDA,DSC,MP3……等都有能力builtin此功能,
就看需占用多少硬件资源和所能作出的效果。产品的功能定位很重要,语音识别
是否必需要评估实际使用率! 


工程师
2008-04-02 09:16:09     打赏
16楼
63. 如何设计实现一个共模范围在0 - 120V 之间的低成本测量电池组电
压的装置? 


答:这里所谓高共模输入电压,是指高范围的同相输入电压,下面先说明运放一
些概念: 

运放有所谓的dynamic range是指运放(OP)未饱和时,正常动作时的输出、
入电压范围。一般而言dynamic range越大,电源电压的有效利用率越高,例如
处理同等级的信号时,就不需刻意提高电源电压也获得省能源效应。尤其是可携
式消费性电子产品要求低电压低耗电量的场合,高效率的电源电压始终是备受重
视的焦点,尤其是运放的ground电位,若是设于Vcc~VEE正负电源电压的中点
(亦即动作点)时,就可获得极宽广的dynamic range。有鉴于此设计人员通常会在
不减损输出dynamic range的前提下,使输入dynamic range大于输出dynamic 
range。 

输入信号的电位为VEE(电源电压)时,有些OP它的极性会造成反转,虽然
Output允许因过大输入造成的饱和,不过大部份的情况却不允许极性反转,所以
两单电源用在运放输入信号到达VEE之前输出会反转。需注意的是即使是单电
源使用运放,如果超越VEE下0。5V亦即VEE-0。5V 时,输出的极性也可能
会反转。 

所谓的同相输入电压范围VICM(共模输入电压)是指两个输入端子与ground
之间,可施加的同相电压范围。虽然施加的同相电压超过该范围时,并不会造成
元件损坏等问题,不过却会使运放的功能停止。只要差动输入电压作为增幅器时
的动作正常基本上是0伏特。同相输入电压范围VICM与正负电源电压相同是
属于理想状态。 

一般运放会利用差动放大器的CMR(共模信号消除比)来做相同成份的去除
时,在有必要将同相范围扩大的情况,可用增益(Game)1/10的反相放大器A2 之
输入Vs2讯号,另外用加法方式再加入一级也是增益(Game)1/10反相放大器A1
之输入Vs1讯号,这样就可以达到同相输入范围扩大之差动放大。 

如果要设计共模范围在0 - 120V 之间,其上述反相放大器A1,可用
R1=100K,Rf=10K,而反相放大器A2,也是用R1=100K, Rf=10K,并且反相


放大器A1输出串一10K电阻到反相放大器A2的负端输入口即可。 

 


64. 在使用单片机控制LCD的时候,利用T1的溢出中断显示刷新时钟信息,
在主程序循环时中为了显示浮点数,不断调用了spritf()函数,可是时钟信息
不在刷新了,把这个函数屏蔽后,就恢复正常,请问调用这个函数会不会影
响定时/计数器的中断? 


答:这应该与程序有关,一般来说sprintf()函数,不会影响定时/计数器的中断,
因为没看到具体程序,所以猜测原因可能是程序里面对定时器初始化的部分与
sprintf()使用的buffer有些冲突,造成了定时器初始化的错误。 

 


65. LM4915是什么IC? 


答:LM4915是一款音频功率放大器,常用于带单听筒的手机、PDA和其他的便
携式音频装置等低电压的应用场合,在外接极少的元器件情况下,为其提供高质
量的功率输出以驱动发声装置。 

 


66. 现在RISC架构的单片机应用很广,它的主要特点是什么?优越性在哪
里?还有处理器中哈佛结构有什么特点?


工程师
2008-04-02 09:16:41     打赏
17楼

答:在MCU开发方面,以架构而言,可分为两大主流;RISC(Reduced Instruction 
Set Computer)与CISC(Complex Instruction Set Computer), RISC代表MCU的所
有指令都是利用一些简单的指令组成的,简单的指令代表 MCU 的线路可以尽
量做到最佳化,而提高执行速率,相对的使得一个指令所需的时间减到最短。
HOLTEK的一系列MCU便是采用 RISC 结构来设计。 

再说RISC因为指令集的精简,所以许多工作都必须组合简单的指令,而针
对较复杂组合的工作便需要由『编译程式』(compiler) 来执行,而 CISC MCU
因为硬体所提供的指令集较多,所以许多工作都能够以一个或是数个指令来代
替,compiler 的工作因而减少许多。以一个数值运算程式来说,使用 CISC 指
令集的MCU运算对于一个积分运算式可能只需要十个机器指令,而 RISC MCU
在执行相同的程式时,却因为CPU 本身不提供浮点数乘法的指令,所以可能需
要执行上百个机器指令 (但每一个指令可能只需要 CISC 指令十分之一的时
间),而由程式语言转换成机器指令的动作是由程式语言的 Compiler 来执行,
所以在 RISC MCU的Compiler 便会较复杂 。因为同样一个高阶语言 A=B*C 
的运算,在 RISC MCU转换为机器指令可能有许多种组合,而每一种组合的『时
间/空间』组合都不尽相同。所以 RISC 与 CISC 的取舍之间,似乎也是MCU
硬体架构与软体(Compiler) 的平衡之争,应该没有绝对优势的一方,只能说因应
不同的需求而有不同的产品,例如工作单纯的印表机核心 MCU,便适合使用效
能稳定,但单位指令效率较佳的 RISC MCU。 

对单片机处理方式而言,目前单片机的系统结构有两种类型:一种是将程式
和资料记忆体分开使用,即哈佛(Harvard)结构,当前的单片机大都是这种结
构。另一种是采用和PC机的冯。诺依曼(Von Neumann)类似的原理,对程式
和资料记忆体不作逻辑上的区分,即普林斯顿(Princeton)结构。 

 


67. 在很多情况下,以单片机为主控制器的测量系统要长时间保持无故障运
行,因此其自诊断就成为关键。请介绍一下有关单片机系统的故障自诊断的
一些知识? 

 

答:要保证系统可以长时间故障运行,防止干扰是很重要的。最有效的方法是去
除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不
够强了。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件
陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好
复位状态。 

一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外也可以自
己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出
不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序
运行有连续性,用户在使用时也不会察觉到程序被重新复位过。 


工程师
2008-04-02 09:17:28     打赏
18楼
68. MCU的功能只有在ROM中写入程序代码后才能显现出来。测试MCU
时都是向ROM写入程序后并向输入管脚提供相应的测试矢量的情况进行的,
然后对于OTP型MCU,只能一次编程,所以每次对封装后成品测试时,测
试一个就废掉一个。据我所知,Holtek的MCU多为OTP版本单片机,Holtek
是如何解决这个测试问题? 


答:如果是IC生产厂商的测试人员,以HOLTEK的经验来说测试分两个步骤。
一、对裸片的ROM烧入 Code测试,看IC是否能正常写入程序。如果测试通
过,则使用紫外线擦去裸片的ROM Code,进行封装。二、使用外部测试电路来
测试封装IC的逻辑电路。 

如果是从厂商处拿到封装片后自行测试销售,那么所能做的就只是通过测量
I/O口电阻,二极管值等参数,来测量IC的逻辑电路。无法测试ROM code是否
能写入正确,除非是IC的原设计者,知道如何对IC预留的Test Rom(如果有预
留的话)进行测试。 

 


69. 作为IC生产厂商的测试人员,是在整个Wafer上进行的,还是将Wafer
切割成Die后对单个Die进行? 


答:裸片烧ROM Code是使用针压机器来烧录,所以必须是整个Wafer一起烧,
单个Die无法排列整齐供烧录。 

 


70. “裸片烧ROM Code是使用针压机器来烧录,所以必须是整个Wafer一
起烧,单个Die无法排列整齐供烧录。” 这个阶段测试仅用来测试OTP本身,
还是写入有针对性的程序代码并在输入管脚施加相应测试矢量来测试整个
MCU的功能是否正确? 


答:在芯片还未经分割的wafer阶段,在测试时当然要把DC test, Function 
test……等完成。如果是OTP 型式的芯片还需把烧code工作也一并解决。切割
后就处理困难了!Probe Tester其实分两部份,Probe(针压)是机械部份,有位置对
准和芯片排测功能。可把芯片上各端口引出至后部的Tester,Tester基本上是个
特别配套的计算机装置,经编写不同的测试程序便可测试不同的芯片。


工程师
2008-04-02 09:18:01     打赏
19楼

71. 如何编写一个很好测试程序代码以达到较高的功能测试覆盖度? 


答:应在芯片电路最初的设计及仿真阶段,就要规划好测试的方法,由于现今已
经有很power的芯片设计和测试pattern工具,所以很快就能算出Test pattern 
coverage(测试覆盖率-电路logic的0/1toggle rate)是否合要求!至于测试MCU,应
该是执行一些内建测试指令使所有电路都曾经toggle过即可,这和指令组合变化


无关。 

 


72. 如果封装对OTP产生了影响,导致芯片不能正常工作,而MCU的逻辑
电路又是测试合格的,如何解决呢? 


答:封装后,我们分三个步骤测试OTP。1、查空,看芯片内部ROM是否为空。
2、写入一部分所需Code,验证是否ok。3、测试逻辑电路,一旦裸片被刮坏的
话,静态电流就会变大。一旦这三个步骤测试OK,那么基本上OTP封装片就是
合格的。 

 


73. 在此以PIC16F87X为例:MCU处于sleep时,用WDT定时,如何使其
在宽温度范围内工作定时相对一致,误差尽量小呢? 


答:一般MCU处于sleep时,WDT(看门狗)是停止状态,用WDT的主要目的,
是在程序运行当中,MCU受到外面杂讯干扰,导致程序运行乱掉或MCU当掉,
此时就须WDT(一般WDT时钟来源是选用内部RC振荡)来自救及做复位动作,
而当MCU处于sleep时,其MCU是处于省电模式状态,因主振停止所以程序
不运行,此时就WDT可以停止动作(此模式WDT时钟来源是选用主晶振系统),
如果MCU处于sleep时,又要WDT能继续动作,此时只有一个目的,就是用
WDT的时间段来做定时工作(因程序停止运行,无法清除WDT计数器,故WDT
计数一定会溢出),而在这个模式下因主振停止(因要省电)的WDT时钟来源只能
选用内部RC振荡,所以RC振荡的频率会受工作温度及电压变动而产生飘移,
所以要省电模式下不建议用WDT来做定时。 

如果要省电模式下做定时工作,有一个很好建议,可采用HOLTEK MCU双
振荡系列,如HT49XX,HT47XX,HT48XX,HT46R6X等系列,其优点在省电
模式下,其主振停止而保持第二振荡系统维持振荡,此振荡系统为RTC(Real Time 
Clock 32768Hz振荡系统),工作电流维持在2~3uA(工作电压3V)之间,又因是用
32768晶振,不受工作温度及电压变动的影响,可准确做定时工作。 

 


74. 在开发一个需要长时间可*运行的电子测量设备,有关单片机(DSP)系统
的故障自诊断相关问题(包括主控制器,外围器件,如AD,RAM,ROM等)
如何解决? 


答:DSP是专门用在数字信号处理的晶片,与单片机相比DSP器件具有较高的
集成度,而且具有更快的CPU,更大容量的记忆体,计算能力强大,运算速度
快,能够满足系统的要求内置有串列传输速率发生器和FIFO缓冲器。提供高速,
同步串口和标准非同步串口。有的片内集成了A/D和采样/保持电路,可提供
PWM输出。DSP器件采用改进的哈佛结构,具有独立的程式和资料空间,允许
同时存取程式和资料。内置高速的硬体乘法器,增强的多级流水线,使DSP器
件具有高速的资料运算能力。DSP的计算能力虽然很强,但其事件管理能力较弱,
而且直接支援的I/O口很少。为了方便地实现人机交互,采用DSP与单片机协
同工作的方式:以单片机为主机,通过通讯介面对DSP实现控制;同时利用单
片机较强的外围设备管理能力实现人机介面,显示等功能。主要工作流程是:弹
簧的输入输出信号经过滤波电路进行调理后, 由A/D转换器转换为数字信号,
再进入DSP进行运算,得到的诊断结果通过通讯介面电路送入单片机,单片机
将结果显示在液晶显示器上,并经过串口送入到其它应用介面。 

因为DSP电路完成数据采集及数字滤波,软件的设计主要包括DSP编程和


单片机编程。DSP程式的主要任务是初始化, 管理DSP外围电路和完成,在故
障自诊断方面,主控制器部份大都是利用内置的演算法完成故障诊断等任务, 单
片机程式包括键盘控制程式,液晶驱动显示程式,与DSP及其它机器通信的程
式。其它部份的故障自诊断,可参考本板开头说明部份来处理等。 


工程师
2008-04-02 09:19:31     打赏
20楼
75. 在电路上有一个温控开关串联在供电回路,正常情况电阻很小,温度升
高后,电阻增加。这时cpu的工作电压大概在3。1v左右,好象是工作在复
位状态,液晶不断闪烁,想在软件中这样判断:如果有连续5次上电复位,
且每次间隔不超过100ms,就关闭所有功能。但是这样的话,cpu会一直工
作在复位状态,会不会有问题? 


答:也就是说,电压会在3。1V左右波动,而CPU的最低工作电压是在3。1V,
所以会造成CPU一直复位。如果是这种情况,可能会造成CPU复位不正常。正
常的上电复位是指电源电压从0V上升到VDD;掉电复位是指电源电压从VDD
跌落到0V,后又恢复到VDD的过程;所以不管怎样,复位过程必须是电压从
0V上升到VDD的过程。如果象所说的那样,电压从3。1V以上掉到3。1V以
下,而又没有完全掉到0V,然后又上升,这样很容易造成CPU复位不完全而无
法正常工作。 
一般的解决方法是采用低电压复位电路,可以采用三极管复位电路,或采用
低电压复位IC,如HOLTEK的HT70xx系列就是很好的低电压复位IC.

 
76. 比如用400减50,在程序语句上如何利用SUBB实现呢? 


答:MCS-51单片机的指令系统中的减法指令只有一组带借位的减法指令
(SUBB),而没有不带借位的减法指令。若要进行不带借位的减法操作,则需
要在减法之前先用指令对进位C清零,具体指令:CLR C ,然后再相减。在进
行多字节减法时首先应进行低字节的不带进位的减法,具体做法是先 CLR C,
再用SUBB,而以后的高字节相减则都需要使用带进位的减法,直接使用SUBB
指令即可。 

 


77. 单片机系统为了省电,经常要进入掉电(POWER DOWN)状态,此时
单片机的I/O口的PIN应设置为何种状态能获得最低功耗? 


答:单片机I/O口可用作输入和输出状态。以HOLTEK一款最简单的I/O单片机
HT48R05A-1为例,当作为输入时可设置成带上拉电阻的斯密特输入;作为输出
时是CMOS输出。如果程序进入省电状态(HALT)时,首先,各个有用的I/O
仍需输出一定值,以保证外部电路工作正常,同时请小心不要让外部电路保持长
耗电状态(如长时间导通继电器);对于暂时不用的I/O口,为了节约功耗我们
建议将I/O置为输出状态,并且输出为低。 

 


78. 怎么样才能快速学会使用51系列和cygnal系列单片机? 


答:建议购买一套ARM的开发学习板和仿真器(可以在网上查到适合自己的),
结合教材在实践中学习ARM的基本开发方法。首先可以通过简单的程序编写熟
悉ARM的指令集、体系结构、运行模式等基本原理,如果有一定的单片机知识
基础,相信很快就能对此熟练掌握。接下来,因为32位ARM的应用大多会使
用操作系统,所以此时可根据个人的计算机知识程度选择一个适合自己学习的嵌


入式实时操作系统,多上机实作掌握嵌入式系统设计的基本方法,学习操作系统
的应用程序的编程,并进一步掌握包含软硬件的基于ARM的系统应用开发。这
一步需要具有高级语言的编程及操作系统知识,可能对非计算机专业的人员会有
较大的难度,不过事在人为,相信只要有决心,难关总是可以被攻破的。另外,
网上也有很多关于ARM开发的论坛,可以常上去下载相关的学习资料,请教高
手,相互交流,相信会有所帮助。 

 



共29条 2/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]