The RS-232 port was originally
designed into the WLAN Phoenix as a
debugging device. If you browse through
the Phoenix source code, you’ll find lots
of status and debugging messages
that are commented out. Most of the
deactivated messages are aimed at the
RS-232 port, which was most always
connected to a Tera Term Pro terminal
emulation window when I was
developing the Phoenix firmware.
One of the primary reasons for
bringing the Phoenix to life lies in the
fact that I continually get email from
readers requesting information on how
to build a simple device that can act as
a RS-232 to wireless Ethernet bridge.
In addition to its EUSART, the
PIC18LF6722 contains two additional
internal serial communications engines,
which allow the Phoenix to also act as
an 802.11b communications bridge for
I2C and SPI protocols. I2C and SPI drivers
are not present in the current version of
the WLAN Phoenix firmware driver.
However, the hardware I/O pins to
implement I2C and SPI protocols are free
and available to the Phoenix user that
wishes to add either of these capabilities.
The architecture of the WLAN
Phoenix driver source code — particularly
the wlan_phoenix.h include file — is a
direct result of the CompactFlash connector pinout. Think of the CompactFlash
connector as a portal to an intelligent
and interactive microcontroller peripheral.
A standard parallel memory device such
as an SRAM (Static Random Access
Memory) simply places what you deposit
78 October 2008
on its data bus pins in the location you
have specified on its address pins. With
the activation of the read control line,
that same SRAM retrieves the data from
the memory location pointed to by the
address lines. Other than presenting data
to the requestor on its data bus, the
SRAM doesn’t talk back in an interactive
manner. It just does what it was designed
to do and no more.
You’ll find that the CompactFlash
802.11b radio communicates with you
depending on what you place on the
CompactFlash connector’s data bus,
address, and control pins. To utilize the
capabilities that are built into the
CompactFlash card, we must ask it
questions and use the answers to get at
the particular internal features of the
802.11b card that we want to employ.
I’ve left the powering of the Phoenix up
to the user. Some of you may use battery
power and some of you may plant the
Phoenix in a permanent location that
has access to a suitable power source.
Be sure that your WLAN Phoenix power
supply can supply at least 300 mA, which
is the maximum current drawn by the
Xterasys CompactFlash 802.11b radio
card while transmitting. The Xterasys
radio card I am supplying should only be
powered with 3. 3 VDC. It’s specifications
state that you can also power the
CompactFlash radio that I’m using with
5.0 VDC. I’ve never tried to do that, so,
you’re on your own if you want to go
there with the Xterasys radio card.
The Phoenix is designed to be very
easily built from scratch. Its printed
■ SCREENSHOT 1. The WLAN
Phoenix is easy to assemble due to
its small number of parts. Patience
and standard electronic component
soldering tools are all you need to
put your own WLAN Phoenix online.
circuit board (PCB) is a standard two-layer ExpressPCB production board
that houses a mere 24 electronic
components. At first glance, the
CompactFlash connector looks to
present the most assembly difficulty.
However, you’ll find that with care and
the right tools, the connector is one of
the easiest parts to place and solder
down to the PCB. I used a base-model
Metcal soldering system and solder
paste to plant the connector you see
in Photo 2.
I also tested a Xytronic hand-held
hot air wand on the CompactFlash
connector’s pins. The hot air wand
“blew up” some really pretty solder
joints on the connector’s fragile pins.
The hot air soldering station I used can
be purchased from Jameco as part
number 262705. I highly recommend
the Xytronic hot air soldering station
as it has saved my butt time and time
again. It is indispensible for both SMT
repair and SMT prototyping work.
It is not necessary to completely
understand every line of code that forms
the fabric of the WLAN Phoenix
firmware driver. All of the details of initializing the CompactFlash 802.11b radio
card, sending data, and receiving data
have been addressed and organized into
easy to understand user-called functions.
If you have a thirst for the minute details
of how the firmware driver operates, I
suggest getting yourself a copy of the
book Implementing 802.11 with
Microcontrollers. The book goes into
nauseating bit-by-bit detail as to how the
Phoenix firmware works. You can also
get lots of good information by studying
the Linux 802.11b open source driver
code, which is available from various
points on the Internet. The WLAN
Phoenix firmware was modeled from the
open source Linux 802.11b source code.
The CompactFlash radio card is very