circuitcellar.com
Magazine Support   Digital Library   Products & Services   Suppliers Directory 
 
 





 

December 2006, Issue 197

Ethernet on a Chip


by Fred Eady


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.