Overview – Pololu Orangutan X2 User Manual

Page 3

Advertising
background image

1. Overview

Note: As of October 25, 2010, all Orangutan X2 versions are shipping with programmable
ATmega1284P microcontrollers instead of the ATmega644P included on older units, and the auxiliary
microcontroller is now an ATmega328P instead of an ATmega168. The ATmega1284P has 128 KB
of program memory, 16 KB of RAM, and 4 KB of EEPROM, and it offers an additional 16-bit timer
(TIMER3). If you have a new Orangutan X2, treat all “mega644” references in this document as
“mega1284” references.

The

Orangutan X2

[http://www.pololu.com/catalog/product/738]

motor drivers, buzzer, and USB-to-serial interface are

controlled by the auxiliary ATmega168 microcontroller, which is connected to the ATmega644 user controller
via the Serial Peripheral Interface (SPI), a synchronous serial protocol for which the mega644 has a dedicated
hardware module. Once the SPI module is configured correctly, the mega644 can invoke mega168 functions by
sending command packets consisting of one command byte followed by zero or more data bytes. Command bytes
always have an MSB of one while data bytes always have an MSB of zero.

This document explains in great detail the low-level SPI commands used to communicate with the auxiliary
mega168. If you want to get started quickly with your Orangutan X2, you can bypass this detailed documentation
and

instead

use

our

high-level

C

wrapper

functions

[http://www.pololu.com/file/download/

ox2_spi_wrappers_v1_01.zip?file_id=0J20]

(12k zip) of these low-level commands. The file SPI.h contains the function

prototypes of the wrappers, along with some convenient #defines; the file SPI.c contains the commented
implementations of the wrappers. By including SPI.h in your project, you will be able to get up and running
quickly with your Orangutan X2. We encourage you to modify these high-level wrapper functions to fit your
specific needs.

Note: Before you can call any of the wrapper functions in SPI.c, you must initialize the mega644’s SPI
hardware module by calling

SPIInit()

. For examples of how to use these wrapper functions in your Orangutan

X2 projects, please see the sample AVR Studio project files linked from the various

Orangutan X2

pages

[http://www.pololu.com/catalog/category/37]

.

Orangutan X2 Command Documentation v1.01

© 2001–2010 Pololu Corporation

1. Overview

Page 3 of 27

Advertising