🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## mega2560控制器 ![](https://img.kancloud.cn/b1/68/b1686f53ac6b427bab95325616cfb048_659x600.png) Mega 2560是基于ATmega2560的主控开发板。Mega2560是采用USB接口的核心电路板。具有54路数字输入输出,适合需要大量IO接口的设计。处理器核心是ATmega2560,同时具有54路数字输入/输出口,16路模拟输入,4路UART接口,一个16MHz晶体振荡器,一个USB口,一个电源插座,一个ICSP header和一个复位按钮。板上有支持一个主控板的所有资源。 Mega2560也能兼容为NUO设计的扩展板。可以自动选择3中供电方式:外部直流电源通过电源插座供电;电池连接电源连接器的GND和VIN引脚;USB接口直流供电。 ![](https://img.kancloud.cn/18/b2/18b2c5f42da8d2225297b416fb148811_710x350.png) ## VSR-UNO虚实孪生 ![](https://img.kancloud.cn/71/4f/714fe8baad6c92531dd8d598eee658d2_808x176.png) 通过Mixly图形化编程软件或ArduinoIDE开发,简单快速高效的完成程序开发。VSR-UNO通过USB连接到电脑,与VS-Robot进行虚实孪生仿真。使用真实的单片机系统控制虚拟的场景。 ## 技术参数 | 型号 | Mega 2560 | | --- | --- | | 微控制器 | ATmega2560| | 工作电压 | 5 V | | 输入电压(推荐) | 7-12 V | | 输入电压(极限) | 6-20 V | | 数字I/O引脚 | 54 | | PWM通道 |15 | | 模拟输入通道(ADC) | 16 | | 每个I/O直流输出能力 | 40 mA | | 3.3V端口输出能力 | 50 mA | | Flash | 256 KB(其中引导程序使用8 KB) | | SRAM |8KB | | EEPROM | 4 KB | | 时钟速度 | 16 MHz | | 板载LED引脚 | 13 | | 长度 | 101.6 mm | | 宽度 | 53.4 mm | ## 电源 可以通过USB口或者直流电源座给VSR-UNO供电。VSR-UNO带有自动切换电源功能。 电源引脚如下: **Vin** 电源输入引脚。当使用外部电源通过DC电源座供电时,这个引脚可以输出电源电压。 **5V** 5V电源引脚。使用USB供电时,直接输出USB提供的5V电压;使用外部电源供电时,输出稳压后的5V电压。 **3V3** 3.3V 电源引脚。最大输出能力为50 mA。 **GND** 接地引脚 **IOREF** I/O参考电压。其他设备可通过该引脚识别开发板I/O参考电压。 ## 存储空间 ATmega2560有256k的闪存可存储程序(其中8kb用作bootloader),有8kb的SRAM和4kb的EEPROM,可以使用EEPROM库读写EEPROM空间。 ## 输入输出 54路接口都可作为输入输出,并使用5v电压操作,每个接口的电流最大40mA并且接口有内置20-50千欧的上拉电阻。另外,有的接口有特殊功能。 **Serial(串口):** Serial 0:0 (RX) and 1 (TX);  Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX);  Serial 3: 15 (RX) and 14 (TX). 一共四组串口。其中Serial0也被连接到Tmega16U2 USB-to-TTL Serial芯片(上文有介绍,我们USB连接电脑用的就是这个串口)。RX接收数据,TX传输数据。 **External Interrupts(外部中断):** 2 (interrupt 0),  3 (interrupt 1), 18 (interrupt 5),  19 (interrupt 4),  20 (interrupt 3),  21 (interrupt 2)。 每个引脚都可配置成低电平触发,或者上升、下降沿触发。 **PWM(脉冲调制): ** 2~13口; 44~ 46口。 提供8位PWM输出。 **SPI(串行外设接口):** 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS)。 SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,如今越来越多的芯片集成了这种通信协议。 SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线CS(有的SPI接口芯片带有中断信号线INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。 SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(用于单向传输时,也就是半双工方式)。也是所有基于SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。 (1)MOSI– SPI总线主机输出/ 从机输入(SPI Bus Master Output/Slave Input); (2)MISO– SPI总线主机输入/ 从机输出(SPI Bus Master Input/Slave Output); (3)SCLK –时钟信号,由主设备产生; (4)CS – 从设备使能信号,由主设备控制(Chip select),有的IC此pin脚叫SS。 其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。 接下来就负责通讯的3根线了。通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。这就是SCLK时钟线存在的原因,由SCK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。数据输出通过 SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。 例:现有1,2号设备支持SPI接口,则可以都挂到主控的SPI线上,之后如果要控制1号设备,则由主控发送CS=1号,选中1号设备,那么1号设备就可以通过MOSI,MISO两根线在SCLK时钟控制下和主机进行通信了。 **LED:** 13引脚。这是板上自带的LED灯,高电平亮,低电平灭。 **TWI:** 20 (SDA) 和21 (SCL)。 TWI(Two—wire Serial Interface)接口是对I²C总线接口的继承和发展,完全兼容I²C总线,具有硬件实现简单、软件设计方便、运行可靠和成本低廉的优点。TWI由一根时钟线和一根传输数据线组成,以字节为单位进行传输。TWI\_SCL\\TWI\_SDA是TWI总线的信号线。 SDA是双向数据线,SCL是时钟线SCL。在TWI总线上传送数据,首先送最高位,由主机发出启动信号,SDA在SCL 高电平期间由高电平跳变为低电平,然后由主机发送一个字节的数据。数据传送完毕,由主机发出停止信号,SDA在SCL 高电平期间由低电平跳变为高电平。 **模拟输入:** Mega2560有16个模拟输入,每个提供10位的分辨率(即2^10=1024个不同的值)。默认情况下他们测量0到5v值。可以通过改变AREF引脚和analogReference() 功能改变他们变化范围的上界。 **AREF:** 是AD转换的参考电压输入端(模拟口输入的电压是与此处的参考电压比较的)。完成功能。 例: 参考电压是5V,AD精度是10位的, 在模拟输入端输入2.5V,AD转换结果就是512(1024×(5/2.5)) **Reset:** 复位端口。接低电平会使单片机复位,复位按键按下时,会使该端口接到低电平,从而让mega2560复位。 ## 指示灯(LED) mega2560带有4个LED指示灯,作用分别如下: **ON:** 电源指示灯。当mega通电时,ON灯会点亮。 **TX:** 串口发送指示灯。当使用USB连接到计算机且mega2560向计算机传输数据时,TX灯会点亮。 **RX:** 串口接收指示灯。当使用USB连接到计算机且mega2560接收到计算机传来的数据时,RX灯会点亮。 **LED:** 可编程控制指示灯。该LED通过特殊电路连接到VSR-UNO的13号引脚,当13号引脚为高电平或高阻态时,该LED 会点亮;低电平时,不会点亮。可以通过程序或者外部输入信号,控制该LED亮灭。 ## 通信 mega2560具备多种通信接口,可以和计算机、其他mega2560或者其他控制器通信。 ATmega328P 提供了UART TTL (5V)串口通信,其位于0 (RX) 和1 (TX)两个引脚上。VSR-UNO上的CH340将串口转换成USB,使得ATmega328P 能和计算机通信。VSR-UNO上的RX\\TX两个LED可以指示当前VSR-UNO的通信状态。 ATmega2560也支持I2C (TWI)和SPI通信。 ## 自动复位 一些开发板在上传程序前需要手动复位,而mega2560的设计不需要如此,在mega2560连接电脑后可以由程序控制其复位。在Tmega16U2 USB-to-TTL Serial上的DTR信号端,经过一个100nf 的电容,连接到ATmega328 的复位引脚。 当计算机发出DTR信号时(低电平),复位端将得到一个足够长的脉冲信号,从而复位ATmega2560。在Arduino IDE中点击上传程序,在上传前即会触发复位,从而运行引导程序,完成程序上传。