历史上的今天
返回首页

历史上的今天

今天是:2024年11月09日(星期六)

正在发生

2019年11月09日 | AVR单片机经典使用经验

2019-11-09 来源:51hei

AVR具有上手入门快,开发方便简单的特点,但要充分体会和发挥AVR的优点,还需要应用工程师本身的硬软件设计开发能力的不断学习、实践提高。

AVR与传统类型的单片机相比,除了必须能实现原来的一些基本的功能,其在结构体系、功能部件、性能和可靠性等多方面有很大的提高和改善。

640.jpg?imageView2/2/w/550

功能越好的器件,需要具备更高技术和能力的人来使用和驾驭它。就象一部好的F1赛车,只有具备高超技术的驾驶员才能充分体会到车的特点,并能最大限度的发挥出车的性能。


“外行看热闹,内行看门道”,对于有一定基础的嵌入式和单片机系统设计开发的工程师,不妨先简单尝试一下AVR。

开发环境与工具:PC+下载线+实际的系统板


PC上的开发软件:

AVR Studio(Free)汇编+汇编调试+高级语言调试+软件仿真

ICC、CVAVR、BASCOM-AVR 高级语言程序开发+程序下载。其中一个购买正版全功能,作为主要的开发环境,其它使用DEMO版,作为辅助及参考。


AVR ISP下载线:

STK200 and STK200+ and STK300 ISP programmer。通过PC的打印机口,采用ISP技术将系统运行代码(HEX、BIN)和数据写入AVR芯片的Flash和EEProm中,编程AVR的配置熔丝位和加密位。支持决大多数的AVR芯片、以及ATMEL的51兼容芯片89S8252、89S52等。在ICC、CVAVR、BASCOM-AVR、BASCOM-8051中都内含对该下载线的支持程序。免费专用的下载程序:SLISP、PonyProg2000等。


尽量不使用仿真器的建议:

在开发和调试系统程序时,有许多人完全依赖于仿真器,一旦离开了仿真器时就感觉无从下手。其实,由于AVR的Flash存贮器可方便的使用ISP技术在线的多次擦写,因此建议尽量不使用(依赖)仿真器来开发和调试程序。


在实际开发过程中,程序的调试可以从下几方面入手:

现在的高级语言编译器(如C编译器)可以产生效率很高的机器代码,因此建议大家尽量使用高级语言编写系统程序。

使用Atmel公司提供AVR Studio软件模拟仿真环境,以及其他的软件模拟仿真环境(BASCOM-AVR)。

尽可能使用高级语言编写系统程序。

利用目标板上的LED、LCD或异步串口。见附件“没有仿真器的情况下如何开发AVR”的介绍。


提高硬件设计的合理性:

尽量合理和充分使用AVR片内的资源,如EEPROM、A/D、内部的RC振荡源。

尽量采用串口通信连接的外围器件,大容量的存储器、LCD控制器、打印机、不用8279(LED数码管+键盘)而使用7279等。除了必须外扩RAM(如语音和图象),一般不提倡使用并行扩展(573+译码电路),减小硬件和连线以及PCB板上错误的出现概率,同时也提高了系统的可靠性。并行扩展向串行扩展是发展趋势。现在有大量的新的外围器件采用高速的串行接口,如A/D、D/A、RTC、存储器等。

尽量使用以及在目标板上预留ISP程序下载接口,或使用IAP技术。

优点:ISP接口与I/O的兼容性比JETAG好。

缺点:不能在线调试


注意和掌握AVR配置熔丝位的使用:

. 系统晶振的选择

.BOD的使用

.启动延时.Mega8的PC6引脚,RESET与通用I/O的转换

.JETAG接口和通用I/O的转换

.启动向量的转换,BOOT-LOAT区大小的设置


提高硬件可靠性的考虑:

.尽量采用片内晶体、采用低频率的系统时钟、振荡电路的输出小幅度。

.选择合适的启动延时参数

.使用BOD、片内的看门狗

.合理休眠方式的使用

.不用I/O口设定输出低电平

.利用内部的EEProm和寄存器MCUCSR判断复位标志,进行不同的处理


提高软件设计的能力和水平:

尽量合理采用高级语言设计编写系统程序。有许多人认为使用汇编写程序比较精简,而用高级语言开发会浪费很多程序空间,其实这是一种误解。对一个有经验的,而且非常熟悉某种单片机的汇编高手而言,他是能写出比高级语言更精简的代码。而对汇编不是很熟的开发者、或突然更换了一种新的单片机,您能保证一定可以写出比高级语言更简练的代码吗?


高级语言的优越性是汇编语言不能比的:

.程序移植方便

.程序的坚固性

.数学运算的支持

.条理清晰的结构化编程,程序的可维护性。

.可协同开发软件,开发周期短。

现在的高级语言编译器(如C编译器)已可以产生代码效率很高的机器代码,因此建议大家能用高级语言实现的程序尽可能使用高级语言写,在对速度和时序要求特严的场合可以采用混合编程的方法来解决。


更深入和全面的掌握各种串行通信协议的规程:

嵌入式系统目前以大量的使用串行接口外围芯片和各种通信接口,如RS232、两线(I2C)、三线(SPI)、单总线、USB、CAN、TCP/IP等。开发人员和程序员应了解低层协议,熟悉硬件怎样和如何实现低层协议,如何定义可靠的上层应用协议,以及低层协议驱动同上层应用协议之间的接口设计(中间层软件的实现)等。

硬件工程师的软件编写能力要提高,采用标准程序编写方式、完善的软件整体框架的设计、良好的数据结构和程序结构系统。(计算机软件专业的程序设计员对硬件不熟悉、大部分是在操作系统支持下编写软件,对低层接口和协议的驱动层以及接口也不了解,往往也编写不出好的单片机系统程序。)

通信接口的编写应尽量

.采用中断+缓冲区,

.分层+结构化设计,

.尽量不使用轮循方式(降低AVR的效率)。参见URAT(RS232)驱动+中间层软件示例。


采用好的系统设计模式:

尽量不使用传统的前后台(中断)系统设计模式,任务之间相互影响和干扰,无法定时操作。如设计一个采用动态扫描方式驱动的8位LED数码管显示+动态扫描的4*4矩阵键盘。

采用TimeTip+状态机设计+CASE结构,实现多任务并行运行系统设计方法。或时间触发式的系统设计。(见:《时间触发嵌入式系统设计模式》中国电力出版社 2004.6)

移植小型嵌入式操作系统,如UCOS-II。在网上有些免费的基于AVR的简洁的操作系统。


提高C语言的编程能力和软件应用水平:

熟悉和用好C中的数据结构体、指针应用、内存管理等较高级的应用。

熟悉和了解你所使用的高级语言开发平台的特点。这些平台是针对某一类处理器的,包含许多特殊的不兼容的语句和扩展的结构、语句、函数等。尽管使用方便,但由于其不透明性和时间的不确定性,因此要合理使用。如C中的getchar()、putchar()等。AVR有多个开发平台,每个都有其特点和不足。能够综合使用这些平台,相互互补,能够提高开发效率。如通过ICC、CVAVR的程序生成器CodeWizard学习和了解AVR的硬件设置,简化计算,快速的生成程序基本模块,如“一个URAT(RS232)低层驱动+中间层软件示例”。


推荐阅读

史海拾趣

Coors Components Inc公司的发展小趣事

除了关注经济效益外,Coors Components Inc公司还积极履行社会责任。公司积极参与公益事业,为社会做出贡献;同时,公司也注重环保和可持续发展,努力降低生产过程中的环境污染。这些举措不仅提升了公司的品牌形象,还赢得了社会各界的广泛赞誉。

以上是关于电子行业公司发展的通用框架,你可以根据这些框架来进一步了解“Coors Components Inc”公司的具体发展故事。请注意,在编写故事时,应确保所描述的事实准确无误,避免夸大或缩小事实。

Andersen Laboratories Inc公司的发展小趣事

为了更好地服务全球客户,AnalogicTech积极实施全球化运营策略。公司在亚洲和大中华地区建立了广泛的晶圆制造和后端合作伙伴网络,包括香港地区、上海和台湾地区的台北。此外,AnalogicTech还迁入香港科技园,将深圳地区纳入业务版图,提高在中国大陆的销售情况,特别是珠江三角洲地区。

场效应半导体(Cmos)公司的发展小趣事

台湾积体电路制造股份有限公司(TSMC)在CMOS技术的发展中也有着不可忽视的贡献。作为一家专业的半导体制造企业,TSMC凭借其在生产工艺和质量控制方面的优势,成功地为全球众多知名半导体企业提供了优质的CMOS芯片制造服务。通过不断的技术创新和生产优化,TSMC的CMOS芯片品质得到了业界的广泛认可,使其在全球半导体制造市场上占据了重要地位。

Gustav Klauke GmbH公司的发展小趣事

在20世纪80年代初,随着计算机技术的飞速发展,对于高性能、低功耗的半导体器件需求日益增长。在这样的背景下,一家名为“先进微电子”(Advanced Micro Devices, AMD)的公司开始专注于CMOS技术的研发。AMD的工程师们通过不断的实验和优化,成功推出了首款高性能CMOS处理器,这款处理器以其卓越的性能和稳定性迅速获得了市场的认可。随着技术的不断进步,AMD在CMOS领域持续创新,逐步发展成为全球知名的半导体企业。

Gazelle Microcircuits Inc公司的发展小趣事
随着半导体技术的进步和元件的更新换代,许多原本需要负电压供电的电路现在可以通过正电压供电的电路来实现相同或更好的功能。
Electronic Transistors Corp公司的发展小趣事

在技术创新的基础上,ETC公司开始积极拓展市场。公司通过优化产品线,满足不同客户的需求,逐渐打开了国际市场的大门。同时,ETC还加大了品牌宣传力度,通过参加国际电子展会、发布技术白皮书等方式,提升品牌知名度和影响力。这些举措使ETC在全球范围内的市场份额不断扩大,品牌影响力也日益增强。

问答坊 | AI 解惑

怎么学好应用电子技术

我刚刚接触应用电子技术,还不知道它是干什么的,我想向各位请教怎么才可以学好,还就业前景好不好…

查看全部问答>

51单片机

本帖最后由 paulhyde 于 2014-9-15 09:30 编辑 分享...  …

查看全部问答>

如何提高模拟设计水平?

模拟技术是目前所有电子产品设计中不可或缺的部分,我们对模拟技术可以说一点都不陌生,从接触电子产品开始,我们就接触模拟产品了。模拟技术更多需要经验积累,对新入门的工程师来说,如何提升自己的模拟设计水平?我们欢迎广大资深工程师都来谈谈 ...…

查看全部问答>

降阻剂的危害——你必须知道的接地内幕

为了更好地降低接地电阻,日本人不知道怎么就想出了一昏招,在接地体上包裹导电水泥等导电的混凝土(中国人美其名曰为降阻剂),从而增加接地体散流面,进一步降低接地电阻。使用降阻剂是效率极为低下的降阻措施,而且一般都会腐蚀接地体,大大缩短 ...…

查看全部问答>

repllog.exe不会自动运行!

加了activesync组件。但是repllog.exe在插上usb时不会自动运行,结果无法同步,需要我自己手动运行repllog.exe。 请问是缺少了什么组件导致repllog.exe不自动运行的。…

查看全部问答>

控制算法提问

请问用dsp开发:自动跟踪摄像头,他的控制算法有哪些呀? 有没有做过或者有头绪的朋友给指点一下 呀! 我在这里先谢过大家了!…

查看全部问答>

时钟抖动测量和分析

 时钟抖动测量和分析…

查看全部问答>

什么才能让你火

最近想做ucos的研究,发现这个和比的版块比起来,这块地好像不热闹啊。大家谈谈对ucos的认识吧,也让我学习一下啊,谢谢了…

查看全部问答>

请教430复位电路的参数问题

参考了很多应用及430的部分手册,都推荐上电复位的阻容组合为47K,0.1u,当然这个参数应该是没有问题的,430能可靠复位。这个参数组合能保证复位脚在上电时有足够的低电平时间。请教各位高手,我的理解不知对不对,当选择阻容组合为1k,4.7u,复位 ...…

查看全部问答>