Datum: 17.05.2008 11:52
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
Datum: 17.05.2008 11:53
Hier noch ein Bild von dem Board in Betrieb. Gruß, Roland
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
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!!!
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
Datum: 17.05.2008 18:53
Hallo Roland, läßt Du davon (mehrere?) Bords machen? Viele Grüße Achim
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
Datum: 22.05.2008 18:33
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
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
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
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
