×
嵌入式 > 技术百科 > 详情

Arduino家族的新成员Leonardo

发布时间:2020-06-06 发布时间:
|

Arduino家族的新成员LEONARDO基于Atmega32u4的低成本版本,和UNO有同样的shape和connector,但简化了电路设计。Leonardo左侧板载了micro USB,还集成了USB驱动,可以用它模拟类似鼠标,键盘等USB HID,后续也会放出更多的drivers。它有20个数字输入/输出引脚(其中7个可用于PWM输出、12个可用于模拟输入),一个16 MHz的晶体振荡器,一个Micro USB接口,一个DC接口,一个ICSP接口,一个复位按钮。它包含了支持微控制器所需的一切,你可以简单地通过把它连接到计算机的USB接口,或者使用AC-DC适配器,再或者用电池来驱动它。

让我们先来看一下Arduino官方网站上对板子的一些介绍和指导:

电源

Arduino Leonardo可以通过Micro USB接口或外接电源供电。电源可以自动被选择。

外部(非USB)电源可以用AC-DC适配器(wall-wart)或电池。适配器可以插在一个2.1毫米规格中心是正极的电源插座上,以此连接到控制器电源。从电池的信息,可以插在电源连接器的GND和VIN引脚头。

可以输入6V-20V的外部电源。但是,如果低于7V,5V引脚将提供小于5V的电源,控制板可能会不稳定。如果使用大于12V的电源稳压器可能过热,从而损坏电路板。推荐的范围是7V-12V。

存储空间

ATmega32u4具有32KB的Flash(其中4KB被引导程序使用)。它还有2.5KB的SRAM和1KB的EEPROM(EEPROM的读写可以参见EEPROM库)。

输入和输出

通过使用pinMode(), digitalWrite(), and digitalRead() 函数,Leonardo上的20个I/O引脚中的每一个都可以作为输入输出端口。每个引脚都有一个20-50千欧的内部上啦电阻(默认断开),可以输出或者输入最大40ma的电流。此外部分引脚还有专用功能:

  • 通信

要让Leonardo与电脑、其他arduino或者其他的微控制器通信,有多种设备。在0、1上ATmega32u4提供了UART TTL(5V)的通信方式,32u4还允许通过USB在电脑上虚拟COM端口来进行虚拟串行(CDC)通信。这个芯片使用标准的USB串行驱动(在Windows上需要一个.inf文件),可以作为一个全速USB2.0设备。arduino软件包含了一个串口监视器,可以与arduino板子相互发送或者接收简单的数据。当使用USB传输数据时,板子上RX、TX LED会闪烁(这个特性不是适用于0、1端口)。

  • 编程

Leonardo可以通过arduino软件来编程,选择Tool>board>Arduino Leonardo(根据你的控制器型号选择)。更多参考和教程。Leonardo的ATmega32u4芯片烧写了一个引导程序,使得你可以不通过外部的硬件编程器也可以上传新的程序到Leonardo。bootloader使用AVR109协议通信。你还可以绕过引导程序,使用外部编程器通过ICSP(在线串行编程)引脚烧写程序。

USB过流保护

Leonardo有一个自恢复保险丝,防止短路或过流,从而保护您的计算机的USB端口。虽然大多数计算机提供都带有内部保护,但保险丝也可以提供额外的保护。如果电流超过500 mA,保险丝会自动断开连接防止短路或过载。

物理特征

Leonardo PCB的最大长度和宽度分别为2.7和2.1英寸,超越前维延长的USB接口和电源插孔。有四个固定孔可以将板子固定在其他表面或者外壳上。注意,7、8数字引脚之间的距离是160mil(0.16“),而不是和其他脚一样的100 mil 间距。

Leonardo的新引脚布局将会变成Arduino主板的标配。这对机箱制造商来说是一个天大的好消息,因为他们今后只需要设计制造一个扩展就可以和整个产品线相配,而且价格也比Uno便宜。

ATmega32u4 Block Diagram

怎样开始使用Leonardo,首先需要取得开发板之后,假设厂商没有给你bootloader,自己制作的版本就需自己烧入,烧入的方式很简单,先有一条ISP下载线就可以了,你可以买原厂的AVR ISP MKII,或是找到可以支援烧录Atmega32u4的烧录器即可。

Arduino Leonardo的USB装置不同于以往存在的Arduino 硬件装置,当它开始工作的时候,主要出现在不同的串口不同编程模式中经常使用的一个。Arduino Leonardo直接使用了ATmega32u4的USB通信功能,取消了USB转UART芯片。这使得Leonardo不仅可以作为一个虚拟的(CDC)串行/ COM端口,还可以作为鼠标或者键盘连接到计算机。

当一个Arduino上载请求开始的时候,特定的Leonardo串口调至1200波特率致使Leonardo重置。如果该特定串口没有被找到,那么Arduino 和Visual Studio 电子集成驱动都会假设Leonardo已经被重置过了而跳过这一步。

Arduino 和Visual Studio 电子集成驱动扫描检测计算机串行端口列表来检测新的编程口,这表明Arduino Leonardo的启动已经被检测到了。如果新的串口没有被检测到,那么所有IDE会等待5秒钟,然后出现错误显示——“找不到Leonardo串口,请检查串口是否选择正确。如果正确,请在初始化上载后按板子上的reset键。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Keil5(MDK5)在调试(debug)过程中遇到的问题