Ethernet Module Development

From OpenCircuits
Revision as of 21:41, 2 June 2009 by Tcwden (talk | contribs) (→‎Ethernet Module Development)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This project aims to develop an Ethernet Module, to be used in conjunction with a 8/16 bits embedded system such as the dsPic33F development board.


  • See here for block diagram

Development Roadmap

Phase 1

  • Select chips and draw schematic and pcb
  • Obtain samples for chip

Phase 2

  • Device driver
  • Create a Linux socket API wrapper in freertos_posix

Phase 3

  • Reference to Linux socket/lwip, create libraries for
    • DHCP client
    • HTTP server
      • Decide how to get files (html, css, cgi, etc) from nvm (with/without file system)
      • Decide an efficient means to create and download web page to nvm
    • DNS resolver
    • SMTP mail client
    • SNMP agent
    • TELNET application

Phase 4

Software TCP/IP Stack Solution

Circuit and PCB

Special Item Description Quantity
DM9000AEP Ethernet Controller from Davicom 1
HR911102A RJ45 Connector with Integrated Magnetics for 10/100 Base-TX 1
93LC46B-I/SN 1K Serial EEPROM 1 (Optional)
25MHz Crystal Crystal 1
22pF For Crystal Use 2
220uF For RXVDD25/TXVDD25 1
49.9ohm For RX+/RX-/TX+/TX- 4
6.8kohm For BGRES/BGGND 1
510ohm For LEDs 2

Software Implementation


  • Download dm9000a.c
  • Download dm9000a.h
  • Base on FreeRTOS and dsPIC33 platform
  • Using POSIX-like API:
    • int dmfe_open(int flags): initialize the Ethernet controller for 10MHz Half-Duplex
    • int dmfe_close(): turn off the PHY layer
    • int dmfe_read(void): copy a packet to the default buffer
    • int dmfe_write(unsigned char device, unsigned char *buf, int count): copy count bytes of the data from buf and transmit
    • void dmfe_interrupt(void): process the transmit interrupt from DM9000A


  • Light-weight TCP/IP stack designed for 8-bit/16-bit embedded systems


  • Light-weight TCP/IP stack designed for 8-bit/16-bit embedded systems
  • Consume more resource than uIP

Hardware TCP/IP Stack Solution

Circuit and PCB