www.mikrocontroller.net

Forum: Codesammlung Erweiterbares Ethernetboard mit MMC/SD-Slot und USB

Autor: Roland Riegel (roland) Benutzerseite
Datum: 17.05.2008 11:52
Dateianhang: mega-eth_source_20080517.zip (569,9 KB, 121 Downloads)

Hallo allerseits!

Heute stelle ich Euch ein neues Projekt vor, ein Basisboard für eigene
AVR-Netzwerkanwendungen. Schon vorhanden sind folgende
Hardwareeinheiten:
- ATmega128 mit 64 kBytes externem RAM
- Netzwerk-Interface mit dem ENC28J60
- MMC/SD-Interface
- USB-RS232-Wandler FTDI FT232R
- Standard-ISP-Schnittstelle
- Erweiterungssteckerleiste mit I2C, SPI, ADC

Natürlich ist die Idee nicht ganz neu, aber ich wollte es selbermachen.
Die Herausforderung für mich war aber eher die Software, insbesondere
der Netzwerkstack. uIP finde ich ziemlich umständlich zu verwenden, vor
allem wegen einem fehlenden Datenpuffer, so dass die Anwendung für
Paketwiederholungen die Daten erneut erzeugen muss.

Enthalten sind im Moment also folgende Software-Module:
- Ethernet/MAC, IP, ARP, ICMP-Ping, UDP, TCP
- MMC/SD-Unterstützung mit FAT16 des sd-reader
- SPI, UART, XMEM
- Systemuhr, Timer
- DHCP-Client
- HTTP-Server mit GET/HEAD/POST-Unterstützung und Authorisierung
  Der Server stellt im Moment die Dateien der Speicherkarte ins Netz
  und listet Verzeichnisinhalte auf.
- Periodische Uhr-Synchronisierung übers Netzwerk mit dem
  TIME-Protokoll (RFC868)

Von den 128 kBytes Flash sind inkl. aller Anwendungen und Demos ca. 38
kBytes belegt. Die RAM-Nutzung ist sehr stark abhängig von der
Netzwerkkonfiguration. Bei maximal drei TCP-Verbindungen mit
Pufferspeicher für je ein maximal großes Paket in Sende- und
Empfangsrichtung werden ca. 13 kBytes benötigt.

Zu finden ist all das unter
    http://www.roland-riegel.de/mega-eth/
Die Quelltexte habe ich auch an diese Nachricht angehängt, den
Schaltplan und das Layout gibts auf der Website.

Einige Dinge würde ich in der Zukunft noch gerne entwickeln oder
verbessern:
- einfacher(er) Zugriff auf I/O-Hardware über HTTP, vielleicht mit einer
  simplen Textersetzungs-/Skriptsprache
- ausführlichere Tests bzgl. unterschiedlicher Netzwerkkonfigurationen
- bessere TCP-Flusskontrolle, soweit möglich
- usw.

Viel Spaß damit, Kommentare sind natürlich willkommen.

Gruß,
Roland
Autor: Roland Riegel (roland) Benutzerseite
Datum: 17.05.2008 11:53
Dateianhang: mega-eth_rev10.jpg (62,4 KB, 446 Downloads)
preview image for mega-eth_rev10.jpg

Hier noch ein Bild von dem Board in Betrieb.

Gruß,
Roland
Autor: Alex W. (a20q90)
Datum: 17.05.2008 12:04

Hi,

interesanntes Projekt! Leider in C (wie viele WebServer-Projekte auch).
Gibt es auch Quellen in Bas?

Grüße
Alex
Autor: best of (Gast)
Datum: 17.05.2008 12:12

Hi Alex,
gibt es doch, sogar in Bascom!
http://heldt-intern.dyndns.org/index.php?page=webserver
Leider ist die Resonanz nicht groß genug für eine Platinenauflage!!!
Autor: Dirk Broßwick (sharandac)
Datum: 17.05.2008 18:02

Hallo,

klasse Projekt. Finde es super das auch andere Leute sich die mühe
machen und ihren eigenen besseren TCP/IP Stack schreiben als den µIP.
Ich selber programmiere auch gerade in die selbe Richtung und bin fast
fertig. Ich hatte vor wenn ich fertig bin mit meinem Studium (ca in 2
Monaten) das Teil auch online stellen für die Allgemeinheit :-). Solange
kann ich nur sagen weiter so!!!. Wir können uns ja auch mal austauschen
wenn du willst, da ich in etwa im selben Stadium stecke wie du.

CA Dirk
Autor: Sucher (Gast)
Datum: 17.05.2008 18:53

Hallo Roland,

läßt Du davon (mehrere?) Bords machen?

Viele Grüße
Achim
Autor: Roland Riegel (roland) Benutzerseite
Datum: 17.05.2008 21:57

@Alex,

Nein, Bascom-Quelltexte habe ich keine. Wäre ja auch ein bisschen
komisch, wenn ich mir die Programmierung nach C nochmal in Basic antun
würde...

@Dirk,

Kannst meine Quellen ja mal durchsehen, vielleicht hilft Dir ja das ein
oder andere weiter. Ansonsten einfach ne Mail schreiben.

@Achim,

Nein, im Moment habe ich nicht vor, weitere Platinen herstellen zu
lassen. Mein eigenes Board beruht noch auf der geringfügig fehlerhaften
Revision 1.0. Davon habe ich hier noch drei rumliegen, gefertigt bei
Haka. Bei Interesse würde ich die zum Selbstkostenpreis von ca. 15 Euro
abgeben. Einfach eine Mail an feedback(at)roland-riegel.de, Zuschlag
nach Reihenfolge des Eingangs.

Bei der alten Revision 1.0 ist
1. die Spannungsbuchse ein klein wenig zu weit rechts, so dass das
Bohrloch ein wenig verdeckt wird (zumindest mit meiner Buchse), und
2. beim ISP-Stecker die MISO/MOSI-Leitungen vertauscht, was man mit zwei
kurzen Brücken auf der Rückseite korrigieren muss.

Gruß,
Roland
Autor: Roland Riegel (roland) Benutzerseite
Datum: 22.05.2008 18:33
Dateianhang: mega-eth_source_20080522.zip (569,7 KB, 63 Downloads)

Hier ein kleines Software-Update zur ursprünglichen Version.

Die Änderungen sind vor allem im FAT16-Code zu finden. Neben
Optimierungen der Codegröße werden jetzt vor allem Verzeichnisse
schneller durchsucht. Dies hilft auch dem HTTP-Server auf die Sprünge,
der deshalb zuvor bei gut gefüllten Verzeichnissen recht träge
antwortete.

Gruß,
Roland
Autor: Donald (Gast)
Datum: 10.06.2008 17:14

Hi, hast du vielleicht eine Bauteilliste? Würd das gerne nachbaun und in
Betrieb nehmen. Hab schon länger nach sowas gesucht. Aber Bauteile wie
den FB2022 finde ich hier in Österreich nirgends.

Mfg, Donald
Autor: Roland Riegel (roland) Benutzerseite
Datum: 10.06.2008 19:45

Hmm, ne fertige Liste habe ich nicht, Du kannst sowas aber aus Eagle
heraus exportieren. Die meisten Teile (vor allem SMD) habe ich von
Segor. Die anderen, insbesondere den Karten-Slot, den ENC28J60 inkl.
Quarz und den FB2022 von CSD.

Gruß,
Roland
Autor: Donald (Gast)
Datum: 11.06.2008 08:44

Danke für die schnelle Antwort =)
Hab bis jetzt so gut wie jedes Bauteil auftreiben können. Nur an ein
paar Teilen wie den, FB2022 und den SRAM bin ich gescheitert.

Mfg, Donald

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net