Difference between revisions of "Ethernet Module Development"
Jump to navigation
Jump to search
(update internal links) |
|||
Line 2: | Line 2: | ||
==Architecture== | ==Architecture== | ||
− | *See [ | + | *See [[Multi-purpose_Embedded_System#TCP.2FIP_Stack | here]] for block diagram |
Line 34: | Line 34: | ||
==Software TCP/IP Stack Solution== | ==Software TCP/IP Stack Solution== | ||
===Circuit and PCB=== | ===Circuit and PCB=== | ||
− | *In [http://chungyan5.no-ip.org/vc/?root=ethernet gEDA format] and its gEDA [ | + | *In [http://chungyan5.no-ip.org/vc/?root=ethernet gEDA format] and its gEDA [[PCB_Footprints#gEDA_Symbols_and_footprints | sym and footprints]] |
{|border="1" cellspacing="0" cellpadding="5" | {|border="1" cellspacing="0" cellpadding="5" | ||
! Special Item !! Description !! Quantity | ! Special Item !! Description !! Quantity | ||
Line 69: | Line 69: | ||
*Download [http://chungyan5.no-ip.org/vc/trunk/demo_posix/dspic/drivers/?root=freertos_posix dm9000a.c] | *Download [http://chungyan5.no-ip.org/vc/trunk/demo_posix/dspic/drivers/?root=freertos_posix dm9000a.c] | ||
*Download [http://chungyan5.no-ip.org/vc/trunk/demo_posix/dspic/drivers/include/?root=freertos_posix dm9000a.h] | *Download [http://chungyan5.no-ip.org/vc/trunk/demo_posix/dspic/drivers/include/?root=freertos_posix dm9000a.h] | ||
− | *Base on [http://www.freertos.org/ FreeRTOS] and [ | + | *Base on [http://www.freertos.org/ FreeRTOS] and [[DsPIC30F_5011_Development_Board | dsPIC33 platform]] |
*Using POSIX-like API: | *Using POSIX-like API: | ||
**'''int dmfe_open(int flags)''': initialize the Ethernet controller for 10MHz Half-Duplex | **'''int dmfe_open(int flags)''': initialize the Ethernet controller for 10MHz Half-Duplex |
Latest revision as of 03:01, 4 August 2009
This wiki describes the development of Ethernet Module.
Contents
Architecture
- 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
- Explore wireless-bridge solutions
Software TCP/IP Stack Solution
Circuit and PCB
- In gEDA format and its gEDA sym and footprints
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 |
- DM9000A Description
- DM9000A Datasheet
- Application Circuit
- Layout Guidelines
- Application Note
- DM9000A Official Drivers
Software Implementation
Driver
- 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
uIP
- Light-weight TCP/IP stack designed for 8-bit/16-bit embedded systems
lwIP
- Light-weight TCP/IP stack designed for 8-bit/16-bit embedded systems
- Consume more resource than uIP