当前位置:首页 > 压电资讯 > 正文内容

avr单片机晶振(avr单片机和51的区别)

压电侠9个月前 (03-11)压电资讯61

本文目录

  1. 谈谈你对单片机的认识
  2. 单片机工作的三个基本条件
  3. avr单片机和51的区别

谈谈你对单片机的认识

从大一的时候在大学图书馆看到关于AVR单片机的书籍,到参加竞赛、工作,我和单片机已经打了六七年的交道了吧。其间我都是在做产品的软件开发,与硬件工程师合作,根据需求选择合适的单片机型号和外围器件,完成代码编写。积累了一点对单片机选型、特点的认识。

所以这篇想谈谈关于单片机特点和选型。

单片机

MCU,微处理器,他有很多名字,但是我还是喜欢叫他单片机,因为他就是单单的一片,没什么其他的模块,一片里面就集成了CPU,RAM、ROM等,冯·诺依曼必有的结构单元。只要外部给他晶振,给他电源,他就能像计算机一样工作起来。高级一点的单片机内部RC就能起振,外部晶振都可以免去,只要外部给个稳定的3.3V,就可以工作。

单片机设备做的可以有多小?看到老外玩的蚊子飞机,就知道了,大学的时候非常的震惊,也是这样,让我对飞行器着迷不已。

听过一个趣闻,就是为什么一个字节是8个BIT,而不是12个?据说是最早的芯片,因为工艺限制了,只能有八个引脚,想要更多的引脚怎么办,多用几个八脚芯片就好了,于是1个字节对应一个芯片,一个芯片的八个脚对应八个比特就顺理成章了。

计算机的技术从来都是往两个方向发展的,一个是计算速度快,资源多,同时可处理的事件多,相对应的,功耗大,体积大。一个就是计算速度慢,资源少,但是价格低廉,体积小,功耗低。

前者所发展而来的就是咱们的计算机,WINDOWS\LINUX操作系统,后者就是单片机系统了,各种嵌入式操作系统。手机的范畴有点迷了,我还是愿意把手机放在单片机系统这个层面来看。

在从业人数规模来看,前者发展出来的计算机,软件编程带动了多少人的就业,我们把这从事这职业的人叫做“码农”,他们的工作就是在前人对计算机一层一层又一层的封装下,进行针对应用的开发。顶层软件层的开发需要,促成JAVA、C#、PYTHON这样的语言出现,这些语言本身不涉及底层,只是调用底层的接口函数。显而易见的,想通过JAVA让计算机主板发出一个方波信号出来,是何等困难,但对应的是用JAVA在通用电脑屏幕上显示一串数字是何等的简单。

后者单片机,开发的人数就不如通用计算机了,单片机资源少,可用的“轮子”少,啥玩意都需要自己自力更生。能快速的发出方波,如果有DDS芯片的话,可以调制出正弦波,等等通用主机模块做不到的功能。更加的自定义!缺陷的话,显而易见的,想通过单片机在屏幕上显示一串HELLOWORLD字符,那得是进阶的人才能做到的咯!

所以单片机软件开发不是“纯软件”开发,也需要对硬件有相当的学习,对数字电路、模拟电路也要了解才行。这一行门槛高,很难速成,一定是慢慢积累~

是否“裸奔”

裸奔,顾名思义就是单片机穿不穿衣服?衣服是啥,操作系统呗!

选单片机的时候,根据需求不同,首先要选此单片机是否需要跑操作系统,还是裸奔。

·当需要用复杂协议栈的时候,操作系统变得非常有用。

例如,希望咱们的单片机可以连互联网,通过网线联网,或者通过WIFI信号联网,那么多半需要运行操作系统,如果不跑操作系统也行,但是工作量很大,不稳定。

工程师需要比方案,咱们比比方案。

1、开源的RTOS几乎都提供TCP/IP协议栈,社区的开源代码经过很多人,很多年的稳定运行。

2、自己写TCP/IP协议栈,嵌入到裸奔工程中,稳定性未知,BUG数量未知。

两个方案肯定选择前者,笔者自己试过在ENC28J60网卡芯片上自己硬刚协议栈,其中艰难不言而喻,到最后还是妥协选择开源社区。

·当需要运行多个复杂任务的时候,操作系统很有用

操作系统提供TASK机制,消息管理机制,如果上位机编程经验的人,对线程会有很深刻的理解,不同的TASK就是不同的线程。有了TASK机制,对任务的管理就会方便的多。好像安卓系统运行起来了,咱们可以用JAVA为他随时增加新功能,下个APK包,安装就好了,对吧。

什么时候,我会选择裸奔单片机?

裸奔有裸奔的好处,笔者怕黑。认为“上位机”开发人员之所以天天加班,有干不完的事,改不完的BUG,最大的原因就是“黑”。黑盒子太多了。黑盒子指的是一个程序块,这个程序块你压根不知道他是怎么实现的,你只知道他提供什么功能,至于自己是不是正确的调用了黑盒子的接口,你只能通过文档去看,然后就不断不断的试错,效率极低。所以很多时候大神上位机开发人员,是对黑盒子(某语言提供的对象、方法)有深刻掌握的人!

裸奔的单片机不一样,如果你愿意,启动时的汇编代码都可以自己写,配置好时钟,配置好各样的寄存器,所有的代码都是你自己写的,出了问题自己找,自己的代码还找不出原因,那就废了。如果你觉得C语言也是黑盒子,为了躲避C语言开发者给你留的坑,你甚至可以用汇编写代码,当然这个我不推荐了,C语言很棒,bug很少。裸奔开发,你眼前唯一的黑盒子就是硬件是如何实现的,也只有硬件能坑你一把。

不言而喻,裸奔的单片机代码,虽然简单,但是所能做的功能也会有局限。

裸奔的话,联网什么的别想了。

所以如果需求比较简单,一定裸奔,需求困难,就跑操作系统。

什么单片机支持操作系统?

理论上,只要ROM/RAM资源足够,所有的单片机都可以执行嵌入式操作系统,但是,不是所有人都有移植操作系统的能力。

新手还是得靠厂家帮你移植操作系统,所以选单片机的时候,得问一下,上网查一下,它支持哪些操作系统?

以TI的CC2640为例,这玩意支持TI自家的嵌入式操作系统TI-RTOS,好用!

裸奔的话,所有单片机都能裸奔,毕竟不穿衣服谁不会啊~

温度特性

注意要看设计产品的工作温度区间,是民用级,还是军工级,有些单片机芯片高低温实验过不了的,会出现代码起飞,内部FLASH莫名丢几个等这些问题,不要等代码写好,送去拿证了,过不了高低温,被老板骂~

低功耗特性

芯片是否有较好的休眠模式,老牌的芯片厂家都非常注重硬件低功耗模式,提出了各种各样的睡眠方式,TI就是把低功耗做的很好的厂家。如果是设计电池供电的产品,一定要考虑低功耗。低功耗更多需要代码去优化,这看一个软件工程师的水平~

一个纽扣电池,产品用一年,那就太牛了!

开发环境

喜欢IAR还是MDK?笔者喜欢IAR多一点,感觉界面很硬朗,MDK的话显得像是在写上位机软件~CORTEXMx系列的单片机多半都是用MDK开发的,STM32算是明星级产品了。TI的产品大多是用IAR。所以哪个开发环境你更熟悉,也可以作为考虑范畴。

芯片是否冷门?

STM32的技术支持是真的多,资料满天飞,所以如果对自己读DATASHEET的能力有所怀疑的话,一定要选类似STM32这样的popular芯片。

选冷门芯片是对自己的很大挑战,你会发现百度问题几乎没人答,你得写英文e-mail给原厂工程师,满心欢喜克服语言困难写完,他也不会理你。你得翻墙去国外论坛找资料。但是一旦你开发好,你会成就感爆棚,也会觉得,单片机不过如此~然后写一些关于这个芯片的CSDN文章,帮助建设社区!

学生的话可以推荐尝试尝试,工作的就算了,都996了别升级007咯~

最近的状态

大学的时候,对单片机,对飞行器的热情,我都在年复一年,日复一日的工作中慢慢淡去了。现在我唯一想的就是努力把产品做好,卖到世界的各个角落,这也算changeworld的一种方式吧~嘿嘿,自己给自己熬点鸡汤,愿明天会好~

分享的这些,若是有用的话,点个赞呗~

单片机工作的三个基本条件

单片机工作的三个基本条件:

1.单片机供电电源正常。供电电源是单片机工作的首要条件,如果电源都不正常,那单片机肯定不能正常工作,出现电源不正常的情况,主要查找以下几点:(1)电源供电是否正常;(2)芯片是否存在短路现象;(3)芯片的电源管脚是否虚焊或者漏焊;(4)芯片的电源管脚是否有开路现象;

2.单片机复位管教不能出现复位信号。如果单片机一直处于复位状态,那么单片机的程序肯定运行不正常,所以在遇到单片机不能正常工作且电源正常的情况下,就需要测量一下单片机的复位管脚是否有复位信号出现,不同的单片机的复位信号是不同的,例如51单片机的复位信号是高电平,AVR单片机的复位信号是低电平,具体的要根据芯片资料来判断,单片机出现复位的问题,主要查找以下几点:(1)电容选择不合适,建议复位电路以单片机典型电路上使用的参数为主;(2)电阻选择不合适,建议复位电路以单片机典型电路上使用的参数为主;(3)复位信号的位置选取的不对;

3.晶振是否起振…引起晶振起振的原因很多,包括晶振频率选择、电容的选择,如果晶振不起振主要查找以下几点:(1)晶振是否与单片机的典型应用电路上使用的晶振频率不一致;我以前在调试51板子时就曾遇到过将11.0592M晶振错焊为12M晶振,而造成的单片机一直不能正常工作的情况;(2)晶振旁边的晶体负载电容是否焊接正确::晶体负载电容如果焊接错误,或者焊接短路都有可能造成晶振不起振,单片机不能正常工作。

avr单片机和51的区别

①AVR单片机(ATmega16)的时钟源(晶振、内部RC

等)可以不经过分频直接提供给CPU使用,而51的CPU主频等于晶振的12分频,ATmega16外部提供16M的晶振,所以AVR单片机的运行速度比51单片机的运行速度要快得多,并且AVR单片机可提供内容1M、2M、4M、8M等可变的CUP频率。

②AVR具有超功能精简指令。具有32个通用工作寄存器(相当于8051中的32个累加器,克服了单一累加器数据处理造成的瓶颈现象),有128B~4KB个SRAM,可灵活使用指令运算。

③AVRI/O口是真正的双向I/O口,单片机读取外部引脚电平直接通过PINX读取,不需要像51那样先给I/O口全写1操作后才能读取外部引脚电平,使得单片机读取外部数据更容易。

④AVR内部提供丰富的中断及寄存器资源,光外部中断就有3个,定时器有3个,丰富的寄存器资源使得可以设置外部中断的多种触发方式,以及设置内部定时分频系数,丰富的寄存器资源使得可以对AVR的I/O口进行多功能操作

⑤两者的CPU构架以及指令集完全不同,51系列单片机所使用的是CISC指令系统,冯诺依曼结构体系的总线;而AVR系列的单片机则使用的是RISC指令系统,哈佛结构的总线,AVR系列的单片机每个震荡周期处理一条指令,而相应的,51系列的单片机则需要12个震荡周期来完成一条指令的处理。

⑥针对51系列单片机的I/O脚所体现出来的弊端,AVR单片机做了相应的改进,即加入了控制输入或输出的方向寄存器,从而解决了51系列单片机I/O脚位高电平时同为输入和输出的状态。

扫描二维码推送至手机访问。

版权声明:本文由压电侠晶振资讯网发布,如需转载请注明出处,如有侵权请联系删除。

本文链接:https://news.piezoman.com/piezo/2426.html

分享给朋友:

“avr单片机晶振(avr单片机和51的区别)” 的相关文章

晶振电路作用(解码器晶振作用)

本文目录51单片机晶振电路工作原理32单片机晶振原理及作用晶振工作原理是什么解码器晶振作用时钟晶振电路工作原理晶振电路上为什么要加一个1M的电阻51单片机晶振电路工作原理51单片机系统,外接晶振是必须的(当然也可以外接时钟脉冲,但是很少用),因为单片机的运行必须依赖于稳定的时钟脉冲。但是随着技术的发...

高精度晶振(phy芯片晶振精度)

本文目录晶振温漂指标是多少主板上晶振型号区分~晶振26和27区别ppm时钟精度phy芯片晶振精度晶振电路的主要参数晶振温漂指标是多少晶振的温漂指标是一个重要的性能参数,它表示晶振频率随温度变化的漂移量。根据不同的晶振类型和应用场景,温漂指标的范围也会有所不同。一般来说,普通的晶振温漂在±10-30p...

晶振行业(未来的晶振行业怎么样)

本文目录未来的晶振行业怎么样晶振频率晶振的原理及作用中国十大晶振品牌分别是什么企业晶振产品生产壁垒高吗未来的晶振行业怎么样晶振行业现在市场比较混乱以次充好,价格压的很低,所以到最后是两败俱伤的局面。格局,日本品牌在市场上唱主角,其次是台湾品牌,大陆,欧美品牌,大陆的代表企业是东晶电子和晶源宇丰电子为...

晶振倍频(100m晶振有多快)

本文目录电表晶振测量好坏晶振频率出现误差是什么原因导致100m晶振有多快晶振的原理及作用电表晶振测量好坏1、先打开万用表,把万用表旋钮箭头旋到直流电压20档位,红表笔插到电压孔,黑表笔插到接地孔。晶振怎么测量好坏_如何使用万用表判断晶振的好坏2、然后准备好待测试的板子,找到晶振的位置,并找到晶振使用...

圆柱体晶振(怎么判断圆柱晶振好坏)

本文目录怎么判断圆柱晶振好坏圆柱晶振上没有字的是什么型号啊晶振品牌怎么判断圆柱晶振好坏判断方法1、将电笔插入插座中(当然是火线),用一只晶振的脚接触电笔屁股,另一只脚用手接触,如果电笔亮,就是好的。2、用万用表10K挡检测,无穷大为良品。3、替换法。用数字电容表(或数字万用表的电容档)测量其电容,一...

晶振怎么测量(怎么测量一个晶振的好坏)

本文目录怎么测量一个晶振的好坏两脚晶振怎么测量315晶振怎么测好坏晶振频率的测量方法如何测量遥控器晶振管cpu晶振怎样测好坏怎么测量一个晶振的好坏1、万用表(R×10k挡)测晶振两端的电阻值,若为无穷大,说明晶振无短路或漏电。2、试电笔插入市电插孔内,用手指捏住晶振的任一引脚,将另一引脚碰触试电笔顶...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。