Start
Ethernet
SoC
I've
Been Had!
AX110xx Development Kit
Keil's Been
Had 2!
Ethernet Module
Serious Stuff
Sources and PDF
AX110xx
DEVELOPMENT KIT
I
have an AX11005 part, so you can safely assume
that all of the pre-silicon work on it has been
done. That means you can use the HAD2 in conjunction
with the AX11005’s debug IP Core. To help facilitate
faster prototype cycles, ASIX offers the AX11005
development kit.
My
AX11005 development board is shown in Photo 2.
All of the microcontroller’s bells and whistles
are accessible by pin or connector. The schematic
diagram for the AX11005 development board is six
pages deep. So, instead of trying to nudge the
schematic into this column, I posted it on the
Circuit Cellar FTP site for easy access.
|

(Click
here to enlarge)
|
Photo
2—This is one busy board. The HAD2 connects
using the shrouded and keyed pins below the
Ethernet magnetics. Move down below the eight-position
dipswitch and note the inclusion of screw
terminals to facilitate RS-485. The AX11005
boot EEPROM can be seen in the upper-left
corner. |
Although
the AX11005 is an awesome piece of silicon, the
kit’s real strength lies in the abundance of AX110xx
software modules and utility programs. There is
a source code module supplied for every AX11005
peripheral. AX11005 utility programs that come
with the kit include a flash memory programming
utility, HEX2BIN utilities for both DOS and Windows,
and a TFTP/DHCP server application (just to name
a few).
My
AX11005 development board came preloaded with
a TCP/IP stack and sample code for what the ASIX
folks call a “lightweight” TCP/IP stack. It came
on the kit’s CD-ROM. A comprehensive software
user’s guide goes into detail about connecting
your application to the software modules’ internal
API function calls. For instance, to use the AX11005’s
TCP/IP offload engine to set the IP address, all
that needs to be coded is a call to the STOE_SetIPAddr()
function. STOE refers to an API call that works
against the TCP/IP offload engine. The source
code also uses stoe (lowercase) to delineate driver
calls from API calls. Examples of the API and
driver calls I’ve referenced are shown in the
top part of Listing 1.
The
only hardware change you will have to make to
give the HAD2 access to the AX11005 is a bit change
within the Atmel AT24C02B EEPROM. Bit 7 of the
byte located at address 0x01 within the AT24C02B
determines if the CPU debugger pins are muxed
to the Ethernet status LEDs or to the HAD2. The
default state of bit 7 is a one, which muxes in
the Ethernet status LEDs. It’s easy to lash up
a little PIC I2C interface and change the bit.
I used a MicroEngineering Labs LAB-XUSB, which
already has the socket laid in for an I²C EEPROM
(see Photo 3).
|

(Click
here to enlarge)
|
Photo
3—The MicroEngineering Labs LAB-XUSB shown
here was really designed to get you started
with embedded USB. I was elated to see an
I2C EEPROM socket on this board. It that meant
I didn’t have to fire up the soldering iron
and build up the EEPROM circuitry from scratch. |
With
a little bit of help from my Custom Computer Services
PIC C compiler, I had the EEPROM bit banged to
zero in a couple of minutes. The compiler is great
for stuff like this because it’s fully tilted
toward the PIC architecture. It includes built-in
PIC-specific functions that take most of the effort
out of coding things like I2C, SPI, and RS-232.
My little bit-twiddling C code is shown in the
lower portion of Listing 1.