C
Ce
er
re
eb
bo
ot
t
M
MX
X4
4c
cK
K
B
Bo
oa
ar
rd
d
R
R
e
e
f
f
e
e
r
r
e
e
n
n
c
c
e
e
M
M
a
a
n
n
u
u
a
a
l
l
Revision: December 15, 2011
Note: This document applies to REV C of the board. 1300 Henley Court | Pullman, WA 99163
(509) 334 6306 Voice and Fax
Doc: 502-220 page 1 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
Overview
The Cerebot MX4cK is a microcontroller
development board based on the Microchip
PIC32MX460F512L, a member of the 32-bit
PIC32 microcontroller family. It is compatible
with Digilent’s line of Pmod™ peripheral
modules, and is suitable for use with the
Microchip MPLAB
®
IDE tools. The Cerebot
MX4cK is also compatible for use with the
chipKIT™ MPIDE development environment.
ChipKIT and MPIDE is a PIC32 based system
compatible with many existing Arduino™ code
examples, reference materials and other
resources.
The Cerebot MX4cK is designed to be easy to
use and suitable for use by anyone from
beginners to advanced users for experimenting
with electronics and embedded control
systems. A built in programming/debugging
circuit compatible with the Microchip MPLAB
®
IDE is provided on the board, so no additional
hardware is required for use with MPLAB. The
kit contains everything needed to start
developing embedded applications using either
the MPLAB
®
IDE or the MPIDE.
The Cerebot MX4cK provides 74 I/O pins that
support a number of peripheral functions, such
as USB controller, UART, SPI and I
2
C™ ports
as well as five pulse width modulated outputs
and five external interrupt inputs. Fifteen of the
I/O pins can be used as analog inputs in
addition to their use as digital inputs and
outputs.
The Cerebot MX4cK can be powered via USB,
or an external power supply that may be either
an AC-DC power adapter, or batteries.
Cerebot MX4cK Circuit Diagram
Cerebot MX4cK Reference Manual
www.digilentinc.com page 2 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
Functional Description
The Cerebot MX4cK is designed for embedded
control and robotics control applications as well
as for general microprocessor experimentation.
Firmware suitable for many applications can be
downloaded to the Cerebot MX4cK’s
programmable PIC32 microcontroller.
Features of the Cerebot MX4cK include:
a PIC32MX460F512L microcontroller
support for programming and
debugging within the Microchip MPLAB
development environment
nine Pmod connectors for Digilent
peripheral module boards
eight hobby RC servo connectors
USB 2.0 Device, Host, and OTG
support
two push buttons
four LEDs
multiple power supply options, including
USB powered
ESD protection and short circuit
protection for all I/O pins.
Features of the PIC32MX460F512L include:
512KB internal program flash memory
32KB internal SRAM memory
USB 2.0 compliant full-speed On-The-
Go (OTG) controller with dedicated
DMA channel
two serial peripheral interfaces (SPI)
two UART serial interfaces
two I2C serial interfaces
five 16-bit timer/counters
five timer capture inputs
five compare/PWM outputs
sixteen 10-bit analog inputs
two analog comparators
The Cerebot MX4cK has a number of
input/output connection options, and is
specially designed to work with the Digilent
Pmod™ line of peripheral modules to provide a
variety of input and output functions. For more
information, see www.digilentinc.com. In
addition to the Pmod connectors, the board
provides eight connectors for RC hobby
servos, two push button switches, and four
LEDs, as well as providing connections for two
I2C busses. A serial EEPROM and a 12-bit
digital to analog converter are provided on one
of the I2C busses.
The Cerebot MX4cK features a flexible power
supply system with a number of options for
powering the board as well as powering
peripheral devices connected to the board. It
can be USB powered via either the debug USB
port or the USB device port, or it can be
powered from an external power supply or
batteries.
Programming Tools
The Cerebot MX4cK can be used with either
the Microchip MPLAB
®
development
environment or the chipKIT MPIDE
development environment. When used with the
MPLAB IDE, in-system-programming and
debugging of firmware running on the
PIC32MX460 microcontroller is supported
using an on-board programming/debugging
circuit licensed from Microchip.
The Cerebot MX4cK is immediately useable
with either the MPLAB IDE or the chipKIT
MPIDE. No additional hardware is required to
use the board with the Microchip MPLAB tools.
Using the Cerebot MX4cK with
Microchip Development Tools
The Microchip MPLAB
®
IDE or the MPLAB
®
X
IDE can be used to program and debug code
running on the Cerebot MX4cK board using a
built-in programming/debugging circuit licensed
from Microchip.
The MPLAB programs can be freely
downloaded from the Microchip web site.
These software suites include a free evaluation
Cerebot MX4cK Reference Manual
www.digilentinc.com page 3 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
copy of the Microchip C32 compiler for use
with the PIC32 microcontroller family. The
licensed debugger is compatible with the
MPLAB IDE version 8.63 or later.
When creating a new project, use the
“Configure.Select Device…” menu to specify the
PIC32 device being used. Ensure that the
device is set to PIC32MX460F512L.
In order to use the on-board program/debug
circuit it must be selected as the debugger or
programmer within the MPLAB IDE. Use the
Debugger.Select Tool” menu, or the
Programmer.Select Tool” menu, and select
“Licensed Debugger” as the programmer or
debugger.
The licensed debugger interface uses USB
connector J9, labeled DEBUG. Connector J9 is
a USB micro-B connector. Use a USB-A to
micro-B cable (provided with the board) to
connect to an available USB port on the PC.
When the licensed debugger is selected as the
programming or debugging device, the MPLAB
IDE will check the version number of the
firmware running on the debugger and offer to
update it if is out of date with the version of
MPLAB being used.
The in-system programming/debugging
interface uses two pins on the PIC32
microcontroller. The PIC32 devices support
two alternate pin pairs for this interface:
PGC1/PGD1 or PGC2/PGD2. PIC32 devices
use PGC2/PGD2 by default. The Cerebot
MX4ck is designed to use PGC2/PGD2. It is
not normally necessary to select the use of
PGC2/PGD2 for the debugging interface, as
this should occur automatically.
If for some reason, it is necessary to select the
correct pins for the programming/debugging
interface, this can done using configuration
variables set using the
#pragma config
statement. The following statement can be
used to configure the microcontroller for use
with the on-board licensed debugger circuit:
#pragma config ICESEL = ICS_PGx2
The MPLAB IDE may report an error indicating
that the device is not configured for debugging
until the first time a program is loaded onto the
board.
The MCLR pin on the PIC32 microcontroller is
used by the hardware programming/debugging
interface to reset the processor. This same pin
is used by the USB serial converter to reset the
processor when using the MPIDE. It is possible
that the reset function from the USB serial
interface can interfere with correct operation of
the Microchip programming and debugging
tools. If this happens, jumper JP8 can be used
to disconnect the USB serial converter reset
circuit. Remove the shorting block from JP8 to
disable the reset circuit. If the shorting block
has been removed, it is necessary to reinstall it
on JP8 in order to use the Cerebot MX4cK
board with the MPIDE again.
Using the Microchip development tools to
program the Cerebot MX4cK will erase the
chipKIT boot loader. To use the board with the
chipKIT MPIDE again, it is necessary to
program the boot loader back onto the board.
The programming file for the boot loader
programmed into the board by Digilent at the
factory is available for download from the
product page for the Cerebot MX4cK on the
Digilent web site. Additionally, the boot loader
source code is available in the chipKIT project
repository at www.github.com/chipKIT32/pic32-
Arduino-Bootloader.
To reprogram the boot loader using MPLAB,
perform the following steps:
Use the “Configure.Select Device …” menu to
select the PIC32MX460F512L
Use the “Programmer.Select Programmer”
menu to select the “Licensed Debugger”.
Cerebot MX4cK Reference Manual
www.digilentinc.com page 4 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
Use the “File Import…” dialog box to
navigate to and select the boot loader
programming downloaded from the Digilent
web site. The file name will be something
like: chipKIT_Bootloader_MX4cK.hex
Use the “Programmer.Program” command to
program all memories on the device.
Using the Cerebot MX4cK with the
chipKIT MPIDE
ChipKIT and the MPIDE is a PIC32 based
hardware and software system compatible
with
many existing Arduino™
code examples, reference
materials and other resources. The MPIDE
development platform was produced by
modifying the Arduino™ IDE and is fully
backward compatible with the Arduino IDE.
The Cerebot MX4cK board is designed to be
fully compatible with the chipKIT MPIDE
system, version 20111209 or later.
The MPIDE uses a serial communications port
to communicate with a boot loader running in
the target board. The serial port on the MX4cK
board is implemented using an FTDI FT232R
USB serial converter. Before attempting to use
the MPIDE to communicate with the MX4cK,
the appropriate USB device driver must be
installed.
The USB serial converter on the Cerebot
MX4cK board uses USB connector J8, labeled
UART on the board. This connector is a micro-
USB. Use a standard USB-A to mini-B cable
(provided with the board) to connect the board
to an available USB port on the PC.
In the MPIDE, use the “Tools.Board command
to select the Cerebot MX4cK from the list of
available boards. Use the “Tools.Serial Port
command to choose the appropriate serial port
from the list of available serial ports on the PC.
When the MPIDE needs to communicate with
the MX4cK board, the PIC32 microcontroller is
reset and starts running the boot loader. The
MPIDE then establishes communications with
the boot loader and downloads the program to
the board.
When the MPIDE opens the serial
communications connection on the PC, the
DTR pin on the FT232R chip is driven low.
This pin is coupled through a capacitor to the
MCLR pin on the PIC32 microcontroller.
Driving the MCLR line low resets the
microcontroller, restarting execution with the
boot loader.
Once the MPIDE has established
communication with the boot loader, it
transfers the user’s program to the boot loader,
which programs it into the flash memory in the
Microcontroller.
The automatic reset action when the serial
communications connection is opened can be
disabled. To disable this operation, remove the
shorting block from jumper JP8. The shorting
block is reinstalled on JP8 to restore operation
with the MPIDE.
Two red LEDs (LD7 and LD8) will blink when
data is being sent or received between the
Cerebot MX4cK and the PC over the serial
connection.
The header connector J7 provides access to
the other serial handshaking signals provided
by the FT232R. Connector J7 is not loaded at
the factory but can be installed by the user to
access these signals.
Additional Reference Documentation
For additional information about the Cerebot
MX4cK board and the use and operation of the
PIC32MX460F512L microcontroller, refer to
the following documents in addition to this
reference manual.
The Cerebot MX4cK Schematic, available on
the Cerebot MX4cK product page on the
Digilent web site: www.digilentinc.com
Cerebot MX4cK Reference Manual
www.digilentinc.com page 5 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
The PIC32MX3XX/4XX Family Data Sheet and
the PIC32MX Family Reference Manual
available from the Microchip web site:
www.microchip.com
Additional reference material for the chipKIT
MPIDE system is included in the MPIDE
software download, and on-line in the chipKIT
wiki. Help with questions and problems using
the board with the chipKIT MPIDE software
can also be obtained in the chipKIT forums:
www.github.com/chipKIT32 (software
download)
www.chipKIT.org/wiki
www.chipKIT.org/forum
Cerebot MX4cK Reference Manual
www.digilentinc.com page 6 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
Board Hardware Description
The following describes the various hardware
features of the Cerebot MX4cK board and the
PIC32XM460F512L microcontroller.
Power Supply
Switch SW1, in the lower left corner of the
board is the power switch. Place this switch in
the ON position to turn on board power and in
the OFF position to turn off board power.
The Cerebot MX4cK may be USB powered via
either the USB debug port, the USB UART
port, or the USB device port. Alternatively, the
board may be powered via dedicated,
“external”, power supply connectors.
Jumper block J12 is used to select the power
source used to provide power to the board.
This jumper block provides the following four
positions:
USB – power is supplied by USB device
connector J15. This is used when the
Cerebot MX4cK is used to implement a
USB bus powered device.
EXT – Power is supplied by one of the
external power connectors.
DBG – Power is supplied by DEBUG USB
connector J9.
URT – Power is supplied by UART USB
connector J8.
Place the shorting block in the appropriate
position on J12 for the desired power source
for the board.
The Cerebot MX4cK is rated for external power
from 3.6 to 12 volts DC. Using a voltage
outside this range could damage the board and
connected devices. If operating the board at a
voltage higher than 5V, it is necessary to
remove the shorting block on jumper JP10 to
protect the USB load switch, which is limited to
a maximum voltage of 5.5V. When operating
from any of the three USB sources, the input
voltage will be 5V.
The output of power select jumper block J12 is
connected to the VIN power bus. The VIN
power bus supplies power to Q3, a PFET load
switch, and IC9, the voltage regulator for the
licensed debugger circuit. The licensed
debugger circuit is powered as soon as the
power switch is turned on. Power to the rest of
the board is controlled by Q3. The main board
power supply is enabled by bringing the gate of
Q3 low. When Q3 is turned on, the unregulated
power bus BRD_VU is powered.
If the licensed debugger is connected to an
active USB port, it enumerates with the host
computer and once it has successfully been
enumerated, it turns on the main board power
supply by driving the PWR_ON signal high.
If the licensed debugger is not connected to an
active USB port, the PWR_ON signal is
ignored and board power is turned on
immediately by the power switch via transistor
Q4.
The main board power supply is a switch mode
voltage regulator implemented using a
Microchip MCP16301 switch mode step-down
regulator. This regulator provides 3.3V at up to
600 mA with approximately 96% efficiency.
This powers the main board regulated power
bus BRD_3V3
There are three connectors on Cerebot MX4cK
for connecting an external power supply: J13,
J14, and J18.
The barrel connector, J13, is useful for desktop
development and testing where using USB or
battery power is not suitable. J13 is the
connector used by the AC adapter optionally
available from Digilent, or other sources. J13
is a 2.5mm x 5.5mm coaxial connector wired
with the center terminal as the positive voltage.
Cerebot MX4cK Reference Manual
www.digilentinc.com page 7 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
Connector J14 is a two-pin male header that
provides easy battery or battery-pack
connection. Digilent has both two-cell and
four-cell AA battery holders with two pin
connectors available for connection to J14.
Connector J18 is a screw terminal connector
for an alternative power supply connection for
use with higher current battery packs, bench
supplies or other power sources where use of
a hard wired power supply is desirable.
Connectors J13, J14, and J18 are wired in
parallel and connect to the “External Power”
position on the Power Select jumper block J12.
A shorting block should be placed on the “EXT”
position of J12 when using this option for board
power. Only one of these three power
connectors should be used at a time. If
multiple power supplies are connected
simultaneously, damage to the board or the
power supplies may occur.
The Cerebot MX4cK has a second screw
terminal connector, J5 that supplies power to
the servo power bus, VS, to power the RC
hobby servo connectors. This allows servos to
be powered from a separate power supply than
the one powering the electronics on the
Cerebot MX4cK. This can be useful when
using servos that draw large amounts of
power.
Jumper JP1 can be used to connect the
Cerebot MX4cK unregulated power bus
BRD_VU to the servo power bus, VS. When
no shorting block is installed on JP1, the
BRD_VU and VS busses are separate. When
a shorting block is on JP1, the two busses are
joined and the BRD_VU bus can be powered
in any of the previously indicated ways, or from
connector J5.
The Cerebot MX4cK can provide power to any
peripheral modules attached to the Pmod
connectors and to I
2
C devices powered from
the I
2
C daisy chain connectors, J2 and J6.
Each Pmod connector provides power pins
that can be powered by either unregulated
voltage, BRD_VU, or regulated voltage,
BRD_3V3, by setting the voltage jumper block
to the desired position. The I
2
C power
connectors only provide regulated voltage,
BRD_3V3.
The PIC32 microcontroller and on-board I/O
devices operate at a supply voltage of 3.3V
provided by the BRD_3V3 bus. The PIC32
microcontroller will use approximately 55mA
when running at 80MHz. The remaining
current is available to provide power to
attached Pmod and I
2
C devices.
Power Supply Monitor Circuit
The Cerebot MX4cK microcontroller can
measure the power supply voltage on the
BRD_VU and VS power busses using the
provided power supply monitor circuits. This
feature is especially useful when using
batteries because it allows the microcontroller
firmware to determine the charge state of the
battery and potentially notify the user when a
battery supply is low.
Each power supply monitor circuit is made up
of a voltage divider that divides the power bus
voltage by four, and a filter capacitor to
stabilize the voltage. Jumper JP4 enables the
supply monitor circuit for BRD_VU power bus,
and jumper JP2 enables the supply monitor
circuit for the VS power bus. The analog to
digital converter built into the PIC32
microcontroller is used to measure the power
supply voltages. ADC channel 8 is used to
measure BRD_VU and ADC channel 9 is used
to measure VS.
When using the Cerebot MX4cK with the
chipKIT MPIDE, these are accessed using the
analogRead() function using analog input A6 to
read BRD_VU and A7 to read VS.
Cerebot MX4cK Reference Manual
www.digilentinc.com page 8 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
Pmod™ Connectors
The Cerebot MX4cK has nine connectors for
connecting Digilent Pmod peripheral modules.
The Pmod connectors, labeled JA–JF and JH–
JK, are 2x8 right-angle, female pin header
connectors. Each connector has an associated
power select jumper block labeled JPA–JPF
and JPH–JPK.
Digilent Pmods are a line of small peripheral
modules that provide various kinds of I/O
interfaces. The Pmod product line includes
such things as button, switch and LED
modules, connector modules, LCD displays,
high current output drivers, various kinds of RF
interfaces, and many others.
There are two styles of Pmod connector: six-
pin and twelve-pin. Both connectors use
standard pin headers with 100mil spaced pins.
The six-pin connectors have the pins in a 1x6
configuration, while the twelve-pin connectors
use a 2x6 configuration. All of the Pmod
connectors on the Cerebot MX4cK are twelve
pin connectors.
The six-pin connectors provide four I/O signals,
ground and a switchable power connection.
The twelve-pin connectors provide eight I/O
signals, two power and two ground pins. The
twelve-pin connectors have the signals
arranged so that one twelve-pin connector is
equivalent to two of the six-pin connectors.
Pins 1–4 and 7–10 are the signal pins, pins 5
and 11 are the ground pins and pins 6 & 12 are
the power supply pins.
The pin numbering that Digilent uses on the
twelve-pin Pmod connectors is non-standard.
The upper row of pins are numbered 1–6, left
to right (when viewed from the top of the
board), and the lower row of pins are
numbered 7–12, left to right. This is in keeping
with the convention that the upper and lower
rows of pins can be considered to be two six-
pin connectors stacked. When viewed from the
end of the connector, pin 1 is the upper right
pin and pin 7 is immediately below it (closer to
the PCB).
Each Pmod connector has an associated
power select jumper. These are used to select
the power supply voltage supplied to the power
supply pin on the Pmod connector. They are
switchable between either the unregulated
power supply, BRD_VU, or the 3.3V main
board supply, BRD_3V3. Place the shorting
block in the 3V3 position for regulated 3.3V
and in the VU position to use the unregulated
supply.
Each signal pin on the Pmod connectors is
connected to an input/output pin on the PIC32
microcontroller. Each pin has a 200 ohm series
resistor and an ESD protection diode. The
series resistor provides short circuit protection
to prevent damaging the I/O block in the
microcontroller if the pin is inadvertently
shorted to VDD or GND, or two outputs are
shorted together. The ESD protection diode
protects the I/O block from damage due to
electro-static discharge.
Although ESD protection is provided between
the connector pins and the microcontroller
pins, ESD safe handling procedures should be
followed when handling the circuit board. The
pins on the microcontroller and other circuits
on the board are exposed and can be
damaged through ESD when handling the
board.
Digilent Pmod peripheral modules can either
be plugged directly into the connectors on the
Cerebot MX4cK or attached via cables.
Digilent has a variety of Pmod interconnect
cables available.
See the Pinout Tables in Appendix C, for more
information about connecting peripheral
modules and other devices to the Cerebot
MX4cK. These tables describe the mapping
between pins on the PIC32MX460
microcontroller and the pins on the various
connectors.
Cerebot MX4cK Reference Manual
www.digilentinc.com page 9 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
The PIC32 microcontroller can source or sink a
maximum of 18mA on all digital I/O pins.
However, to keep the output voltage within the
specified input/output voltage range (V
OL
0.4V,
V
OH
2.4V) the pin current must be restricted to
+7/-12mA. The maximum current that can be
sourced or sunk across all I/O pins
simultaneously is +/-200mA. The maximum
voltage that can be applied to any digital I/O
pin is 5.5V. For more detailed specifications,
refer to the PIC32MX3XX/4XX Family Data
Sheet.
Digital Inputs and Outputs
The Cerebot MX4cK board provides access to
72 of the I/O pins from the PIC32
microcontroller via the Pmod connectors. Two
additional I/O pins can be accessed via the I
2
C
connector, J6. Any of the pins on the Pmod or
I
2
C connectors can be individually accessed for
digital input or output. Note that when the I
2
C
signals on J6 are being used for I
2
C
communications, they are not available for
general purpose I/O. Note that the signals on
I
2
C connector J2 are shared with pins 1 & 2 of
Pmod connector JF.
On PIC32 microcontrollers, the input/output
pins are grouped into I/O Ports and are
accessed via peripheral registers in the
microcontroller. There are seven I/O Ports
numbered A–G and each is 16 bits wide.
Depending on the particular PIC32
microcontroller, some of the I/O Ports are not
present, and not all 16 bits are present in all
I/O Ports.
Each I/O Port has four control registers: TRIS,
LAT, PORT, and ODC. The registers for I/O
Port A are named TRISA, LATA, PORTA and
ODCA. The registers for the other I/O Ports are
named similarly.
The TRIS register is used to set the pin
direction. Setting a TRIS bit to 0 makes the pin
an output. Setting the TRIS bit to 1 makes the
pin an input.
The LAT register is used to write to the I/O
Port. Writing to the LAT register sets any pins
configured as outputs. Reading from the LAT
register returns the last value written.
The PORT register is used to read from the I/O
Port. Reading from the PORT register returns
the current state of all of the pins in the I/O
Port. Writing to the PORT register is equivalent
to writing to the LAT register.
PIC32 microcontrollers allow any pin set as an
output to be configured as either a normal
totem-pole output or as an open-drain output.
The ODC register is used to control the output
type. Setting an ODC bit to 0 makes the pin a
normal output and setting it to 1 makes the pin
a open drain output.
Refer to the PIC32MX3XX/4XX Family Data
Sheet, and the PIC32 Family Reference
Manual, Section 12, IO Ports, for more detailed
information about the operation of the I/O Ports
in the microcontroller.
The chipKIT MPIDE system uses logical pin
numbers to identify digital I/O pins on the
connectors. These pin numbers start with pin 0
and are numbered up consecutively.
On the Cerebot MX4cK, pin numbers 0–71 are
used to access the pins on the Pmod
connectors and pin numbers 72 and 73 are
used for the two signal pins on the I
2
C
connector, J6. The pin numbers are assigned
so that connector JA pin 1 (JA-01) is digital pin
0, JA pin 2 (JA-02) is digital pin 1, and so on.
Pins 0-7 are on connector JA, pins 8-15 on JB,
pins 16-23 on JC, pins 24-31 and so on. Refer
to the tables in Appendix C for detailed
information about the pin mapping between
Pmod connector, logical pin number, and
PIC32 microcontroller pin number and pin
function.
Cerebot MX4cK Reference Manual
www.digilentinc.com page 10 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
When using the Cerebot MX4cK with the
chipKIT MPIDE the functions pinMode(),
digitalRead(), and digitalWrite() are used for
digital pin I/O.
The pinMode() function is used to set the pin
direction. Pin direction can be set to: INPUT,
OUTPUT, or OPEN. OPEN is used for open-
drain and implies output.
The digitalRead() and digitalWrite() functions
are used to read or write the pins.
DigitalRead() returns the current state of the
specified pin, and digitalWrite is used to set the
state of an output pin. The pin state can be
either HIGH or LOW.
PIC32MX460 Pin 20
Pin 20 on the PIC32MX460 has multiple
functions. It provides the VBUSON signal when
the board is being used to implement a USB
host. It also provides the positive input for
analog comparator 1, analog to digital
converter input AN5, change notice interrupt
CN7 and bit 5 of general I/O Port B. In order to
support all of these different functions, jumper
block J16 is used to select the routing of this
pin.
Normally, the shorting block will be in the JJ-8
position. This connects microcontroller pin 20
to Pmod connector JJ pin 8. This allows the
use of most functions of this pin.
When the board is being used as a USB host,
the shorting block is placed in the VBUSON
position to allow use of the VBUSON signal to
control power to the USB bus.
Placing the shorting block in the DAC position
connects the output of IC3, the MCP4725
digital to analog converter to microcontroller
pin 20. This allows use of the DAC output to be
used as a programmable reference for analog
comparator 1.
Push Buttons and LEDs
The Cerebot MX4cK board provides two push
button switches for user input and four LEDs
for output. The buttons, BTN1 and BTN2 are
connected to I/O pins TRCLK/RA6 and
TRD3/RA7 respectively. To read the buttons,
pins 6 and 7 of I/O Port A must be set as
inputs by setting the corresponding bits in the
TRISA register. The button state is then
obtained by reading the PORTA register.
When a button is pressed, the corresponding
bit will be high (‘1’). Note that the
microcontroller pins used by the buttons are
shared with pins 3 & 4 of Pmod connector JF.
The four LEDs are connected to bits 10-13 of
I/O Port B. LED 1 is connected to bit 10, LED 2
is connected to bit 11, and so on. These four
bits are also shared with pins 1-4 of Pmod
connector JK. To use the LEDs, set the
desired bits as outputs by clearing the
corresponding bits in the TRISB register. The
state of an LED is set by writing values to the
LATB register. Setting a bit to 1 will illuminate
the LED and setting the bit to 0 will turn it off.
When using the MPIDE and the chipKIT
system, the buttons are accessed using
digitalRead() and the LEDs using digitalWrite().
Use the following pins to access them:
BTN1 – PIN_BTN1, pin 42, RA6
BTN2 – PIN_BTN2, pin 43, RA7
LD1 – PIN_LED1, pin 64, RB10
LD2 – PIN_LED2, pin 65, RB11
LD3 – PIN_LED3, pin 66, RB12
LD4 – PIN_LED4, pin 67, RB13
RC Servo Connectors
The Cerebot MX4cK provides eight 3-pin RC
hobby servo connectors, labeled S1-S8, for
direct control of servos in robotics and
embedded hardware actuator applications.
The connectors share the I/O pins with Pmod
connector JC. Individual I/O pins may be
Cerebot MX4cK Reference Manual
www.digilentinc.com page 11 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
accessed through the JC connector if they're
not being used to control a servo.
RC Servos use a pulse width modulated
signal, PWM, to control the servo position.
The 16-bit timers in the PIC32 microcontroller
have the ability to generate PWM signals using
the output compare registers. However, it is
also possible to use timer interrupts to
accomplish this same thing. Using timer
interrupts allows a single timer to be used to
control the signal timing for all eight servo
connectors.
The servo connectors on the Cerebot MX4cK
board are intended to be driven using timer
interrupts rather than directly by the pulse
width modulators in the internal timers. This
frees the pulse width modulators for other
uses, such as DC motor speed control.
Digilent has a reference design available that
illustrates using timer interrupts to control
signal timing for the PWM signals to control RC
servos.
When using the chipKIT MPIDE development
environment, the Servo library can be used to
drive servos attached to these connectors. The
symbols PIN_S1 through PIN_S8 can be used
to specify the servo connectors being used.
The following give the correspondence
between servo connector, MPIDE digital pin
number, and microcontroller I/O Port register
and bit position:
S1 – PIN_S1, digital pin 16, RG12
S2 – PIN_S2, digital pin 17, RG13
S3 – PIN_S3, digital pin 18, RG14
S4 – PIN_S4, digital pin 19, RG15
S5 – PIN_S5, digital pin 20, RG0
S6 – PIN_S6, digital pin 21, RG1
S7 – PIN_S7, digital pin 22, RF0
S8 – PIN_S8, digital pin 23, RF1
There are three options for supplying power to
the servo connections:
A common power bus (BRD_VU) for the
Cerebot MX4cK and servos
Separate on-board power busses for the
Cerebot MX4cK (BRD_VU) and the servos
(VS)
An on-board power bus for the Cerebot
MX4cK (BRD_VU) and an external power
bus for servos
For the first case above: Install a shorting
block on jumper JP1 to connect the VS servo
power bus to the BRD_VU power bus. The
servo power bus is then powered from the
same source as the BRD_VU power bus.
Powering a large number of servos from USB
power is not recommended. Pin header
jumpers and shorting blocks such as JP1 are
rated for a maximum of 2A of current. USB
power (J12 in the USB, DBG, or URT
positions) should only be used to power a
couple of servos to avoid exceeding the
500mA that a USB device is allowed to use.
For the second case above: Remove the
shorting block from jumper JP2 to make the VS
servo power bus independent from the
BRD_VU bus. Attach the servo power supply
to screw terminal connector J5.
Finally, for very high servo current applications,
a separate power bus external to the Cerebot
MX4cK can be used to provide servo power. In
this case, remove the shorting block on JP1,
tie the external servo power bus ground to the
Cerebot MX4cK ground through the ground
terminal on J10, and use pin 1 on the servo
connectors to bring the servo control signals
out to the servos. The servo power and
ground connections are made off-board.
The on-board servo power bus can be used to
provide a maximum of 2A to each servo
connector and 5A total to all servo connectors.
5V Signal Compatibility
The PIC32 microcontroller operates at 3.3V.
And the I/O pins provide 3.3V logic levels. It is
possible, in some circumstances, to use the
Cerebot MX4cK Reference Manual
www.digilentinc.com page 12 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
Cerebot MX4cK to operate with 5V logic
devices.
There are two issues to consider when dealing
with 5V compatibility for 3.3V logic. The first is
protection of 3.3V inputs from damage caused
by 5V signals. The second is whether the 3.3V
output is high enough to be recognized as a
logic high value by a 5V input.
The digital I/O pins on the PIC32
microcontroller are 5V tolerant. It is safe to
apply 5V logic signals directly to these pins
without risk of damage to the microcontroller.
The analog capable I/O pins on the PIC32 are
not 5V tolerant. The absolute maximum
voltage rating for the analog pins is 3.6V.
Generally, the analog pins are the pins on I/O
port B, however, there are other non-5V
tolerant pins on the device.
Refer to the PIC32MX3XX/4XX Family Data
Sheet for more information about which pins
on the device are 5V tolerant before applying
input signals higher than 3.3V to any pin on the
Cerebot MX4cK board.
If a 5V signal is applied to a non-5V tolerant
pin, some external means must be used to limit
the applied voltage to 3.6V or less. The
Cerebot MX4cK board provides 200 ohm
series resistors between the microcontroller
pins and the Pmod connector pins. These
resistors are primarily intended to provide short
circuit protection on the outputs, but will also
provide limited protection if a 5V signal is
inadvertently applied to a non-5V tolerant pin.
One technique that can be used to limit and
input voltage to a safe level is to use a 200
ohm series resistor and Shotkey diode
connected to the 3.3V supply to clamp the
voltage.
The minimum output high voltage of the PIC32
microcontroller is rated at 2.4V when sourcing
12mA of current. When driving a high
impedance input (typical of CMOS logic) the
output high voltage will be close to 3.3V. Some
5V devices will recognize this voltage as a
logic high input, and some won’t. Many 5V
logic inputs will work reliably with 3.3V inputs.
If the 3.3V logic output is not sufficient for 5V
logic input to be reliably seen as a logic high
input signal, some external means must be
used to raise the output level. In some cases, a
pull-up resistor to 5V is sufficient. A pull-up
resistor in the range of 2Kohm–10kOhm can
be used. This technique should not be used
with pins that are not 5V tolerant on the PIC32
microcontroller.
Cerebot MX4cK Reference Manual
www.digilentinc.com page 13 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
PIC32 Peripheral Devices
The following describes the peripheral devices
available in the PIC32MX460F512L
microcontroller and how they are accessed on
the Cerebot MX4cK board.
CPU Clock Source
The PIC32 microcontroller supports numerous
clock source options for the main processor
operating clock. The Cerebot MX4ck board is
designed to support either a silicon resonator
from Discera, IC8, for use with the EC
oscillator option, or an external crystal for use
with the XT oscillator option. Standard
production boards will have an 8Mhz Discera
silicon resonator loaded and the EC oscillator
option should be used. If IC2 is not loaded, an
8Mhz crystal will be loaded for X1 (on the
bottom of the board) and the XT oscillator
option should be used. Oscillator options are
selected via the configuration variables
specified using the #pragma config statement.
Use
#pragma config POSCMOD=EC
to select
the EC option and
#pragma config
POSCMOD=XT
to select the XT option.
Using the internal system clock phase-locked
loop (PLL), it is possible to select numerous
multiples or divisions of the 8Mhz input
frequency to produce CPU operating
frequencies up to 80Mhz. The clock circuit PLL
provides an input divider, multiplier, and output
divider. The external clock frequency (8Mhz) is
first divided by the selected input divider value.
This is multiplied by the selected multiplier
value and then finally divided by the selected
output divider. The result is the system clock,
SYSCLK, frequency. The SYSCLK frequency
is used by the CPU, DMA controller, interrupt
controller and pre-fetch cache.
The values controlling the operating frequency
are specified using the PIC32MX460
configuration variables. These are set using
the #pragma config statement. Use
#pragma config FPLLIDIV to set the input
divider, #pragma config FPLLMUL to set
the multiplication factor and #pragma config
FPLLODIV to set the output divider. Refer to
the PIC32MX3XX/4XX Family Data Sheet and
the PIC32MX Family Reference Manual,
Section 6. Oscillators, for information on how
to choose the correct values, as not all
combinations of multiplication and division
factors will work.
In addition to configuring the SYSCLK
frequency, the peripheral bus clock, PBCLK,
frequency is also configurable. The peripheral
bus clock is used for most peripheral devices,
and in particular is the clock used by the
timers, and serial controllers (UART, SPI, I2C).
The PBLCK frequency is a division of the
SYSCLK frequency selected using #pragma
config FPBDIV. The PBCLK divider can be
set to divide by 1, 2, 4, or 8 using the values
DIV_1, DIV_2, DIV_4 or DIV_8.
The following example will set up the Cerebot
MX4cK for operation using the Discrea silicon
resonator with a SYSCLK frequency of 80Mhz
and a PBCLK frequency of 10Mhz:
#pragma config FNOSC = PRIPLL
#pragma config POSCMOD = EC
#pragma config FPLLIDIV = DIV_2
#pragma config FPLLMUL = MUL_20
#pragma config FPLLODIV = DIV_1
#pragma config FPBDIV = DIV_8
Documentation for the PIC32 configuration
variables can be found in the PIC32MX
Configuration Settings guide. This is found
using the “Help.Topics…” command in the
MPLAB IDE. Also, refer to Appendix B for an
example of setting the configuration variables.
When using the Cerebot MX4cK with the
chipKIT MPIDE software, the clock source is
set by the boot loader and no action is
required.
Cerebot MX4cK Reference Manual
www.digilentinc.com page 14 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
USB Interface
The PIC32MX460 microcontroller contains a
USB 2.0 Compliant, Full Speed Device and
On-The-Go (OTG) controller. This controller
provides the following features:
USB full speed host and device support
Low speed host support
USB OTG support
Endpoint buffering anywhere in system
RAM
Integrated DMA to access system RAM
and Flash memory.
The USB controller uses a phased lock loop,
PLL, to generate the necessary USB clock
frequency from the external primary oscillator
input frequency. By default, this PLL is
disabled. In order to use the USB controller, it
is necessary to enable the USB PLL, and set
the input divider to the correct value to
generate a valid USB clock. The input to the
USB PLL must be 4Mhz. The Cerebot MX4cK
provides an 8Mhz clock to the PIC32
microcontroller, so a USB PLL input divider
value of 2 must be used. These parameters
are set in the PIC32 microcontroller
configuration registers using the
#pragma
config
statement. The following statements
must be used to configure the PIC32
microcontroller for use of the USB controller:
#pragma config UPLLEN = ON
#pragma config UPLLIDIV = DIV_2
When using the chipKIT MPIDE development
environment, these will have been set by the
boot loader, so no action is needed.
When operating as a USB device, the Cerebot
MX4cK can be operated as a self-powered
device or as a bus powered device. To
operate as a self-powered device, an external
power supply should be connected to one of
the external power connectors (J13, J14 or
J18) and a shorting block placed on the “EXT”
position of J12. The external power supply
must be a regulated 5V supply. To operate as
a USB bus powered device, the shorting block
should be placed in the USB Device position,
“USB”, on J12.
Note that when operating as a bus powered
device, the Cerebot MX4cK and all devices
connected to it are limited to no more than
500mA of current.
Connector J15, on the bottom of the board in
the lower right corner is the Device/OTG
connector. This is a standard USB micro-AB
connector. Connect a cable with a micro-A
plug (optionally available from Digilent) from
this connector to an available USB port on a
PC or USB hub for device operation.
When operating as a USB host, the Cerebot
MX4cK must be externally powered. Connect
a regulated 5V power supply to one of the
external power connectors (J13, J14, or J18)
and ensure that the shorting block is in the
center, “EXT” position of J12. The power
supply used must be a regulated 5V supply.
The Cerebot MX4cK board provides power to
the attached USB device when operating as a
host, and the USB specification requires the
use of a 5V power supply. NOTE: Providing a
voltage greater than 5V can damage the
Cerebot MX4cK board and/or the USB device
being used.
Connector J17, on the top of the board in the
lower right corner is the USB host connector.
This is a standard USB type A receptacle. USB
devices may be connected either directly or
through a standard USB cable.
Jumper JP6 is used to route power to the host
connector being used. Place the shorting
block in the “HOST” position when using the
standard USB type A (host) connector, J17.
Place the shorting block in the “OTG” position
for use with the USB micro-AB (OTG)
connector, J15.
Cerebot MX4cK Reference Manual
www.digilentinc.com page 15 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
When operating as a USB host, the
PIC32MX460 microcontroller controls
application of power to the connected device
via the VBUSON control pin. Bus power is
applied to the device by driving the VBUSON
pin high. Power is removed from the device by
driving the VBUSON pin low. The VBUSON pin
is accessed via bit 3 of the U1OTGCON
register.
Pin 20 of the PIC32MX460 microcontroller is
used for the VBUSON function. Place the
shorting block in the VBUSON position of
jumper block J16 when using the Cerebot
MX4cK for USB host operation.
The VBUSON pin drives the enable input of a
TPS2051B Current-Limited Power Distribution
Switch to control the application of USB power
to the host connector. This switch has over-
current detection capability and provides an
over-current fault indication by pulling the
signal P32_USBOC low. Jumper JP5 is used
to enable monitoring of the overcurrent fault
indication. The over-current output pin can be
monitored via the INT2/RE9 pin on the
PIC32MX460 microcontroller when a shorting
block is installed on JP5. The INT2/RE9 pin is
also connected to Pmod connector JE, pin 7
(JE-07). Pmod connector pin JE-07 should not
be used when using INT2/RE9 to monitor the
USB overcurrent fault indicator. Remove the
shorting block from JP5 to restore normal
operation of JE-07.
Details about the operation of the TPS2051B
can be obtained from the data sheet available
at the Texas Instruments web site.
Jumper JP10 can be used to disconnect the
USB load switch, IC6, when the board is
operating from a power supply with a higher
voltage than 5V. When the Cerebot MX4cK is
operating as a USB host, a shorting block must
be in place on JP10.
The Microchip Applications Library, MAL,
available on the Microchip web site contains
USB driver code for implementing either USB
host devices or USB function devices. This
library contains numerous examples
demonstrating both device and host operation
of PIC32 microcontrollers. With minor
modification or configuration, these reference
designs are suitable to use for developing USB
firmware for the Cerebot MX4cK board.
Digilent has USB libraries available that can be
used to develop both USB device and USB
host applications when using the board with
the chipKIT MPIDE development environment.
These libraries can be downloaded from the
Cerebot MX4cK product page on the Digilent
web site.
The Digilent chipKIT libraries contain examples
illustrating various USB host and device
applications.
UART Interface
The PIC32MX460 microcontroller provides two
UART interfaces, UART1 and UART2. The
UARTs can provide either a 2-wire or a 4-wire
asynchronous serial interface. The 2-wire
interface provides receive (RX) and transmit
(TX) pins. The 4-wire interface includes
request-to-send (RTS) and clear-to-send
(CTS) in addition to receive and transmit.
UART1 can be accessed from Pmod connector
JE and UART2 can be accessed from Pmod
connector JH using the following pins:
U1CTS JE-01
U1TX JE-02
U1RX JE-03
U1RTS JE-04
U2CTS JH-01
U2TX JH-02
U2RX JH-03
U2RTS JH-04
Cerebot MX4cK Reference Manual
www.digilentinc.com page 16 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
Detailed information about the operation of the
UART peripherals can be found in the PIC32
Family Reference Manual, Section 21, UART.
The USB Serial converter is connected to
UART1. The MPIDE uses this to communicate
with the boot loader. This can also be used for
a serial communications interface between the
Cerebot MX4cK board and other software
running on a PC. Resistors are used to
decouple the USB serial interface and so
UART1 can also be used via Pmod connector
JE when it is not being used to communicate
via the USB serial converter.
Note that when using the MPIDE software,
devices connected to JE can interfere with the
operation of the serial interface and prevent
the MPIDE from successfully downloading
sketches to the board. If this happens,
disconnect the external device from JE until
the sketch has been downloaded and then
reconnect it.
When using the Cerebot MX4cK with the
MPIDE and the chipKIT system, the UARTs
are accessed using the HardwareSerial facility
built into the system. UART1, connector JE, is
accessed using the Serial object and
UART2, connector JH, is accessed using
Serial1.
Serial Peripheral Interface (SPI)
SPI is a four wire synchronous serial interface
and SPI devices can operate as either master
devices or as slave device. The PIC32
microcontroller labels the four SPI signals as
Slave Select (SS), Serial Data Out (SDO),
Serial Data In (SDI), and Serial Clock (SCK). A
master device transmits SS, SDO and SCK,
and receives SDI. A slave device receives SS,
SDI, and SCK and transmits SDO. The SS
signal is used to enable the slave device, and
this signal is only significant for slave devices.
A master device can use any general purpose
I/O pin to generate SS to enable the slave.
An SPI transaction begins with the master
device bringing SS low. When the slave sees
SS go low it becomes enabled and waits for
the master to send data. The master shifts
data out on SDO and simultaneously shifts
data in on SDI. The slave device receives data
from the master on its SDI pin and
simultaneously sends data to the master on its
SDO pin. Each time the master sends a byte to
the slave, it simultaneously receives a byte
from the slave.
The PIC32MX460 microcontroller provides two
Serial Peripheral Interfaces, SPI1 and SPI2.
SPI2 is accessed via Pmod connector JB and
SPI1 is accessed via connector J1. Because of
the way that peripheral functions are shared
the pins for SPI1, the signals on J1 are shared
with various Pmod connectors around the
board. For this reason, when using only a
single SPI port, SPI2 is the preferred port to
use.
The following gives the mapping between SPI
signals and connector pins:
SS2 JB-01
SDO2 JB-02
SDI2 JB-03
SCK2 JB-04
SS1 J1-01 (also JD-03)
SDO1 J1-02 (also JH-08)
SDI1 J1-03 (also JK-10)
SCK1 J1-04 (also JD-09)
Detailed information about the operation of the
SPI peripherals can be found in the PIC32
Family Reference Manual, Section 23, Serial
Peripheral Interface.
When using the Cerebot MX4cK with the
MPIDE and the chipKIT system, the SPI ports
are accessed using either the standard chipKIT
SPI library or using the Digilent DSPI library.
Cerebot MX4cK Reference Manual
www.digilentinc.com page 17 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
The standard SPI library supports access to a
single SPI port, SPI2. This is accessed using
the SPI object.
The DSPI library supports access to both SPI
ports. The DSPI0 object class is used to create
an object used to access the default SPI port,
SPI2, connector JB. The DSPI1 object class is
used to access SPI1, connector J1.
I
2
C™ Interface
The Inter-Integrated Circuit (I
2
C
TM
) Interface
provides a medium speed (100K or 400K bps)
synchronous serial communications bus. The
I
2
C interface provides master and slave
operation using either 7 bit or 10 bit device
addressing. Each device is given a unique
address, and the protocol provides the ability
to address packets to a specific device or to
broadcast packets to all devices on the bus.
Refer to the Microchip PIC32MX3XX/4XX
Family Data Sheet and the PIC32 Family
Reference Manual, Section 24, Inter-Integrated
Circuit, for detailed information on configuring
and using the I
2
C interface.
The PIC32MX460 microcontroller provides for
two independent I
2
C interfaces. The Cerebot
MX4cK is designed to provide dedicated
access to one of these interfaces, I2C2, using
I
2
C daisy chain connector J6. The other I
2
C
interface, I2C1, is accessed using I
2
C daisy
chain connector J2. The signals for I2C1 are
shared with Pmod connector JF, and also
appear on pins 1 & 2 of JF.
The I
2
C daisy chain connectors provide two
positions for connecting to the I
2
C signals, SDA
and SCL, as well as power and ground. By
using two-wire or four-wire MTE cables
(available separately from Digilent) a daisy
chain of multiple Cerebot MX4cK boards or
other I
2
C-capable boards or devices can be
created.
The I
2
C bus is an open-collector bus. Devices
on the bus actively drive the signals low. The
high state of the I
2
C signals is achieved by pull-
up resistors when no device is driving the lines
low. One device on the I
2
C bus must provide
the pull-up resistors. On the Cerebot MX4cK,
I2C2 has fixed 2.2K ohm pull-up resistors.
I2C1 has selectable pull-up resistors that can
be enabled or disabled via jumpers J3 and J4,.
The pull-ups are enabled by installing shorting
blocks and are disabled by removing the
shorting blocks. Generally, only one device on
the bus will have the pull-ups enabled.
Pull-ups
Enabled
Pull-ups
Disabled
Jumper Settings for I
2
C Pull-Up Resistors
When using the Cerebot MX4cK with the
MPIDE and the chipKIT system, the I
2
C
interfaces are accessed using the standard
chipKIT Wire library, or the Digilent DTWI
library.
The Wire library supports a single I
2
C interface,
I2C1 on J2. This is accessed using the Wire
object.
The DTWI library supports both I
2
C interfaces.
The DTWI0 object class is used to create an
object for access to I2C1 and the DTWI1 object
class is used to access I2C2.
The pinouts of the I
2
C daisy chain connectors
are as follows:
Connector J2. I2C1
J2-1 – SCL1
J2-2 – SCL1
Cerebot MX4cK Reference Manual
www.digilentinc.com page 18 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
J2-3 – SDA1
J2-4 – SDA1
J2-5 – GND
J2-6 – GND
J2-7 – BRD_3V3
J2-8 – BRD_3V3
Connector J6, I2C2
J6-1 – SCL2
J6-2 – SCL2
J6-3 – SDA2
J6-4 – SDA2
J6-5 – GND
J6-6 – GND
J6-7 – BRD_3V3
J6-8 – BRD_3V3
On-Board I
2
C Peripheral Devices
The Cerebot MX4cK provides two on-board I
2
C
peripheral devices, a Microchip 24LC256 serial
EEPROM, and a Microchip MCP4725 Digital to
Analog Converter. These devices are both
connected to I2C2. The 24LC256 is a 256Kbit
(32Kbyte) serial EEPROM device to provide
non-volatile memory storage. The MCP4725 is
a single channel, 12-bit, serial digital to analog
converter that provides an analog output
voltage for various uses. The device address
for IC2, the 24LC256 is 1010000 (0x50). The
device address for IC3, the MCP4725, is
1100000 (0x60).
Refer to the Microchip data sheets for detailed
information on the operation of these devices.
The analog output voltage from IC3 is available
at two places on the Cerebot MX4cK board.
The two pin header, J10, provides the DAC
output voltage and ground for connection to
off-board applications.
The DAC output signal is also available at the
center, DAC, position of jumper block J16.
Placing a shorting block at this position
connects the DAC output to pin 20 on the
PIC32MX460 microcontroller. One of the
functions for this pin is as one of the inputs to
analog comparator #1 on the PIC32 device.
This allows the output of the DAC to be used
as a programmable reference voltage for the
comparator.
Analog Inputs
The PIC32MX460 microcontroller provides a
10-bit analog to digital (A/D) converter that
provides up to sixteen analog inputs. The
Cerebot MX4cK board provides access to 14
of them on the Pmod connectors. The
converted values produced by the A/D
converter will be in the range 0–1023.
For detailed information on the operation and
use of the A/D converter, refer to the PIC32
Family Reference Manual, Section 17, 10-bit
AD Converter.
The analog inputs are accessed using the
analogRead() function in the chipKIT MPIDE
software. The analog input pin number is
specified using the symbols A0–A13. The
digital pin numbers for the pin or the numbers
0–13 can also be used, but using the symbols
A0–A13 is recommended.
The following gives the Pmod connector
position, digital pin number, and
microcontroller I/O port and bit number for the
analog inputs:
A0 – JJ-01, digital pin 56, RB0
A1 – JJ-02, digital pin 57, RB1
A2 – JJ-03, digital pin 58, RB2
A3 – JJ-04, digital pin 59, RB3
A4 – JJ-07, digital pin 60, RB4
A5 – JJ-08, digital pin 61, RB5
A6 – JJ-09, digital pin 62, RB8
A7 – JJ-10, digital pin 63, RB9
A8 – JK-01, digital pin 64, RB10
A9 – JK-02, digital pin 65, RB11
A10 – JK-03, digital pin 66, RB12
A11 – JK-04, digital pin 67, RB13
Cerebot MX4cK Reference Manual
www.digilentinc.com page 19 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
A12 – JB-07, digital pin 12, RB15
A13 – JB-10, digital pin 15, RB14
A/D Converter Reference
The PIC32 microcontroller provides two
reference inputs to the analog to digital
converter. Vref- is used set the lower reference
level and Vref+ is used to set the upper
reference level. These references can be
connected to internal references or external
references using two of the analog input pins.
When the internal references are being used,
Vref- is connected to VSS and Vref+ is
connected to VDD. This means that the
voltage input range at the analog input pins is
0V–3.3V. In this case, an input voltage of 0V
will convert to ~0, an input voltage of 1.65V will
convert to ~511, and an input voltage of 3.3V
will convert to ~1023.
Either one, or both, of the references can be
connected to external reference pins. When
this is done, the references can be set to
voltages other than 0V and 3.3V.
If, for example, both references were selected
to use external references, with 1V applied to
Vref- and 2V applied to Vref+, the input voltage
range at the analog input pins would be from
1V to 2V. An applied voltage of 1V would have
a converted value of ~0, 1.5V would have a
converted value of ~511, and 2V would have a
converted value of ~1023.
When both external references are being used,
Vref+ must have a higher voltage applied to in
than Vref-.
The analog reference input pins appear on
Pmod connector JK, pins 7 & 8. Vref- is on pin
JK-07, and Vref+ is on pin JK-08. These pins
are not available to be used for digital I/O when
being used as an external reference.
When using the chipKIT MPIDE software, the
use of external analog references is selected
using the analogReference() function. The
following values can be used with
analogReference():
DEFAULT – Vref- = 0V, Vref+ = 3.3V
INTERNAL – same as default
EXTERNAL – Vref- = 0V, Vref+ = voltage
at A2
EXTMINUS – Vref- = voltage at A3, Vref+ =
3.3V
EXTPLUSMINUS – Vref- = voltage at A3,
Vref+ = voltage at A2
Timers
The PIC32 microcontroller provides five timers
that can be used for various timing functions.
These timers are each 16 bits wide, although
two pairs, TIMER2/TIMER3 and
TIMER4/TIMER5 can be combined to produce
32 bit wide timers.
A timer consists of a control register, a counter
register, and a period register. The control
register is used to configure the timer for
various modes of operation. The count register
counts cycles of the clock source selected via
the control register. This clock source can be
the peripheral bus clock or a division of the
peripheral bus clock via a pre-scaler divider.
The period register can be used to generate an
interrupt and/or reset the count register when a
pre-determined value is reached.
Each timer has an associated input pin. In
some operating modes, this pin can be used
as an external clock input to the timer, or as a
gate input to turn on/off incrementing of the
counter register under control of an external
signal.
The following gives the Pmod connector
position, chipKIT pin number, and
microcontroller I/O port and bit number for the
timer input pins.
TCK1 – not available
TCK2 – JD-04, digital pin 27, RC01
Cerebot MX4cK Reference Manual
www.digilentinc.com page 20 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
TCK3 – JD-10, digital pin 31, RC02
TCK4 – JE-10, digital pin 39, RC03
TCK5 – JK-10, digital pin 71, RC04
For detailed information on the operation of the
PIC32 timers, refer to the PIC32 Family
Reference Manual, Section 14, Timers.
When using the chipKIT MPIDE software, the
symbols PIN_TCK2, PIN_TCK3, PIN_TCK4,
and PIN_TCK5 can be used to access the
timer input pins.
Control and operation of the timers is not
explicitly provided in the current version of the
chipKIT MPIDE software. This capability will be
added in a future version of the software.
Timers are used implicitly by various core
functions and libraries, however.
Output Compare
The PIC32 microcontroller provides five output
compare units that can be used to control the
timing of state changes on certain output pins
or to generate pulse width modulated (PWM)
outputs.
Each output compare unit works with a
particular output pin (OC1-OC5). It can be
programmed to control the pin in any of the
following ways:
PWM output
Generate continuous pulses
Generate a single pulse
Toggle the output pin
Generate falling edge
Generate rising edge
The output compare units work in conjunction
with a timer. Either Timer2 or Timer3 can be
used with any of the five output compare units.
Refer to the PIC32 Family Reference Manual,
Section 16, Output Compare for detailed
information on the use of the output compares
units.
When using the chipKIT MPIDE software,
these are accessed using the analogWrite()
function. The digital pin number, or preferably,
the symbols PIN_OC1 through PIN_OC5 are
used to specify the pin. The chipKIT MPIDE
software currently only supports using the
output compare units to generate PWM
outputs. It uses Timer2 to control the output
compares.
The following gives Pmod connector position,
chipKIT pin number, and microcontroller I/O
port and bit number for the output compare
unit’s output pins:
OC1 – JH-08, digital pin 53, RD0
OC2 – JD-02, digital pin 25, RD1
OC3 – JD-08, digital pin 29, RD2
OC4 – JE-08, digital pin 37, RD3
OC5 – JB-09, digital pin 14, RD4
Input Capture
The PIC32 microcontroller provides five input
capture units. An input capture unit works in
conjunction with a timer and monitors the state
of an associated pin. When the pin changes
state, the current value of the timer is captured.
The input capture units can be used with either
Timer2 or Timer3.
The input capture unit can be programmed to
be sensitive to either a rising edge, a falling
edge, or both edges on the input pin. An
interrupt can also be signaled when an input
capture is triggered. Each input capture has a
four level deep FIFO that can buffer up to four
capture events.
For detailed information on the operation and
use of the input capture units, refer to the
PIC32 Family Reference Manual, Section 15,
Input Capture.
Cerebot MX4cK Reference Manual
www.digilentinc.com page 21 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
The following gives the Pmod connector
position, chipKIT pin number, and
microcontroller port and bit number for the
input capture units input pins:
IC1 – JH-09, digital pin 54, RD08
IC2 – JD-03, digital pin 26, RD09
IC3 – JD-03, digital pin 30, RD10
IC4 – JE-09, digital pin 38, RD11
IC5 – JK-09, digital pin 70, RD12
When using the chipKIT MPIDE software, the
symbols PIN_IC1, PIN_IC2, PIN_IC3,
PIN_IC4, and PIN_IC5 can be used to access
the capture input pins.
Use of the input capture units is not currently
supported in the chipKIT MPIDE software. This
will be added in a future version.
External Interrupts
The PIC32 microcontroller provides five
external interrupt inputs. An external interrupt
input can be used to generate an interrupt to
the microprocessor CPU when the pin changes
state. They can be programmed to interrupt on
a rising edge or a falling edge on the pin.
Refer to the PIC32 Family Reference Manual,
Section 8, Interrupts for more information on
the operation of the external interrupts.
These are accessed using the attachInterrupt()
and detachInterrupt() functions when using the
chipKIT MPIDE software,. The interrupt
number is specified using the numbers 0-4, or
preferably, the symbols EXT_INT0 through
EXT_INT4.
The following gives Pmod connector position,
chipKIT pin number, and microcontroller I/O
port and bit number:
INT0 – JH-08, digital pin 53, RD0
INT1 – JH-07, digital pin 52, RE8
INT2 – JE-07, digital pin 36, RE9
INT3 – JF-01, digital pin 40, RA14
INT4 – JF-02, digital pin 41, RA15
RTCC
The PIC32 microcontroller contains a low
frequency oscillator and Real Time
Clock/Calendar circuit, RTCC, that can be
used to maintain time and date information.
The operation of the RTCC requires a
32.768Khz frequency source. The crystal X2
position, just above and on the right of the
PIC32 microcontroller, IC1, is provided for the
user to solder in a 32Khz watch crystal. The
Citizen CFS206-32.768KDZF-UB is a crystal
part that can be used in this location.
Cerebot MX4cK Reference Manual
www.digilentinc.com page 22 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
Appendix A: Connector Descriptions and Jumper Settings
Function
J1
SPI port #1 connector
Because of multiple uses for the pins, the signals for SPI port #1 are scattered across
multiple Pmod connectors. This connector provides all of the SPI port #1 signals on a single
connector. All of the signal pins on this connector are shared with pins on various Pmod
connectors.
J2
I2C port #1 daisy chain connector
This connector provides access to the I
2
C signals, power and ground for I2C1.
J3 &
J4
Pull
-
up enable for I2C port #1
These two jumpers are used to enable/disable the pull-up resistors on I2C1. Insert shorting
blocks on these two jumpers for enable the pull-up resistors. Remove the shorting blocks to
disable the pull-up resistors. Only a single device on the I
2
C bus should have the pull-up
resistors enabled.
J5
Servo bus power connector
This connector is used to provide power to the servo power bus, VS.
J6
I2C port #2 daisy chain connector
This connector provides access to the I
2
C signals, power and ground for I2C2.
J7
USB Serial converter auxiliary signals
This connector can be used to access the auxiliary RS232 handshaking signals not used on
the Cerebot MX4cK board.
J8
USB Serial converter (UART) connector
This USB micro-AB connector is used to connect the FT232R serial converter to a USB port
on the user PC.
J9
Licensed Debugger USB connector
This USB micro-AB connector is used to connect the licensed debugger to a USB port on the
user PC.
J10
DAC output
The analog output voltage of IC3, the MCP4725 Digital to Analog converter, is available at
this connector.
J11
Do not use
Used for manufacturing test purposes.
Cerebot MX4cK Reference Manual
www.digilentinc.com page 23 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
J12
Power supply source select
This jumper is used to select the source of main board power.
Place a shorting block in the USB position to have the board powered from the USB device
connector, J15.
Place a shorting block in the EXT position to have the board powered from one of the
external power connectors, J13, J14, or J18.
Place a shorting block in the DBG position to have the board powered from the debug USB
connector, J9.
Place the shorting block in the URT position to have the board powered from the USB serial
converter connector, J8.
J13
External power connector
This is a 5.5mm x 2.5mm coaxial power connector wired center positive. This is used to
supply external power to the board.
J14
External power connector
This is a two pin header connector that can be used to supply external power to the board.
J15
USB OTG connector
This is a USB micro-AB connector that is used when the Cerebot MX4cK board is used to
implement a USB device, or USB OTG device.
J16
PIC32 pin 20 function select
Pin 20 on the PIC32MX460 microcontroller has multiple functions. It functions as the
VBUSON control pin when acting as a USB host. It can be used as an analog input for the
A/D converter or one of the analog comparators. It can also be used as a pin change
interrupt input or as a general digital i/o. This jumper is used to route pin 20 to one of three
places on the board:
Place a shorting block in the upper, VBUSON, position when acting as a USB host to control
the USB power supplied to the connected device.
Place a shorting block in the middle, DAC, position to connect the output of the MCP4725
digital to analog converter to pin 20. This allows the use of the DAC output as an input to
analog comparator #1.
Place a shorting block in the lower, JJ-8, position to connect pin 20 to Pmod connector JJ,
pin 8. This allows access to pin 20 from this Pmod connector.
J17
USB host connector
This is a standard USB type A connector. This is used to connect a USB device when the
Cerebot MX4cK is being used as a USB host.
Cerebot MX4cK Reference Manual
www.digilentinc.com page 24 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
J18
External power connector
This is a two pin screw terminal connector that can be used to supply external power to the
board.
J19
Auxiliary Power Out
This connector provides access to the unregulated power bus BRD_VU and GND. It can be
used to distribute power to other boards from the Cerebot MX4cK.
JP1
Connect VS bus to
BRD_VU
bus
This jumper is used to connect the VS bus to the BRD_VU bus. The VS bus provides power
to the servo connectors, S1-S8. The BRD_VU bus is the main board power bus. Install a
shorting block on this jumper to have the servo power bus powered from the main power bus.
Remove the shorting block from this jumper to separate the two power busses. When using a
separate servo power bus, the VS bus is powered from screw terminal connector J5.
JP2
VS bus voltage monitor
This jumper is used to enable monitoring of the VS bus voltage. When a shorting block is
installed on this jumper, the VS bus is connected via a voltage divider to analog input AN9.
This can be used, for example, to monitor the state of a battery supply being used to power
servos.
JP3
Connector JB pin 7 signal sel
ect
This jumper is used to route either signal SCL1/INT3/RA14 or PMALL/AN15/CN12/RB15 to
the pin 7 position of Pmod connector JB. The jumper is normally in the RB15 position. This
allows connector the PIC32 Parallel Master Port to be used with connector JB. Place the
jumper in the INT3 position when using JB to access an SPI device that requires an interrupt
on pin 7.
JP4
BRD_VU
bus voltage monitor
This jumper is used to enable monitoring of the BRD_VU bus voltage. When a shorting block
is installed on this jumper, the BRD_VU bus is connected via a voltage divider to analog input
AN8. This can be used, for example, to monitor the state of a battery supply being used to
power the board.
JP5
USB over
-
current detect
This jumper is used to enable monitoring of the over-current detect capability of the USB bus
power switch, IC6. When a shorting block is installed on this jumper, the over-current output
pin of IC6 is connected to the INT2/RE9 pin of the PIC32MX460 microcontroller.
JP6
USB host power select
This jumper is used to select which host connector is powered when host power is enabled.
Place the shorting block in the “OTG” position to supply power to the USB OTG Connector,
J15. Place the shorting block in the “HOST” position to supply power to the USB Host
Connector, J17.
JP7
Do not use
Used for manufacturing test purposes.
Cerebot MX4cK Reference Manual
www.digilentinc.com page 25 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
JP8
USB Serial converter reset disconnect
This is used to connect/disconnect the USB serial converter reset circuit from the PIC32
MCLR pin. The shorting block must be in place on this jumper when using the chipKIT
MPIDE development tools. Remove the shorting block if the USB serial converter is
interfering with proper operation of the licensed debugger circuit.
JP9
Do not use
Used for manufacturing test purposes.
JP10
USB h
ost power disconnect
This jumper is used to disconnect the USB load switch, IC6, from the BRD_VU bus when the
board is being operated from an external power supply with a voltage greater than 5V. This
allows operation of the board from a higher voltage power supply.
S1
-
S8
Servo connectors
These provide connection for up to 8 RC hobby servos. Each of these connectors provides a
control signal: labeled S; servo power: labeled VS, and a ground connection: labeled G. The
signal pins on these connectors are shared with the signal pins on Pmod connector JC.
JPA
JPF &
JPH-
JPK
Pmod header power select
Any of the Pmod headers can be connected to use either regulated or unregulated power. To
use regulated power, place the jumper block over the center pin and the pin marked VCC. To
use unregulated power, place the jumper block over the center pin and the pin marked
BRD_VU.
Cerebot MX4cK Reference Manual
www.digilentinc.com page 26 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
Appendix B: Example of Configuration Values
The following example illustrates setting the configuration values in the PIC32 microcontroller on the
Cerebot MX4cK. The microcontroller configuration should be done in a single source file in the
project, and is typically done in the ‘main’ project source file. This example sets all configuration
values to valid values for the Cerebot MX4cK board. It sets the system clock for processor operation
at 80Mhz, and the peripheral bus at 10Mhz.
/* ------------------------------------------------------------ */
/* PIC32 Configuration Settings */
/* ------------------------------------------------------------ */
/* Oscillator Settings
*/
#pragma config FNOSC = PRIPLL // Oscillator selection
#pragma config POSCMOD = EC // Primary oscillator mode
#pragma config FPLLIDIV = DIV_2 // PLL input divider
#pragma config FPLLMUL = MUL_20 // PLL multiplier
#pragma config FPLLODIV = DIV_1 // PLL output divider
#pragma config FPBDIV = DIV_8 // Peripheral bus clock divider
#pragma config FSOSCEN = OFF // Secondary oscillator enable
/* Clock control settings
*/
#pragma config IESO = OFF // Internal/external clock switchover
#pragma config FCKSM = CSDCMD // Clock switching (CSx)/Clock monitor (CMx)
#pragma config OSCIOFNC = OFF // Clock output on OSCO pin enable
/* USB Settings
*/
#pragma config UPLLEN = ON // USB PLL enable
#pragma config UPLLIDIV = DIV_2 // USB PLL input divider
#pragma config FVBUSONIO = OFF // VBUS pin control
#pragma config FUSBIDIO = OFF // USBID pin control
/* Other Peripheral Device settings
*/
#pragma config FWDTEN = OFF // Watchdog timer enable
#pragma config WDTPS = PS1024 // Watchdog timer post-scaler
#pragma config FSRSSEL = PRIORITY_7 // SRS interrupt priority
/* Code Protection settings
*/
#pragma config CP = OFF // Code protection
#pragma config BWP = OFF // Boot flash write protect
#pragma config PWP = OFF // Program flash write protect
/* Debug settings
*/
//#pragma config ICESEL = ICS_PGx2 // ICE pin selection
Cerebot MX4cK Reference Manual
www.digilentinc.com page 27 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
Appendix C: Connector Pinout Tables
Arranged by Microcontroller Pin Number
PIC32
Pin #
Connector
Pin #
chipKIT
Pin #
MCU
Port
Bit
PIC32
Signal
Name
Notes
1 JC-04 19 RG15 RG15 also servo S4
3 JA-08 5 RE05 PMD5/RE5
4 JA-09 6 RE06 PMD6/RE6
5 JA-10 7 RE07 PMD7/RE7
6 JD-04 27 RC01 T2CK/RC1
7 JD-10 31 RC02 T3CK/RC2
8 JE-10 39 RC03 T4CK/RC3
9 JK-10 71 RC04 SDI1/T5CK/RC4 also J1-03
10 JB-04 11 RG06 PMA5/SCK2/CN8/RG6
11 JB-03 10 RG07 PMA4/SDI2/CN9/RG7
12 JB-02 9 RG08 PMA3/SDO2/CN10/RG8
14 JB-01 8 RG09 PMA2/SS2/CN11/RG9
17 JF-07 44 RA00 TMS/RA0
18 JH-07 52 RE08 INT1/RE8 also J1-07
19 JE-07 36 RE09 INT2/RE9 also JP5,USB OC_SENSE
20 JJ-08 61 RB05 VBUSON/C1IN+/AN5/CN7/RB5 Selected by J16
21 JJ-07 60 RB04 C1IN-/AN4/CN6/RB4
22 JJ-04 59 RB03 C2IN+/AN3/CN5/RB3
23 JJ-03 58 RB02 C2IN-/AN2/CN4/RB2
24 JJ-02 57 RB01 PGC1/EMUC1/AN1/CN3/RB1
25 JJ-01 56 RB00 PGD1/EMUD1/AN0/CN2/RB0
26 N/A N/A RB06 PGC2/EMUC2/AN6/OCFA/RB6 debug PGC
27 N/A N/A RB07 PGD2/EMUD2/AN7/RB7 debug PGD
28 JK-07 68 RA09 PMA7/Vref-/CVref-/RA9
29 JK-08 69 RA10 PMA6/Vref+/CVref+/RA10
32 JJ-09 62 RB08 C1OUT/AN8/RB8
33 JJ-10 63 RB09 C2OUT/AN9/RB9
34 JK-01 64 RB10 CVrefout/PMA13/AN10/RB10 also LD1
35 JK-02 65 RB11 PMA12/AN11/RB11 also LD2
38 JF-08 45 RA01 TCK/RA1
39 JH-04 51 RF13 U2RTS/BCLK2/RF13
40 JH-01 48 RF12 U2CTS/RF12
41 JK-03 66 RB12 PMA11/AN12/RB12 also LD3
42 JK-04 67 RB13 PMA10/AN13/RB13 also LD4
43 JB-10 15 RB14 PMALH/PMA1/AN14/RB14
Cerebot MX4cK Reference Manual
www.digilentinc.com page 28 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
44 JB-07 12 RB15 PMALL/PMA0/AN15/OCFB/CN12/RB15
47 JE-01 32 RD14 CN20/U1CTS/RD14
48 JE-04 35 RD15 U1RTS/BCLK1/CN21/RD15
49 JH-03 50 RF04 PMA9/U2RX/CN17/RF4
50 JH-02 49 RF05 PMA8/U2TX/CN18/RF5
51 N/A N/A RF03 USBID/RF3 USB-4
52 JE-03 34 RF02 U1RX/RF2
53 JE-02 33 RF08 U1TX/RF8
56 N/A N/A RG03 D-/RG3 USB-2
57 N/A N/A RG02 D+/RG2 USB-3
58 J6-1,J6-2 72 RA02 SCL2/RA2 I2C2
59 J6-3,J6-4 73 RA03 SDA2/RA3 I2C2
60 JF-09 46 RA04 TDI/RA4
61 JF-10 47 RA05 TDO/RA5
63 N/A N/A RC12 OSC1/CLKI/RC12 Primary Oscillator
64 N/A N/A RC15 OSC2/CLKO/RC15 Primary Oscillator
66 JF-01 40 RA14 SCL1/INT3/RA14 also J2-01,J2-02 I2C1
67 JF-02 41 RA15 SDA1/INT4/RA15 also J2-03,J2-04 I2C1
68 JH-09 54 RD08 IC1/RTCC/RD8 also J1-08
69 JD-03 26 RD09 IC2/SS1/RD9 also J1-01
70 JD-09 30 RD10 IC3/SCK1/PMCS2/PMA15/RD10 also J1-04
71 JE-09 38 RD11 IC4/PMCS1/PMA14/RD11
72 JH-08 53 RD00 SDO1/OC1/INT0/RD0 also J1-02
73 N/A N/A RC13 SOSCI/CN1/RC13 Secondary Oscillator
74 N/A N/A RC14 SOSCO/T1CK/CN0/RC14 Secondary Oscillator
76 JD-02 25 RD01 OC2/RD1
77 JD-08 29 RD02 OC3/RD2
78 JE-08 37 RD03 OC4/RD3
79 JK-09 70 RD12 PMD12/IC5/RD12
80 JH-10 55 RD13 PMD13/CN19/RD13 also J1-09
81 JB-09 14 RD04 PMWR/OC5/CN13/RD4
82 JB-08 13 RD05 PMRD/CN14/RD5
83 JD-07 28 RD06 PMD14/CN15/RD6 also J1-10
84 JD-01 24 RD07 PMD15/CN16/RD7
87 JC-09 22 RF00 PMD11/RF0 also servo S7
88 JC-10 23 RF01 PMD10/RF1 also servo S8
89 JC-08 21 RG01 PMD9/RG1 also servo S6
90 JC-07 20 RG00 PMD8/RG0 also servo S5
91 JF-03 42 RA06 TRCLK/RA6 also BTN1
92 JF-04 43 RA07 TRD3/RA7 also BTN2
Cerebot MX4cK Reference Manual
www.digilentinc.com page 29 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
93 JA-01 0 RE00 PMD0/RE0
94 JA-02 1 RE01 PMD1/RE1
95 JC-03 18 RG14 TRD2/RG14 also servo S3
96 JC-01 16 RG12 TRD1/RG12 also servo S1
97 JC-02 17 RG13 TRD0/RG13 also servo S2
98 JA-03 2 RE02 PMD2/RE2
99 JA-04 3 RE03 PMD3/RE3
100 JA-07 4 RE04 PMD4/RE4
Cerebot MX4cK Reference Manual
www.digilentinc.com page 30 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
Arranged by Connector Pin Number and Digital Pin Number
PIC32
Pin #
Connector
Pin #
chipKIT
Pin #
MCU
Port
Bit
PIC32 Signal Name
Notes
93 JA-01 0 RE00 PMD0/RE0
94 JA-02 1 RE01 PMD1/RE1
98 JA-03 2 RE02 PMD2/RE2
99 JA-04 3 RE03 PMD3/RE3
100 JA-07 4 RE04 PMD4/RE4
3 JA-08 5 RE05 PMD5/RE5
4 JA-09 6 RE06 PMD6/RE6
5 JA-10 7 RE07 PMD7/RE7
14 JB-01 8 RG09 PMA2/SS2/CN11/RG9
12 JB-02 9 RG08 PMA3/SDO2/CN10/RG8
11 JB-03 10 RG07 PMA4/SDI2/CN9/RG7
10 JB-04 11 RG06 PMA5/SCK2/CN8/RG6
44 JB-07 12 RB15 PMALL/PMA0/AN15/OCFB/CN12/RB15
82 JB-08 13 RD05 PMRD/CN14/RD5
81 JB-09 14 RD04 PMWR/OC5/CN13/RD4
43 JB-10 15 RB14 PMALH/PMA1/AN14/RB14
96 JC-01 16 RG12 TRD1/RG12 also servo S1
97 JC-02 17 RG13 TRD0/RG13 also servo S2
95 JC-03 18 RG14 TRD2/RG14 also servo S3
1 JC-04 19 RG15 RG15 also servo S4
90 JC-07 20 RG00 PMD8/RG0 also servo S5
89 JC-08 21 RG01 PMD9/RG1 also servo S6
87 JC-09 22 RF00 PMD11/RF0 also servo S7
88 JC-10 23 RF01 PMD10/RF1 also servo S8
84 JD-01 24 RD07 PMD15/CN16/RD7
76 JD-02 25 RD01 OC2/RD1
69 JD-03 26 RD09 IC2/SS1/RD9 also J1-01
6 JD-04 27 RC01 T2CK/RC1
83 JD-07 28 RD06 PMD14/CN15/RD6 also J1-10
77 JD-08 29 RD02 OC3/RD2
70 JD-09 30 RD10 IC3/SCK1/PMCS2/PMA15/RD10 also J1-04
7 JD-10 31 RC02 T3CK/RC2
47 JE-01 32 RD14 CN20/U1CTS/RD14
53 JE-02 33 RF08 U1TX/RF8
52 JE-03 34 RF02 U1RX/RF2
48 JE-04 35 RD15 U1RTS/BCLK1/CN21/RD15
Cerebot MX4cK Reference Manual
www.digilentinc.com page 31 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
19 JE-07 36 RE09 INT2/RE9 also JP5, USB OC_SENSE
78 JE-08 37 RD03 OC4/RD3
71 JE-09 38 RD11 IC4/PMCS1/PMA14/RD11
8 JE-10 39 RC03 T4CK/RC3
66 JF-01 40 RA14 SCL1/INT3/RA14 also J2-01,J2-02 I2C1
67 JF-02 41 RA15 SDA1/INT4/RA15 also J2-03,J2-04 I2C1
91 JF-03 42 RA06 TRCLK/RA6 also BTN1
92 JF-04 43 RA07 TRD3/RA7 also BTN2
17 JF-07 44 RA00 TMS/RA0
38 JF-08 45 RA01 TCK/RA1
60 JF-09 46 RA04 TDI/RA4
61 JF-10 47 RA05 TDO/RA5
40 JH-01 48 RF12 U2CTS/RF12
50 JH-02 49 RF05 PMA8/U2TX/CN18/RF5
49 JH-03 50 RF04 PMA9/U2RX/CN17/RF4
39 JH-04 51 RF13 U2RTS/BCLK2/RF13
18 JH-07 52 RE08 INT1/RE8 also J1-07
72 JH-08 53 RD00 SDO1/OC1/INT0/RD0 also J1-02
68 JH-09 54 RD08 IC1/RTCC/RD8 also J1-08
80 JH-10 55 RD13 PMD13/CN19/RD13 also J1-09
25 JJ-01 56 RB00 PGD1/EMUD1/AN0/CN2/RB0
24 JJ-02 57 RB01 PGC1/EMUC1/AN1/CN3/RB1
23 JJ-03 58 RB02 C2IN-/AN2/CN4/RB2
22 JJ-04 59 RB03 C2IN+/AN3/CN5/RB3
21 JJ-07 60 RB04 C1IN-/AN4/CN6/RB4
20 JJ-08 61 RB05 VBUSON/C1IN+/AN5/CN7/RB5 Selected by J16
32 JJ-09 62 RB08 C1OUT/AN8/RB8
33 JJ-10 63 RB09 C2OUT/AN9/RB9
34 JK-01 64 RB10 CVrefout/PMA13/AN10/RB10 also LD1
35 JK-02 65 RB11 PMA12/AN11/RB11 also LD2
41 JK-03 66 RB12 PMA11/AN12/RB12 also LD3
42 JK-04 67 RB13 PMA10/AN13/RB13 also LD4
28 JK-07 68 RA09 PMA7/Vref-/CVref-/RA9
29 JK-08 69 RA10 PMA6/Vref+/CVref+/RA10
79 JK-09 70 RD12 PMD12/IC5/RD12
9 JK-10 71 RC04 SDI1/T5CK/RC4 also J1-03
58 J6-1,J6-2 72 RA02 SCL2/RA2 I2C2
59 J6-3,J6-4 73 RA03 SDA2/RA3 I2C2
26 N/A N/A RB06 PGC2/EMUC2/AN6/OCFA/RB6 debug PGC
27 N/A N/A RB07 PGD2/EMUD2/AN7/RB7 debug PGD
Cerebot MX4cK Reference Manual
www.digilentinc.com page 32 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
51 N/A N/A RF03 USBID/RF3 USB-4
56 N/A N/A RG03 D-/RG3 USB-2
57 N/A N/A RG02 D+/RG2 USB-3
63 N/A N/A RC12 OSC1/CLKI/RC12 Primary Oscillator
64 N/A N/A RC15 OSC2/CLKO/RC15 Primary Oscillator
73 N/A N/A RC13 SOSCI/CN1/RC13 Secondary Oscillator
74 N/A N/A RC14 SOSCO/T1CK/CN0/RC14 Secondary Oscillator
Cerebot MX4cK Reference Manual
www.digilentinc.com page 33 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
Arranged by Microcontroller I/O Port Name and Bit Number
PIC32
Pin #
Connector
Pin #
chipKIT
Pin #
MCU
Port
Bit
PIC32 Signal Name
Notes
17 JF-07 44 RA00 TMS/RA0
38 JF-08 45 RA01 TCK/RA1
58 J6-1,J6-2 72 RA02 SCL2/RA2 I2C2
59 J6-3,J6-4 73 RA03 SDA2/RA3 I2C2
60 JF-09 46 RA04 TDI/RA4
61 JF-10 47 RA05 TDO/RA5
91 JF-03 42 RA06 TRCLK/RA6 also BTN1
92 JF-04 43 RA07 TRD3/RA7 also BTN2
28 JK-07 68 RA09 PMA7/Vref-/CVref-/RA9
29 JK-08 69 RA10 PMA6/Vref+/CVref+/RA10
66 JF-01 40 RA14 SCL1/INT3/RA14 also J2-01,J2-02 I2C1
67 JF-02 41 RA15 SDA1/INT4/RA15 also J2-03,J2-04 I2C1
25 JJ-01 56 RB00 PGD1/EMUD1/AN0/CN2/RB0
24 JJ-02 57 RB01 PGC1/EMUC1/AN1/CN3/RB1
23 JJ-03 58 RB02 C2IN-/AN2/CN4/RB2
22 JJ-04 59 RB03 C2IN+/AN3/CN5/RB3
21 JJ-07 60 RB04 C1IN-/AN4/CN6/RB4
20 JJ-08 61 RB05 VBUSON/C1IN+/AN5/CN7/RB5 Selected by J16
26 N/A N/A RB06 PGC2/EMUC2/AN6/OCFA/RB6 debug PGC
27 N/A N/A RB07 PGD2/EMUD2/AN7/RB7 debug PGD
32 JJ-09 62 RB08 C1OUT/AN8/RB8
33 JJ-10 63 RB09 C2OUT/AN9/RB9
34 JK-01 64 RB10 CVrefout/PMA13/AN10/RB10 also LD1
35 JK-02 65 RB11 PMA12/AN11/RB11 also LD2
41 JK-03 66 RB12 PMA11/AN12/RB12 also LD3
42 JK-04 67 RB13 PMA10/AN13/RB13 also LD4
43 JB-10 15 RB14 PMALH/PMA1/AN14/RB14
44 JB-07 12 RB15 PMALL/PMA0/AN15/OCFB/CN12/RB15
6 JD-04 27 RC01 T2CK/RC1
7 JD-10 31 RC02 T3CK/RC2
8 JE-10 39 RC03 T4CK/RC3
9 JK-10 71 RC04 SDI1/T5CK/RC4 also J1-03
63 N/A N/A RC12 OSC1/CLKI/RC12 Primary Oscillator
73 N/A N/A RC13 SOSCI/CN1/RC13 Secondary Oscillator
74 N/A N/A RC14 SOSCO/T1CK/CN0/RC14 Secondary Oscillator
64 N/A N/A RC15 OSC2/CLKO/RC15 Primary Oscillator
Cerebot MX4cK Reference Manual
www.digilentinc.com page 34 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
72 JH-08 53 RD00 SDO1/OC1/INT0/RD0 also J1-02
76 JD-02 25 RD01 OC2/RD1
77 JD-08 29 RD02 OC3/RD2
78 JE-08 37 RD03 OC4/RD3
81 JB-09 14 RD04 PMWR/OC5/CN13/RD4
82 JB-08 13 RD05 PMRD/CN14/RD5
83 JD-07 28 RD06 PMD14/CN15/RD6 also J1-10
84 JD-01 24 RD07 PMD15/CN16/RD7
68 JH-09 54 RD08 IC1/RTCC/RD8 also J1-08
69 JD-03 26 RD09 IC2/SS1/RD9 also J1-01
70 JD-09 30 RD10 IC3/SCK1/PMCS2/PMA15/RD10 also J1-04
71 JE-09 38 RD11 IC4/PMCS1/PMA14/RD11
79 JK-09 70 RD12 PMD12/IC5/RD12
80 JH-10 55 RD13 PMD13/CN19/RD13 also J1-09
47 JE-01 32 RD14 CN20/U1CTS/RD14
48 JE-04 35 RD15 U1RTS/BCLK1/CN21/RD15
93 JA-01 0 RE00 PMD0/RE0
94 JA-02 1 RE01 PMD1/RE1
98 JA-03 2 RE02 PMD2/RE2
99 JA-04 3 RE03 PMD3/RE3
100 JA-07 4 RE04 PMD4/RE4
3 JA-08 5 RE05 PMD5/RE5
4 JA-09 6 RE06 PMD6/RE6
5 JA-10 7 RE07 PMD7/RE7
18 JH-07 52 RE08 INT1/RE8 also J1-07
19 JE-07 36 RE09 INT2/RE9 also JP5,USB OC_SENSE
87 JC-09 22 RF00 PMD11/RF0 also servo S7
88 JC-10 23 RF01 PMD10/RF1 also servo S8
52 JE-03 34 RF02 U1RX/RF2
51 N/A N/A RF03 USBID/RF3 USB-4
49 JH-03 50 RF04 PMA9/U2RX/CN17/RF4
50 JH-02 49 RF05 PMA8/U2TX/CN18/RF5
53 JE-02 33 RF08 U1TX/RF8
40 JH-01 48 RF12 U2CTS/RF12
39 JH-04 51 RF13 U2RTS/BCLK2/RF13
90 JC-07 20 RG00 PMD8/RG0 also servo S5
89 JC-08 21 RG01 PMD9/RG1 also servo S6
57 N/A N/A RG02 D+/RG2 USB-3
56 N/A N/A RG03 D-/RG3 USB-2
10 JB-04 11 RG06 PMA5/SCK2/CN8/RG6
Cerebot MX4cK Reference Manual
www.digilentinc.com page 35 of 35
Copyright Digilent, Inc. All rights reserved. Other product and company names mentioned may be trademarks of their respective owners.
11 JB-03 10 RG07 PMA4/SDI2/CN9/RG7
12 JB-02 9 RG08 PMA3/SDO2/CN10/RG8
14 JB-01 8 RG09 PMA2/SS2/CN11/RG9
96 JC-01 16 RG12 TRD1/RG12 also servo S1
97 JC-02 17 RG13 TRD0/RG13 also servo S2
95 JC-03 18 RG14 TRD2/RG14 also servo S3
1 JC-04 19 RG15 RG15 also servo S4