“为AVR生,为 AVR死”一文了解ATMEL SKT600开发板测评

电子说

1.2w人已加入

描述

STK600开发套件有相当大的辅助开发价值,这是笔者见过评估AVR MCU的最全方位的工具了,估计曾经有那么一段时间把多少单纯的小朋友带到AVR的世界,从此一发不可收拾,半身蹉跎于AVR,应证了“为AVR生,为 AVR死”,这真是罪魁祸首。但是,这世界同样不缺少那啥来着“牡丹花下死,做鬼也风流",笔者同样愿意当一个”被虐的黄盖“,去尝试下STK600开发套件更多的功能。

 

串口

 

说到串口,在电子行业摸爬滚打的小伙伴基本都不陌生,笔者也大有”这也太小儿科的思想“,没想到一上来就碰钉子了,首先,STK600开发套件中并 没有为你准备5星级服务,在你使用各个功能的时候你会发现缺斤少两的现象,就说这RS232串口,需要自己额外准备一根9-pin的D-SUB接口线(一 头公头、一头母头)。

串口的例程可以在Atmel Studio6.1中找到,这里笔者编译、下载了一个UART interrupt example for the ATmega2560例程。问题又来,波特率没有明说该设置多少,笔者是在代码中找到的,可能是Atmel公司想教我们一个道理“自己动手,方能丰衣足 食。”可惜笔者未能好好参透,还是喜欢一条龙服务,是不是有点不上进啊。

AVR

打开超级终端,设置参数,无论如何操作,超级终端都无信息打印,急得团团转的时候看到串口原理框图顿时泪奔,这不是坑爹嘛,这RX、TX信号线都没连上MCU,跟MCU半点关系都没。

AVR

但这下至少有方向了,首先需要让RX、TX建立跟MCU Atmega2560之间的联系。

RS232的备用接口好找,问题是不知道怎么跟MCU的信号线相连,还需要查找ATMEGA2560的datasheet,很麻烦,但是木有别的办法。

AVR

其实操作还是很简单方便,只需知道方法。按照SPEC指示,将RX、TX信号线正确连接

这下万事俱备了,默数3、2、1上电

Bingo!

AVR

原本代码中设置输出打印的是"Hello,World!"太腻味了,笔者在代码中查看波特率设置的时候顺手改成了"Hello,eeboard",看起来舒服多了...

 

CAN控制器局域网络

 

CAN相比串口来说,没能达到耳熟能详的地步,但是就其地位,也是一方诸侯,究其原因,它掌控着汽车上的通讯系统,你能想象现在没有汽车的样子吗? 这下我们不得不带着虔诚的态度去了解下它的背景。CAN总线由德国BOSCH公司开发出,一开始主要应用于汽车工业,但是因为其突出的特点,高性能、高可 靠性,现在广泛应用在机械工业,数控机床,医疗器械等更多的领域。有点类似“无心插柳柳成荫”的样子。

 

CAN主要的三层结构为:物理层、数据链路层、应用层。

AVR

现在再回头来看STK600,其也搭载了一个CAN模块电路。

CAN收发器是Atmel公司自家的产品 ATA6660,支持差分串行总线标准

AVR

在STK600开发板中实际应用

AVR

通过Atmel 自家设计的 ATA6660 CAN收发器,电路变得再为简单不过了,只需搭载几个电阻电路,一切就顺理成章的完成了。怪不得现在都说软件工程师吃香,硬件电路设计工程师都快没饭吃 了。。。当然,这个是只是玩笑,我们来看看CAN模块电路中的几个特殊接口TERM、SPLIT、SLOPE CTRL是不是另有玄机。

 

  • TERM:在CAN波特率大于100 Kb/s,需要连接跳帽,这相当于在CAN-H和CAN-L信号线间加了一个124欧姆的电阻

  • SPLIT:此跳帽主要是将CAN-H、CAN-L信号上拉

  • SLOPE CTRL:此跳帽无论连接哪个位置都是将RS信号下拉,以调整CAN信号斜率以及防止信号瞬变

有些遗憾,Atmel Studio6.1没有提供针对ATMEGA2560的CAN例程,无法实现CAN功能的演示,颇为失望。

 

LIN总线

 

汽车的“廉价”导致了家用汽车的普及,可能在某些城市,上班出行用到的交通工具又回到了绿色环保的自行车,方便快捷。而专门针对汽车的CAN总线通 讯系统在一些廉价的汽车上似乎有些大材小用,于是,应运而生了LIN总线,这是CAN总线的辅助扩展。你也可以理解为LIN总线是CAN总线的小跟班,基 本不需要硬件基础,LIN总线硬件的实现可以是基于普通的串行通信接口(SCI),甚至在子节点中可以用普通I/O口加上定时器进行模拟。它的存在,无疑 是在廉价汽车上性价比高,比CAN总线更加适用。

STK600开发套件使用的LIN收发器为Atmel的ATA6661,支持LIN 2.0规范,紧挨着RS232串口,其待遇可见一般,十足是个跟班的命。

AVR

ATA6661外部接口很少,同样,在STK600开发板中的电路也相对要简单

AVR

在搭载设备板的STK600开发板上,其应用在LIN总线既可以作为主设备,又可作为从设备,而在总线上运行的应用作为主设备时必须连接M LIN跳帽,将LIN信号上拉至BAT。BAT的电压要求5~12V之间,而且必须从外部供电。

通过另一端的6PIN接口座,可以连接MCU,通常MCU通过UART来实现LIN总线传输,需要注意的是NSLP信号线必须接高电平确保LIN总线输出时不会进入睡眠模式。

 

随着汽车行业的发展,CAN总线和LIN总线可以说是相互依存的,只是说LIN相对应用范围狭窄,专注于汽车电子,而CAN总线发展的规模宏大,涉足行业越来越广阔。

 

小结

 

主要介绍了STK600开发套件上串口、CAN总线以及LIN总线的功能,这三者都是目前在 行业应用广泛的接口,CAN总线和LIN总线相互依存,LIN总线的实现又可以依托串口来实现,原本为汽车电子行业而诞生的CAN总线已经扩展到各行各 业,而针对汽车电子而生的LIN总线在某些方面有着CAN总线无法比拟的性价比,大有青出于蓝而胜于蓝的趋势。而串口对于我们来说虽然一如既往,平平淡 淡,但却真真切切无法被取代。


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分