Technical Projects









The two microchips used in the Etherwidget are the CS8900a and PIC 16F72. The CS8900 is the ethernet controller chip, which is used in higher quality ethernet cards and ethernet-enabled devices. A microprocessor communicates with the CS8900 via its data and address lines to initialize the chip, poll it for packet status and send/receive data. The protocol for doing so is easy to implement and can be performed either in 8 bit or 16 bit mode, making it a viable candidate for 8-bit embedded microchip applications such as this one. The microcontroller used is a reasonably fast PIC, chosen for its sufficient number of I/O pins, flash reprogrammability, and application memory. The 16F72 may be swapped with any pin compatible PIC, although the code may need to be updated.


Board Layout  

The CS8900a is only available in SMT (surface mount technology) packaging, necessitating a custom-print board. To keep the board as small as possible, almost all of the components are SMT. The front of the board contains signal-related components, the back of the board has power-related components, i.e. the power filter capacitors. The middle and top third of the component-side contains the ethernet controller-related hardware. The bottom third contrains the microprocessor-related hardware. The rev.1 board is approximately 2.2" by 2.4", but without a doubt it could be shrunken to 2"x2".

CS8900A & Hardware  

All of the components on the middle to top half of the board are related to the ethernet chip. The CS8900A is a TQFP100 (Thin Quad Flat Pack 100-pin) packaged chip, the small square in the center. To the right is the RJ-45 shaped 10-base-T, the most commonly used Ethernet. Above the plug is a bulky RX/TX isolation transformer chip (1:1.41 & 1:1 windings) which is essential in converting the differential RX/TX lines of twisted-pair Ethernet to ground-referenced lines used in digital logic. Immediately to the left are the resistors and capacitor necessary for the proper operation of the transformer. In the top left corner is the 20MHz crystal used to clock the ethernet controller. It does not require external capacitors as those are already implemented in the chip. Below the crystal are the link and lan LED's, which are useful in determining whether the board/network is functioning properly. The few resistors surrounding the chip that are required for its operation. There are also multiple 1uF filter capacitors on the back of the board.

PIC16F72 & Hardware  

The PIC is the rectangular chip in the bottom-middle of the board, it is a SOIC packaged IC. In the bottom left corner is the crystal and capacitors for the microcontroller. Be sure to match the crystal frequency with the frequency marked on top of the PIC IC (probably -04, -10 or -20). On the right of the PIC is an LED for debugging purposes. In the bottom right corner is the ICSP (in-circuit serial programming) header which has three uses: to provide power to the board, to communicate with or debug the PIC while it is running and to program the PIC with new firmware. The nearby resistor and diode are used to set the programming pin on the PIC to 5V when the ICSP MCLR pin is disconnected. There are also 1uF filter capacitors for the PIC and header.

ICSP Header  

The header pins, from top to bottom, are:
  • MCLR
    • This pin should be at +12V when programming the PIC, usually provided by the PIC programmer. Otherwise it should be left disconnected.
  • +5V
    • This pin must be at +5V to power the board
  • GND
    • This pin must be the ground connection for the two pins above.
  • TX
    • The serial transmit pin on the PIC (RB7), ie data is sent from the chip on this pin.
  • RX
    • The serial receive pin on the PIC (RB6), ie data is sent to the chip on this pin.
Pin Usage  

Almost all of the microcontroller pins are used for controlling and communicating with the CS8900. Port C is exculsively used as the 8-bit data bus, the lower half of port B is used as the 4-bit address bus. Pins B6 and B7 are predefined as the ICSP programming pins. Pins A2 thru A5 are used as the CS8900 Enable, Interrupt, Write and Read pins, respectively. Pin A0 is used to drive an LED. This leaves pins B4, B5 and A1 unused. Since the Interrupt and Enable lines are not essential (the CS8900 can be operated in polling mode and can also be kept enabled as it is the only chip on the board) and can be used for other purposes.