external SPI peripheral to drive at this time. All
we can really do right now is activate the SPI
portal pins. So, we’ll forego the SPI driver.
The next peripheral we come upon is a
serially interfaced Wi-Fi module. We just happen
to have an ACKme Hopper sitting in the dual
10-pin socket space. We can also drive an XBee
module or a Microchip WiFly module from the
same socket space. Naturally, each radio variant
would require its own unique firmware driver.
This design incorporates an instance of the
OpenLog. All of the microSD card heavy lifting
is done by the open source code that is loaded
in the Atmel microcontroller. The OpenLog was
originally designed to be used as a “no brainer”
data logger. Thanks to a simple read-write
command set — which is accessible via a
standard three-wire serial connection — we can
steer the OpenLog as if it were a filesystem.
Like most all of my PIC32MX designs, this
particular piece of 32-bit hardware includes a
32.768 kHz crystal that feeds the PIC32MX575F512H’s
on-chip RTCC (Real Time Clock Calender). In applications
that do not require a clock/calendar function, the
PIC32MX575F512H’s RTCC peripheral can be used to
alarm and interrupt at predetermined intervals.
Moving our attention back to Photo 1, we can
conclude that we will be writing drivers for four serial
ports. Along the way, we’ll most likely need to blink some
LEDs and read a pushbutton.
The PIC32MX795F512L Design
Schematic 2 is a bit busier than its MX575F512H
cousin. A quick look at Photo 2 tells us that there are
peripherals which are common to both designs. The FTDI
USB port, the OpenLog circuitry, and the RS-232 port are
ADVANCED TECHNIQUES FOR DESIGN ENGINEERS
September 2015 69
■ Photo 1. This aerial shot of the PIC32MX575F512H hardware reveals
the need for microSD, RS-232,
and Wi-Fi module driver firmware.
■ Schematic 2. Again,
this is a schematic
depiction of the
microcontroller
component of the
design. It's a bit
busier than the
microcontroller
version. However, the
good news is that both
the PIC’s firmware
peripheral drivers are
very similar, if not
identical in some
cases.