![](/html/c2/c284/c284654b43f991aad505f5396de9bc067d048bb0437f0b2d9c47dadba53dddb9/bg1.png)
Compatible Development Board
Overview
The Orangepip Mega 2560 is a microcontroller board based
on the ATmega2560 (datasheet). It has 54 digital input/output
pins (of which 14 can be used as PWM outputs), 16 analog
inputs, 4 UARTs (hardware serial ports), a 16 MHz crystal
oscillator, a USB connection, a power jack, an ICSP header,
and a reset button. It contains everything needed to support
the microcontroller; simply connect it to a computer with a
USB cable or power it with a AC-to-DC adapter or battery to get
started. The Mega is compatible with most shields designed
for the Arduino Duemilanove or Diecimila.
Summary
Microcontroller ATmega2560
Operating Voltage 5V
Input Voltage (recommended) 7-12
Input Voltage (limits) 6-20V
Digital I/O Pins 54 (of which 14 provide
PWM output)
Analog Input Pins 16
DC Current per I/O Pin 40mA
DC Current for 3.3V Pin 50 mA
Flash Memory 256 KB of which 8 KB used
by bootloader
SRAM 8 KB
EEPROM 4 KB
Clock Speed 16 MHz
Power
The Orangepip Mega2560 can be powered via the USB
connection or with an external power supply. The power
source is selected automatically.
External (non-USB) power can come either from an AC-to-DC
adapter (wall-wart) or battery. The adapter can be connected by
plugging a 2.1mm center-positive plug into the board’s power
jack. Leads from a battery can be inserted in the Gnd and Vin
pin headers of the POWER connector.
The board can operate on an external supply of 6 to 20 volts.
If supplied with less than 7V, however, the 5V pin may supply
less than ve volts and the board may be unstable. If using
more than 12V, the voltage regulator may overheat and
damage the board. The recommended range is 7 to 12 volts.
The Mega2560 differs from all preceding boards in that it does
not use the FTDI USB-to-serial driver chip. Instead, it features
the Atmega8U2 programmed as a USB-to-serial converter.
Orangepip Mega2560
Arduino Mega2560
Order code: 75-0551
The power pins are as follows:
VIN The input voltage to the Orangepip board when it’s using
an external power source (as opposed to 5 volts from
the USB connection or other regulated power source).
You can supply voltage through this pin, or, if supplying
voltage via the power jack, access it through this pin.
5V The regulated power supply used to power the
microcontroller and other components on the board. This
can come either from VIN via an on-board regulator, or be
supplied by USB or another regulated 5V supply.
3V3 A 3.3 volt supply generated by the on-board regulator.
Maximum current draw is 50 mA.
GND Ground pins.
Memory
The ATmega2560 has 256 KB of ash memory for storing
code (of which 8 KB is used for the bootloader), 8 KB of SRAM
and 4 KB of EEPROM (which can be read and written with the
EEPROM library).
Input and Output
Each of the 54 digital pins on the Mega can be used as
an input or output, using pinMode(), digitalWrite(), and
digitalRead() functions. They operate at 5 volts. Each pin can
provide or receive a maximum of 40 mA and has an internal
pull-up resistor (disconnected by default) of 20-50 kOhms.
In addition, some pins have specialized functions:
Serial: 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) Used to receive (RX) and transmit (TX) TTL serial data.
Pins 0 and 1 are also connected to the corresponding pins
of the ATmega8U2 USB-to-TTL Serial chip.
Page 1 of 3
www.orangepipboards.com
![](/html/c2/c284/c284654b43f991aad505f5396de9bc067d048bb0437f0b2d9c47dadba53dddb9/bg2.png)
Compatible Development Board
External Interrupts: 2 (interrupt 0), 3 (interrupt 1), 18
(interrupt 5), 19 (interrupt 4), 20 (interrupt 3), and 21
(interrupt 2) These pins can be congured to trigger an
interrupt on a low value, a rising or falling edge, or a change
in value. See the attachInterrupt() function for details.
PWM: 0 to 13 Provide 8-bit PWM output with the analogWrite()
function.
SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) These pins
support SPI communication using the SPI library. The SPI pins
are also broken out on the ICSP header, which is physically
compatible with the Uno, Duemilanove and Diecimila.
LED: 13 There is a built-in LED connected to digital pin 13.
When the pin is HIGH value, the LED is on, when the pin is
LOW, it’s off.
TWI: 20 (SDA) and 21 (SCL) Support TWI communication
using the Wire library. Note that these pins are not in the
same location as the TWI pins on the Duemilanove or
Diecimila.
The Mega2560 has 16 analog inputs, each of which provide
10 bits of resolution (i.e. 1024 different values). By default
they measure from ground to 5 volts, though is it possible to
change the upper end of their range using the AREF pin and
analogReference() function.
There are a couple of other pins on the board:
AREF Reference voltage for the analog inputs. Used with
analogReference().
Reset Bring this line LOW to reset the microcontroller. Typically
used to add a reset button to shields which block the one on
the board.
Communication
The Orangepip Mega2560 has a number of facilities for
communicating with a computer, another Arduino, or other
microcontrollers. The ATmega2560 provides four hardware
UARTs for TTL (5V) serial communication. An ATmega8U2
on the board channels one of these over USB and provides
a virtual com port to software on the computer (Windows
machines will need a .inf le, but OSX and Linux machines
Orangepip Mega2560
Arduino Mega2560
Order code: 75-0551
will recognize the board as a COM port automatically. The
Arduino software includes a serial monitor which allows simple
textual data to be sent to and from the board. The RX and TX
LEDs on the board will ash when data is being transmitted
via the ATmega8U2 chip and USB connection to the computer
(but not for serial communication on pins 0 and 1).
A SoftwareSerial library allows for serial communication on any
of the Mega2560’s digital pins.
The ATmega2560 also supports TWI and SPI communication.
The Arduino software includes a Wire library to simplify use
of the TWI bus; see the documentation for details. For SPI
communication, use the SPI library.
Programming
The Orangepip Mega can be programmed with the Arduino
software. For details, see the reference and tutorials.
The ATmega2560 on the Orangepip Mega comes preburned
with a bootloader that allows you to upload new code to it
without the use of an external hardware programmer.
It communicates using the original STK500 protocol
(reference, C header les).
You can also bypass the bootloader and program the
microcontroller through the ICSP (In-Circuit Serial Programming)
header; see these instructions for details.
The ATmega8U2 rmware source code is available in the
Arduino repository. The ATmega8U2 is loaded with a DFU
bootloader, which can be activated by connecting the solder
jumper on the back of the board and then resetting the 8U2.
You can then use Atmel’s FLIP software (Windows) or the DFU
programmer (Mac OS X and Linux) to load a new rmware.
Or you can use the ISP header with an external programmer
(overwriting the DFU bootloader). See this user-contributed
tutorial for more information.
Automatic (Software) Reset
Rather then requiring a physical press of the reset button
before an upload, the Orangepip Mega2560 is designed
in a way that allows it to be reset by software running on a
connected computer. One of the hardware ow control lines
(DTR) of the ATmega8U2 is connected to the reset line of the
ATmega2560 via a 100 nanofarad capacitor. When this line is
asserted (taken low), the reset line drops long enough to reset
the chip. The Arduino software uses this capability to allow
you to upload code by simply pressing the upload button in
the Arduino environment. This means that the bootloader can
have a shorter timeout, as the lowering of DTR can be wellcoordinated with the start of the upload.
This setup has other implications. When the Mega2560
is connected to either a computer running Mac OS X or Linux,
it resets each time a connection is made to it from software
(via USB). For the following half-second or so, the bootloader
Page 2 of 3
www.orangepipboards.com