原创 尝试用了一下AVR

2011-8-1 19:51 2762 8 8 分类: MCU/ 嵌入式

  前些时间,无聊之际,尝试接触了下AVR。一则是想看有51的基础后接触新的同类器件要久,二则是因为AVR的性能要比同类的要好些,试着用用


  一开始从网上找到了数据手册,有中文的,看起来挺方便。最开始,打算只看数据手册,以了解自己能否在只有数据手册的情况下,对AVR有所了解。下的是ATMEGA16的,估计300多页吧,很详细,写得也很规范。比STC,ATMEL51的一些手册要好的多。阅读中觉得手册倒底还是不如书,相关的书虽说不少内容是照抄的手册,但同时对内容有所综合,也介绍了常用的软件,一些使用实例。网上是有相关的内容,却过于零散;对我这样的初学者而言,找资料,从哪方面找起。


 


  ATMEAG的结构也不算复杂。先除去那些USART,IIC等接口,其内核结构还是比较好理解的。我比较喜欢将其和51进行对比,总的来说,虽有不同,但是其本原理一样。至于其它的片内定时器等资源,基本原理一样,多了一些功能而已,也是好理解的。这近似于触类旁通吧。


  觉得最难的就是熟悉开发工具和汇编语言了,比较头痛。AVR Studio好用,免费,但得GCC作辅助才能用C。GCC编译器,不熟悉。汇编语言,一百多条指令,没心情去记。之前已经接触过51的,8086, ARM的,懒得再去整。干脆用C,对寄存器的访问用C的位操作,不管C生成的代码是怎样的。这就是C的好处,多平台支持,移值性强。以前写过些51的代码,比较注重移值性,现在将其改用在AVR上,仅要稍许的修改就可以直接用,非常方便。


 


  至于仿真工具,不太喜欢AVR studio,感觉那个太慢,功能上明显不好KEIL。下了VMLAB,但还没开始研究怎么用,但估计会比较复杂,有人说它功能很强大。没尝试过JTAG调试,懒得去搭个电路板。至于proteus,最多只是用来看下仿真的结果,用于调试,非常不方便。


 


  另外,在 linux下,AVR的开发工具还是比较全的。有 GCC,binutils, 下载用的avrdude, uisp等。我只是稍微接触下。像Ubuntu的发行版相关的源中一般会有这样的软件包,配置好源后,直接apt-get install **就行了。这些工具都是在命令行操作的,比较繁琐。比较好的方法是用Make进行管理,但Make用起来又有些复杂。


 


  这几日,焊板子焊得头都晕了。我没做过PCB,那个太花钱了。只是买了块万用板,自己在上面搭电路。告别是有时候需要自己去连线,那个烦啊,直想吐血。现在焊接水平上去了,一般在放置元件前仔细规划好位置,以尽可能的将连线缩短直接用焊锡替代。用万用板么,不美观,不关注是否有干扰。不过,简单的学习还是可以的,最重要的是省钱!自己搭个AVR的最小系统,也就20-30块钱,主要是主芯片贵了点。比起网上卖的要便宜的多,而且自己做的话是个非常好的学习方式。


 


  当初想在学51后接触AVR,看接触AVr到基本的熟悉要多久。现在回过头来看,比没有基础学要轻松多了。

文章评论0条评论)

登录后参与讨论
我要评论
0
8
关闭 站长推荐上一条 /3 下一条