天天看点

《Microduino实战》——2.2 兼容Arduino系列产品

本节书摘来自华章出版社《microduino实战》一 书中的第2章,第2.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

兼容arduino的系列产品可以分为microduino avr核心系列模块、扩展模块以及扩展板,其接口标准都采用upin-27规范标准,如图2-2所示。扩展模块包括以太网接口、usb接口的有线通信模块,支持rf、蓝牙、nfc、zigbee、wifi和gprs/gsm无线通信模块,支持三轴陀螺仪、加速度传感器、gps的传感器模块,支持oled、tft的显示模块,以及电机驱动模块等。

《Microduino实战》——2.2 兼容Arduino系列产品

microduino avr核心系列模块主要包括两大部分:一是微控制器模块,其芯片采用的是atmel avr 8位微控制器,兼容arduino;另一个是usb下载调试模块,其芯片采用的是ft232rl芯片,同样是arduino所支持的。接下来详细介绍一下这些核心模块的具体参数。

microduino-core

以 atmel atmega328p、atmega168pa 系列为核心的8位单片机开发核心板microduino-core,是一个开源的控制器模块,兼容arduino uno,如图2-3所示。

根据不同型号的微控制器芯片,microduino-core目前有4个型号,如表2-1所示。

《Microduino实战》——2.2 兼容Arduino系列产品

microduino-core供用户使用的i/o口有27个,除了5v、3.3v、gnd和rst基本功能引脚外,其他引脚都有着特殊的功能,有的引脚会复用多种功能。

(1)数字i/o (22个)

在模块上标识为 d0~d13,a0~a7,其中a6和a7只能作为输入,不能输出。

(2)模拟 i/o (8个)

在模块上标识为 a0~a7。每一个都提供了10位分辨率(即0~1024),默认情况下,模拟电压测量范围为gnd至vcc电压值。

(3)pwm输出(6个)

在模块上标识为d3、d5、d6、d9、d10和d11。

(4)串口通信(1路)

在模块上标识为 rx0(d0)、tx1(d1),即rx0为串口接收端,而tx1为串口发送端。microduino-core与usbttl模块是通过d0和d1端口通信的,但如果这里两个端口同时被其他模块占用,比如蓝牙模块,会导致与usbttl通信不正常,可能无法下载程序。

(5)spi通信(1路)

在模块上标识为 d13(sck)、d12(miso)、d11(mosi)、d10(ss)。

(6)i2c通信(1路)

在模块上标识为 sda(a4)、scl(a5)。

(7)外部中断输入(2路)

在模块上标识为 d2(中断0)、d3(中断1)。

(8)支持isp下载功能

如同arduino一样,microduino可使用isp下载线,灵活烤入bootloader。所用引脚在模块上标识为d13(sck)、d12(miso)、d11(mosi)。

(9)外部参考电压(aref)输入(1路)

在模块上标识为ref。

以microduino-core为控制核心,配以其他的电子元器件、功能模块和传感器,就能够实现很多丰富而有趣的设计。简单的设计,如遥控开关、电子闹铃;复杂的设计,如遥控小车、飞行器等,这些都体现出了核心控制模块的控制能力。

microduino-core+

microduino-core+是microduino-core的增强版,提升了微控制器存储容量,还增加了

i/o接口的数量,如图2-4所示。具体参数对比如表2-2所示。引脚分布仍旧采用upin-27标准规范,增加的i/o接口专门引出了10个插孔供用户使用。

《Microduino实战》——2.2 兼容Arduino系列产品

目前,microduino-core+也分为4个型号,如表 2-3所示。

《Microduino实战》——2.2 兼容Arduino系列产品

microduino-core+供用户使用的i/o口有37个,除了5v、3.3v、gnd和rst基本功能引脚外,其他引脚都有着特定的功能,有的引脚会复用多种功能。

(1)数字 i/o(32个)

在模块上标识为 d0~d13,a0~a7,以及比core多出的10个插孔(d14~d23)。

(2)模拟i/o (8个)

(3)pwm输出(8个)

在模块上标识为d7、d8、d9、d10、d12、d13、d22、d23。

(4)串口支持(2路)

在模块上标识为 serial[d0(rx),d1(tx)]和serial1[d2(rx),d3(tx)]。与usbttl模块连接会占用d0、d1,如果端口d0和d1被其他模块占用,会导致与usbttl通信不正常,使得程序无法下载。

在模块上标识为 d13(sck)、d12(miso)、d11(mosi)、d10(ss)。

在模块上标识为 sda(d20),scl(d21)。

(7)外部中断输入(3路)

在模块上标识为 d2(中断0)、d3(中断1)、d6(中断2)。

(9)支持aref端子

由于在性能和资源上有所提升,microduino-core+能够实现的功能比microduino-core多一些,也能够支持更多的模块设备与之互联。

microduino-usbttl

microduino-usbttl 模块是usb转串口模块,用于上位机向microduino-core/core+下载程序以及串口通信,如图2-5所示。它采用基于 ftdi 公司的 ft232rl 芯片(arduino软件自带驱动)。

注意 microduino-usbttl模块通过串口与其他microduino模块进行通信,串口引脚是d0(tx)、d1(rx),如果其他microduino模块也同样使用该串口引脚,那么在下载程序和进行串口通信的时候要特别注意,很有可能因为串口冲突,使得d0和d1引脚上的串口通信失败,致使无法进行程序下载和串口调试。所以,要尽量避免使用同一个串口进行通信,如果实在无法避免,下载程序时,先将其他使用该串口的模块拆下来,下载完成后再装上去。

microduino-coreusb

microduino-coreusb相当于将microduino-core和microduino-usbttl两个模块合在了一起,即集成了微控制器和usb通信的功能,如图2-6所示。核心芯片采用atmega32u4系列的8位微控制器,与arduino leonardo开发板兼容。

《Microduino实战》——2.2 兼容Arduino系列产品

如果说microduino核心模块是大脑,那么microduino扩展模块便是其手脚、眼睛、耳朵等器官。按照功能划分,可以将扩展模块大致分为:有线通信、无线通信、电池管理、传感器、声音/存储/时钟、显示设备和电机驱动。这里仅作简单介绍,以方便读者了解现有的microduino模块,在diy过程中找到自己想要的模块,更多资料见

参考[1]。

《Microduino实战》——2.2 兼容Arduino系列产品
《Microduino实战》——2.2 兼容Arduino系列产品

无线通信

《Microduino实战》——2.2 兼容Arduino系列产品
《Microduino实战》——2.2 兼容Arduino系列产品
《Microduino实战》——2.2 兼容Arduino系列产品
《Microduino实战》——2.2 兼容Arduino系列产品
《Microduino实战》——2.2 兼容Arduino系列产品
《Microduino实战》——2.2 兼容Arduino系列产品

前面将microduino核心模块比喻成大脑,那么microduino扩展板就可以看作是骨架,专门用来插接microduino-core/core+和扩展模块,方便模块的连接和扩展。这里也做简单介绍,供读者参考。

《Microduino实战》——2.2 兼容Arduino系列产品
《Microduino实战》——2.2 兼容Arduino系列产品
《Microduino实战》——2.2 兼容Arduino系列产品
《Microduino实战》——2.2 兼容Arduino系列产品

继续阅读