Hallo Leute! Das Thema wird hier zwar schon viel diskutiert, aber ich will trotzdem mal einen neuen Beitrag starten. Ich habe einen kleinen und billigen Webserver mit einem AtMega32 zusammengestellt. (Siehe Photos) Auf dem Board läuft die Software von Ulrich Radig http://www.ulrichradig.de (Klasse Homepage übrigends!) Der Webserver besteht aus: - einer kleinen Leiterkarte (ca. 15*5cm) - einem alten ISA-Steckplatz (von einem Motherboard ausgelötet) - einer alten ISA-Netzwerkkarte (mit RTL8019-Chip) - einem gesockelten AtMega32 - einer seriellen Schnittstelle - einer Stiftleiste, die ich als SD-Karten-Steckplatz benutze - ein bischen Kleinkram Was macht es? - es ist ein kompletter Webserver, das heisst: "meine Hompage läuft darauf"! - die Homepage ist auf einer SD-Karte gespeichert! - einen kleinen Telnet-Server hat Ulrich Radig auch implementiert - ein kleiner FTP-Server ist auch mit drauf - die Homepage erstellt man einfach am PC, speichert sie auf der SD-Karte, und los gehts. Was soll es noch können? - ich will eine I2C-Schnittstelle integrieren, dann kann ich über das Internet bei mir zuhause: - Steckdosen schalten - Temperaturen abfragen - Sensoren abfragen - ... - Es soll eine Terminalfunktion bekommen. Dann kann ich mit weiteren Mikrocontrollern "chatten" Welche Internet-Adresse hat dann solch ein Webserver? - Bei meinem Internet-Router kann ich einen sogenannten "dynDNS-Dienst" (kostenlos) eintragen - dann hat mein Webserver im Internet z.B. folgende Adresse: "www.MeinWebserver.dyndns.org" - mein Webserver steht dann schön bei mir zuhause und kann aus dem Internet angesprochen werden - wenn er nicht aus dem Internet angesrochen werden soll, lasse ich die DynDNS-Geschichte weg und spreche ihn direkt über eine IP an. Dafür reicht mein kleines Haus-Netzwerk, oder einfach nur ein PC mit einem gekreuzten Netzwerkkabel Nun spiele ich mit dem Gedanken, diese Webserver-Platine professionell fertigen zu lassen. Und darum wollte ich schon mal anfragen, wie das allgemeine Interesse daran ist. Die Karte werde ich dann auf meiner Webseite: http://www.mikrocontroller.com anbieten. Gruss, Holger PS: Ich weiss, dass man noch viele interessante Sachen mit integrieren könnte (USB, CAN, ...) Aber das Ding sollte einfach und billig nachzubauen sein. (kein SMD-Löten usw.)
Gerade vor ein paar tagen hat Guido Fischer ( www.ispf.de ) einen mini Webserver als Layout fertiggestellt. Der hat noch ein paar mehr extras als I²C. Kannst ja da mal gucken, dann sparst du dir das Layouten etc. Er hat auch einen Tread hier eröffnet: AVR Ethernet Platine Gruss Sascha
Wo bekomme ich denn noch die alten ISA-Netzwerkkarte (mit RTL8019-Chip) ? Und die haben ja auch nur 10MB/s. Aber die Idee ist nicht schlecht.
Was soll das denn von www.ispf.de ????? Die Platine kostet ca. 10 ? Ja gehts noch ? Und wer soll die ganze SMD Kacke da drauf bringen ? Nene........ Da ist es ja günstiger ein ferigen Webserver zu kaufen.
Hallo! Sascha: Den Tread habe ich mit Intersse verfolgt und werde mir auch eine von den Platinen zulegen, wenn es soweit ist. Aber ich wollte etwas, dass jemand auch mit zittrigen Händen in einer Stunde zusammengelötet hat. Ansonsten ist das Projekt von Guido Fischer klasse! Madmax: Gib mal bei Ebay RTL8019 oder einfach nur "ISA Netzwerkkarte" ein ... für 1,- gehen die Dinger da über den virtuellen Ladentisch. Gruss, Holger
Die haben nur 10Mbit? Man! Das bremmst ja die 1GBit Standleitung total aus mit der wir hier alle am Internet haengen oder? [Ironie off] Olaf
Hi wollte mich erkundigen ob sie mir mal ihr Layout schicken könnten würde mir die Platine gerne nachbauen. Ich denke mal das sollte alles auch auf einer Steckplatine halbwegs möglich sein oder? Mfg Stefan
Die Leiterplatten sehen ja recht schoen aus suess find ich ;) nur mit dem loeten hapert es noch ein bissl ;) kleiner tipp es gibt biegehilfen da sehen die bauteile danach schoen gerade aus =) Gruss Jens
Zitat Madmax: "Was soll das denn von www.ispf.de ????? Die Platine kostet ca. 10 ? ? Ja gehts noch ? Und wer soll die ganze SMD Kacke da drauf bringen ? Nene........ Da ist es ja günstiger ein ferigen Webserver zu kaufen." 10 Euro ist preiswert, versuche es mal billiger zu bekommen. Desweiteren kann man Guidos Board nicht mir dem hier vergleichen. Die Leistungsklasse ist alleine schon auf Grund des ATMega128 + externen 512Kb SRAM + USB + CAN + RS232 + SD/MMC Card + Baugröße eine ganz andere. Klar, ein Mini ITX Board ist eine erwägenswerte Alternative, gibts mit 12*12cm Größe, enthält 1GHz Intel kompatiblen Chipsatz, läuft Windows drauf. Solche Boards bekommt man für 200 Euro + 190 Euro DVD-Brenner + 150 Euro 1Gb RAM Modul + 180 Euro Gehäuse mit Lüfter und Netzteil. NIC, Grafik, HW-MPEG Dekoder sind schon auf dem Board. Aber darum gehts einfach nicht, es geht um's selberbauen. Gruß Hagen
Hallo Leute! Kennt ihr den XPORT schon? http://www.lantronix.com/device-networking/embedded-device-servers/xport.html Ich bin davon begeistert. - Er unterstützt sämtliche Protokolle, hat programmierbare Ein- und Ausgänge, kann bei vorgegebenen Vorfällen E-Mails verschicken, hat Verschlüsselung, eine eigene Hompage kann kinderleicht hinaufgespielt werden, kann über die RS232 mit µC kommunizieren, und ist sehr klein. Tschuldigung das war jetzt ein bißchen viel. Ich wollte zwar keine Werbung machen, aber ich bin von dem Teil einfach voll überzeugt. Die RS232 hat zwar nur 920KBit, aber die Kommunikation ist für einfache Schaltanwendungen voll geeignet. Was haltet ihr davon. Tschüss! Martin
Und kostet ? Welche Möglichkeiten zur Programmierung ? Gruß Hagen
Dieser XPORT kostet ca. 49 Euro. Ich weiß das hört sich viel an, aber man muss nur noch die Spannungsquelle und die Anschlüsse zum µC verdrahten. Man hat 4 oder 5 64KByte-Bänke die man mit einer Homepage beglücken kann. Auch Java-Einbindungen funktionieren. In diesem Forum wurde schon sehr oft über den XPORT gesprochen. Hier sind weitere Infos http://www.mikrocontroller.net/forum/read-1-97976.html#99264 Tschüss Martin
"Die Platine kostet ca. 10 ? ... gehts noch ? ... Da ist es ja günstiger ein ferigen Webserver zu kaufen." Wo gibt es für 10 Euro Webserver? -> haben will!
Hallo Holger, was hast Du an Ullrichs Programm geändert, daß es auf einem Atmega32 läüft? Dieses lief bei mir nicht auf Anhieb. Die Platine ist ok, man sollte jedoch eine Möglichkeit vorsehen die Ethernetteile direkt drauf zu machen. Man sollte dieses als "TINI" Version zur obigen Platine sehen. Was kostet so eine Platine? Wie sieht es mit dem Layout, Schaltpläne und dem Programm aus? Ist das Public, wie Ullis Beitrag? MfG Achim
Hallo Achim, Schaltplan und Layout schicke ich als Eagle-Files in den nächsten Tagen mit. Anbei schoneinmal der aktuelle Schaltplan als PDF. Ich wollte noch einige Kleinigkeiten ändern (Stecker usw) Das Programm von Ulrich konnte ich ohne Probleme einsetzen. Nur der Prozessortyp musste in der Makedatei eingetragen werden. Die Fuse-Bits haben mich anfangs nur etwas geärgert. Ein fertiges HEX-File hätte mir auch etwas geholfen, dann weiss man jedenfalls, dass man nicht Probleme mit dem Compiler hat und kann sich ersteinmal mit der Hardware beschäftigen. Beim Preis werde ich wohl auch bei ca.10,-EUR landen. Schliesslich kann ich nicht gleich 1000 Stück fertigen lassen. Die Ethernet-Teile wollte ich aus oben beschriebenen Gründen nicht mit drauf machen. (Dann bietet sich auch das Board von Ulrich mit ATMega128 an) Gruss, Holger
Hallo, @Holger die abgespeckte "Ethernet-Server-Version" mit nem Atmega32 finde ich gut. Ich habe so einen Server auch auf einer Lochrasterplatine aufgebaut, obwohl ich nicht so der HarwareBastler bin. Eine Karte auf dieser Basis könnte ich auch noch zusammenlöten. Als Anregung nicht als Kritik: Aus mehreren Diskussionen geht hervor, dass man für die SD Karte einen Levelkonverter nehmen sollte? Lassen sich nicht die die AnalogInputs freischaufeln um Analogwerte zu erfassen. Für die Ethernetkarte würden doch 4 Adressleitungen + festeingestellten Adresse reichen, oder ( AVCC Beschaltung? ( ISP-Schnittstelle in Verbindung mit dem Levelschifter? I2C,SPI Schnittstelle? Das ganze wäre dann eine nach unten abgespeckte tolle Sache zur Erfassung von Temperaturen etc. und könnte dann auch von nicht Lötprofis zusammengebaut werden. Die Platine wäre dann sicherlich sehr interessant. Viele Grüße Achim
Hallo noch ne Ergänzungsfrage: Hat jemand den Webserver auf einem Atmega16 zum laufen gebracht? Falls ja, was wurde am Code alles geändert? Viele Grüße Achim
Ich finde diese Version des Webservers auch sehr spannend. Wird die SD-Karte im Programmtext für die Ethernet-Anbindung benötigt, oder kann man sie auch weglassen?!? Viele Grüße Kai Markus Tegtmeier
Hallo! womisa: Den Levelconverter habe ich einfach mit Spannungsteilern realisiert. Analoge Eingänge werde ich mittels einer externen I2C-Bus-platine machen. Leider bekomme ich die in dieser Applikation nicht frei. Es gibt auch I2C-Tempertursensoren und Portexpander für wenig Geld. Kai Markus: Das geht auch ohne SD-Karte. Wenn keine eingesteckt ist, kommt zur Zeit die Standart-Seite von Ulrich. Diese kann man ohne weiteres auch ändern. Gruss, Holger
@stefan Wo es für 10 webserver gibt ? Auf jeden Flohmarkt. Nennt sich dann 486er 586er usw.....
Hallo @Stefan @all dein 486er oder 586er ziehen dann auch 200W Energie mein Webserver betreibe ich mit einer Solarzelle ;-). Achso 100MBit Netzwerkanschluß bringt gar nichts, da der Atmel noch nicht einmal die Bandbreite von 10MBit ausschöpft. Das Netzwerk wird aber nicht langsamer wenn alles über einen Switch geht, was ja heute Standart ist. Mfg Uli
Hallo @all, Ich glaube dieser Thread wurde nicht aufgemacht um über Vorteile bzw. Nachteile eines solchen Webservers zu reden. Guido Fischer hat eine tolle Platine entwickelt (Respekt), meiner Meinung nach aber überdimensioniert für einen Atmel, aber dies ist auch eine andere Thematik. Ich habe nun vor einen neuen Webserver zu bauen. Daten: ARM Prozessor mit ca. 100Mips Xilinx CPLD, Speicher und Netzwerkkarte mit herrausgeführten Datenbus mehr nicht!! Jeder der dann Can,I2C oder was anderes brauch dann dieses am externen Datenbus anschließen. Um Kosten gering und Nachbau einfach zu gestalten. Mfg Ulrich
@all Jo, immer wofür man es braucht. Ich z.B möchte einfach aus dem Internetcafe meine Haussteuerung nach Daten abfragen, bzw Schaltungen machen. siehe MadMax Funksteuerung. Ein PC verbraucht mir zuviel Leistung (wäre, zugegeben, die einfachste Lösung). Für diese Anwendung könnte ich mit Mega32 auskommen, hoffe ich. Client, Serverprogramm könnten auf die SD-Karte. Und, warum wir alle hier schauen, weil's wieder 'ne interessante Herausforderung ist. Man kann sich ja auch KNX/EIB kaufen und den E-Inst bestellen. Füße hoch und Fernsehen schauen. Aber wer will das schon :-) Tschaui
Hi Also ich muss mich auch noch mal zu Wort melden. Finde die Platine die Holger entwickelt hat echt klasse. Würde mich sehr über die Schaltpläne und Eagle Sachen freuen wenn Du mir die mal schicken würdest und was dir sonst noch so wichtiges einfällt. Wenn du nichts dagegen hast würde ich mir das gerne mal nachbauen und auch mal testen wie das so läuft suche schon sehr lange nach so einer Lösung. Was ich bei dir besonderes gut finde ist das man die Website über eine SD-Karte austauschen kann wenn nun noch I2C unterstützung da wäre, wäre es echt perfekt. Habe zwar Ahnung von der Programmierung von Mikrocontrollern aber bei mir ist immer noch so ein bißchen das Problem mit dem Platinenlayout und den richtigen Anschlüssen. Naja ist halt auch nicht so direkt mein Gebiet :) (Energietechniker) :) Naja vielleicht hilft mir ja jemand noch ein bißchen auf die Sprünge. Mach weiter so das Ding ist echt cool und würde dir gerne helfen wo ich kann :) Mfg Kami
Hallo Kami, in den nächsten Tagen werde ich die Platine fertigstellen. Morgen baue ich noch ein Muster auf. An dem Ding ist ja nicht viel dran :-) Dann stelle ich die Eagle-Files ins Netz und bestelle die Leiterkarten. Gruss, Holger
Ich bastle auch gerade am Webserver von Ulrich Radig. Ich finde diese Idee sehr gut und für's erst reicht es. Die Platine von Holger ist auch gut gelungen. @Ulrich Habe ich da ein Darstellungsproblem oder testest du gerade den Webserver? Ich kriege oft nur deine Startseite... Gruß Gerd
Hallo @Elektrikser, Es sollte keine Probleme mit meiner HP geben. Habe nur mal Links und Verzeichnisse geändert. Mfg Ulrich
dein 486er oder 586er ziehen dann auch 200W Energie mein Webserver betreibe ich mit einer Solarzelle ;-). OOOOOOchhhhh die zeig mir mal.....
@Holger: Kannst Du auf der Platine noch 4 Befestigungslöcher vorsehen? Ich meine bevor sie in Serie geht. Ich nutze für I2C Verbindungen immer Stereo Klinkenstecker. Wäre schön wenn auf der Platine der entsprechende Platz vorgesehen wäre (neben evtl 3poligen Pfosten) würde 2 Platinen abnehmen. Gruß, Alno
@Holger: Habe ich das richtig verstanden das du die Platine dann auch über deine Website verkaufst? Wenn ja dann kannste mir gleich schon mal eine zurücklegen :) Wenn ich das richtig sehe ist doch die Bestückung deiner Platine kein SMD sondern ganz einfach und unproblematishc mit einem normalen Lötkolben zu schaffen oder? MFG Kami
@Ulrich Hmm, heute geht deine Webseite einwandfrei. Gestern bin ich allerdings immer wieder, wenn ich einen Link geklickt habe, auf der Startseite gelandet... Könntest du in dein Forum sehen? Danke! Gruß Gerd
@Ulrich So ein Armserver tät mich auch interessieren. ARM7? wenn ja, bekommst Du dadruaf das YCLinux zum rennen? weil ich ne gescheite Firewall einbauen wollte, um damit diverse Geräte über Internet fernzusteuern. btw, muß dann auch noch ein apache mit openssl oder matrixssl drauf, dann isses perfekt. Achja: vielleicht kannst Du dir arbeit sparen: www.synertronixx.de :) Die Kiste ist genial,,, nur teuer. Zuviel für Studenten. Aber wenn Du ne ARM Kiste bastelst... wär schon super. cya
Hallo! Kleiner Zwischenstand (siehe PDF): 1. Ich habe drei Analoge Pins frei bekommen Jetzt kann man also Temperaturen usw. messen. Vielleicht portiere ich meine Heizungssteuerung auch auf diese Platine. 2. Ich musste einige Ports tauschen Da werde ich den Source-Code von Ulrich mit einem Compilerschalter versehen müssen. 3. Zusätzlich habe ich eine STK200-Kompatible Belegung für die ISP-Schnittstelle vorgesehen. 4. Einige Befestigungsbohrungen und einige Löcher zum nachträglichem Einbau einiger Erweiterungen sind auch mit drauf gekommen. Gruss, Holger
Hallo Holger, sieht gut aus. Ist AVCC mit einem L (10uH) beschaltet und die Analogmasse getrennt? Was liegt noch auf dem A-Port? (Bei Analogwandlung darf nichts am Port geschaltet werden ?) Viele Grüße Achim
Hallo Womisa, nein, den Aufwand treibe ich nicht bei der Analogmessung. Ich habe auch keine Referenzspannung. Für einfache Messungen reicht das aber. An den drei Analogeingängen hängt nichts, ausser den Pins. Gruss, Holger
@Holger B. Analog bedeutet es immer Temp. messen ? Da würde ich pers. immer die Dallas Sensoren nehmen (1wire), können viele an einem Pin hängen, und muss nicht abgeglichen werden. Lassen sich prima über ihre eigene ID erkennen. Selbst Uhren, Speicher gehen über 1wire zusätzlich. d.h. 1 digitaler Pin verbraucht. I2C braucht schon mal 1 mehr..... Nichts desto trotz, das PDF sieht schonmal gut aus ! Tschaui
ICh weiß nicht ob es möglich sit, aber könnte man anstatt der SD Karte auch eine normale Standard HD/Notebook HD anschließen? Und wäre ein Zugriff über FTP möglich?
@Läubi hast du mal die Anschlusspins gezählt? Glaub' eher nicht. Tschaui
Hallo @Holger Deine obige Antwort akzeptiere ich voll. Eventuell solltest Du überlegen ob nicht alle Ports über eine Steckerleiste geführt werden. Das Board könnte man universal nutzen, auch ohne Webkarte. das würde die potentielle Anzahl der Interessente erheblich steigen. Die Stiftleisten sollten Stk500 kompatibel sein. Die entsprechenden Signale gehen dann von den Stiftleisten auf den ISA Steckplatz, der optional bestückt werden könnte. Außerdem könnte man am Anfang den Webserver vom STK aus betreiben, ohne denPozessorteil aufbauen zu müssen. Ich habe sowas als Freilandverdrahtung schon aufgebaut (siehe Bild). Denke mal darüber nach. Viele Grüße Achim
Ich habe auch interesse an 2 - 3 Platinen! Dominik
Könntest noch ein Foto von der Platine von unten reinstellen?
Hallo anbei das aktuellste Photo. Das Ding läuft schon ganz gut. Ich glaube, so kann man es schon fast lassen. Gruss, Holger
Hallo, anbei die Eagle-Files für alle, die sich die Platine selbst ätzen wollen. In einigen Wochen wird man die Platine auch bei uns auf der Homepage kaufen können: http://www.mikrocontroller.com Achtung: Weil ich die Ports ändern musste, habe ich die Files RTL8019.H und RTL8019.C von Ulrich angepasst. Vielleicht übernimmt er diese Änderung in einer neuen Softwareausgabe. Gruss, Holger
hi holger, da ich schon ne zeit lang den einstieg in die mc-welt suche (zuvor wohl mit zu hohen ansprüchen/projekten), möcht ich eigentlich nur wissen, ob du evtl. für ein bisschen beistand zur verfügung stehst. konkret wäre das erstmal der wunsch nach einer stückliste, da ich sonst wohl beim einkaufen die hälfte vergesse oder irgendwas nich weiß. außerdem wär es ganz gut, wenn du die veränderungen in ulrich radigs code beschreiben (die dateien veröffnetlichen) könntest. ich denk mal, das ätzen und löten krieg ich hin. und es wär sehr gut, wenn man schonmal ne anwendung hat, die läuft und der aufbau nicht umsonst war. weitermachen macht dann noch mehr spass. bye sirko
Hallo @all, Habe die Änderungen für Holgers Webboard in meiner Version mit berücksichtigt. Damit das Board läuft, sollten folgende Dateien geändert werden! rtl8019.h Zeile 14: //#define ISP_CTRL nachher #define ISP_CTRL makefile Zeile 34: MCU = atmega128 nachher MCU = atmega32 Das sollte es gewesen sein :-) Mfg Ulrich
Hallo, bin seit längerem schon auf der Suche nach einem ähnlichen Projekt. Da ich aber schon das ganze Programmierzeugs habe frage ich mich, ob jemand schon solch ein Projekt auf PIC Basis gesehen hat. Am besten so ausgereift wie die Projekte die zur Zeit hier im Forum diskutiert werden. Gruss Malte
Hallo, Herr Helmut Holm hat mich beauftragt 3 Platinen von dem Projekt anzufertigen. Wenn es noch andere brauchen sollen sich bitte melden, oder eine gemeinsame Bestellung machen. Ich muß hier nochmals mitteilen, daß es hier um eine Platinenätzauftrag ohne Bohren/durchkontaktieren/Lötstopplack handelt. Bei Bedarf können die Platinen verzinnt werden. Jeder Doppelseitige Platine dieses Projekt kostet 11 Euro + 4,50 Euro Verpackung und Versand. MfG Objektif
Hallo Objektif, ...wer ist eigentlich Helmut Holm? Ich bestelle diese Leiterplatten auch gerade. Dann sind die allerdings mit Lötstopplack, Bestückungsdruck, verzinnt, gebohrt und durchkontaktiert. Gruss, Holger
Hallo, Helmut Holm ist eine Mitglied sowie du und ich :)) Wenn Du mit Lötstoppmaske bestellt hast, ist doch in Ordnung. Das Angebot ist nur für diejenige, die meine Angebot annehmen. MfG Objektif
@Holger Buss Was soll den eine Platine bei dir kosten? Mfg Sascha
Welche Bandbreite schafft der Webserver eigentlich?
Hallo, Ist aber ein happiger Preis 15,50 für eine nicht gebohrte/durchkontaktierte Platine! Allerdings Ich meine die Platinenrechte liegen bei Holger Buss für ein komerziellen Verkauf, oder?? Mfg Uli :-)
@Uli Ich habe verständnis für dein Kritik aber ich glaube Du hast vergessen, was man für eine durchkontaktierte/Gebohrte Platine mit Lötstopplack zahlt! Viele meine Kunden sagen ich wäre Superbillig. Für manchen reicht eine günstig geätzte Platine, der Andere will es mit allem drum und dran. Andere Platinenhersteller verlangen teilweise alleine 10 Euro auf NUR Filmherstellung! Mann sollte Fair sein. MfG Objektif
Mir scheint, daß Du Uli nicht verstanden hast. Es ging, denke ich, weniger um die Tatsache, daß Dein Preis recht hoch ist (Reichelt: Europlatine 1,60 Epoxyd, Entwickler etc. vielleicht 1,50 EUR pro Euro-Platine), sondern darum, dass Du ohne schriftliche Genehmigung vom Urheber der Platine (in diesem Falle Holger) diese nicht kom- merziell herstellen darfst! Denn Dein Preis hat die Grenze "private Nutzung" bei weitem schon überschritten; ich schlage vor, daß Du in Zukunft vorher um Er- laubnis fragst, bevor Du mit der Arbeit anderer Geld verdienst.
Hallo, Ich muss Ulrich und Christoph zustimmen: Ohne ausdrückliche Genehmigung von mir, darf diese Platine (Schaltplan, Layout, Dokumentation, usw.) nicht kommerziell genutzt oder verkauft werden! Dominik: Die Netzwerkkarte ist auf 10MBit begrenzt, da kommt der Atmel aber nicht hin. Ein Bild aus der SD-Karte des Webservers wird mit ca 1,5KB/s heruntergeladen. Sascha: Ich denke, dass ich die professionelle Leiterkarte für 10 bis 12,- EUR anbieten kann. Einrichtungskosten usw... Gruss, Holger
Hallo, Zur Transferrate: Bei meinen Webserver komme ich mit einen 14,xxx Quarz und meiner SD Karte auf 3 KByte/s, um aber Bilder und Files herunter zu laden sind diese Webserver auch nicht gedacht. Deshalb will ich auch einen Webserver auf ARM (denke ich) Basis bauen. Wer den internen Speicher benutzt ist etwas schneller dabei. Grund ist das FAT und die relativ langsame SD Karte. Aufgrund dieser naja relativ geringen Geschwindigkeit hatte ich schon bei Guido Fischer´s Board so meine bedenken. Wenn man alles einzeln betreibt ok aber alles zusammen. Mfg Ulrich
Hallo, ich bin noch nicht so ganz in der Materie aber komplett fasziniert von dem Mini-Webserver. Ich hab nochmal ein paar Fragen zum I2C Bus: -Ist auf der Platine eigentlich jetzt ein I2C Bus vorgesehen? Die TWI Ports PC0/PC1 sind ja verbaut? -In der Software scheint ja auch noch kein I2C-Support vorgesehen zu sein, oder? -Wieviel Aufwand habe ich wenn ich da noch einen oder mehrere Temp-Sensoren an den I2C Bus hängen will? (z.B. DS1621 bzw. DS1631) MfG Pepe
Hallo Pepe, den I2C-Bus kann man einfach per Software an zwei beliebigen Portpins programmieren. Ich will einige Applikationen per IIC-Bus zum Anschliessen an den Webserver zusammenstellen. A/D und D/A-Wandler, Portexpander und Temeratursensoren sind dann auch dabei. Gruss, Holger
Hallo, vor Kurzem hab ich nach ner Stückliste gefragt, hab sie nun mit Eagle selber erstellt (wusste nicht, das man das so einfach exportiern kann) - eigentlich bereit zum Reichelt-Einkauf, aber einige Punkte sind offen: C10 : Wie groß? Das ist der Kondensator am MMC/SD-Slot. D1 und D2 : Welche Dioden? Auch am MMC/SD-Slot. X4 : Gibt's so ein Teil bei Reichelt? Welche Buchse kann man z.B. für die runden Stecker von normalen Netzteilen nehmen? X1 : Bei Reichelt z.Zt. nicht lieferbar. Bekommt man den ISA-Slot auch woanders her? Hab ich irgendwas vergessen oder falsch gemacht? @Holger: Es wär schön, wenn Du evtl. noch schreiben könntest, was man so ungefähr für die Temp-Sensoren, den I2C-Bus, Relais-Board (Wird das noch kommen?) usw. bereit halten sollte! Danke & Tschüss Sirko
Hallo Sirko, C10 = 100nF D1, D2 = 1N4148 X4 = AKL101-02 Den ISA-Slot habe ich ausgelötet. Ich weiss noch nicht, wo man den kaufen kann. Den wird es aber auch irgendwo geben. Zu den Erweiterungen: IIC: PCF8574P, PCF8591P Aber vielleicht schliesse ich einfach noch weitere (billige) AVRs an, das ist vom Preis nicht teurer aber viel flexibler. @Ulrich: Ist es eigentlich sehr aufwendig, mit dem Webserver Daten aus dem Internet abzufragen. z.B. - Uhrzeit - Wetterdaten - Newsticker - Aktienkurse - ... Und könnte ich Daten von einem Webserver durch das Internet an einen anderen Webserver schicken? Die Adressierung müsste dann über den Domain-Namen erfolgen. Gruss, Holger
zeitabfrage sollte über das extra protokoll zur zeitsyncronisation gehen. für die anderen daten müsstest du die empfangene website interpretieren...
Hallo, den ISA Slot gibts z.B. bei Bürklin: 57F746 ISA PC Steckplatz für 2,07 EUR + MwSt. ... Ciao, Klaus
Die Buchse(n) gibt es auch bei Reichelt. Dort habe ich sie her. Mfg Sascha
Hallo Sascha, die Buchsen sind bei Reichelt z.Z. nicht lieferbar, vermutlich weil gerade alle diesen Webserver bauen... (hatte Sirko schon geschrieben) Der Slot bei Bürklin ist der komplette mit 96 Polen. Gibt es eigentlich eine komplette Liste mit funktionierenden Ethernet Karten? In Ulrichs Thread in der Codesammlung stehen zwar einige, aber an dieser Stelle wäre eine Liste vielleicht noch mal angebracht. Ciao, Klaus
Mal was anderes. Hat noch jemand ein paar Realtek-Karten? Mfg Sascha
Habe mir gestern 2 OVP ISA Netzwerkkarten für 5 inkl. Versand bei Ebay gekauft.... Glaube da sind jetzt noch 18 verfügbar....
Hallo @Holger Buss >>Ist es eigentlich sehr aufwendig, mit dem Webserver Daten aus dem >>Internet abzufragen. >>z.B. >> - Uhrzeit >> - Wetterdaten >> - Newsticker >> - Aktienkurse Eigentlich nicht, es ist auch nicht schwer ein Webserver zu Programmieren ;-). Das Problem bei mir ist nur ,ich lebe in einen Ort andem es kein DSL gibt!! Dadurch fallen teste mit dem Internet immer recht teuer aus, und eine Flat für ISDN gibt es leider nicht mehr. Ein hoch auf die Telekom! Mfg Ulrich
Hallo Ulrich, das ist ja schrecklich! (bedauer) Und ich dachte schon, dass ich in Ostfriesland am Ar... der Welt lebe :-) Gruss, Holger
Hallo Dominik, ob sich der Ebay-Verkäufer wohl gerade fragt, wieso so viele Leute plötzlich an seinen Uralt-Netzwerkkarten interessiert sind? :-) ...zum Glück hat der ein "Sofort-Kaufen"-Preis, sonst bieten wir uns gegenseitig hoch... :-) Bitte den Verkäufer nicht den Link auf unseren Thread schicken! :-) Gruss, Holger
@dominik: danke, die sind auch auf jeden fall ne2000 kompatibel?
Hihi, jetzt sind alle weg. Weiß nicht genau, ob sie NE2000 kompatibel sind, aber der RTL8019-Chip ist auf jeden Fall drauf. Gruß, Dominik
Warum nicht einfach bei ebay nach "RealTek RTL8019AS" suchen? Da gibt's doch einen Anbieter, der dauernd Netzwerkkarten als neu anbietet. (Nein, ich kenn den nicht.) Sven
Hat hier jemand mitgeboten? nicht das wir uns hochbieten ... http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&category=26807&item=5750787358&rd=1&ssPageName=WD4V Gruss Flo
Hallo, weiß jemand obs ein universelles Tools gibt um bei den Karten den Port auf 0x300 einzustellen oder ob sich das nur mit dem jeweiligen Tool der Herstellers machen lässt? Ich hab hier bei mir nämlich noch einige ISA NE200 Karten rumfliegen aber leider ohne Treiberdisketten. Gruß Pepe
Hi! ... also ich find den (low-end) Web-Server einfach Klasse... wer keine Netzwerkkarten mehr bekommt kann doch aber auch die Netzwerkkarte von Ulrich Radig nehmen... bei meiner Freiverdrahtung geht das prima :-) ... gibt es eine einfache Lösung einen einfachen FTP-Server laufen zu lassen... ich möchte nur ganz einfach meine Bilder von SD-Karte in das Netz laden... und so währe das ganz Schick... einfach Karte von der Kamera rein und vom gesamten Netzwerk aus Zugriff...
@AndiC: Ähem, um Uli's Do-It-Yourself Netzwerkkarte zu bauen braucht man den RTL8019AS, und nur um den auszulöten suchen hier viele die ISA Netzwerkkarten...? Wenn du so einen IC (neu) hast, geb ich dir zwei neue ISA Netzwerkkarten mit diesem IC drauf dafür. Dann brauchst du sie nicht selbst bauen und ich muss nix auslöten:o) Und sorry: Um halbwegs erträgliche Übertragungsraten zu erhalten, sollte deine Kamera dann sehr kleine Bilder machen. So um die 640x480 vermutlich. Gruß, Jochen
Hallo Holger, ich würde gerne mit dem Webserver ein paar Relais (4 besser 8) über eine Webseite schalten. Wie ist das denn bei dir vorgesehen? Kann ich da direkt an die Ports mit dem Relais ran? Oder wie funktioniert das über den i²c-Bus? DANKE!
Hallo, eigentlich hab ich alles zusammen, bis auf die Netzwerkkarte. Hab leider keine mehr auftreiben können und 10 Stück auf einmal über ebay sind mir zu viel. Hat noch jemand eine Karte mit RLT8019AS für mich? Sirko
@kreuzkopf bin zwar nicht der Holger, aber Du kannst das hardwaremäßig über verschiedene Dinge lösen: - RS232: da gibts hier im Forum sogar eine Lösung Suche "RS232 Relaiskarte". - IIC: Man nehme den PCF8574. PINx, x e [1...8] | +---- R10k ---- Vcc | B BC547C C---- Relais ----- Vcc E | GND Wie es direkt an die Ports auszusehen hat, bzw. wie man das dann als Webseite implementiert, kA (evtl. den POST-Request auswerten, was aber String-Vergleiche bedeutet, was einen hohen Rechen- aufwand nach sich zieht.) hth
@kreuzkopf und christph code: kannst du mal ins forum auf ulrich's seite schauen. da steht irgendwo sogar ein beispiel drin. in früheren softwareversionen soll sogar mal was im quelltext dazu stehen. habs mir aber noch nich angeschaut, bin ja noch in der hardwarebeschaffungsmaßnahme. aber wenn du das hinkriegst, dann mach uns bitte deine arbeit zugänglich. Danke! relais: irgendwo hab ich mal gelesen, man sollte optokopller nutzen, um den uC zu schützen. ist das wegen dem pcf8574 nicht mehr nötig? für relais kann man wohl auch "ULN2003 oder ULN2803" nehmen, aber kA, was das genau ist und wie man die anschließt. jedoch braucht man von den dingern nur eins für mehrer relais. billiger wirds wohl nicht, aber spart platz und wird einfacher. noch ne andere frage: mit der lcd-bibliothek kann man die anschlussports des lcd frei am uC, aber wie krieg ich das mit nem pcf8574 hin? geht das auch so einfach? bye sirko
ULN2803 sind 8 Transistorstufen mit einer gemeinsamen Masse. Für Relais sind die gut brauchbar. Einer der Transis kann bis 500 mA. Verwende die Teile eigentlich ganz gerne. Zum Thema Ausgänge über die Webseite steuern: Ich bin gerade dabei es zu versuchen. Momentan scheitere ich noch. Ich schicke mit einem Sende-Button den Header zurück und versuche den dann passend auszuwerten. Aber anscheinend habe ich es noch nicht. Der Webserver sendet die Page nicht mehr neu und am Ausgang tut sich auch noch nichts. Vielleicht schon einer gemacht? Suche weiter nach dem Fehler... Gruß Elektrikser
Hi, wenn man bedenkt dass man für 1 EUR mehr, statt eines PCF8574 auch einen MEGA8 bekommt (mit dem man bekanntlich einiges mehr machen kann)... Ausserdem ist der MEGA32 mit der Netzwerkkarte und der SD-Karte schon reichlich beschäftigt. (und da kommen sicher noch einige Protokolle hinzu) Aus diesen Gründen ist es wahrscheinlich nicht schlecht, die eigentliche Steuerung/Regelung (oder was auch immer) in einem extra Controller zu laufen lassen... Gruss, Ingo.
Ich verwende momentan das Board von Ulrich Radig mit dem ATmega128. Wie weit der µC ausgelastet ist, habe ich noch gar nicht getestet. Eine Regelung würde ich auch extern vergeben, aber ein paar Ausgänge setzen und zurücksetzen, ist glaube ich schon o.K. Auch ein paar DS18S20 schafft er locker. Tja, bin immer noch nicht weiter... Gruß Elektrikser
... naja... der Traum von FTP geht also net so doll??? ... egal vielleicht ja später irgendwann mit Ulrich's xilinx-Lösung... und @Jochen die RTL8019AS sind bestellt... MfG AndiC
Der RTL8019AS ist genau wie der RTL8019A, nur das der kein SRAM integriert hat?
@Holger Wie lange wird's denn voraussichtilich noch mit der Platine dauern, bis man sie kaufen kann? Bye Sirko
Hallo Sirko, die Platinen sind bestellt. Im März sind die dann da. Gruss, Holger
Hm, das dauert ja noch... ich werde den Webserver dann schonmal auf dem Steckbrett aufbauen. :-) Achja, ich habe noch 3 ISA Sockel übrig, hab letzte Woche mal nen Mainboard geschlachtet. Wenn jemand unbedingt einen braucht kann er sich ja bei mir melden. Gruß, Dominik
Wo gibts den die Software ? Dnek mal nicht dass es mit der von Ulrichs Hompage funktionieren dürfte da Holger ja die Pins getauscht hat. Und wie sieht es mit einem Mega16 aus. Läuft der Webserver auf dem auch oder ist der Flash zu klein ? Vielen Dank schon mal vorab
Hi, wir haben die Pins zwar getauscht, aber Ulrich hat jetzt eine komp. Version auf seiner Seite (einfach per #define umstellen) Vom Platz dürfte es gerade passen, aber wir haben es nicht gestestet. Gruss, Ingo.
Hallo, was ist eine komp. Version ? Kompatible Version ? Wenn ja ist das die vom 7.Februar (1.34) ? Und noch ein Problem hab ich: Ich hab mit das WinAVR runtergeladen und hab mich mal so gut es ging eingelsen. Um die Dateien zu komplieren gehe ich im Dos-Fenster in das verzeichens Source (aus Ulis Zip Datei) und starte dann mit dem Befehl make den Compiler ? Dann soll irgenwo eine .rom Datei sein ? Vielen Dank schon mal wieder
Ich habe leider auch Probleme mit dem programmieren des Controllers. Hat vieleich jemand der das Projekt schon nachgebaut hat eine fertige hex-Datei ?
@jürgen Ja, komp. Version ist eine kompatible Version und es ist V1.34, wie auch auf Ulrichs Seite zu lesen ist. Bei WinAVR ist der Editor Programmers Notepad dabei, dort sind die MAKE-Befehle zum Compilieren und Programmieren bereits verfügbar. Aber ein 'make' oder 'make all' im Source-Verzeichnis geht natürlich auch. Am Ende erhält man eine .HEX Datei im Verzeichnis.
Hallo Ingo, vielen Dank für dein Bemühen aber wenn ich im NP oder im DOS make eingebe erhalte ich eben genau keine hex Datei, was ja mein Problem ist. Das Programmers NP sagt mir das hier: > "make.exe" all set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=fat.lst -std=gnu99 fat.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > fat.d; \ [ -s fat.d ] || rm -f fat.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=mmc.lst -std=gnu99 mmc.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > mmc.d; \ [ -s mmc.d ] || rm -f mmc.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=webpage.lst -std=gnu99 webpage.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > webpage.d; \ [ -s webpage.d ] || rm -f webpage.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=telnet.lst -std=gnu99 telnet.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > telnet.d; \ [ -s telnet.d ] || rm -f telnet.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=tcp.lst -std=gnu99 tcp.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > tcp.d; \ [ -s tcp.d ] || rm -f tcp.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=uart.lst -std=gnu99 uart.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > uart.d; \ [ -s uart.d ] || rm -f uart.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=clock.lst -std=gnu99 clock.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > clock.d; \ [ -s clock.d ] || rm -f clock.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=interrupt4.lst -std=gnu99 interrupt4.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > interrupt4.d; \ [ -s interrupt4.d ] || rm -f interrupt4.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=icmp.lst -std=gnu99 icmp.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > icmp.d; \ [ -s icmp.d ] || rm -f icmp.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=ip.lst -std=gnu99 ip.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > ip.d; \ [ -s ip.d ] || rm -f ip.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=httpd.lst -std=gnu99 httpd.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > httpd.d; \ [ -s httpd.d ] || rm -f httpd.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=ftpd.lst -std=gnu99 ftpd.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > ftpd.d; \ [ -s ftpd.d ] || rm -f ftpd.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=checksum.lst -std=gnu99 checksum.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > checksum.d; \ [ -s checksum.d ] || rm -f checksum.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=arp.lst -std=gnu99 arp.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > arp.d; \ [ -s arp.d ] || rm -f arp.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=rtl8019.lst -std=gnu99 rtl8019.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > rtl8019.d; \ [ -s rtl8019.d ] || rm -f rtl8019.d set -e; avr-gcc -MM -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99 main.c \ | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > main.d; \ [ -s main.d ] || rm -f main.d -------- begin -------- avr-gcc (GCC) 3.4.3 Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiling: main.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99 main.c -o main.o Compiling: rtl8019.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=rtl8019.lst -std=gnu99 rtl8019.c -o rtl8019.o rtl8019.c: In function `WriteRTL': rtl8019.c:25: warning: implicit declaration of function `cbi' rtl8019.c:31: warning: implicit declaration of function `sbi' Compiling: arp.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=arp.lst -std=gnu99 arp.c -o arp.o Compiling: checksum.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=checksum.lst -std=gnu99 checksum.c -o checksum.o Compiling: ftpd.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=ftpd.lst -std=gnu99 ftpd.c -o ftpd.o Compiling: httpd.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=httpd.lst -std=gnu99 httpd.c -o httpd.o Compiling: ip.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=ip.lst -std=gnu99 ip.c -o ip.o Compiling: icmp.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=icmp.lst -std=gnu99 icmp.c -o icmp.o Compiling: interrupt4.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=interrupt4.lst -std=gnu99 interrupt4.c -o interrupt4.o Compiling: clock.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=clock.lst -std=gnu99 clock.c -o clock.o Compiling: uart.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=uart.lst -std=gnu99 uart.c -o uart.o Compiling: tcp.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=tcp.lst -std=gnu99 tcp.c -o tcp.o Compiling: telnet.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=telnet.lst -std=gnu99 telnet.c -o telnet.o Compiling: webpage.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=webpage.lst -std=gnu99 webpage.c -o webpage.o Compiling: mmc.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=mmc.lst -std=gnu99 mmc.c -o mmc.o mmc.c: In function `mmc_init': mmc.c:42: warning: implicit declaration of function `cbi' mmc.c:43: warning: implicit declaration of function `sbi' mmc.c: In function `Read_Byte_MMC': mmc.c:140: warning: implicit declaration of function `outb' mmc.c:142: warning: implicit declaration of function `inp' Compiling: fat.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=fat.lst -std=gnu99 fat.c -o fat.o Linking: main.elf avr-gcc -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o -std=gnu99 main.o rtl8019.o arp.o checksum.o ftpd.o httpd.o ip.o icmp.o interrupt4.o clock.o uart.o tcp.o telnet.o webpage.o mmc.o fat.o --output main.elf -Wl,-Map=main.map,--cref -lm rtl8019.o(.text+0x12): In function `WriteRTL': C:\source/rtl8019.c:25: undefined reference to `cbi' rtl8019.o(.text+0x22):C:\source/rtl8019.c:31: undefined reference to `sbi' rtl8019.o(.text+0x36): In function `ReadRTL': C:\source/rtl8019.c:47: undefined reference to `cbi' rtl8019.o(.text+0x48):C:\source/rtl8019.c:55: undefined reference to `sbi' rtl8019.o(.text+0x78): In function `Init_Realtek_Network_Card': C:\source/rtl8019.c:92: undefined reference to `cbi' rtl8019.o(.text+0x24c): In function `Write_Ethernet_Frame': C:\source/rtl8019.c:205: undefined reference to `cbi' rtl8019.o(.text+0x25c):C:\source/rtl8019.c:211: undefined reference to `sbi' rtl8019.o(.text+0x32a): In function `Read_Ethernet_Frame': C:\source/rtl8019.c:270: undefined reference to `cbi' rtl8019.o(.text+0x342):C:\source/rtl8019.c:277: undefined reference to `sbi' rtl8019.o(.text+0x35a):C:\source/rtl8019.c:286: undefined reference to `cbi' rtl8019.o(.text+0x36c):C:\source/rtl8019.c:293: undefined reference to `sbi' mmc.o(.text+0xa): In function `Write_Byte_MMC': C:\source/mmc.c:169: undefined reference to `outb' mmc.o(.text+0x1c): In function `Read_Byte_MMC': C:\source/mmc.c:140: undefined reference to `outb' mmc.o(.text+0x28):C:\source/mmc.c:142: undefined reference to `inp' mmc.o(.text+0x44): In function `Write_Command_MMC': C:\source/mmc.c:106: undefined reference to `sbi' mmc.o(.text+0x50):C:\source/mmc.c:169: undefined reference to `outb' mmc.o(.text+0x60):C:\source/mmc.c:112: undefined reference to `cbi' mmc.o(.text+0x76):C:\source/mmc.c:169: undefined reference to `outb' mmc.o(.text+0x8c):C:\source/mmc.c:140: undefined reference to `outb' mmc.o(.text+0x98):C:\source/mmc.c:142: undefined reference to `inp' mmc.o(.text+0xda): In function `mmc_init': C:\source/mmc.c:42: undefined reference to `cbi' mmc.o(.text+0xe6):C:\source/mmc.c:43: undefined reference to `sbi' mmc.o(.text+0xf2):C:\source/mmc.c:44: undefined reference to `sbi' mmc.o(.text+0xfe):C:\source/mmc.c:45: undefined reference to `sbi' mmc.o(.text+0x10a):C:\source/mmc.c:46: undefined reference to `sbi' mmc.o(.text+0x116):C:\source/mmc.c:47: undefined reference to `sbi' mmc.o(.text+0x134):C:\source/mmc.c:169: undefined reference to `outb' mmc.o(.text+0x1a4):C:\source/mmc.c:93: undefined reference to `sbi' mmc.o(.text+0x216): In function `mmc_write_sector': C:\source/mmc.c:140: undefined reference to `outb' mmc.o(.text+0x222):C:\source/mmc.c:142: undefined reference to `inp' mmc.o(.text+0x234):C:\source/mmc.c:169: undefined reference to `outb' mmc.o(.text+0x250):C:\source/mmc.c:169: undefined reference to `outb' mmc.o(.text+0x26c):C:\source/mmc.c:169: undefined reference to `outb' mmc.o(.text+0x27c):C:\source/mmc.c:169: undefined reference to `outb' mmc.o(.text+0x28c):C:\source/mmc.c:140: undefined reference to `outb' mmc.o(.text+0x298):C:\source/mmc.c:142: undefined reference to `inp' mmc.o(.text+0x2a8):C:\source/mmc.c:241: undefined reference to `sbi' mmc.o(.text+0x2f0): In function `MMC_Read_Block': C:\source/mmc.c:140: undefined reference to `outb' mmc.o(.text+0x2fc):C:\source/mmc.c:142: undefined reference to `inp' mmc.o(.text+0x31e):C:\source/mmc.c:140: undefined reference to `outb' mmc.o(.text+0x32a):C:\source/mmc.c:142: undefined reference to `inp' mmc.o(.text+0x33e):C:\source/mmc.c:140: undefined reference to `outb' mmc.o(.text+0x34a):C:\source/mmc.c:142: undefined reference to `inp' mmc.o(.text+0x356):C:\source/mmc.c:140: undefined reference to `outb' mmc.o(.text+0x362):C:\source/mmc.c:142: undefined reference to `inp' mmc.o(.text+0x36e):C:\source/mmc.c:270: undefined reference to `sbi' make.exe: *** [main.elf] Error 1 > Process Exit Code: 2
Hi, tja du hast wohl die avr-lib in der version 1.2 im einsatz. da sind die seit 1.0 oder sogar frueher als deprected bezeichneten funktionen und macros weg. unetranderem auch sbi und cbi. du musst entweder den source umandern oder die cbi und sbi macros selbst implementieren Gruß Tobias
Hi, das ist ja komisch - anscheinend findet der Compiler die u.a. Makros zum Setzen (sbi) und Löschen (cbi) von Bits nicht. Keine Ahnung daran das liegt. Da das Compilieren nicht fehlerfrei war, gibt es auch keine HEX-Datei. Der einzige Unterschied ist, das ich 'avr-gcc (GCC) 3.4.1' benutze. Ein kurzes Gogglen ergab: "inp(), outp(), sbi() und cbi() werden in Bälde nicht mehr unterstützt und es wird schon seit längerem empfohlen, diese Makros nicht mehr zu nutzen." Da du eine aktuellere Version benutzt ist dies vielleicht der Grund. Gruss, Ingo
@jürgen schau mal in die Datei 'sfr_defs.h' im include/avr Verzeichnis. Da finde ich u.a. '#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))' Das ist eines der Makros, die nicht gefunden wird. Wahrscheinlich sind die Makros ersatzlos gestrichen worden, warum auch immer. Gruss, Ingo
Hallo, ich hab mal die Datei sfr_defs.h angehängt. Diese befindet sich bei mir auch im Ordner ...WinAVR/avr/include/avr. Wie soll ich denn nun weiter vorgehen. Gibt es auch ältere Versionen zum runterladen oder kann mir jemand seine alte sfr_defs.h schicken ?
Diese Makros sind gestorben. Man will anscheinend mehr an den C-Standard ran. Angekündigt hat dies Jörg Wünsch am 27.12.04: http://www.mikrocontroller.net/forum/read-2-138701.html#new Mann kann ja sbi und cbi auch so schreiben: sbi (PORTA,6); ---> PORTA |= (1 << PA6); cbi (PORTA,6); ---> PORTA &=~(1 << PA6); Ob es schöner ist... wahrscheinlich nicht. Aber es ist C... Gruß Elektrikser
Hi, ich habe mal die alten Makros in eine Datei gepackt. Kopiere die Datei in das Webserver Verzeichnis und include die Datei in der main.h. Hier ein Auszug (main.h): #include <avr/eeprom.h> #include "old_macros.h" // <<< hier einfügen ! #include "mmc.h" Damit sollte es laufen. Gruss, Ingo.
Super danke jetzt hats funktioniert. In der Datei von Ingo war noch ein kleiner Tippfehler in Zeile 34. Also nochmal allen vielen vielen Dank die geholfen haben besonders Ingo
Was für ein Fehler? (Konnte keine finden) Gruss, Ingo
Sry für dei Anschuldigung. Der Fehler schien bei mir gewesen zu sein. Hab die Datei nochmal runtergeladen jetzt passt alles. Bim letzen mal war das 5. endif mit einem o versehen also endiof.
Hallo Holger! Ich möchte gerne so eine Platine kaufen!!! Wann kannst du sie verkaufen?? MFG Alex
@Holger Ist es verwerflich, dass jemand den fertigen Hex-Code hier anbietet? Ist das illegal ? Ich frage mal so direkt.
Hi ich hab den Webserver soweit aufgebaut, jedoch ohne die SD Karte. Wenn ich den die Schaltung jetzt laufen lasse meldet sich der Atmel im Hyperterminal und sagt: "Keine MMC/SD-Karte gefunden!" In der Doku von Ulrich Radig steht das er "Network 34" oder so sagen sollt, und dass der Betrieb auch ohne SD Karte möglich ist ?
Hallo, Es gibt einen neuen Source Code V1.35 der alte lief ja nicht mehr mit AVRGCC 20050214 ;-) Mfg Ulrich
Hallo zusammen! Wenn ich den Webserver einschalte gibt der Controller planmäßig " Init Network Card: ......... Init Ready!" aus. Allerdings kann ich ihn dann weder anpingen noch wird im Internet Explorer irgendetwas angezeigt. Kann es sein dass noch was an der Netzwerkkarte falsch konfiguriert ist oder kann dies aufgrund der erfolgreichen Initialisierung ausgeschlossen werden ?
Hallo! @Alex Bis Mitte März müssen wir uns noch mit den Leiterplatten gedulden. @Bernd Es ist natürlich nicht illegal, die HEX-Files anzubieten. Ich mache mal eine Sammlung von fertigen HEX-Files mit unterschiedlichen IPs und mit / ohne SD-Karte. @Matthias Du kannst die While-Schleife zu Beginn in der Main.c einfach abbrechen: Ulrich könnte an der Stelle vielleicht einen Zähler einbauen, so dass der Webserver trotzdem gestartet wird, wenn keine SD-Karte eingesteckt ist. Gruss, Holger
Ok das mit der SD-Karte hab ich geregelt. Mein neues Problem sit die Konfiguration der Netzerkkarte. In der Dokumentation steht dass das i/O auf 300 stehen muss. Wenn ich die Karte in meinem PC habe gibt es nur die Einstellung E/A und da kann ich nur einen Bereich (0300-031F) wählen. Ist das so richtig ? Was ist mit der MAC Adresse. Muss das die der karte sein oder kann ich irgendeine in der main.c angeben ?
Hi, ich habe das DOS-Tool zu der Karte auf eine Start-Diskette kopiert und dann gestartet. Dort kann man dann Adressse und IRQ einstellen, sowie PnP abschalten. Ist keine schlechte Idee, die echte MAC-Adresse der Karte zu verwenden. Ist aber auch nicht wirklich schlimm, irgendeine zu nehmen. ( solange nicht zwei gleiche Adressen im Netz sind ) Gruss, Ingo.
Kannst du mir das Dos Tool hier mal posten oder besser gleich die ganze Diskette. Danke schon mal Matthias
Ich bin genau so weit wie Mark. Es ercheint "Init Ready" im HT aber auf anpingen oder sonstige Kontakt Versuche reagiert die Karte nicht. Kann es sein dass immer noch an der Karte was falsch eingestellt ist oder kann man dies durch die erfolgreiche Initialisierung ausschließen.
Hallo Michael, schliesse mal an einen Datenleitungspin (z.B. D7) einen Pullup nach +5V an. Es kann sein, dass die Karte doch nicht richtig initialisiert wurde. Ein "init ready" wird ansonsten unter Umständen auch angezeigt, wenn keine Karte eingesteckt ist. Das kann man zwar auch per Software lösen, aber ein Pullup tut es an dieser Stelle auch. Der Grund ist, dass der AVR das Datenwort vom Port zurückliest, das er selbst geschrieben hat (Kapazitäten). Hast Du die richtige IP eingestellt? Dein PC muss eine gleiche IP (bis auf die letzte Zahl) besitzen. Blinkt die LED auf der Netzwerkkarte? Man kann auch ohne Weiteres alle IRQ-Ausgänge der Netzwerkkarte parallel schalten, dann muss man sich schonmal nicht mehr um falsch eingestellte IRQs kümmern. Gruss, Holger
Hi ich schiebe das Thema mal wieder nach oben. Kann mir mal jemand sagen wie ich den Mikrocontroller von dieser Schaltung am billigsten programmieren kann also was brauche ich für eine Verbindung vom PC zum Controller? Und wie betreibt ihr diesen Mikrocontroller mit Strom?? Also was habt ihr für eine Stromversorgung? Mfg Kami
Hallo Kami, die AVR-Controller kann man sehr einfach programmieren. Die Teile dazu kosten nur ein paar Cents. Siehe dazu: http://www.mikrocontroller.com ...unter ISP. Als Stromversorgung geht ca 7-15V= aus einem Steckernetzteil. Gruss, Holger
Salve, gleich vorweg: Wahnsinn! Uli und Holger: Super Arbeit! Danke! Vorgestern abend hab ich mir (nach langer Zeit) mal wieder Ulis Website angesehen und das Projekt näher betrachtet, gestern abend lief das Teil dann hier (kam unerwartet an so eine NIC und einen ISA-Slot ran). :) Dank Holgers Anpassungen und defines war das Compilieren und Installieren kein Thema. Etwas länger hab ich dann damit verbracht, das PnP-EEPROM einzustellen. Ist ne geborgte Karte, daher fiel das Auslöten flach. Das DOS-Tool fand die Karte nicht, und die isapnp-Tools von Linux ändern die Einstellungen nur zur Laufzeit. Die Lösung war ne2k-diag (aus dem nictools-nopci Debian-Paket). Damit konnte ich zumindest die IO-Base auf 0x300 stellen. Auf IRQ 4 beharrte er allerdings. @Uli: Bitte evtl. in die Doku aufnehmen: 1.1. daß man bei Bedarf oder Unsicherheit alle möglichen IRQ-Leitungen parallelschalten kann (zumindest die in Frage kommenden), 1.2. daß die Spannungsversorgung am 16bit-Erweiterungsslot (und damit der ganze Slot) nicht unbedingt notwendig ist (kommt aber sicher auch auf das NIC-Layout an), 1.3. Hinweis auf die nictools für Linux-only-Nutzer. Außerdem: 2.1. ohne aktivierte Pullups am Datenbus kann es durchaus vorkommen, daß durch die Kapazität der Leitungen eine 34 am Datenbus gelesen wird (nach dem Init) obwohl gar keine Karte eingesteckt ist. Das hat mich am Anfang total verwirrt, weil die 34 nur auftauchte, wenn die Karte draußen war. Sonst wegen falscher IO-Base 254 oder sowas. Mit Pullups läßt sich das wesentlich besser diagnostizieren (kann man ja nach dem Init wieder abschalten) Hoffentlich hat das nicht fordernd geklungen. Mir würde es ja auch nix bringen, mein Server läuft ja. Sind nur Anmerkungen, wie man es interessierten Nachbastlern leichter machen könnte. Mein Anwendungszweck: Z.B. soll ein Server in's Gartenhäuschen, wo er Füllstände von Fässern überwacht (kapazitive Messung), Ventile und evtl. Pumpen steuert, und die Solar-/Akkuspannungen überwacht. Auch wenn es eigentlich Unsinn ist, weil im Keller eh ein Server im Dauerbetrieb steht, würde ich den Server gern autark alle relevanten Dienste erledigen lassen. Das wichtigste wäre HTTP, weil primär alles per Webfrontend bedienbar sein soll. Dann evtl. noch was simples auf Telnet-Ebene, damit auch Scripte bequem damit umgehen können. Daher hab ich vor, den httpd des AVR-Webservers entsprechend zu erweitern. Vorhin hab ich in die tcp.c soweit erweitert, daß ich im HTML-Source Platzhalter verwenden kann, à la: %{b0:02x} Sieht jetzt erstmal kryptisch aus, aber es bedeutet nicht mehr als: Gib Byte (b) an Adresse 0 (des globalen Datenarrays) aus, und zwar im Format %02x. Genauso kann man das auch mit Words (dann halt %{w...}) machen. Alles zusammen wird in einer Union gespeichert, die noch aufgeteilt werden soll in einen Readonly- und einen Read/Write-Bereich (oder einfach zwei Arrays). Per GET/POST könnte man dann die Daten im Read/Write-Bereich ganz einfach manipulieren. Die Hauptschleife kann dann die Werte verarbeiten bzw. die Werte für die Ausgabe entsprechend aufbereiten. Z.B. (Pixel-/Prozent)breiten für Bargraphen (wie man sie leicht mit Tabellen zeichnen kann). Fragen an Uli: 3.1 Wieso geschieht das Parsing der Escapesequenzen (%...) in der tcp.c? Wäre es in der httpd.c nicht besser aufgehoben? Ich nehme an, das war erstmal nur als Test gedacht. 3.2 Meinst Du, sowas könnte man ohne viel Codeduplikation auch für Daten von der SD-Card machen? Hab mir den Code noch nicht angesehn (also wie man das dann sequenziell durchgeht), mangels vorhandener SD-Card (kommt aber auch bald). 3.3 Kann man auch Verbindungen nach außen selbst aufbauen (innerhalb des Subnet), z.B. um an einen SMTP-Server zu connecten? Fände ich sehr interessant, um Status- oder Störungs-EMails zu senden. 3.4 Verständnisproblem meinerseits: Du schreibst, eine Website kann nur 9 Bilder enthalten (weil nur 10 Verbindungen möglich sind). Starten HTTP-Clients die Anfragen denn parallel? Das Keepalive raus- (bzw. eigentlich rein-)zunehmen hat da nix geholfen? Fragen an alle: 4.1 Welche Anforderungen habt Ihr so an den HTTP-Server? Wäre schön, wenn wir vielleicht alle zusammen Erweiterungen dafür zusammentragen könnten, bzw. Ideen. Einen mehr oder weniger mächtigen HTTPD für Mega32 könnte man bestimmt für viele schöne Sachen einsetzen. 4.2 Falls jemand die Ausgabe von Variablen schon implementiert hat: Welchen Ansatz habt Ihr gewählt? In welchem Teil geschieht das Parsing? Wie sehen Eure Platzhalter aus? Welcher Speicherbereich wird dafür referenziert? 4.3 Hat schon jemand Routinen geschrieben für die Auswertung der CGI-Daten aus Formularen? Herzlichen Dank im Voraus! Mark
Habe noch vom 486er 2 Festplatten mit ca.100MB hier rumliegen. Wäre ein Hit wenn man die statt den Speicherchip anschließen könnte. Diesen Mini-Server könnte ich dann 24Stunden laufen lassen, da mein HomeServer doch 600W verbraucht und nicht der leiseste ist. Hat da schon jemand an einem Harddiskconverter herum gebastelt? Mir wäre die Adressierung zu schwer, was man für die Festplatte brauchen würde. Zudem bin ich eher der AT89C2051/4051 und 8051er-Typ und habe mit AVR fast nix am Hut.
Salve, @A.F.: Also für zwei alte 100MB-Platten, die auch nicht das ewige Leben haben, würde ich so einen Aufwand nicht treiben. SD-Karten haben denen gegenüber nur Vorteile, insb. was den Stromverbrauch, Lautstärke und Zuverlässigkeit angeht. Ab einigen GB mag sich das rentieren, aber doch nicht für 200MB, was heutzutage schon nur noch Mittelmaß bei SD-Karten ist. Aber mal was anderes: 600W?! Hast Du nen Cray zu Hause stehen? :) Mark
Nur ein neues Netzteil. Das alte hatte eine so billige Aufbauweise das es nicht mehr reparabel war. Das 600W-NT hatte ich mal für 20 Euro gekauft und habs später als Reserve einbaut. Braucht man auch wenn man Brenner, CD-ROM, Kartenslot (Für die Speicherkarten der Kamera), schnelle Graphikkarte, einer der ersten PCI-Ethernetkarte und 6Kanalaudioendstufe drin hat.
Salve, es gibt schöne Energiemeßgeräte, mit denen man sich vergewissern kann, daß nicht alles, wo 600W Nennleistung draufsteht, auch permanent 600W verbrät. :) Außer natürlich, man hat eine "6Kanalaudioendstufe" im Rechner. Dann wundert mich gar nix mehr. ;) scnr Mark, der gern wieder auf's Threadthema zurückkommen würde. :)
Hallo @Mark Hämmerling, Danke für deine ausführliche Beschreibung, zu deinen Fragen: >>3.1 Wieso geschieht das Parsing der Escapesequenzen (%...) in der >>tcp.c? Wäre es in der httpd.c nicht besser aufgehoben? Ich nehme an, >>das war erstmal nur als Test gedacht. So ist es, es war nur ein Test. Ich habe das Programm nur mal geschrieben um ein wenig über TCP/IP zu erfahren. Just for fun :-) Das es sich so weit Entwickelt habe ich nicht gedacht. >>3.2 Meinst Du, sowas könnte man ohne viel Codeduplikation auch für >>Daten von der SD-Card machen? Hab mir den Code noch nicht angesehn >>(also wie man das dann sequenziell durchgeht), mangels vorhandener >>SD-Card (kommt aber auch bald). Der Code brauch nicht für eine SD Karte geändert werden! Eine SD Karte läuft ohne Probleme am Webserver. Da diese MMC kompatibel ist! Ich betreibe meinen Webserver ausschließlich mit SD-Karten. >>3.4 Verständnisproblem meinerseits: Du schreibst, eine Website kann >>nur 9 Bilder enthalten (weil nur 10 Verbindungen möglich sind). >>Starten HTTP-Clients die Anfragen denn parallel? Das Keepalive raus->>(bzw. eigentlich rein-)zunehmen hat da nix geholfen? Einige Browser starten einen Request parallel! Einige wieder nicht z.B. mein Pocket PC zum Steuern meiner Lampen ;-) Mfg Ulrich
Salve, @Uli: zu 3.2: Hab ich blöd formuliert... Daß MMC/SD kompatibel sind, ist soweit klar, ich sag halt immer SD dazu. :) Die Frage war so gemeint, ob man den Parser auch auf Daten von der SD ansetzen kann. Das hab ich inzwischen gemacht. Blicke im Source nun schon etwas besser durch. Tatsächlich glaube ich, es genügt, wenn man sich darauf beschränkt, nur die text/html-Contents von der SD-Card nach Platzhaltern zu durchsuchen, weil ja nur dort feste Daten liegen. Alles andere (telnet, ftp) gibt ja nur Daten aus, die sowieso vom System generiert werden. In den Flash werde ich nur noch die 404-Seite legen (die auch ohne Platzhalter auskommt). Momentan ist es so, daß der Block einer Routine vorgesetzt wird, die sich dann um die Ersetzung der Platzhalter kümmert. Dabei wird der Puffer etwas größer oder kleiner. Sonderfall Platzhalter an Blockgrenzen wird noch nicht beachtet. Ich überleg noch, wie man das RAM-sparend am besten macht. Um einen Puffer für die Daten des offenen Platzhalters (je Socket) werd ich wohl nicht rumkommen. Mark
Hallo, tata! Die Leiterkarten sind da (siehe Photo) - Doppelseitig - durchkontaktiert - Lötstopp - Bestückungsdruck - elektrischer Test Die soll 10,-EUR plus 2,-P&P kosten. Nach Ostern kommt das Bestellformular auf die Homepage: http://www.mikrocontroller.com Gruss, Holger
So sieht er aufgebaut und gestestet aus. Gruss, Holger
Hallo, passt zwar nicht ganz zum Thema, aber ich frag trotzdem mal. Ich möchte gerne meinen DSL-Router via LAN einschalten. Ließe sich der Webserver soweit "ausschlachten" bzw. modifizieren, dass ich die LAN-Karte mit nem M8 betreibe? Der M8 soll dann einfach nur den Router und meinen Netzwerkdrucker einschalten mehr nicht. Ist die Modifikation viel Arbeit? Vielleicht kann mir ja jemand weiterhelfen. Gruß, Christian
Hallo Christian, die Bezeichnung M8 sagt mir gerade nichts, aber mit diesem Webserver ist es auch möglich, Geräte wie Drucker, Modems, Lampen usw zu schalten. Ulrich schaltet damit z.B. Lampen. Ich will meine Heizungssteuerung anschliessen. Gruss, Holger
Hallo Holger, M8 = ATMEL Mega 8; Wie gesagt, das ganze Webserver-zeug bräuchte ich gar nicht. Ist es deiner Meinung nach möglich den Webserver soweit auszuschlachten bzw modifizieren, dass ich "nur" ein empfangenes Datenpaket auswerte und dann meine Geräte schalte? (Anfänger in C!) Gruß, Christian
Wenn dein Router OFFLINE ist, bzw. aus ist, dann kannst du auch übers Internet nichts mehr schalten. Du must eine bestehende Verbindung haben. Also mindestens dein Router muss ON sein. Den Webserver brauchst du dann sehr wohl in dieser Ausführung, da er ja die Webseite mit dem Applet zum schalten haben muss, sowie die Portpinne zum schalten. Als Tip: Es gibt einen selbstbau Router (FLI4L) www.fli4l.de Da gibt es opt Packete, mit denen du über den Parallelport Geräte etc. schalten kannst. Und WakeonLAN für deine Rechner etc. So mach ichs auch.
Hallo Schlumpf, ok, ich hab mich nicht ganz genau ausgedrückt. Der Router soll nur über's LAN eingeschaltet werden, I-net brauch ich nicht (wär ja auch Quatsch, wie du schon gesagt hast). An WOL hab ich auch schon gedacht, aber das Board vom Router (3/86er) hat sowas noch nicht. Gruß, Christian
Hallo Christian, es bringt nix, wenn du das gleiche nochmal postest:o) Du müßtest schon genau erklären - was du mit Router meinst (alter PC mit SW-Router oder HW-Router oder was) - von wo genau du das Ding anschalten willst (dein PC im LAN oder jeder PC im LAN oder jeder PC im WWW oder was) - wie genau alle die PCs von denen aus das Ding geschaltet werden soll mit dem Router Ding netzwerkmässig verbunden sind (BNC Stichleitung oder Sternverkabelung oder ...) Du kannst: - prinzipiell die Webseite usw weglassen, dennoch brauchst du den IP Stack, der dein spezielles Datenpacket identifiziert. Ob das in den Mega8 passt weiss ich nicht. (Ob deine C Kenntnisse ausreichen kann ich nicht beurteilen.) - mit diesem Projekt eine Steckdose einschalten, egal was du da reinsteckst Du kannst nicht: - Den Router (egal was du damit meinst) mit einem PC (egal wo) anschalten, wenn dieser PC netzwerktechnisch nur mit dem Router verbunden ist, weil der Router natürlich nix tut solange er aus ist. AUSschalten könntest du den Router auch in diesem Fall. Oder ganz einfach: Dieses Projekt stellt dir eine RJ45 Buchse bereit. Diese Verkabelungsart wird normalerweise als Stern mit dem Router im Zentrum ausgeführt. Das bedeutet dass dein PC an Router-Anschluss A mit dem yC an Router-Anschluss B nur über den Router kommunizieren kann. Und das geht nur wenn er an ist. Ergo: Um deinen Router ANzuschalten, müßte dein PC via zweiter Netzwerkkarte direkt (oder via zweitem Router) mit dem yC verbunden werden. Was das für einen Sinn macht übersteigt allerdings grade meine Phantasie:o) Hoffe das ist jetzt geklärt:o) Gruß und frohe Ostern, Jochen PS: @Holger: sieht gut aus die Platine
Hallo Jochen, sorry, dass ich mich so unpräziese ausgedrückt habe! Ich versuch's nochmal: - In meinem Büro steht ein alter PC, in dem zwei LAN-Karten stecken. An einer hängt das DSL-Modem, mit der anderen hängt er am Switch. Dieser PC dient als DSL-Router, Hardware-Firewall, File-Server und Printserver. - mein LAN (100MBit --> RJ45) sieht so aus, dass ich einen 8-fach Switch habe, an dem meine anderen Rechner (Werkstatt-Rechner, Arbeits-Rechner, Laptop, Test-Computer, etc.) und der "Router" angeschlossen sind. - alle PCs im LAN sollen den "Router" einschalten können - Ausschalten ist kein Problem, da ich das Betriebssystem (Linux) via SSH herunterfahre und der PC dann selbstständig ausschaltet - wenn der modifizierte "Webserver" am Switch angeschlossen wird, kann dieser doch meinen "Router" einschalten, oder täusche ich mich da? Ich hoffe, dass es jetzt ein bisschen verständlicher ist was ich vorhabe :) Gruß und auch von mir Frohe Ostern! Christian
Ja, das sollte m.E. gehen. Anmerkung: Bei den heutigen HW Preisen würde ich mir an deiner Stelle einen HW-Router mit eingebautem DSL Modem zulegen (gibts umsonst wenn du zu einem günstig(eren) DSL Anbieter wechselst). Den Fileserver kannst du ja trotzdem mit dem uC schalten.
Hallo Jochen, was könnte ein HW-Router besser machen als meine momentane Lösung? Bin eigentlich ganz zufrieden damit. Gruß, Christian
Hallo, ab sofort ist die Leiterplatte unter: www.mikrocontroller.com erhältlich. Gruss, Holger
Hallo @Holger! Danke für die Platine, ist heute bei mir angekommen. Ist ja echt spitze. Warum kann ich nicht solche schönen Platinen ätzen ;-) Habe diese gleich bestückt. Werde in den nächsten 1-2 Tagen mal einen angepassten SourceCode vorstellen. Mfg Ulrich
Hi Also ich habe jetzt auch mein Web-server fertig und wollte mal hier fragen, ob mir jemand erklären könnte wie ich den richtig programmieren kann. Ich habe WinXP und den ISP-Adapter per Parallel-Port von Holger Buss. Das Problem ist das ich nicht weiß was ich mit dem C-Code von Ulrich anstellen soll. Oder besser gefragt wie ich ihn kompilieren kann und mit PonyProg auf den Mikrocontroller zaubern kann. Wäre klasse wenn mir jemand ein kurzen Howto schicken könnte. Vielen Dank Cu Kami
Hallo Kami, unter "Grundlagen" -> "ISP" auf unserer Seite findest Du einen Schaltplan zum DT006-Parallel-Programmer, oder zu einem sereiellen Programmer. (Achtung: mein altes DOS-Tool hatte eine andere Pinbelegung, deshalb bitte den Schaltplan zum DT006 nehmen) Dann kannst Du mit Ponyprog das HEX-File einspielen. Zum Compilieren der C-Codes denötigst Du einen GCC-Compiler für AVR, z.B. den WINAVR. Compilieren musst Du den Code, wenn Du die IP-Adresse des Webservers ändern willst. Das Ergebnis des Compilierens ist ein HEX-File. Vielleicht könnte Ulrich mal die HEX-Files zum aktuellsten Programm auch auf der Homepage anbieten. (Vielleicht mit unterschiedlichen IP-Bereichen) z.B. die Wichtigsten: 192.168.0.55 ; 16,00MHz ; 19200Bd 192.168.1.55 ; 16,00MHz ; 19200Bd 192.168.0.55 ; 14,xxMHz ; 19200Bd 192.168.1.55 ; 14,xxMHz ; 19200Bd Ab Besten zunächst ohne SD-Karte und für die Leiterkarte ISA-CTRL kompiliert. Gruss, Holger
Hi Also das Problem ist: Ich habe mit make all die Files kompiliert und da sind dann 54 datei bei entstanden. Ich habe dann PonyProg geöffnet und das bei Setup so eingestellt wie es auf deiner HP steht. Ich kann aber nicht den LPT umstellen der steht bei mir immer auf LPT2. Ich öffne dann mit PonyProg nur die Datei main.hex. Wenn ich dann versuche zu übertragen stehen da immer: Communication port not available (-16) Was kann ich da gegen den tun? Außerdem würde ich gerne wissen ob es möglich ist die IP des Webservers in den 10.108.34.* Bereich zu stellen? Mfg Kami
HI Holger ich schreib dir nochmal alles was ich jetzt rausgefunden habe und gemacht habe vielleicht hilft dir das weiter und du hast noch ein paar tipps für mich. Also: Ich habe das ISP-Kabel so wie hier beschrieben erstellt: DT-006 (parallel) und PonyProg v 2.06e installiert. In PonyProg ist DT006-API eingestellt und LPT2 was anderes kann ich da nicht einstellen. Ich habe alle Lötstellen und Verbindungen noch mal durch geprüft. Bis auf den Quarz und die 22 pF Kondensatoren konnte ich alles messen. Für den Rest habe ich leider kein Messgerät. Ich finde einfach nicht den Fehler. Wenn der Mikrocontroller am Spannung angeschlossen (7,5 V und 500mA) leuchtet die grüne LED. Bei der Netzwerk karte leuchtet nach Anschalten des Controllers kurz die Connect-LED für ein paar Sekunden auf dann geht sie aus. Was mache ich falsch warum kann ich das file main.hex nicht auf den Controller transferrieren? Mfg Kami
Holger schrieb: ----- Hallo, ab sofort ist die Leiterplatte unter: www.mikrocontroller.com erhältlich. ---- Äh, wo denn? Möglicherweise bin ich ja blind, aber ich finde das nicht.
www.mikrocontroller.com - -> Webserver --- > Seite ganz unten --- > Die Leiterkarte kann hier bestellt werden... und dann auf hier ......
Hallo, weiter oben wurde erwähnt, dass es den ISA-Slot bei Reichelt gibt. Ich kann den aber nicht finden. Kann mir da jemand auf die Sprünge (Bestellnummer) helfen? Vielen Dank
@isa-sucher weiter oben findest du ne html-stückliste von mir mit reichelt-bestellnummern
Hallo @sirko vielen Dank. Hab ich überelsen. Sorry. Kann man den STECKER 62-254 auch für den "kleinen" kürzen? Der ist billiger und man hat nen Rest, paßt das mechanisch? ausprobiert?
Hallo zusammen kann mir mal jemand erklären welchen RS232 Schnittstellenbaustein man nimmt? Im Schaltplan ist ein Max232 braucht der nicht 1uF Ladungspumpen? Der Max202 nur die angegebenen 0.1 uF. Vom Preis 0,40 zu 1,25. Was soll man nu nehmen? Vielen Dank für ne Klärung.
Hallo, Ich habe mich auch erst gewundert, aber der MAX232 funktioniert auch mit 0,1µF Kondensatoren. Aber ich würde besser den MAX202 benutzen der ist def. für 0,1µF ausgelegt. Mfg Ulrich
Hi könnte sich vielleicht bitte jemand um meine Probleme mit dem Webserver weiteroben kümmern? nur das das nicht verloren geht. Vielen Dank Cu Kami
Hallo @Kami: so wie ich das sehe, hast Du ein Problem mit der Parallelen Schnittstelle. Solange Ponyprog beim Test der Schnittstelle nicht Okay meldet, klappt das Programmieren nicht. Zur Not solltest Du auf die Serielle Schnittstelle wechseln. @Webber: Keine Sorge, der MAX232 rennt ganz hervorragend mit 0,1uF. Vielleicht kann der dann etwas weniger Strom treiben, das muss er aber auch nicht. Gruss, Holger
---------------- www.mikrocontroller.com - -> Webserver --- > Seite ganz unten --- > Die Leiterkarte kann hier bestellt werden... und dann auf hier ...... ----------- ARGH! Aber man muss erstmal auf "Deutsch" klicken. Vorher sieht die Seite doch recht anders aus. Da soll erstmal einer drauf kommen :) Also hier: http://www.mikrocontroller.com/index_de.html einsteigen
@Holger kann du mir erklären was du damit meinst das PonyProg okay sagt? Also wenn ich unter Initialisierung deine Einstellungen nehme und dann Probe/Test klicken dann sagt er immer Test OK! Oder meinst du was anderes? Die Schaltung habe ich aber genau so aufgebaut wie auf deiner Seite beschrieben muss ich vielleicht noch irgendwelche zusätzlichen Treiber installieren oder kann ich das irgendwie testen? Schaltung ist ja nicht so wild eigentlich? Vielen Dank Cu Kami
Hi Also das Serielle Datenkabel ist nun fertig und ich habe alles schon 100mal durchgemessen und keinen Fehler gefunden. PonyProg2000 sagt bei Probe Test OK wenn ich auf den COm-Port gehe wo der Webserver angeschlossen ist. Aber wenn ich dann versuche Daten zu übertragen kriege ich immer folgende Meldung: Bus busy or hardware error (-11) Kann mir vielleicht bitte jemand helfen ich möchte so gerne den Webserver endlich programmieren können und ich finde den Fehler nicht. Ich benutze einen BD139 Transistor für die Schaltung ich hoffe der ist in Ordnung dafür? Ich weiß echt nicht mehr wo dran noch der Fehler liegen könnte? Könnte beim Löten vielleicht irgendein Bauteil durchgebrannt sein? ich habe nur mit circa 300°C gelötet? Mfg Kami
Hallo, Ich habe nun meine neue AVR Web Server Leiterplatte bekommen. Muß sagen ... super !!!! vielen DANK . Ich habe da vieleicht eine ausergewöhnliche Bitte an Euch. Kann mir jemand freundlicherweise ein hex File der Web Server Software zukommen lassen die den ATMega32 + SD Karte unterstützt, so das ich nach dem Hardwareaufbau den Web Server testen kann. Habe einen Programmer HiLo den ich zum programmieren des Mega32 nehmen könnte. Ich habe im Moment das Prblem mich in den C compiler eizuarbeiten, um selber den code compilieren zu können ( bin diesbezüglich absoluter Anfänger ). Wäre schön wenn ich mit Eurer Hilfe meine Hardware testen könnte. Vielen Dank im Voraus !!!!! Gruß aus Bielefeld Michael
Hallo Mischu, schön, dass Dir die Leiterplatte gefällt :-) Anbei einige getesteten Hex-Files für diesen Webserver. Jeweils für 192.168.1.66 / 166 und 192.168.0.66 / 166 Die Dateien sind aus den Quellen V1.38 von Ulrich übersetzt. Wenn Ihr das Programm einspielt (mit SD-Karten-Unterstützung), muss nach dem Start die rote LED blinken, falls keine SD-Karte eingesteckt ist. Ausserdem blinkt die LED, wenn der Interrupt der Netzwerkkarte aufgerufen wird. Ab besten, Ihr schliesst die Serielle Schnittstelle an den PC an. Dann könnt Ihr mit 9600Bd auf einem Terninalprogramm beobachten, was der Webserver macht. Gruss, Holger
@Kami was passiert wenn du PonyProg sagst er soll programmieren und das kabel nicht angesteckt ist? Kommen die gleichen Meldungen oder andere? Schau mal in der Systemsteuerung/Gerätemanager nach ob irgendwelche Ausrufezeichen bei den Schnittstellen stehen. Seb
Hi So Feldstudien sind abgeschlosen nun zum Ergebnis: Also ich habe auf meinem Rechner, einem WinXP und einem Win98 Rechner getestet. Bei allen 3 Rechnern war der Fehler der gleiche. Nun zur Beschreibung des Fehlers: PonyProg erkennt unter Calibration, wenn man auf Probe klickt immer ob ein Kabel angeschlossen ist oder nicht also Test OK oder Test failed. Das klappt sicher. Aber die Fehlermeldung beim Übertragen des Hex-files bleibt immer die gleiche EGAL OB DAS KABEL ANGESCHLOSSEN IST ODER NICHT. Sie lautet: Bus busy or hardware error (-11) Das war bei allen 3 Rechnern so. In der Systemsteuerung habe ich auch von allen Rechnern überprüft ob der COM-Port fehlerfrei drin stand und das war immer der Fall. Ich weiß echt nicht wodran der Fehler nun liegt. Ich hoffe ihr könnt mir helfen. MFG Kami
Hallo @kami, Es kann auch daran liegen das dein Mega32 nicht arbeitet also das der Quarz nicht schwingt. Das würde ich als erstes überprüfen. Mfg Ulrich
Hallo Holger, kann ich in den Hex-Files aus der Isa_Ctrl_Hex_1_38.zip die IP mittels Hex-Editor einfach ändern, oder ist da eine Prüfsumme drüber ? MfG cdg
Hi, wenn du die Datei z.B. mit PonyProg lädst, kannst du die Adresse direkt ändern (wenn du die Position findest). Im Hex-File selbst ist eine Prüfsumme pro Zeile. Gruss, Ingo.
Hallo, beüzglich eines Nachbaus des AVR-Webservers stellt sich mir die Frage, in was für ein Gehäuse man den am Besten steckt!? Auf Bildern sieht man das gute Stück immer ohne, aber ein Schutz vor Staub wäre wohl ganz sinnvoll. Evtl. kann man den Webserver zwecks ein bischen MSR auch in einer etwas "raueren" Umgebung einsetzen. Jemand 'ne Idee worin man den am besten verpackt? Gruß, smiler
Hallo ich Versuch das als Sandwitch aufzubauen und verbinde die Karten mit Flachkabel... dann geht in "normale Gehäuse"
Hallo, Erst mal vielen Dank an Holger B. Werde nun das ganze ausprobieren !! und danach berichten ! Gruß & schönes Wochenende an alle Mischu
Hi, ich bin auch schon ganz heiß, diese Schaltung nachzubauen. Allerdings brauche ich die SD Karte nicht, sondern hätte lieber möglichst viele IO Anschlüsse zum Schalten und Walten. Ich habe mir daher mal die Schaltpläne und die Platine angeschaut, bin aber leider nicht so ganz schlau daraus geworden, was alles an Pins herausgeführt wurde: -Wozu ist der 14polige Stecker neben dem Stromanschluß? -Sehe ich das richtig, dass sowohl der 6polige als auch 10polige anschluss neben dem Atmega die Pins für den Programmierport beinhalten? -Was liegt auf dem großen Pin Block neben dem Atmega (bei Pin40)? Ich zähle hier 40+3Pins, die mit GND und 5V beschriftet sind. Gehe ich recht in der Annahme, dass an den 40 Pins alle Atmega Pins herausgeführt sind? Gruß, Thomas (der die Platine jetzt bestellen wird :)
Hallo Thomas, auf dem 14-Poligen Stecker sind 9 freie Portpins, Versorungsspannung und die serielle Schnittstelle herausgeführt. Da kannst Du deine I/O-Schnittstellen auflegen. Drei Analoge Eingänge sind unter Anderem dabei. Sowohl der 10-Polige als auch der 6-polige Stecker dienen als Programmierschnittstelle. Der 6-Polige ist kompatibel zu der Belegung der AVR-Ctrl-Platine. Der 10-Polige ist kompatibel zu STK200. Der Block mit Lötpins dient zur freien Verfügung als Lochraster. Die drei Analogen Eingänge und Versorgungsspannung liegen dort auch, so dass man kleine MessSchaltunge dort aufbauen könnte. Gruss, Holger
Hi Holger, danke für die Info. Werds dann mal austesten, wenn die Platine da ist. Hast Du eigentlich schon erfahrungen, wie schnell der Atmega einkommende Pakete annehmen kann (also ohne diese weiter zu senden bzw. auf flash zu speichern)? Ich würde gern per UDP konstant viele Steuerdaten and den Atmega senden, der diese dann auf verschiedene weitere Atmegas verteilen soll. Im maximalfall bekommt ein solcher Atmega 512byte mit 30Hz, was schon icht gerade wenig ist. Je nachdem, wie viel er so annehmen kann, würde ich dann gern weitere Atmegas dran hängen (Anschluß an den Atmega wahrscheinlich parallel). Ich bin mir über die Machbarkeit allerdings noch gar nicht so sicher. Kommt alles darauf an, wie schnell der die Daten überhaupt annehmen kann. Gruß, Thomas
Hi Holger Wäre es vielleicht möglich das du mir deine Source-Codes einmal mit MMC Karte und einmal ohne MMC Karte zu kommen lassen würdest. Muss selber mal nachgucken was du da eingestellt hast. Kriege ich leider nicht richtig hin. Jedes Mal wenn die Sources von Ulrich Radig übertragen wurden klappt das Net oder irgendwas anderes nicht mehr richtig. Wäre also echt super wenn ich die mal von dir geschickt kriegen könnte. Muss auch noch was an der IP ändern. Geht das eigentlich technisch im 10.108.34.* bereich? Wie muss eigentlich eine SD-Karte formatiert sein damit man die mit Webserver benutzen kann? (Fat,Fat32...)? Mfg Kami P.S.: Das mit dem Datenkabel habe ich hingekriegt lag nur an der Software deine beiden Platinen sind in Betrieb.
Hallo Kami, schön, dass Du die Platinen jetzt wenigstens programmieren kannst :-) 10.108.34.* geht technisch auch. Die SD-Karten müssen mit FAT16 formatiert sein. Auf der seriellen Schnittstelle kannst Du sehen, ob der Kontakt zur SD-Karte klappt. Auf unserer Webseite sind HEX-Files für 192.168.*.* - Netze. Mit einem Hex-Editor könnte man die IP-Bereiche patchen. In Ulrichs Quelle muss das #define für ISA-Ctrl (heisst dort ISP_CTRL) gesetzt sein. Den Quarz stellest Du auf 16000000 ein. ACHTUNG: Das Programmierkabel muss dann abgeklemmt sein, wenn Du die SD-Karten nutzt, sonst ist die Schnittstelle belegt! Nach dem Programmieren schaltest Du am Besten kurz alles Spannungsfrei. Der elektrische Kontakt zur SD-Karte kann auch ein Problem sein. Gruss, Holger
Hi danke für die Antwort aber ich komme damit noch nicht so ganz zurecht also hier sind meine Änderungen an dem Source-Code von Ulrich 1.38 : main.h sieht so aus: //#define SYSCLK 14318180 //Quarz Frequenz in Hz #define SYSCLK 16000000 //Quarz Frequenz in Hz main.c so: const unsigned char MYIP[] = {10,108,34,66}; rtl8019.h: //Anschluß des Webservers nach meiner Bauanleitung, oder die von //Holger Buss (www.mikrocontroller.com) Mega32-Board #define ISP_CTRL Das wars aber aus irgendeinen Grund kriege ich dann keine Netzwerk verbindung und die rote LED leuchtet niemals? Strom habe ich natürlich auch getrennt und es ist fürs Testen nur die SD-Karte eingesteckt. Sonst ist aber alles okay mit deinen fertigen Hex-files klappt es wunderbar. Nur wollte ich mich mal erkundigen ob man auf dem FTP listen kann? und was man alles mit der Telnet connection anfangen kann? Mfg Kami
Hallo kami, Vergesse nicht den CPU Type im Makefile anzugeben anstelle des Mega128 den Mega32. Mfg Ulrich
Das hatte ich zwar auch vergessen aber daran lag es wohl noch nicht hat immer noch nicht geklappt. Außerdem wollte ich mal fragen warum die MAC-Adresse in dem Prog angegeben wird ist die nicht immer auf der Netzwerkkarte? Mfg Kami
Hallo, Ich hätte eine Bitte an Euch ! Kann mir jemand 2.. 3 ISA Netzwerkkartemn mit dem RTL 8019, idealerweise auf IRQ 9 Adr. 300 umgestellt verkaufen ? Ich habe da 2 Stück die noch Jumper auf der Platine haben, die ich aber nicht umstellen kann da mir die Jumperbelegungen nicht bekannt sind. Bitte meldet Euch per EMail falls jemand für mich 2.. 3 Karten zu verkaufen hat ! Gruß und danke im voraus. Michael
Hallo Mischu, der IRQ ist auf meinem Webserver egal, weil alle IRQ-Leitungen parallel geschaltet sind. Die Adresse muss aber schon stimmen. Schau mal bei eBay. Gruss, Holger
Hi hätte vielleicht jemand noch mal einen Tipp wegen dem SourceCode für den Webserver irgendwie hängt da was bei mir? Hat noch einer andere Änderungen? MFg Kami
Ich habe in WriteRTL vor RTL_WR_OFF() noch ein nop() eingefügt um den daten zeit zu geben auf dem bus einzuschwingen. Die fortsetztung dazu ist in Write_Ethernet_Frame. In der schleife vor RTL_WR_OFF(); noch ein nop(); rein. In ReadRTL() habe ich die zeilen DATA_CTRL_RTL = INPUT; und ADDR_PORT_RTL = rtl_addr; gegeneinander vertauscht um den addressleitungen zeit zum einzwschwingen zu lassen. In Init_Real... die drei CTRL_LINES_DIR |= ... in eine zeile zusammengefasst. In Init_Real... nach dem CTRL_LINES_DIR |= diese drei leitungen auf high pegel (RTL_REST_ON(); RTL_WR_ON(); und RTL_RD_ON();) In Interrupt4.c den cli() und sei() aus der SIGNAL raus. Interrupts sind in einer SIGNAL routine sowiso gesperrt (nur zur klarheit des codes, das hat mich relativ stark "irritiert"). Die rot LED geht bei mir auch nicht an, ich glaube die wird für eine MMC - information genutzt - verwende ich (noch?) nicht.
Hallo, nur zur Info: Die Rote LED wird in dem Programm von Ulrich nicht angesteuert. Das ist eine Modifikation von mir. By the Way: Falls jemand mal eine (sinvolle) Anwendung fertig hat, soll er mir mal Infos dazu schicken. Könnte man vielleicht auf der HP sammeln. Gruss, Holger
Hi Holger Wenn du einen guten Sourcecode hast wo die Modifikation an Ulrichs Code alle drin sind dann stell den doch mal online das man mal sehen kann was du so verändert hast. Mfg kami
Hallo, es ist schon recht spät, aber nachdem ich nun endlich den Webserver und den Programmer fertig hab, wollt ich kurz was sagen: Ich hab nen STK200-kompatiblen Programmer gebaut (http://rumil.de/hardware/avrisp.html), aber PonyProg hat ihn zwar erkannt, aber nicht beschrieben. Erst yaap hat ihn richtig erkannt (auch den atmega32) und beschrieben. Leider stimmen hier nicht alle bezeichnungen der Fusebits zu ponyprog (siehe holgers webseite unter downloads->webserer) überein und ich hab hier im wiki die fusebit-einstellungen für nen atmega 8 gefunden und daran die häkchen für den mega32 abgeleitet. Fazit: yaap scheint mit winxp am besten klar zu kommen! Frage: Kann mir bitte jemand zu yaap für den mega32 die fusebits mal nennen, die abgehakt sein sollen, damit ich das mal überprüfen kann? Ansonsten: Tolle Sache von Holger und Ulrich!!! Bin begeistert! Bye sirko
Hallo Funktioniert das ganze ohne anpassungen auch mit bnc ? Ich habe hier ein bereits fertig verlegtes ead-netz (rg58) in meiner Eohnung das ich ja prima dafür benutzen könnte.
hallo, kann mir jemand erklären, wie ich noch eine zweite LED mit dem webserver ansteuern kann? vielleicht ein codebeispiel... freue mich auf eine hilfreiche antwort max
Hallo, Hura mein WebServer funktioniert endlich !!... supper. Die RS232 Komunikation zum PC läuft noch nicht .. kann es sein das die 0,1 mF als Ladungspumpen für den MAX 232 zu klein sind ? Gut.. Ich weis noch nicht an was das liegen könnte .. werde weitersuchen. Hat jemand von Euch dafür schon fertige Applicationen oder Beispiele ? zB. Temperaturmessung, Steuern über´s Web etc. Wie muß die HP auf der SD Karte aussehen ? Hat vielecht jemand ein Beispiel füe mich ?... würde mir sicherlich weiterhelfen. Gruß & Danke im Voraus. Michael
Hallo Holger, eigentlich läuft alles hardwaretechnisch mit den vorkompilierten HEX-Files, nur die SD-Card will nicht. Also wenn ich das HEX-File mit SD-Card-Unterstützung (IP:192.168.1.66) flashe und die SD-Card nicht eingesteckt ist, blinkt die rote LED 3 Mal, wobei an und aus jeweils ca. eine Sekunde dauert. Wenn ich die SD-Card einstecke, blinkt die LED auch drei Mal, jedoch wesentlich schneller (alles zusammen ne Sekunde). Auf dem Terminal kommt immer die Meldung, dass die Karte nicht erkannt wird. Weißt Du, woher das mit den LEDs kommt? Ich kann ja leider nicht in deinen Code gucken und würd es ganz gern zuerst mal mit den fertigen HEX-Files hinbekommen, damit die Hardware 100%ig läuft. Gruß Sirko
@Sirko: Es wäre ja naheliegend zu denken, dass die SD-Karte nicht mitspielt. Dann habe ich sowohl eine Extremememory als auch eine Lexar ausprobiert, und das Ergebnis war dasselbe. Bei mir wird die SD-Karte auch öfters nicht erkannt, aber wenn doch, dann kommt beim Aufruf die eingebaute Seite, also nicht die von der Karte. Die .hex-Datei habe ich aus den Quellen von Ulrich Radig erstellt (BTW. @Ulrich & @Holger: klasse Arbeit!), daher schätze ich, dass der Fehler irgenwo dort zu finden ist, ich tippe mal auf mmc.c/mmc.h, vielleicht auch (aber weniger wahrscheinlich) in fat.c/fat.h . mfG, ejd
Blöde Frage, aber wie hoch sollte eigentlich die Versorgungsspannung sein?(Da ist ja noch 'ne NIC angeschlossen...) mfg, smiler
Nachdem meine Netzwerkkarte (SK-16G+) von der Orginalsoftware nicht erkannt wurde (255), habe ich einige Änderungen vorgenommen, und nun läuft's (eigentlich schon länger). Wer auch Probleme hat kann ja die geänderten Sourcefiles einmal ausprobieren. Good luck Werner
Hi, hier noch ein Tip für alle, die noch eine Netzwerk Karte mit RTL8019AS suchen: Ich habe gerade in einem meiner alten Rechner eine ISA Karte mit so nem Aufkleber auf dem Hauptchip gefunden. Drunter sitzt ebenfalls ein RTL8019AS. Diesen Aufkleber sieht man häufig bei ebay. Es steht ganz groß "YES" drauf und darunter irgendwas von "Netware". Die Karte hat sogar Jumper :) Ich kann Euch zwar nicht garantieren, dass unter jedem Aufkleber nen 8019 werkelt, aber vielleicht hilfts Euch ja, da ich ziemlich oft bei den Realtek Karten überboten wurde. Gruß, Thomas
Weis jemand ob die 3com Karten (etherlink) nun unterstützt werden? Wenn ja da hätte ich noch ca 200 Stück hier rumliegen... gruss markus
Hallo, 3com karten werden nicht unterstützt!! Aber ich habe die Doku von 3Com 509 ISA Netzwerkkarten. Mfg Ulrich
Anhand der Doku für die 3c509B von Ulrich: Erst einmal ein kleiner DOS-Testcode für die 3c509B... (Unter Domes... äää MSDOS kann man leichter Testen ;) Mit heißer Nadel gestrickt .. zu nix zu gebrauchen, tut aber als Einstiegspunkt für den AVR. Eines ist jetzt schon sicher, man braucht eine zusätzlich Adressleitung! Viel Spaß Werner
Mist, das war die falsche ZIP, (hab mich schon gewundert warum das so lange dauert) die Richtige jetzt!
Fehler in Kommentar zu set_rx_filter Richtig // 0x01 = Individual address // 0x02 = Multicast address // 0x04 = broadcast address // 0x08 = promiscuous mode
nochmal was zu den SD/MMC-Karten: Ich hab jetzt eine SD-Card von Kingston und eine von Sanyo (war bei der Digicam dabei) ausprobiert und diese gehen nicht. Es kam immer Fehlercode 2 (weiß jetzt aber nicht mehr, was das genau war). Eine kurz geborgte MMC-Karte wurde auf Anhieb erkannt. Ich werd den Webserver jetzt erstmal ohne Karte betreiben. Es sei denn, jemand kann ne kleine MMC-Karte preiswert abgeben! Bye Sirko
So, es ist soweit, Version 0.01 von 3c5x9.c zum Test! Im ZIP-File sind die Quelldateien zu finden. Es sind nur neue Files und die Dateien die sich gegenüber Ulrich Radig's "SourceCodeCPP_V1.38MMC.zip" verändert haben. Die einzelnen Änderungen sind in der 3c5x9_Changes.log dokumentiert. Die Änderungen die am AtMega32 Board von H.Buss vorzunehmen sind, sind in 3c5x9.c beschrieben. Viel Spass beim Testen Werner
Hallo danke! werde hoffentlich die nächsten Tage etwas Zeit freischaufeln können um das zu Testen. gruss markus
Hallo, Suche nach Applikationen für den WebServer. Hat jemand schon zB. Temperatur , oder den WebServer als Fernschalter über das Internet im Einsatz ? Wie erstellt man eine eigene Hompage auf der SD Karte ? Hat vieleicht freundlicherweise jemand ein Beispiel für mich ? Erst mal Vielen Dank im Voraus !! Gruß Michael
Hi, ich bin neue in Sachen Microcontroller bauen und programmieren. Habe mich jetzt ca. 2 Std. durchgelesen, jedoch habe ich zu dem Webserver noch ein paar Fragen. 1. Ist es möglich damit eine Art Bilderserver für die Homepage zu machen. 2. Braucht man dazu dann eine feste IP oder geht das auch mit einer DNS Adresse. 3. für die aktualisierung der WEB-Adresse benötige ich ein Programm kann man das auf die SD Karte schieben. Cu Jörg
Bildserver - Ja, aber laaaaangsam und ohne MMC Karte extrem begrenzter Speicher. Feste IP ist notwendig - kann auch "geNATtete" Adresse sein. Erklärung zu dem NAT (Network Address Translation): Manche DSL-Router bieten die Möglichkeit einem eingehenden Port (z.B. 80 für HTTP) auf der privaten Seite eine feste, private IP Adresse (z.B. 192.168.xx.yy) zuzuordnen. d.h. falls Du deinen DSL Router bei einer DYNDNS (z.B. dyndns.org) registrieren lässt, kannt Du alle eingehenden Verbindungsanforderungen auf Port 80 an einen (festen) internen Host am Port 80 weiterleiten lassen. Genaueres: Bitte googeln und Handbuch zu Deinem Router. SD Karte geht soweit ich mitverfolgt habe nicht so richtig, aber MMC Karten! Um vor Fehlinvestitionen geschützt zu sein am besten mal im Forum "Codesammlung" den Thread "MMC/SD ansteuern mit AVR" verfolgen. Viel Spass Werner
Hi Werner, also besser gesagt ist der Webserver nur als Server für Hompage ohne Bilder gedacht oder verstehe ich das falsch. Die SD oder MMC Karte ist also nur für die Homepage Datei da oder? Cu Jörg
Hallo Jörg, das verstehst du richtig, so ist es gedacht. Du könntest zwar auch Bilder darauf speichern, aber es macht praktisch nicht viel Sinn: - du brauchst eine MMC Karte, sonst passen kaum Bilder drauf - das wäre wirklich seeehr langsam, und genau das macht bei einem Bilderserver keinen Sinn - es gibt im www kostenlose Dienste, wo man seine Bilder hochladen kann um sie in Webseiten oder ebay Auktionen einzubinden Gruß, Jochen
Danke Jochen Kannst du mir einen guten Bilderserver empfehlen?
ich weiß zwar nicht was du unter einem 'bilderserver' verstehst, aber guten kostenlosen webspace bekommst du bei funpic.de dort kannst du an sich so viele bilder hochladen wie du willst...
Hallo Hab mir den ISA-Ctrl Webserver von H.Buss zusammengebaut. Als Netzwerkkarte habe ich eine Planet mit RTL8019AS Chip und Jumper. Wenn ich Adresse 300 und IRQ auf 9 einstelle erhalte ich ERROR(2) bei jeder anderen Adresse erhalte ich ERROR(195). Im PC funktioniert die Karte einwandfrei. Weis jemand was das Probem sein könnte ? Gruss Thomas
Hallo Zu Error(2) hab ich folgendes zu berichten (hatte ich auch) Irq und adresse waren richtig eingestellt aber Ich hatte meinen mega32 mit bascom programmiert und die Fuses falsch eingestellt. Nachdem ich mir ein paralleles Programmierekabel für Pony prog hergestellt habe und mit pony programmiert hatte wobei die Fuses nach einem bild von ich glaube aus mikrocontroller.com oder so eingestellt hatte funktionierte der server und hat die Netzwerkkarte erkannt. MfG
Hallo Lag an den Fuses. Danke für den Tipp. Webserver läuft nun mit ausnahme, dass die SD karte noch nicht richtig erkannt wird. gleiches Problem wie weiter oben berits beschrieben. Aber ich Hoffe / Glaube das ich auch das noch in den Griff bekomme. Gruss Thomas
Hi! Nachdem hier scheinbar die Post abgeht und mein Thread verkümmert, möchte ich mein Anliegen einfach mal an dieser Stelle vortragen. Hallo an alle! Mein RS232-LAN-Modul ist mittlerweile in der Lage Daten so zu versenden, wie vorgesehen. Leider funzt das erst mit einer Derekten Verbindung (gekreuztes Patchkabel vom Modul zum PC). Ist ein Hub- oder höherwertihe Netzwerktechnik dazwischen geschaltet, so werden keine Daten empfangen. Stattdessen zeigt mir der Hub total viele Kollisionen an. Dazu muß ich segen, daß ich den CS8900a im 8-Bit-I/O-Modus betreibe und nur warte, bis er ein Rdy4Tx-Flag gesetzt hat. Das Signal, welches den Ethernetkontroller verläßt wurde mittels eines Oscar's mit ein anderes Signal verglichen und schaut gut aus. Wer kann mir weiterhelfe? Megadanke im Voraus!! Gruß Markus
Hallo! @Thomas B.: Die SD-Karte funktioniert bei mir nur, wenn ich das Programmierkabel abziehe (ist der gleiche Port) und danach das Board kurz spannungsfrei schalte. Manchmal gibt es auch Kontaktschwierigkeiten bei der "Stiftleisten-Lösung". Gruss, Holger
Hallo Hab nun eine 512 MB SD Karte von San Disk eingesetzt die funktioniert wunderbar gegenüber der 16MB von Panasonic. bei mir funktioniert die Karte auch nur bei nicht angeschlossenem Programierkabel. PS: Habe bei mir eine SD Kartenhalterung angelötet. Gruss Thomas
Hallo, Mit San Disk habe ich bisher die besten Erfahrungen gamacht! Ist normal das im SD/MMC Kartenbetrieb der Progstecker entfehrt werden muß! Mfg Ulrich
Hi Thomas B. Kannst du mir mal sagen wo du die SD-Kartenhalterung her hast würde mir auch gerne so eine einbauen. Mfg Kami
Hallo Hab meine SD Kartenhalterung von www.farnell.ch ( www.farnell.com ) Best.-Nr.: 4381609 ist leider eine SMD Kartenhalterung. Hab einfach die überflüssigen Anschlüsse die nicht im gleichen Pin Raster waren mit einer Zange aus den Stecker gezogen und ihn dann Stehend auf den Pint gelötet. Gruss Thomas
Achja, kleiner Tip: Bei Reichelt gibt es Steckkartenverbinder: STECKER EC20 (0,19EUR) In die passt eine SD-Karte sehr gut rein. Zusammen mit einem kurzen Flachbandkabel (20-Polig) und einem Pfostensteckverbinder für Flachband: PFL 20 (0,18EUR) und STIFTL 2 X 10G (0,13EUR) .. hat man eine saubere und billige Lösung. Auf der Leiterkarten von meinem Webserver habe ich extra dafür die Löcher neben der SD-Aufnahme frei gelassen (da hat sich mancher sicher schon mal drüber gewundert). So passt das alles wunderbar ohne Kontaktschwierigkeiten zusammen. Gruss, Holger
Hallo, ich habe den Webserver von Holger nachgebaut und bin begeistert. Die MAC-Adresse lade ich aus der Netzwerkkarte. Die Serversoftware habe ich erweitert, um damit die Uhr zu stellen und die LED zu schalten. Als nächstes soll ein one-wire-bus angesteuert werden. Hat dazu schon jemand etwas realisiert? Anliegend ein Image ohne SD-Kartenbetrieb aber mit 93LC46-Dump. Gruß, Joachim
Hallo an alle, ich habe mir eine Platine von Holger bestellt (v1.0) und wollte eben damit beginnen, diese zu bestücken. Aber die RS232-Schnittstelle scheint spiegelverkehrt zu sein, oder bin ich bloss zu doof? Sowohl der Aufdruck als auch die Leitungen sind auf der Platine spiegelverkehrt zu dem, was einem (auflötbaren) SubD-Stecker steht. Dort wo 1 sein sollte, ist aber die 5. Das würde erst passen, wenn ich den Stecker unter die Platine löte. Aber aus dem Bild von Holger schliesse ich, dass es ja gehen muss! Bin ich der Erste, dem das auffällt, oder einfach nur zu doof?
Hi Also ich habe mir auch die Platine selber bestückt und bei sieht die genauso aus wie auf Holgers Fotos und sie funktioniert auch 100 % vielleicht hast du die einen falschen Stecker bestellt. Zeig doch sonst mal ein Foto. Cu Kami
Hallo @Bitschubser Du hast Buchse mit Stecker vertauscht! Das Board benutzt eine BUCHSE Female!! Kein Stecker! Mfg Ulrich
Hallo Uli, Danke für die schnelle Reaktion. Natürlich habe ich einen STECKER, da eigentlich immer (?) Stecker verwendet werden. Aber das erklärt es natürlich. Da muss ich mal wieder Reichelt bemühen... Danke.
Hallo @User Gibt es eine möglichkeit über einen freien Port des Webservers eine Html Seite zu steuern oder zu verändern. zB. möchte ich einen Taster auf dem Board anbringen der mir eine Html Seite auf einer MMC Karte ein Hacken in ein definiertes Feld setzt oder eine neue Seite startet. Zur MMC Karte habe ich gelesen das Ulrich SD Karten im Einsatz hat bei mir funzen nur MMC. Habe es mit unterschiedlichen Karten getestet aber ohne Erfolg. Hat jemand eine Lösung.
Hallo tolles Projekt! Ich habe auch den Webserver von Holger nachgebaut und er läuft sogar. Keine Kunst bei der Vorlage. Nochmals vielen Dank an Holger. @Joachim B. ich finde das toll, dass Du den Server erweitert hast und den Code (HEX) zur Verfügung stellst. Du hast ja "offen" gelegte Software benutzt und stellst Deine Erweiterungen nur in hex zur Verfügung..... mmmmmHHHH. ... >Als nächstes soll ein one-wire-bus angesteuert werden. >Hat dazu schon jemand etwas realisiert? Ich habe die Software von Martin THOMAS mit 5 DS18S20 laufen >http://www.siwawi.arubi.uni-kl.de/avr_projects/tempsensor/index.html Funzt problemlos. Vielen Dank Martin und alle Anderen die daran mitgewirkt haben. Dort gibt es Source Code und nicht nur Images..
Hallo Nachbauer, vielen Dank für den Hinweis zu dem DS18S20-Projekt. Den Source-Code meiner Erweiterungen kannst Du gern haben. Meine Änderungen sind jedoch nicht besonders schön (C-like), da ich in C nicht so geübt bin. Was mir noch fehlt ist ein möglichst kompakter DCHP-Client. Es würde mir schon ausreichen, wenn die Schritte discover - lease offer - request und ack funktionieren. Auf das aktualisieren zur Ablaufzeit würde ich erstmal mangels Kalender verzichten. Gruß Joachim
Vielen Dank für deinen Beitrag Das ist das was ich gesucht habe. nochmals vielen Dank und mach so weiter.
Hallo, bin mit Begeisterung auf dieses Projekt gestoßen. Da ich zwar im Bereich Elektronik arbeite (HF-Technik) aber bisher noch keine Erfahrung mit der Programmierung von microcontrollern gesammelt habe, habe ich ein paar Fragen: Ich möchte mit dem Webserver Zustände erfassen und per Netzwerk weiterleiten, außerdem einige Schaltvorgänge auslösen. Wieviele Bits stellt dieser webserver hierzu bereit? Wo finde ich diese in der Schaltung? Wie löse ich das Programmierungstechnisch? Muß ich dazu die Hexfiles editieren? Gibt es irgendwo Beispiele dazu? Gruß Wolfgang
Hallo, wieviele Eingänge sollen es denn sein? Der Atmega32 ist ziemlich voll, wenn du die MMC-Karte mit betreibst. Es gibt aber das Projekt von Ulrich Radig mit einem ATmega128. Da wären dann drei Bytes zur Verfügung. Dir wird allerdings nix anderes übrig bleiben und das C-Programm des ATmegas zu ergänzen und dann neu zu compilieren. Gruß Elektrikser
Mir geht es in erster Linie darum eine Schnittstelle zum Netzwerk zu bekommen, also Bits einlesen und ausgeben. Ich brauche keine aufwendige html Seite. Telnet wäre auch ok. Ich würde per telnet den webserver abfragen oder Anweisungen schicken. Sowas habe ich bereits mehrfach in VB realisiert. Das sollte doch irgendwie zu realisieren sein, oder. Wie gesagt meine Kenntnisse in mc Programmierung sind bescheiden aber ausbaubar. VB Programmierung, auch tiefergehend in Richtung Netzwerke, kann ich ganz gut. Bin für jede Hilfe dankbar. Gruß Wolfgang
Hallo Wolfgang, ich kann Dir die Hardware von Holger Buss empfehlen. Für 10 erhälst Du eine professionelle Leiterplatte, die schnell zur Funktion zu bringen ist. Auf einer 14-poligen Stiftleiste findest Du neben den Betriebsspannungen 3 analoge und 6 digitale Ports des Prozessors. Evtl. reicht das ja für deine Anwendung. Die Software ist in C geschrieben. Wer programmieren kann, sollte sich das schnell aneignen können. Gruß Joachim
ja, hört sich gut an. Wo kann ich die Platine bestellen. Wo bekomme ich die Software?
die Platine gibts bei: http://www.mikrocontroller.com/. Die Software gibt es dort ebenfalls, oder aber bei: http://www.ulrichradig.de/. Ich habe die Software etwas erweitert (siehe in diesem thread am 30.06.2005 21:37). Gruß Joachim
Ich kämpfe seit Tagen mit dem Webserver von Ulrich und habe das Problem das ich Schaltzustände (EIN/AUS)habe die ich im Webserver anzeigen lassen möchte. Über das Web geht das mit den Sourcen von Joachim B. Aber ich will das mir die Webseite anzeigt wenn ich ein LED von aussen einschalte(zb. über einen Taster)hat da jemand eine Idee oder kann mir jemand dabei helfen ??
Hallo Gerd, ich verstehe das so, dass Du von einem I/O-Pin des Prozessors einen Schalter nach Masse legst. Den Pin definierst Du als Eingang mit internem Pull-Up-Widerstand. In der Datei tcp.c findest Du die Ausgabe der Variablen. Das sieht etwa so aus: if (pgm_read_byte(pointer) =='h') dec_out (buffer,hh); // Stunden einfügen Du kreierst eine neue Variable und liest vor der Abfrage auf diese Variable das Signal vom I/O-Pin in die Variable ein. Nun mußt Du noch die HTML-Seite mit einer Marke "%VA?" erweitern, so dass die neue Variable auch in eine HTML Seite eingefügt und damit ausgegeben wird. So sollte das funktionieren. Gruß Joachim
Hallo Joachim Danke für deine Antwort. Ich werde es gleich mal versuchen, könnte allerdings ein wenig dauer weil ich erst mit C Programmieren angefangen habe. Gerd
Salve, an dieser Stelle sollte ich mich mal einschalten. Ich hab den Webserver soweit erweitert, daß man damit Werte ausgeben kann (über spezielle Tags im HTML-File), und auch Werte per Browser (GET-Methode) verändern kann. Bei der Ausgabe kann man Zahlenwerte direkt ausgeben, oder auch bedingte Ausgaben machen, die dann erscheinen, wenn ein Bit in einem Wert gesetzt ist. Genauso kann man auch Bits per GET verändern. Würde mich freuen, wenn der Code evtl. sogar in die "offzielle" Version einfließen könnte, weil er Anzeige und Manipulation von Werten wirklich sehr einfach macht. Ich kann auch eine kleine Demo beilegen. Einfach auf die SD kopieren und ankucken, wie es funktioniert. Den Code muß ich nachher erstmal auseinanderpflücken. Melde mich dann nochmal. Mark
Hallo Mark Hämmerling Lege bitte doch dein Demo dabei.Würde es mir gerne mal anschauen. Gruss Gerd
Salve, hier also mein Code, inkl. Demo (so sollte es im Garten mal installiert werden). Einfach die Dateien in "sd-card" auf eine Karte schieben und diese dann mit dem neuen Code verwenden. Der Code basiert noch auf 1.36. Ich nehme an, das ist schon etwas veraltet. Lag halt ne Weile bei mir rum. ;( (Anpassen der MAC- und IP-Adressen in main.c nicht vergessen!) Das Format der "LFO"-Dateien ist normales HTML. Der Unterschied ist, daß dort Tags (eine Art Server-Sided-Includes) interpretiert werden. Prinzip: Es gibt einen globalen Datenbereich, der word-, byte- und bitweise adressiert werden kann (sowohl beim Ausgeben, als auch beim Setzen von Werten). Adressierung: als Word: "wN": Word an 16bit-Adr. N als Byte: "bN": Byte an 8bit-Adr. N als Bit: "bN.M": Bit M von Byte an 8bit-Adr. N Tag-Format in LFO-Dateien: {wN:FORMAT} {bN:FORMAT} {bN.M:TRUE:FALSE} wobei: N,M: Adresse (s. oben) FORMAT: sprintf-Formatstring, ohne führendes "%" TRUE: Ausgabe im Fall, daß bN.M gesetzt ist FALSE: Ausgabe im Fall, daß bN.M nicht gesetzt ist Beispiele: {w1:04u} gibt Word 1 (= Bytes 2-3) im Format %04u aus {b5:u} gibt Byte 5 im Format %u aus {b14.3: checked:} gibt " checked" aus, wenn Bit 3 von Byte 14 gesetzt ist, sonst nichts Werte per CGI manipulieren: Per Formular oder Adresszeile können die Werte auch verändert werden. Die Adressierung geschieht wie oben beschrieben. Reales Beispiel aus der Demo: http://avr/?b2=95&b3=90&b4=85&b6.0=0&b6.0=1&b6.1=0&b6.1=1&b5=4&b6.3=0&b6.3=1 Ach ja, ein SMTP-Client mit AUTH-Server (für neugierige Mailserver wie exim) ist auch noch dabei. Die zu versendenden Mails liegen als Dateien auf der SD-Card. Der Versand wird durch Setzen bestimmter Bits im Datenbereich getriggert (und daraufhin die Mail mit der entsprechenden Nummer im Dateinamen versandt). Also z.B. auch einfach per Webfrontend (s. Demo), oder durch die Anwendung, die auf den globalen Datenbereich zugreift. Meine Idee war die, daß ich diesen Datenbereich mit einem extern angeschlossenen Steuersystem (der Server selbst hat für meinen Zweck einfach nicht genug I/Os übrig) synchronisiere - so daß der Datenbereich in beiden Geräten liegt und beide so damit arbeiten können (lesend und schreibend), als liefe die entsprechend gegenüberliegende Anwendung im selben System. Der überall verwendete Name "LittleFeather.org" war mein Projektname für den neuen Webserver (also inkl. jener CGI-Features). Wären die Ressourcen im Mega32 nicht so knapp (insb. ärgert mich, daß ein Resend aufgrund mangelnden RAM nur durch erneutes Zusammensetzen des Sendepuffers zu realisieren wäre), hätte aus der Idee vielleicht was werden können. Verlorene Pakete vom AVR aus (ist im LAN noch nicht vorgekommen) würden sich sicherlich fatal auswirken. Andererseits gibt's solche Projekte ja wirklich wie Sand am Meer. Wie sieht's dort eigentlich mit CGI aus? Hat da jemand einen Überblick? Kleine Anmerkung zur Demo: Manche Browser haben scheinbar ein Problem mit Tabellenhöhen von "0". Z.B. Firefox stellt die Höhe dann auf undefiniert - so daß bei Füllstand und Ventilpegeln von "0" die Trennlinie bzw. Markierung in der Mitte liegt. Fragen und Anmerkungen können ja hier diskutiert werden. Insbesondere würde mich Ulrichs und Holgers Meinung (über eine allgemeine Übernahme der Features) interessieren. :) Mark
Hallo Mark, Super Sache! Ich werde gerne deinen Code auch auf meiner Seite einstellen. Wenn du interresse hast kanst du auch das Projekt auf meiner Seite gerne weiterführen. Ich verfolge zurzeit ein neues Projekt (einen kleinen Webserver auf uClinux basis). Aus diesem Grund habe ich dieses Projekt ein wenig vernachlässigt. Mfg Ulrich
Hi @All, ich hätte da eine Frage. Hat schon jemand eine i2c Routine geschrieben, mit der man am Webserver z.B. ein Temperatur einlesen kann, von z.B. einem LM75? Mfg Michael
Hallo Michael, ich beschäftige mich damit den one-wire-bus von Dallas anzusteuern. Damit kann ich dann die digitalen DS1820-Thermometer ansteuern. Ich bevorzuge den one-wire-bus, weil die zulässigen Leitungslängen gegenüber dem i2c-bus erheblich größer sind. Gruß Joachim
Hallo Joachim Ich sitzte jetz seit Freitag Abend an den mod.Sourcen des Webserver von Ulrich und habe mich erstmal daran versucht merere Eingaben über das Web zu steuern, komme aber irgendwie immer darauf das ich zuerst den VA4 auf der Webseite einschalten muß(Habe eine Platine mit LED's am Stecker1) bevor ich über den Schalter VA3 und VA2 dei LED's Einschalten bzw. Ausschalten kann.Habe Ich alle LED's an ,kann ich mit VA4 alles auf einmal Ausschalten.Das verstehe ich nicht? ZITAT: Hallo Gerd, ich verstehe das so, dass Du von einem I/O-Pin des Prozessors einen Schalter nach Masse legst. Den Pin definierst Du als Eingang mit internem Pull-Up-Widerstand. In der Datei tcp.c findest Du die Ausgabe der Variablen. Das sieht etwa so aus: if (pgm_read_byte(pointer) =='h') dec_out (buffer,hh); // Stunden einfügen Du kreierst eine neue Variable und liest vor der Abfrage auf diese Variable das Signal vom I/O-Pin in die Variable ein. Nun mußt Du noch die HTML-Seite mit einer Marke "%VA?" erweitern, so dass die neue Variable auch in eine HTML Seite eingefügt und damit ausgegeben wird. So sollte das funktionieren. Gruß Joachim Frage : Könntest Du mir dabei helfen irgenwie will mir das noch nicht ins Hirn. Gruß Gerd
Hallo Joachim, danke für den one-wire-bus Tipp. Ich habe den I2C Sensor schon zuhause, mit CodeVision AVR, kann man die I2C pins überall hinlegen, in meinen Fall, PORTA7=Scl und PORTA6=Sda. Im CodeVision ist diese Funktion nur in ASM verfügbar, und da ich leider nich ASM - Programmiert habe, tuch ich mir sehr schwer, diese nach C zu exportieren. Die meisten verwenden ja den Hardeware I2C, dies Pins sind aber bei Holger B`s variante mit dem Mega32 schon verwendet. Die länge der Busleitung spielt in meinem Fall keine Rolle. Grüße Michael
Hallo Gerd, in der HTML-Seite habe ich eine Tabelle angelegt. Die Grundstruktur ist folgende <table> //Tabellenanfang <tr> //Tabellenzeilenanfang <td> //Tabellenzellenanfang </td> // Ende der Zelle </tr> // Ende der Zeile </table // Ende der Tabelle Bei Deiner Erweiterung ist die Tabellenstruktur durcheinander gekommen. Das könnte eine Fehlerursache sein. Die Definitionzeilen für LED-LINES_1 und .._2 sind überflüssig. Du kannst über all "LED_LINES" verwenden, weil der selbe Port verwendet wird. Gleiches gilt für das Register zum umschalten der I/O-Funktion LED_LINES_DIR_1 und .._2. Das ist aber nur ein Schönheitsfehler. Die von Dir gewählte IP-Adresse lautet 192.0.n.n. Der Adressraum für private IP-Adressen ist jedoch 192.168.n.n. Es ist sinnvoll sich daran zu halten, weil die privaten IP-Adressen im Internet nicht geroutet werden. Mehr ist mir nach erster Durchsicht nicht aufgefallen. Viel Erfolg, Joachim
Hallo Michael, man kann den I2C-Bus auch mit einem C Programm ansprechen. Ich habe das für die Microwire-Schnittstelle realisiert. (Das EEPROM auf der Schnittstellenkarte hat ein Microwireinterface, das über die Bits eines Registers des Netzwerkcontrollers bedient werden kann) Microwire, SPI und I2C sind recht ähnlich. Es ist sicher hilfreich, wenn man sich den Quelltext zusammen mit den Timingdiagrammen eines I2C-Interfaces ansieht. Dann ist das ganze leichter verständlich. Gruß Joachim
Hallo, allerseits! Ich habe mich nach geraumer Zeit auch mal wieder drangesetzt, einen Webserver aufzubauen, stecke aber noch ziemlich am Anfang. Problem bei mir ist, die Netzwerkkarte zu konfigurieren. Ich habe scheinbar die gleichen Netzwerkkarten wie Holger B. (Bild sieht auf Mikrocontroller.com exakt gleich aus, auch gleiche Typennummer), aber leider keine Möglichkeit, sie zu konfigurieren. Nun meine Frage(n) dazu: - besteht die Möglichkeit, in Ulrichs Code 1.38 eine neue I/O-Adresse anzugeben, und wenn ja, wo? - Ist bekannt, welche I/O-Adresse als default auf den Karten baugleich zu Holgers Karten eingestellt ist, oder muß man raten/ausprobieren? Wäre super, wenn da jemand Licht ins Dunkel bringen könnte... Viele Grüße aus Hamburg Kai Markus
Hallo Markus, ich habe ein Netzwerkkartenconfigurationsprogramm, mit allen Drivern. Auf welchen Betriebssystemen die config.exe läuft weiss ich nicht. Ich habe mit einer Win98 Boot-Disk. gebootet und dann das Prog ausgeführt. Schöne Grüße aus Wilhering, Michael Haslhofer
Hallo Kai Markus, die default-Adresse der Netzwerkkarte ist üblicherweise 0x300. Die Adresse wird im Webserver durch die Verdrahtung der Leiterplatte festgelegt. Zum Einstellen der Adresse der Netzzwerkkarte brauchst Du einen PC mit ISA-Slot und ein Konfigurationsprogramm (s.o.), dass Du im DOS-Mode starten mußt. Außerdem sollte IRQ 9 gewählt werden. Das ist bei der Leiterplatte von Holger B. aber nicht kritisch, weil die IRQ-Leitungen parallel geschaltet wurden. Gruß Joachim
Hallo Joachim Ich habe mir das ganze nochmal angeschaut und habe die Anderungen durchgeführt. Leider ist das Ergebniss das gleiche. In meinen Sourcen habe ich 2 LED's über das Web zum ansteuern VA2 und VA3. Wenn ich nun versuche über das Web VA2 einzuschalten passiert nicht, aber beim einschalten von VA3 leuchten beide LED's.(VA2 ist noch auf eingeschaltet) Jetzt kann ich auch VA2(Rotes LED) über WEB Steuern.Ein.- und Ausschalten.Ist jedoch VA3 aus lässt sich auch VA2 weder ein noch ausschalten. Wurdest Du oder natürlich auch ein anderer User sich das mal anschauen, ob ich da einen Fehler drin habe? Danke Gruß Gerd
Hallo, allerseits! Erst einmal vielen Dank für die schnelle Hilfe! Das Problem lag bei mir nicht an der Software (die zugehörige Diskette lag glücklicherweise bei den Netzwerkkarten dabei); vielmehr hatte ich das Problem, keinen PC mit ISA-Slot auftreiben zu können. Ich konnte mir aber nun nach langem Hin und Her etwas bei Freunden zusammenleihen. Bin gerade dabei, auf diesem Hilfs-PC ein Betriebssystem zu installieren, um dann gleich alle Netzwerkkarten konfigurieren zu können. Falls dabei noch Fragen auftauchen, werde ich mich vertrauensvoll an Euch wenden. Ich bin mir ziemlich sicher, daß beim Anpassen und Compilieren des Quellcodes noch Fragen auftauchen werden, weil ich (faul ;-) Codevision gewohnt bin und daher mich nie so um das Compilieren und Übertragen in den Chip gekümmert habe. Oder gibt es da eventuell eine Art Tutorial oder FAQ für? Ich besitze Codevision in der Vollversion und ein STK500... Vielen Dank nochmals! Greetz Kai Markus
Hallo Gerd, Deine HTML-Seite gefällt mir noch nicht. Probier doch einmal die beiliegende Seite. Ich habe einige Komentare zur HTML-Struktur eingefügt. Details zu HTML kann man unter www.selfhtml.org nachlesen - sehr empfehlenswert. Gruß Joachim
So, ich habe soweit alles zusammengelötet; ich habe allerdings das Ganze der Einfachheit halber erst einmal auf dem STK500 aufgebaut, oder spricht da etwas gegen - irgendwelche Doppelbelegungen von Anschlüssen, die ich übersehen habe? Ich bekomme mit einem 8 MHz Quarz, der Source V1.38 ohne MMC und einem entsprechend eingestellten Hyperterminal auch die Meldung Networt init... Ok 34. Allerdings kann ich nicht über das Netz auf 192.168.1.66 zugreifen. Ich muß mir wohl nun aus der V1.38 von Ulrichs Seite ein lauffähiges Hex-File zusammenbasteln, da ich z.Zt. weder einen 16000000 Quarz noch eine SD-Karte greifbar habe. Was muß denn an Ulrichs Sourcen geändert werden, damit der AVR nicht nach einer MMC/SD-Karte sucht? Greetz Kai Markus
Hallo Kai das schrieb Joachim,bei seine Sourcen Datei Einstellung: makefile: MCU auf Prozessortyp setzen main.h: SYSCLK gemäß Quarzfrequenz setzen rtl8019.h: ISP_CTRL setzen, wenn die Hardware von Holger Buss verwendet wird. mmc.h: USEMMC auf 0 setzen, wenn keine SD-Card genutzt wird uart.h: Baudrate nach Bedarf ändern webpage.c: In der Seite Index.htm wird die IP-Adresse der Reload-Seite im HTML-Text genannt. Die Angabe ist nicht erforderlich, muß aber bei Wechsel der IP-Adresse geändert werden. Ich hoffe damit kannst Du was Anfangen und noch viel Spaß Gruß Gerd
Hallo Joachim Danke für deine Antwort Ich werde es gleich Morgen früh Testen, da bin ich mal gespannt gruß Gerd
Hallo, Gerd! Vielen Dank für Deine Hilfe! Jupp, das war genau das, was ich suchte! Das kann ja noch ne lange Nacht werden ;-) Guts Nächtle! Kai Markus
Hallo Joachim Ich bin's wieder, ich hoffe ich nerve Dich nicht denn das liegt nicht in meiner Absicht, aber auch mit deiner Webpage habe ich das gleich Ergebniss. habe ich 2 LED's über das Web zum ansteuern VA2 und VA3. Wenn ich nun versuche über das Web VA2 einzuschalten passiert nicht, aber beim einschalten von VA3 leuchten beide LED's.(VA2 ist noch auf eingeschaltet) Jetzt kann ich auch VA2(Rotes LED) über WEB Steuern(Ein.- und Ausschalten).Ist jedoch VA3 aus lässt sich auch VA2 weder Ein.- noch Ausschalten. Mir ist etwas aufgefallen. Beim Aktivieren der MMC funzt kein LED beim ausschalten der MMC geht es wieder. Oder liegt es an der der main.c // Initialisierung des LED-Pins TCCR2 &= 0x67; LED_LINES &= (0<<LED_PIN); LED_LINES_DIR |= (1<<LED_PIN); vieleicht hilft das etwas weiter. Gruß Gerd
Hallo Gerd, bei der Initialisierung der LED-Pins passiert folgendes: TCCR2 wird mit 0 beschrieben. Dadurch wird die Sonderfunktion von Port D, Pin 7 abgeschaltet. Anschließend wird Pin 7 auf "0" gesetzt. Dann wird das Richtungs-Bit auf "Output" geschaltet. Auf der Webseite sind für jede LED zwei Schaltfelder vorhanden. Stimmt die Stellung der Schaltfelder mit der LED-Anzeige überein? Leuchtet die LED, wenn auf der Webseite "LED ein" markiert ist und umgekehrt? Eine Erklärung für das merkwürdige Verhalten habe ich zur Zeit leider noch nicht. Gruß Joachim
Hallo Joachim Kann es sein das wenn ich die anderen Pin's von Port D benutzte diese Sonderfuktionen auch abgeschaltete werden müssen ? Ist nur sone Idee Ich bleibe aber da noch drann und Danke vür deine Bemühungen. Gruß Gerd
hi ich bin gerade beim selber baun und wollte mal fragen ob ihr tips für mich habt wie ich den rtl8019as am besten einlöten kann? brauche dringend hilfe
Hallo Christoph, der Witz bei diesem Projekt ist eigentlich, dass der RTL weder aus- noch eingelötet wird.
ich möchte den RTL aber in meine platine integrieren -> ich verwende auch eine vollkommen andere schaltung deswegen die frage? vielleicht weiss ja jemand was? thx
Hallo, Meiner neuer Webserver ist feritg!! Bald auf meiner Homepage. Mfg Ulrich
Hallo Joachim Ich kann den Fehler schon etwas Eingrenzen. Wenn ich die main.c so Programiere : // Initialisierung des LED-Pins TCCR2 &= 0x67; LED_LINES &= (0<<LED_PIN); LED_LINES_DIR |= (1<<LED_PIN); PORTD |= (1<<PB4) ; //Schalte Port D Pin 4 als Ausgang PORTD |= (1<<PB5) ; //Schalte Port D Pin 5 als Ausgang PORTD |= (1<<PB6) ; //Schalte Port D Pin 6 als Ausgang PORTD |= (1<<PB7) ; //Schalte Port D Pin 7 als Ausgang kann ich am Stecker 1 den Pegel von 4,95 Volt Messen. Starte ich aber den Browser und greife damit auf die Netzwerk Karte zu werden die Definierten Pin's vom PortD gelöscht. Das heißt doch das der gesamte Port von im Programm (????) umgeschrieben werden oder??? Gruß Gerd
Hallo Gerd, mit der Zeile: PORTD |= (1<<PB4) ; //Schalte Port D Pin 4 als Ausgang schaltest Du Pin 4 von Port D auf "1". Bei PORTD handelt es sich um das "Port D Data Register". Die Umschaltung zwischen Ein- und Ausgang wird im "Port D Data Direction Register" DDRD erledigt. Was hälst Du davon, Dein Leuchtdiodenproblem genau zu analysieren. (Bisher haben wir nur etwas im Nebel herumgestochert) Dazu würde ich jeden Schritt genau boebachten und feststellen wo der erste Fehler auftritt. 1. Webserver einschalten Beide LEDs müssen aus sein! 2. Webseite abrufen und mit der "Aktualisieren"-Taste am Browser dafür sorgen, daß die Seite nicht aus dem Cache kommt. Bei beiden LEDs muß "LED-aus" voreingestellt sein! 3. Bei einer LED "LED-ein" einstellen und LED-umschalten betätigen. In der Adreßzeile des Browsers muß nun hinter der Adresse "/?VA2=1" stehen. Ist das der Fall? Anschließend wird eine neue Webseite aufgebaut. Die Voreinstellung der LED muß nun "LED-ein" sein. Ist das so? Nun sehen wir noch auf die LED. Leuchtet die LED? Genau so detailiert schalten wir die LED wieder aus. (d.h. Adreßzeile kontrollieren, Webseite kontrollieren und LED ansehen) (und dann die zweite LED ein- und ausschalten) Mit den Ergebnissen aus diesen Beobachtungen kann man dann abschätzen, ob a) der Browser ein korrektes Signal an den Server schickt, ob b) der Server die Variable entsprechend dem Signal setzt und ob c) der Server die LED entsprechend der Variablen ansteuert. Wenn wir so den Fehler eingegrenzt haben, suchen wir systematisch weiter. Gruß Joachim
Hallo Joachim Ein Hoch auf deine Geduld, ich habe das gefühl ich bin der einzige der solche Probleme mit dem Webserver hat. Naja also mal zur Sache: Ich habe das gemacht was Du mir geschrieben hast und das ist alles OK. Ausser "natürlich" den Fehler den ich immer habe. Mein Ablaufplan: Webserver starten 1. Bei beiden ist LEDs "LED-aus" voreingestellt. 2. LED1 einschalten: Variable "/?VA2=1" VA ist OK aber LED ist aus 3. LED1 ausschalten: Variable "/?VA2=0" VA ist OK aber LED ist aus aber die Schalterstellung bleiben. 4. LED2 einschalten: Variable "/?VA3=1" VA ist OK LED ist an 5. LED2 ausschalten: Variable "/?VA3=0" VA ist OK LED ist aus 6. LED2 einschalten: Variable "/?VA3=1" VA ist OK LED ist an 7. Browser aus und wieder ein 8. Die LED Einstellungen haben sich nicht verändert und die Schalterstellung sind geblieben. 9. LED1 einschalten: Variable "/?VA2=1" VA ist OK LED ist an 10. LED1 ausschalten: Variable "/?VA2=0" VA ist OK LED ist aus Also die Variablen werden duch den Browser geschaltet aber der Server reagiert erst auf VA2 wenn VA3 eingeschaltet ist und die schalterstelleung auf "ein" ist.Deshalb war meine Idee das ich in der Main.c gleich einen Pin(Bit) vom Port D als Ausgang steuere um so den Server zu überlisten doch leider ohne Erfolg. Ich habe auch dann mal versucht einfach ein paar Pin's auf dem Port D zu schalten das ging ohne Probleme,(Verdacht auf Hardware Fehler) nur über die Webseite habe ich das Problem. Ich hoffe Du kannst mit der Erklärung etwas Anfangen Gruß Gerd und nochmals vielen Dank.
Hallo,allerseits! Ich habe wie schon erwähnt auch versucht, den Webserver nachzubauen, leider bisher mit ohne Erfolg ;-) Hier ein paar Daten: - Sourcecode 1.38 ohne SD 192.168.1.66 - keine SD-Card angeschlossen - ATmega32 verwendet - Aufbau im STK500 (spricht da was gegen?) - Sourcen gemäß Anleitung auf mega32 modifiziert - 16 MHz Quarz eingebaut - Fuses so programmiert, daß nur CKOPT laut Codevision "read Fuses" = 1 ist Ich bekomme die korrekte Einschaltmeldung, kann aber nicht auf die Seite zugreifen. IE sagt "Suchseite konnte nicht geöffnet werden" Ich ziehe verschiedene Fehlerquellen in Betracht: - Aufbau auf dem STK 500? (aber was und warum?) - Fusebits - Netzwerkkarte nicht richtig konfiguriert Bestehen denn ausser der seriellen Schnittstelle noch weitere Möglichkeiten, die Schaltung zu überprüfen? Kann man den Server anpingen? Oder per Oszi irgendwas kontrollieren? Es wäre nett, wenn Ihr Euch diese Fehlerbeschreibung mal anschauen könntet und mir ein paar Tipps geben könntet. Ich stehe selbstverständlich gerne für Rückfragen zur Verfügung. Greetz Kai Markus
Ach ja, hatte ich noch ganz vergessen: Mein Rechner sagt "Netzwerkverbindung mit 10 MBit/s", wenn ich das Kabel an den Webserver anschließe. Grüne LED an der Netzwerkkarte leuchtet. Greetz Kai Markus
Hallo Kai Markus, die Netzwerkeinstellung an Deinem PC muss auch auf 192.168.1.xx eingestellt sein. Gruss, Holger
Hallo, Holger! Vielen Dank für Deinen Hinweis! Auch das hatte ich überprüft. PC und Server waren direkt über ein Crosslink-Kabel miteinander verbunden. Gibt es noch Möglichkeiten, auf einer unteren Netzwerkschicht (war da nicht mal was mit ISO/OSI-Referenzmodell?!?) die Verbindung zu überprüfen und so den Fehler einzugrenzen? Greetz Kai Markus
Hallo, allerseits! Ich versuche immer noch, den Webserver mit einem mega32 ans Laufen zu bekommen. Leider ohne Erfolg. Die Initialisierungsroutine zeigt mir über UART erfolgreiche Abarbeitung, aber ein PING bringt nur "Zeitüberschreitung der Anforderung". Ich habe mal Ulrichs V1.38 entsprechend der Anleitung modifiziert, so daß er auf einem Mega32 ohne MMC-Card laufen sollte. Testweise in Interrupt4.c den Befehl printf "." eingesetzt, aber es ist in der Abarbeitung nichts zu sehen. Auch auf der Interrupt-Leitung, die von der Netzwerkkarte kommt, herrscht laut Oszilloskop verdächtige Ruhe. Allein die grüne LED auf der Netzwerkkarte leuchtet und der PC meldet eine Verbindung mit 10 MBit/s. Hat jemand noch einen Tipp, wie ich bei der Suche weiter vorgehen kann? Bin für jeden Hinweis dankbar! Greetz KMT
Hat sich soeben erledigt. Die dümmsten Fehler zuerst... War ein Kabelbruch in einem Flachbandkabel zur Netzwerkkarte hin. Nun läufts. KMT
Hallo zusammen, habe den Webserver von Holger Buss aufgebaut und eines der Hexfiles von seiner Seite mit Hilfe von PonyProg eingespielt. Ich kann nun den Server pingen und die html Seite im Browser öffnen. Telnet geht auch. Hat bis dahin super funktioniert. Da ich in Sachen AVR Programmierung aber noch recht wenig Ahnung habe benötige ich ein paar Tipps von Euch. Ich möchte 3 Taster abfragen und 3 Schaltsignale ausgeben. Kann ich dies mit der Software von Holger Buss realisieren? Oder muß die Software angepasst werden? Es wäre vollkommen ausreichend, wenn ich mittels telnet die Befehle z.B. lese_Taster_1 oder setze_Ausgang_2 usw schicken könnte. Das ganze würde ich dann per VB Programm vom Remote-Rechner ausführen. Kann man die IP Adresse, die im Hexfile vorgegeben ist, ändern? Wolfgang
Hallo, Wolfgang! Ich bin auch noch nicht so weit in die Materie eingestiegen, kann Dir aber ein paar Hinweise geben: - die IP-Adresse kannst Du im Hex-File NICHT ändern; Du kannst aber die Source 1.38 von Ulrich entsprechend deinem Controllertyp anpassen, und mit gcc neu kompilieren. Das entstehende Hex-File kannst Du dann direkt in den Controller spielen. Wie man die Sourcen von Ulrich anpaßt und eine neue IP-Adresse angibt, steht etwas weiter oben hier im Thread. Greetz KMT
Hallo kmt, danke erst mal. wo bekomme ich das gcc? Gibt es dazu ein paar Tipps bezüglich Bedienung? Wolfgang
Hau! Findest Du alles hier im Tutorial. Greetz KMT
habe im google nur was fürLinux gefunden. Gibt es das gcc auch für microshit win? Gruß Wolfgang
Hab's gefunden, vielen Dank. Bin wieder einen großen Schritt weiter. Muß mich nun mit der Ein- und Ausgabe von Bits befassen. Möchte 3 Taster abfragen und das Ergebnis an einen Client PC übertragen. Wäre toll, wenn da jemand helfen kann. Gruß Wolfgang
Hallo Thomas, die Source-Files zur V1.38 sind nun bei http://www.mikrocontroller.com --> Download --> Webserver auch verfügbar. Die sind schon speziell auf die ISA-CTRL-Karte angepasst. Die Hex-Files daz waren ja schon vorher dort. Die IP-Adresse kann man in main.c und webpage.c ändern Gruss, Holger
Hallo Leute, heute sind neue Leiterkarten eingetroffen. :-) Die können jetzt wieder auf unserer Webseite bestellt werden. Vielen Dank noch an alle, die so geduldig gewartet haben. Gruss, Holger
HI, Ich hab den Webserver auf Streifenraster aufgebaut und erhalte immer den Fehler ERROR(255). Hab schon zig-mal die Verdrahtung überprüft, kann aber beim besten Willen keinen Fehler finden. Die Netzwerkkarte ist eine NE2000 Kompatible mit RTL8016, das sollte doch gehen, oder? Irgendjemand ne Idee, waran es liegen könnte? Danke
Hallo! Die Idee mit der Netzwerkkarte finde ich genial!!! Kann mir jemand nützlich lnks angeben in denen ich den Einstieg in dieses Gebiet machen kann?. Ich besitze die Grundlagen wie ein PC-Netzwerk aufgebaut ist (Cisco semester 1-4 (jedoch seeeeehr viel Theory und nicht wirklich hand on...)) und habe auch einige Mikrokontroller Projekte aufgebaut. Jedoch habe ich eine Lücke wenns um die Grundlagen der Embeded Systems UND Ethernet-verbindung geht. Ich habe zwei Bücher in Aussicht: "Messen steuern und regeln per Internet" und "Messen steuern und regeln mit TCP IP". Kenn die jemand, bringen die mich weiter oder ist dies eher für den "Profi" geeignet? Danke für jeden Tip! Guido (Perth. W.A.)
Hallo, ich habe es jetzt soweit geschafft, dass ich den Webserver Pingen kann. Wenn ich aber die Webseite aufrufe, wird zwar die Meldung ausgegeben, dass der Socket geöffnet wurde, die Webseite wird aber nicht geladen. Testweise habe ich dann in der Interruptroutine mal ein printf("int"); eingefügt. Pinge ich den Webserver wird das "int" einmal ausgegeben und danach nur noch sinnlose Zeichen. Ich empfange zwar weiterhin ein Pong, aber die Ausgabe gibt nur noch sinnloses von sich. Als uC verwende ich einen Mega16, kann es vielleicht daran liegen? Hat der Mega16 vielleicht nicht genug Ram? Danke für eure Hilfe Tubbu
edit.: grad noch was bemerkt. wenn ich den webserver längere zeit laufen lasse, macht er irgendwann ein Reset
Hallo, sorry ich muss als absoluter Anfänger mal was Fragen. Das o.g. (von www.mikrocontroller.com) scheint mir ja sehr einfach aufzubauen. AUch halten sich die Kosten in Grenzen (wieviel ist das eigentlich in Summe?) Ich will mir eine Steuerung aufbauen. Dazu werde ich ein Board mit einem Mega32 verwenden (von robotikhardware). Wie kann man die Daten von dort aus auf den Webserver übertragen? Wo kann ich mich da schlau machen? Im moment habe ich nur Erfahrung mit ner C-Control1. Bei der schreibe ich die Messwerte in einen Datalogger und lese diese über ein externes Programm aus. Danke schon einmal Gruss Dirk
Hallo, nachdem ich endlich die MMC-Anbindung mit Hilfe eines 3,3V-Spannungsreglers ans laufen bekommen habe,wollte ich nun die Software von Joachim Börke aus dem Flash auf die Karte verlegen.Die Website mit HTML funktioniert auch,nur die Variablen,also Zeit,IP-Adresse,Sitecounter usw. werden nicht übernommen. Hat jemand einen Tip für mich,wo ich ansetzen muß,um dies auch ans laufen zu bekommen? Vielen Dank. Viele Grüße Traktor
Hallo Traktor, ich arbeite ohne MMC-Anbindung und bin deshalb bisher nicht auf das Problem gekommen. Eine nähere Betrachtung ergibt jedoch folgendes: Die HTML-Seiten im Programm-Flash werden Byte für Byte gelesen, interpretiert und in den TCP-Buffer geschrieben (siehe httpd.c, Funktion void httpd). HTML-Seiten aus der MMC-Card werden dagegen (warum auch immer) anders behandelt. In den letzten 20 Zeilen der Funktion httpd ist zu sehen, daß die Daten mit den Funktionen read_file (aus fat.c) und mmc_read_sector bzw. mmc_read_block (aus mmc.c) direkt von der MMC-Karte in den TCP-Buffer kopiert werden. Eine Interpretation findet deshalb nicht statt, was Deine Beobachtung erklärt. Um das zu lösen wäre aus meiner Sicht eine umfangreichere Änderung der Programmstruktur nötig. Gruß Joachim
Hallo Joachim, Danke für Deine schnelle Antwort,dann werde ich es wohl vorerst mal weiter aus dem Flash laufen lassen,und wenn ich mal mehr Zeit habe mich in C versuchen einzuarbeiten und versuchen das ganze auf die MMC-Karte umzustricken. Viele Grüße Traktor
Hallo, ich verfolge jetzt schon seit längerem dieses Projekt und es begeistert mich immer mehr. Ich würde es gerne nachbauen. Ich frage mich nur worin der untgerschied zwischen der 1.0 und der 0.9 version von Holger ist. Viele Grüße Peppe
Hallo! Meine Frage wurde zwar hier schon mal gestellt, ist aber schon acht monate her, deswegen stelle ich sie nochmal, evtl hat ja jetzt mal einer eine Antwort .-) Ich würde dieses Projekt nämlich auch gerne nachbauen, aber da ich mich mit AVR Controllern so gut wie gar nicht auskenne, und meine ganze Hardware Testboards,Programmier adapter usw... auf PIC ausgelegt ist, würde mich Interessieren ob schon mal jemand das Projekt auf PIC Basis aufgebaut hat? Wenn ja, würde ich mich über links und infos freuen .-) mfg. Christian
Hallo zusammen Bevor ich mir auch so eine Platine bestelle hätte ich noch eine Frage. Auf den Fotos mit der fertig bestückten Leiterplatte sind die Bauteile teilweise auch von der Oberseite verlötet. Die Karte ist doch durchkontaktiert und daher ist selbiges nicht nötig oder? Grüße Cpt
Würde ich auch gerne wisse. Denke mal ja, aber alles geht nicht. Bitte um ne kurze Info
@Cpt: Einfach löten! Das Zinn zieht sich durch und bildet oben eine schöne Lötstelle.
Es gibt da was um Lötstellen zu reinigen. Sollte man machen, da nicht alle Lötstellen oben top wurden. Kann auch daran liegen, das mein Lötkolben mit 8W zu wenig Leistung hat.
Hallo! Ich habe an den Webserver jetzt eine billige Handycam (4,- bei Ebay) angeschlossen (siehe Photo). Damit kann man aus dem Webserver eine Webcam bauen. Das ganze läuft echt klasse! Darauf läuft die Software von Simon Schulz: http://avr.auctionant.de/avr-ip-webcam/ Mehr Infos auch unter Codesammlung: http://www.mikrocontroller.net/forum-extern/read-4-251170.html#new Infos und Bilder zur Modifikation meines Webservers: http://mikrocontroller.cco-ev.de/de/webcam.php Software und HEX-Files speziell für meine Webserver-Platine. http://mikrocontroller.cco-ev.de/de/download.php#AVR_WEB Gruss und viel Spass damit! Holger
Hallo, hat schon jemand eine ReadyLink RL2000A-PnP erfolgreich im Webserver zum laufen gebracht. Meine ist auf IRQ5 und E/A 300 eingestellt. Beim starten des Webservers erscheint Init Network Card: ......... Init Ready! Init: Okay 34 My Mac: 1e.a.2b.2b.2d.4d My IP : 192.168.0.17 aber nach einer kurzen Zeit Overflow. Leider gibt es im Konfigurationsprogramm keine Möglichkeit,den Kabeltyp einzustellen. Vielleicht weiß ja jemand einen Rat. Danke im vorraus. Viele Grüße Roland
Hallo, ich habe hier 3 Stück Netzwerkkarten mit einem UM9008F Chip drauf. Mit einem passenden Configurationsprogramm unter DOS habe ich IRQ5 und Adresse 0x300 eingestellt, PnP ist abgeschaltet. Leider tut sich nichts am Webserver, immer nur ERROR(255) oder auch ab und zu ERROR(34). Bei ner Karte mit RTL8019 (ohne AS) klappts ab und zu mal. Der Webserver funktioniert mit einer geliehenen Karte mit RTL8019AS einwandfrei. Hat schon mal jemend einen UM9008F zum Laufen gebracht? Und wenn ja, was ist da noch einzustellen? Tschau Berni
@Holger B.: Super Sache, das mit der Kamera. Zwei Fragen: i) Wie hoch ist denn die Framerate die Du erzielen kannst? ii) Wie hoch ist die Auflösung? Ich glaub, ich informiere mich mal über diese MCA25 Kamera ... MfG - C. Lechner
@CLechner: Guck mal hier auf meiner Seite dazu: http://avr.auctionant.de/avr-ip-webcam/mca-25-kamera.html Framerate ? Per Webserver ? 0,1fps oder so. Ein Bild also ca 10s ;)
Hallo Leute! Habe da ein kleines Problem mit meinem Server. Habe meine Seite in zwei Frames unterteilt. Auf der linken Seite ein schmales Auswahlmenu und rechts wird die jeweilige Seite angezeigt. Jetzt mein Problem, wollte auf einer Seite eine Passwort einlesen. Sobald ich aber den Wert eingebe und den Button drücke beginnt die Seite zu laden wird aber nicht fertig es kommt auch keine Meldung. Wo könnte denn da der Fehler liegen? Hier der Code aus der httpd.c if ( memcmp(File_Name,"setup.htm",9) == 0) //Wenn Setup { pointerold = Page6; //Lade Seite mit Passwortabfrage valid=1; //Passwortabfrage freigeben } if (valid==1) { //suche nach pass passwort= searchParameter ("pass", buffer+tcpdata, *bufferlen-tcpdata,passwort); if (passwort==12) //Passwort richtig { valid=0; //sperre weitere Abfrage passwort=0; //setze Variable zurück pointerold = Page7; //lade die Setup-Seite } else { pointerold = Page6; //lade Seite mit Passwortabfrage } } Die Seite zur Abfrage sieht so aus: "<html>" "<body bgcolor=#9999FF>" "<font color=black face=arial size=4>" "<center><h1><u>Setup</u></h1>" "Dieser Bereich ist per Passwort geschützt!<br>" "<br><br><br>" "<form method=get>" "<input type=password maxlength=2 name=pass size=7 value=%pass><br>" "<input type=submit value=LogIn></center>" "</form>" "</body>" "</html>" "%END" Eine weitere Frage noch, wie kann ich es abfangen das eine bestimmte Seite neu geladen wird? Gruß Markus
Habe den Webserver jetzt auch mal aufgebaut klappt auch soweit wunder bar ,gut gemacht Ihr beiden ! Habe aber noch keine SD -Card :-( Ich habe aber ein ähnliches Problem wie Jürgen : auch mach einbinden der #include "old_macros.h" meckert der Compiler noch über : sbi (DDRD, 7); das habe ich jetzt ersetzt durch : DDRD |= (1 << PA7); da ich noch am Anfang von C stehe bin ich mir nicht sicher ob das so richtig ist ? Fehlermeldung gibt es keine mehr und auch in der Funktion des Server konnte ich noch keinen Fehler feststellen , Frage aber mal Sicherheitshalber Danke für eine Antwort Gruß HH
Hallo Hans, vielleicht macht das Leerzeichen in sbi (DDRD, 7); ^ das Problem. DDRD |= (1 << 7); ist okay. Gruss, Holger
-->vielleicht macht das Leerzeichen in sbi (DDRD, 7); ^ das Problem. Nein auch ohne geht's nicht ... also DDRD |= (1 << 7); und nicht : DDRD |= (1 << PA7); PA also weglassen ?
Hallo, als ich die Frage oben gestellt habe hatte ich noch so gut wie gar keine Ahnung von C, jetzt ist es schon etwas besser ... Nur der Vollständigkeit halber : Für den Compiler sind die Ausdrücke (1<<PA7), (1<<DDC7) und (1<<PINC7) identisch mit (1<<7)
>Für den Compiler sind die Ausdrücke (1<<PA7), (1<<DDC7) und (1<<PINC7) >identisch mit (1<<7) Nein, denn der Compiler sieht von DA7 und Konsorten nichts, denn diese werden vom Präprozessor durch etwas anderes (und zwar durch 7) ersetzt. Denn in einem der Headerfiles steht (ich glaube in <avr/io.h>) #define PA7 7 ... #define DDC7 7 ... #define PINC7 7 es wird also vom Präprozessor jedes dieser Wörter durch eine simple 7 ersetzt. Die Macronamen werden zur besseren Nachvolliehbarkeit des Codes verwendet und stellen eine Art "inline Dokumentation" dar. Man kann besser nachvollziehen was der Programmierer erreichen will bzw. was er sich beim Programmieren gedacht hat. Was mich am Anfang verwirrt hatte ist das Macro _BV(xyz), das wird aber durch nichts anderes als ein simples (1<<xyz) ersetzt und steht für "Bit Value".
@Werner B. >Die Macronamen werden zur besseren Nachvolliehbarkeit des Codes verwendet und stellen eine Art "inline >Dokumentation" dar. Man kann besser nachvollziehen was der Programmierer erreichen will bzw. was er sich >beim Programmieren gedacht hat. für einen Anfänger in C bewirkt es aber eher das Gegenteil, zumindest geht es mir so ,aber ich habe schon erste Erfolge ..... ......auch Dank der Suchfunktion ! @JoachimB Habe deine neuen Code in der Codsammlung gesehen nicht schlecht sind wieder Neue Sachen drinnen wo man sieht wies geht (für mich als C Neuling) Neue Frage : Wie füge ich in eine htm Datei für dem Webserver eine Art LED als Statusanzeige ein, welche die Farbe wechselt ? Also ein Kreis der einmal weiß, und dann rot ist, je nach Wert den man übergibt . also so ähnlich wie <input type=radio name=VA2 value=0 %VA2->LED_PD.6 aus nur halt keine Input sonder nur zur Anzeige Versteht Ihr was ich meine ? Gruß HH
@HansHans Ich verstehe das so, daß Du zwei Bilder hast, von denen Du eins auswählst und darstellst. Ein Bild stellt einen roten Kreis dar und das andere einen weissen Kreis. Sicherlich kann man das programmieren, wegen der beiden Bilder ist das aber recht speicheraufwendig. Ich habe deshalb nur Checkboxen oder Select-Felder benutzt. Die Darstellung übernimmt dann der Browser. Gruß Joachim
>Ich habe deshalb nur Checkboxen oder Select-Felder benutzt >Die Darstellung übernimmt dann der Browser. Ich habe auch an eine Funktion gedacht die der Browser übernehmen kann ,und keine gemalten Bilder Gibt es nicht eine Art Infobox ? Eingang 1 (X) Eingang 2 ( ) Eingang 3 ( ) aber nix zum anklicken und setzen (verändern)
In HTML ist mir das nicht bekannt. Evtl. kann man so etwas mit Javascript machen. Da kenne ich mich jedoch nicht besonders aus.
Hallo zusammen! ich habe mir den Webserver von Ulrich Radig aufgebaut auf der Platine von Holger Buss. Es funktioniert alles einwandfrei. (Zugriff per web, telnet und ftp ist möglich). Mein Ziel ist es, per telnet oder http ein Relais anzusteuern. Da ich ich aber ich aber in Sachen C-Programmierung ein absoluter Neuling bin, ist es sehr schwer für mich dies zu realisieren. Hat jemand zufällig so etwas schonmal programmiert und könnte mir den source schicken? Oder gibt es schon irgendwo Sammlungen von Beispielprogrammen? MfG Steffen
Hi, ich habe jetzt auch die Platine bestückt und es klappt soweit. Ich würde jetzt gerne Daten auf die SD-Karte loggen und die dann per Webseite darstellen. Gibt es irgendwo schon Sourcen, um auf die Karte zu schreiben?
Hallo Leute, cooles Projekt! Hat auf Anhieb funktioniert! Nun muss ich mir mal ein Gehäuse drumherum bauen. Hat da jemand eine passende Idee? Vielleicht könnten wir ja hier eine kleine Photosammlung von den Webservern machen... Gruss, Tobi
Hi, ich habe mal den Code von Werner für die 3COM-Netzwerkkarte in die Quellen mit aufgenommen. Man kann jetzt per #define in der main.h zwischen RTL8019 und 3C5x9 wählen.... Ausserdem habe ich die interen Webseiten im Flash geändert: Es gibt ein kleines Beispiel zum Schalten der LED und zum Anzeigen der analogen Eingänge. Achtung: Für eine 3COM-Netzwerkkarte ist eine kleine Layout-Änderung erforderlich. Details hier: http://mikrocontroller.cco-ev.de/de/ISA_3Com.php Viel Spaß damit... Ingo.
Hallo, ich habe Code in eine andere Richtung erweitert. http://www.mikrocontroller.net/forum/read-4-248219.html?reload=yes#289... Hier einige Stichpunkte: DCF77-Dekoder mit beliebig gepoltem Eingangssignal Drei one-wire Busleitungen, ein- und ausschaltbar Drei Ausgangsleitungen für LEDs oder Relais, ein- und ausschaltbar Webcam MCA-25, Funlayer und Bildformat einstellbar Bis zu 63 Dallas-Bausteine (z.B. zur Temperaturmessung) mit Namen zu verwalten Rote LED über PWM-Ausgang in der Helligkeit einstellbar, Statussignal der Webcam und Zeitimpuls werden aufmoduliert IP-Adresse einstellbar, wird nach dem nächsten Reset geändert MAC-Adresse wird aus der Netzwerkkarte übernommen Grundeinstellungen werden mit Prüfsumme im EEPROM abgelegt Speicherdump des AVR-EEPROM oder AVR-RAM über den Webserver anzusehen Speicherdump des EEPROM der Netzwerkkarte über die serielle Schnittstelle ausgebbar Alle Einstellung sind über den Webserver möglich Gruß Joachim
Hallo Leute, ich finde das Projekt echt klasse. Nach den meisten Meinungen, die ich hier gelesen habe, scheint es ja ein Kinderspiel zu sein, den Server zum Laufen zu bringen. Da ich bisher immer nur in Bascom programmiert habe verstehe ich den Code an vielen Stellen nicht. Hat schon mal jemand ein funktionierendes Programm in Bascom hinbekommen? Gustav Kesseler hat dazu mal in Juni was geschrieben. Wäre echt toll wenn diese Alternative möglich wäre! Klaus
Hallo Klaus, für BASCOM und den Webserver sehe ich im Moment schwarz :-( Das ist nur mit erheblichem Aufwand realisierbar. Aber ich könnte mir vorstellen, einen weiteren Controller an den Webserver per serieller Schnittstelle anzuschliessen. Dann kann man den Webserver als Gateway ins Netz benutzen. Den zweiten Controller könnte man dann mit BASCOM programmieren. Zum Steuern und Daten darstellen ist das möglich. Gruss, Holger
Hallo Holger, danke für die schnelle Antwort. Dann werde ich jetzt erst mal den Webserver nachbauen. Grüße Klaus
hallo ich finde das ist alles supper was ihr da alles macht und bin gerade dabei so ein ding aufzubaun und hab alles so mal durch den kopf gehn lassen was mann alles so noch ansteuern kann nun hab ich da was da könnte man diese hatwähr dazu verwenden da alles über die I2c schnitstelle lauft (pc) auch hierferwenden da schon platine schon forhanden ist oder das leaut für selbermacher platine kostet 15 euro fertig unsw. bitte seht euch das mal an es war nur so ein getanke von mir solte es nicht so sein vergest das ganse was ich hier geschrieben habe noch vielen dank an euch alle die so was ins netz stelln helmut
anhang :www.hauscomputer.gmxhome.de/ das gehört noch dazu helmut
@Helmut: Laß bitte die Werbung für solchen Kommerzrotz. Hier im Hausbusforum gibt es wesentlich Besseres kostenlos!
Ich mach keine werbung es war nur so mein getanke verzeiung wenn ich was falsch gemacht habe kommt schon nicht wieder vor helmut
Ich habe da mal ein paar Fragen: 1. Warum ist der Webserver mit dem ATmega128 "schneller" als der mit ATmega32? So wie ich das sehe können doch beide maximal bis 16 Mhz getaktet werden? 2. Kann man unter Umständen ein solches Konstrukt http://www.mikrovega.pl/1406/1406.jpg zusammen mit Holgers Board benutzen? Würde das die Perfomance verbessern? 3. Ich habe hier eine alte Ethernetkarte von SysKonnect (SK-NET Flash), ne2000 kompatibel. Ist es möglich das der Webserver auch damit funktioniert? Auf dem Chip steht "PCnet tm-ISA+, AM79C961KC, 9445APB A1, (c) 1993 AMD"
Hallo zusammen, ich habe mir jetzt auch die Platine von Holger gekauft und auch direkt zusammengelötet. Bis dahin kein Problem. Dann habe ich den ATMEGA32 mit dem STK500 programmiert (ich habe das mitgelieferte Hex-File verwendet), aber nicht ist passiert. Es geht weder die rote LED an, noch tut sich irgend etwas an der seriellen Schnittstelle. Auch die direkte Programmierung auf dem Board (ich habe sowohl über STK500 als auch über den parallelen Adapter, der auf dem von Holger mitgesendeten Schaltplan gezeigt wird) ist nicht möglich. Also habe ich als Test im STK einen Blinker programmiert. Nach dem Einstecken ins ISA-CTRL blinkt die rote LED auch fröhlich vor sich hin. Hatte schonmal jemand ähnliche Probleme und diese vielleicht auch schon gelöst? Ich würde mich über Antworten freuen. Gruß, Michael
@Michael das deutet wohl auf nicht richtig gesetzte fuses hin ? zumindestens müste der controler auf der seriellen irgend etwas senden ? wenn der interne rc generator noch aktiv ist ist das natürlich verstümmelt 9k6 sendet er auch wenn keine netzwerkkarte oder mmc drinne ist ?
Hallo DAU-xxl, danke schonmal für Deine Antwort, aber an den Fuses liegt es wohl nicht. Ich habe die für mein Testprogramm (rote LED toggelt und auf der seriellen kommt ein freundliches "Hallo") genauso gesetzt wie beim eigentlichen Server-Hex-File. Wie gesagt, das Testprogramm tut auf der ISA-CTRL-Platine, was es soll, aber wenn ich das Hex-File in den MEGA32 einspiele, kommt gar nichts. Muß ich für das Programmieren über den Programmierstecker noch irgendwelche anderen Fuses setzen, als Holger auf seiner Website beschrieben hat? Danke nochmal. Gruß, Michael
STK500 und Ethernet. http://members.home.nl/bzijlstra/software/examples/WebTiger_RTL8019as.htm Gruß Ben Zijlstra
Hallo nochmal, es sieht so aus, als ob ich mich einfach zu dämlich angestellt habe (siehe Beitrag weiter oben). Heute habe ich einfach mal die Massepins korrekt verlötet und das selbstkompilierte Hex-File (geänderte Taktzahl und andere IP) mit Ponyprog 2.07f eingespielt (Ponyprog 1.xx tuts nicht wirklich mit dem Mega32), und schon geht die Lampe an, auf der Seriellen kommt recht zügig die OK-Meldung meiner 3Com-Karte und schon konnte ich mit meinem Browser auf die Beispielseiten zugreifen... Wie gesagt, habe mich wohl extrem dämlich angestellt. Danke an Holger für die Platine und Ulrich für die Software - tolles Teil für fast Umsonst:-) Gruß, Michael
Hallo, ich habe versucht, die ISA-Buchse aus einem altem Motherboard (wie Holger angemerkt hatte) zu entlöten - das hat leider nicht so gut geklappt. Ich habe es mit einer Entlötpumpe probiert, aber ich bekomme einfach nicht alle Pins richtig frei. (und sanfte Gewalt war keine gute Idee) Ich habe bislang noch nicht Bauteile mit so vielen Beinchen entlötet.Gibt es da vielleicht einen Trick? @Holger: Wie hast du das gemacht?
Heissluftfön ;) Einfach von hinten hin und herschwenken und gut erwärmen... Dann die Leiste einfach abziehen ;) Aber draussen machen, stinkt ! Bye, Simon
HAllo Simon, da wäre ich ja nie drauf gekommen, Ichhabe auch schon Entlötlitze probiert, aber das wird auch nichts :-( Werde ich morgen gleich mal mit dem Fön probieren. Danke!
Hallo nochmal, der Tipp mit dem Heissluftfön hat prima geklappt :-)) Der Webserver lief auch auf Anhieb. Eine Frage habe ich dann noch: Wie kann man damit ausserhalb des lokalen Netz Daten empfangen, z.B. HeiseNews graben, Wetterbericht oder so ? Ich muss ja irgendwie durch meinen Router...
Hi, hat jemand eine RTL8019AS Netzwerkkarte die er mir verkaufen könnte. Welche Karten habt ihr eingesetzt. Bisher bin ich noch nicht fündig geworden. Über eine Antwort würde ich mich freuen! Gruß Reinhold
Andere NE2000-kompatible Karten funktionieren auch. Allerdings nur wenn man IO CH RDY anschliesst und prüft: UM9008 Chip BC912 Chip Ansonsten natürlich noch beliebig viel 3C509B Versionen, mit dem anderen Treiber. Versionen ohne "B" gehen nicht!
@nachbauer Der TCP/IP-Stack ist auf das notwendigste beschränkt. Es werden weder eine Netzmaske noch ein default-gateway verwendet. Deshalb muß man im internen Netz bleiben. Gruß Joachim
An Stationen ausserhalb des eigenen Netzes senden kann man, indem man im Ethernet-Frame die MAC-Adresse des Routers angibt. Die muss man freilich wissen und einkonfigurieren. Verwendet wird das beispielsweise beim Mailing per SMTP (gibt's irgendwo als Variante). Empfangen kann man m.E. von beliebiger Stelle, da der verwendete Code einfach die im Frame vorgefundenen Mac-Adressen vertauscht und weiterverwendet. Dadurch adressiert eine Antwort automatisch den Router und wird somit weitergeleitet.
Hallo, das SMTP-Beispiel verwendet einen Server im lokalen Netz. Von aussen auf den Webserver ist kein Problem. Der Router sorgt irgendwie dafür, dass die Daten richtig ausgetauscht werden. Das kann doch vom Prinzip nicht so schwer sein, oder? Ich muss ja eigentlich nur erkennen, ob ich eine lokale IP ansprechen will, oder raus möchte. Dann schicke ich das Paket an den Router und der sendet es weiter. Nur wie muss ich die Daten an der Router verpacken, der muss ja die Ziel-IP irgendwie mitbekommen? Google konnte mir da auch nicht helfen.
>Nur wie muss ich die Daten an der Router verpacken, der muss ja die >Ziel-IP irgendwie mitbekommen? ZielMAC: Router Macadresse ZielIP: die ip im inet die du erreichen willst Das wars schon ;) Gruss, Simon
Ich habe SMTP zu einem Server im Internet problemlos hinbekommen.
Hi, ich möchte mir auch einen WebServer aufbauen. Derzeit bin ich am zusammenstellen der Bauteile. Bei der SD-Karte habe ich noch keine geeignete Lösung. Gibt es für die SD-Karte einen Sockel? Oder wie habt ihr das gelöst. Gruß Reinhold
Es gibt SD und CF Sockel, bei Reichelt und Segor. Feadi
SD-Slots gibts günstig auch bei CSD-Electronics (und das sogar ohne Mindestbestellwert ;o)) Dirk
Hallo @Holger ist von Dir ein Redesign Deines Webservers mit einem enc28J60 (DIP) geplant? Das wäre sicherlich super. MfG Achim
Hallo, benutze einfach 2 * 100 Ohm! Gruss Ulrich Radig
Hallo, erstmal - Klasse Projekt. Dank Ulrich für die Quellen und auch an Holger für die Platine. @Ulrich: Wird es eigentlich noch Updates von den Quellen geben? Man findet ja ein paar Informationen (von wegen Buffer-Overflow etc). Es gibt zwar einige Weiterentwicklungen (Webcam, 1wire, die Anpassung für 3COM oder das Senden von Email) - die basieren, (wenn man Glück hat) auf V1.38, sind im Detail doch recht unterschiedlich. Vielleicht wäre eine Projektverwaltung mit SourceForge.net eine gute Idee gewesen. Dann bekommt man die guten Ideen alle in einer Version. (aber dafür ist es wahrscheinlich jetzt zu spät, oder?)
Hallo Achim, zu dem enc28J60-Chip habe ich Muster angefordert. Die sind noch nicht da. Wenn das mit dem Teil gut funktioniert, werden wir sicherlich auch wieder eine Platine dazu machen. Gruss, Holger
Wie sieht das aus mit Internetadresse? Ich meine wie rufe ich den vonm Internet auf? Im ersten Beitrag steht zwar: - Bei meinem Internet-Router kann ich einen sogenannten "dynDNS-Dienst" (kostenlos) eintragen aber das versteh ich nicht. Was meint er mit Internet Router? Der Anbieter? Ich bin z.B. bei www.2und2.de mit ner Flatrate. Ja und? Ich krieg jeden Tag ne neue IP und wie kann ich solchen Webserver eine feste IP geben?
Wie schon erwähnt, gibt es den DynDns-Dienst für genau dieses Problem. ( www.dyndns.org ) Man richtet sich dort einen Account ein und bekommt einen kostenlosen Domainnamen z.B. fred123.dyndns.org. Jetzt muss man dem DynDns-Dienst nur noch seine aktuelle IP mitteilen. Das können die meisten DSL-Router (siehe Konfiguration Router) (das meinte Holger) - oder man installiert sich ein kleines Programm, dass die IP mitteilt. (findet man auch auf der dnydns-Seite für Windows und Linux) Du bist dann immer unter 'fred123.dyndns.org' erreichbar. Feine Sache :-) Gruß, Ingo
Hallo ! ich habe eine Frage zum Quelltext Version 1.39 von Ingo. Was muss ich in der tcp.c und webpage.c hinzufügen, damit ich eine 2. LED ansteuern kann? (Erforderliche Änderungen in der httpd.c und main.c sind mir klar). Gruß Steffen
Hi, eigentlich brauchst du nur die entsprechenden Zeilen kopieren und die Namen und Platzhalter entsprechend anpassen (die Länge der Namen und Platzhalter unverändert lassen): z.B. in webpage.c: <input type=\"checkbox\" name=\"ABC\" value=\"1\" %CHK_ABC>" ----- in tcp.c dann auf den neuen Platzhalter überprüfen: if (strncmp_P("CHK_ABC",(pointer+1),7) == 0) und entprechend einer Bedingung richtig setzen: if ('Bedingung') memcpy(&buffer[result16], "checked",7); else memcpy(&buffer[result16], " ",7); ---- in httpd.c auf den neuen Namen überprüfen: if ( memcmp(File_Name,"index.htm?ABC=1",15) == 0) Lässt sich sicher eleganter und dynamischer lösen. Z.B das man nur eine Änderung in der webpage.c machen muss. Man könnte im Namen vielleicht auch gleich den PortPin kodieren... Gruß, Ingo.
vielen Dank, das werde ich mal probieren.. Gruß Steffen
Hallo ich habe das mal mit dem dyndns probiert, aber ich komme von aussen nicht an den Webserver. Von innen klappt es.(ping geht) Muss man sonst noch was einstellen?
Ich habe auch eben versucht einen weiteren Ausgang mittels Checkbox in der HTML zu steuern. Wenn ich diese jetzt aktiviere und auf Senden drücke, wird der Port auch richtig gesetzt. Das Problem ist, dass die Checkbox dann wieder "unchecked" ist. Kennt das Problem jemand?
Ja. Du musst dem Webserver auch sagen, dass er einen Haken darstellen soll. Bei mir habe ich für die Ausgänge zwei Checkboxen. In der einen werden die Ausgänge gesetzt und zurückgesetzt und in der anderen wird der Zustand angezeigt. Das mache ich in der tcp.c und zwar ähnlich dem, wie bei Ulrich der Counter gemacht wird. Ich habe leider den Source-Code nicht zur Hand (falscher Rechner). Aber vielleicht hilft das weiter? Ich versuche mich gerade an einer dynamischen Anzeige von Sensorwerten (will nicht immer die ganze Seite laden). Aber da bin ich noch nicht weit und in den nächsten Wochen bin ich sehr knapp mit der Zeit... Gruß Elektrikser
Hm ja genau das versuche ich. Es gibt 2 Checkboxen, bei drücken von "Senden" sollen die Zustände übernommen werden. Ich habe mal die aus meiner Sicht relevanten Teile angehängt. Vieleich kann mir jemand sagen wo es hackt. Vielen Dank schon mal
Hallo Holger: Bin ncoh ziemlich neu hier im Forum und habe dein Webserver Projekt gesehen udn ich muss sagen ich bin begeistert! Ich spiele mich mit dem Gedanken, dass Projekt mit einigen wenigen Modifikationen nachzubauen! Nun hab ich auf deiner Homepage mal vorbeigeschaut, ist es auch möglich, die Schaltpläne der Boards in digitaler Form zu bekommen? Falls nicht, ist das auch ok, wollte eben nur mal anfragen ;-) Danke!
Hallo Matthias, ich habe Deinen Code durchgesehen. In httpd.c merkst Du dir den Zustand der LED nur in der Ausgangsstufe des Port-Pins. In tcp.c möchtest Du jedoch den Zustand der LED aus den Variablen (oder Funktionen) LED_ABC und LED_RED ermitteln. Das kann nicht funktionieren. BTW: Das Problem habe ich im meinem Quelltext (Webserver zur Temperaturmessung) schon einmal gelöst. Gruß Joachim
Hi, auf der mikrocontroller.com steht: "Schaltplan und Bestückungsplan als PDF findet man im Download-Bereich (EAGLE-Dateien sind nicht verfügbar)" Ich denke, dass heisst nein. Wenn man weiter oben liest, gab es ja auch schon jemand, der schnell mal unerlaubt Platinen vertreiben wollte.
@Matthias: Wenn du ein #define LED_ABC (PIND & (1 << 6)) verwendest, sollte das eigentlich klappen....
@ Joachim Börke Da komische ist ja, dass es mit der LED_ROT funktioniert. Ich habe den Code nur um den LED-ABC Teil erweitert. @tom ja das verwende ich. Leider habe ich keine Ahnung wieso es nicht geht. Außerdem habe ich herausgefunden, dass ich die LED_ABC schalten kann, wenn die LED_ROT ausgeschaltet ist. Dann wird auch für die Checkbox der LED-ABC der Hacken übernommen und alles scheint zu funktionieren, bis ich wieder LED-ROT zuschalten will.
Ich denke, dass liegt an der Überprüfung der Paramterübergabe: Du vergleichst auf: "index.htm?ABC=1", das klappt, wenn nur ein Hacken gesetzt ist. Wenn beide aktiv sind, wird etwas in der Art "index.htm?LED=1&ABC=1" vom Browser übergeben. (musst mal in die Adresszeile schauen) Also musst du schauen, ob irgendwo in der Zeile "ABC=1" oder LED=1" vorkommt....
Hi, ist es möglich das Ding mit Batterie zu betreiben? Ich meine, wenn ich mir sowas hinstelle, soll es auch schön wenig Energie verbrauchen, sonst kann ich mir da gleich nen 286er hinstellen. Was habt Ihr so für Verbrauch?
Ich hatte mal so einen Zwischenstecker von Conrad dazwischen. Anzeige 3W + 1,5W Verbrauch des Messgerätes Plus/Minus 3W Messungenauigkeit ;)
Ja, ok aber wie kriegt der seine Energie? Doch wohl nicht aus nem Trafo-Netzteil die immer so schön warm werden.
Ja, Trafo. dieser wird zwar nicht warm weil ja eigentlich nix drübergeht, aber um so geringer ist ja auch der Wirkungsgrad. Du kannst also schon einiges abziehen. Wegen 286er hinstellen: Falls Du bei Bildern nicht einschlafen willst ist der trotz allem vorzuziehen. Speed testen kannst Du auf http://62.146.141.109/index.htm ist nur zum Testen
Man kann aber auch keinen ernsthaften Vergleich mit einem PC machen. Der AVR hat nur nur minimal RAM und der externe Datenbus wird über Portpins simuliert (8 bit). Von cgi braucht man gar nicht erst anfangen... ... aber darum geht es eigentlich bei diesem Projekt auch nicht. Darum sollte einem klar sein, dass dies kein Medienserver sein kann und auch nicht sein will.
Ja ist ok. Ich werd ihn mir wohl auch bauen. Nur bin ich am Überlegen wie man ihn am stromsparsamsten bekommt. Am liebsten wären mir meine Akkus (Mignon). Bei 4 Stück dann 6V, mit 7805 auf 5. Das ganze müsste aber mindestens nen Monat halten (Tag und Nacht in Betrieb) ohne Akkus aufzuladen. Ist das realistisch?
oh gott, ich hab gerade 11Wh ausgerechnet bei 4 Akkus mit 1,2V, 2400mAh OK meine Vorstellung war etwas... vergessen wir das.
@Tom Ich glaube du hast Recht. Werde das mal probieren. Kann es unter Umständen auch an dem Teil in der tcp.c liegen. Mir ist der Code da nciht ganz klar. Was bewirkt diese Zeile hier: pointer+= 8; oder diese result16+=7; Muss ich die Pointer bei jedem Objekt anpassen oder nur 1 mal?
Hallo Matthias, >pointer+= 8; damit wird der Lesepointer um Zeichen weitergesetzt, damit die Zeichen "%CHK_LED" (8 Zeichen) nicht angezeigt werden. >result16+=7; Damit wird die Gesamtzahl der Bytes für die Ausgabe erhöht. "checked" = 7 Zeichen >Muss ich die Pointer bei jedem Objekt anpassen oder nur 1 mal? Wenn du %CHK_LED und %CHK_ABC verwendest, passt es. Die Zahl der Bytes muss passen... Gruß, Ingo.
OK, dann müsste es ja funktionieren. Hat jemand vieleicht ein Beispiel, dei dem mehrere Ausgänge geschaltet werden jedoch der Übersicht wegen möglichst wenig dabei ist?
Auf der 5. Bildschirmausgabe findest Du u.a. 3 geschaltete Ports. http://mikrocontroller.cco-ev.de/de/ISA_1wire.php Den Rest ignorierst Du einfach. Gruß Joachim
@ Joachim Danke. ist zwar schon etwas komplex aber damit kann ich mal arbeiten. Ebenfalls vielen Dank an Ingo B und Tom
Zu früh gefreut. Leider funktionier das Programm nicht mehr, sobald ich das #define ISP_CTRL auskommentiere, da ich den webserver nach Ulrich Radigs desihn aufgebaut habe.
Hallo, kann man die IP-Adresse von dem Webserver auch anders einstellen, asl über das C-Programm? Nachbauen und das HEX-File flashen könnte ich wohl. Kann ich das HEX-File vielleicht manuell ändern?
Hallo Martin, die Änderung der IP-Adresse des Webservers über das Web-Interface habe ich in meinem Source realisiert (siehe oben). Das Patchen im HEX-File ist nicht mehr "state of the art". Es ist erheblich einfacher das Programm neu zu übersetzen. Gruß Joachim
Hallo Matthias, in der rtl8019.c gab es eine merkwürdige Ansteuerung des Controllers, die ich zur Ansteuerung der ungenutzten Bits ändern mußte, aber nicht mit Ulrichs Schaltung prüfen konnte. (siehe Doku 2.4.6) Die Änderungen müßtest Du rückgängig machen, oder aber die Vorversion (03) probieren. Gruß Joachim
Hallo Martin, wenn Ingo die aktuellste Software fertig hat, wird vieles einfacher. Dann kann man alle Einstellungen (IP-Adr, mac, Router,...) in einer Datei auf der SD-Karte speichern. Der Webserver kann dann auch selbständig Daten aus dem Internet anfordern (z.B. die Uhrzeit) Er kann auch die Bilder der Cam auf die SD-Karte speichern oder auf einem FTP-Server im Netz (z.B. auf einer Netzwerkfestplatte). Gruss, Holger
Hallo Holger, wir haben uns in den letzten Tagen einen Webserver mit deiner Platine aufgebaut - es funktioniert wunderbar. Du sprichst von einer neuen Software-Version. Nach dem Überfliegen der Sourcen habe ich beschlossen, einige Teile (Variablen-Einfügung etc.) zu verbessern. Jetzt lese ich aber, dass Ingo an einer neuen Softwareversion bastelt und möchte fragen, wie lange das eventuell noch dauern wird. Danke an dich für deine Platine (hat wie gesagt wunderbar geklappt) und auch an alle anderen, die Arbeit in die Software gesteckt haben. liebe Grüße, Gregor
Hallo Gregor, wir haben auch das Einfügen von Variablen wesentlich verbessert. Man kann nun flexibler über HTML auf die Daten zugreifen. Ich hoffe, dass Ingo dieses Wochenende die Quellen zum Download freigibt. Könnte sein, dass das Schreiben auf die SD-Karte dann noch fehlt, weil da noch Fehler auftreten. Gruss, Holger
Hallo Holger: vielleicht sollten wir ev. so etwas wie cvs einrichten (vgl. sourceforge), damit mehrere entwickler parallel am code arbeiten können. gruss gregor
Hallo, ich möchte mit dem AVR-Webserver die LED nicht nur übers webinterface ein und ausschalten, sondern auch über 2 Taster (Ein, Aus). Ich habe mir dazu überlegt, dass ich in der Hauptschleife ständig die beiden Ports der Taster überprüfe. Wie muss ich einen Port als Eingang deklarieren? Muss der Port vom Taster auf Masse oder +5V gezogen werden? MfG Steffen
@Steffen Auf http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial Siehe unter: Zugriff_auf_Ports Wichtiger Hinweis: Suche hier in den Foren auch nach "entprellen"
da habe ich schon geschaut, habe den Port dann als Eingang deklariert: DDRB &= ~(1 << 4); PORTB |= (1 << 4); Aber dann ist der Port immer auf 1, er reagiert gar nicht auf die äußere Beschaltung. Irgendwas mach ich da falsch...
Hallo Holger: ich wollte nur kurz nachfragen, wie es mit der neuen Software vorangeht? Gruß, Flo
Hy ich habe jetzt zwei Webserver zusammengelötet. Und auch gleich verschiedene Hex Files geflasht. Als Netzwerkkarte verwende ich je eine 3Com EtherLink III 3C509B-C. Ich habe sie auch auf RJ45 und 310 gestellt. Die nötigen Modifikationen auf der Platine habe ich auch gemacht. Die Files sind von hier: http://mikrocontroller.cco-ev.de/de/download.php#AVR_WEB Leider habe ich den Sever noch nicht erreicht, da ich ein 11,0592 Mhz Quarz verwende. Wie compiliere ich den nun das neue Hex File mit einer anderen IP und dem anderen Quarz. die Datein habe ich schon geändert. Aber immer wenn ich in Programmers Notepad 2 bei Tools Make all versuche eine Hex zu erstellen kommt immer sowas: > "make.exe" all -------- begin -------- avr-gcc (GCC) 3.4.6 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiling: uart.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=uart.lst -std=gnu99 uart.c -o uart.o In file included from main.h:17, from uart.c:8: C:/WinAVR/avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>." uart.c: In function `UART_Init': uart.c:36: warning: passing arg 1 of `fdevopen' from incompatible pointer type uart.c:36: error: too many arguments to function `fdevopen' make.exe: *** [uart.o] Error 1 > Process Exit Code: 2 > Time Taken: 00:00 was soll ich blos tun, langsam verzweifle ich noch hier. MfG Stan
ok jetzt funzts also immer die alte Version benutzen.
Hallo Ich versuche seit tagen das mir der Webserver mit der Software Version 1.38 auf der Ser. Schnittstelle etwas auf dem Hyp.Terminal ausgibt doch es passiert nichts. Die Einstellungen sind gemacht(9600,8,N,1)auch die Schnittstelle und das Null-Modem Kabel sind OK, hat von euch noch einer eine Idee. Die Ausgabe der Webseite geht.
verwendest Du wirklich ein Null-Modem Kabel? Ich benutze eine durchverdahtete Leitung mit Stecker und Buchse. (Pin 2 ist mit Pin 2 verbunden. etc.) Gruß Joachim
Hallo, @ Gerd hast du eventuell ein Stecker aufgelötet statt einer Buchse? Du mußt ein 1 zu 1 Kabel benutzen. Fals du wirklich ein Stecker verlötet haben solltest kannst du einfach ein Genderchanger aufstecken, dann kannst du dir den Aufwand mit dem auslöten Sparen. @ Joacheim Ich wollte mal fragen ob du noch Deine Source für den Webserver online stellst, die Version mit dem Sender... Werde am Wochenende die Verstärkerstude aufbauen und deine Source auf meinem Atmega8 ausprobieren... Gruß Peppe
Hy ich wollte mal fragen was das mit dem Webserver mit Sender auf sich hat? Gibts da vieleicht einen Link. Oder berichte doch bitte etwas über dieses Projekt. An was kann es liegen das ich nur kriptische Zeichen auf meinem Hyperterminal bekomme. MfG Stan
Hallo Danke an Joachim und Peppe für eure Hilfe die hats gebracht. Ich habe es noch nicht mal mit einem Genderchanger geschaft(merkwürdig) habe dann eine Ser. Dose eingelötet und es geht sofort, man kanns kaum glauben oder. Gruß Gerd @ Stan Linke Stimmen deine Einstellungen (9600,8,N,1) bei mir gehts mit sauberer Darstellung.
Ja ich habe diese Einstellung gewählt. Kann das mit den SecureBits zutun haben. Wie siehts eigentlich aus wenn ich kein 16 Mhz Quarz drinne habe. Stimmt dann die Augabe auch nicht mehr. Also hat die RS232 am Websrver keine 9600 Bauds mehr. MfG Stan
Hallo, @ Stan hier ist der Link zu der ganzen Geschichte mit dem Senden: http://www.mikrocontroller.net/forum/read-4-248219.html#338876 Ziel ist es mit hilfe des Webservers Funksteckdosen aus dem Baumarkt anzusprechen,diese gibt es im Set (ein Sender und drei Empfängersteckdosen)für ca 10 uro , Joachim hat es so wie er berichtet schon fertig. Den Rest findest du bei dem Link... Die Senderoutine hat er schon veröffentlicht, die Einbindung in den Webserver soll wohl noch folgen. Gruß Peppe
Hy da ich jetzt schon begeistert zwei AVR Webserver zusammengelötet habe, kamm mir gestern die Idee über CB Funk die Bilder der Webcam an meine Wohnstätte zu funken. Besteht denn die Möglichkeit die Camera so auszubremsen das ich die Bilder mit 1200 Baud an RS 232 über ein CB Funkgerät versenden kann. Ich denke das wird wohl ein echtes Problem werden 50kbyts würden dann ja so 6 min brauchen. und zwischenspeichern ist ja auch nicht. Und was soll ich bloss machen wenn mal ein Packet verloren geht neu senden geht ja nicht da es ja nicht neu generiert werden kann. Hat jemand noch eine Idee sehr preisgünstig ein recht gutes Webcambild über Funk 10 Kilometer zu übertragen (-: Dann last es mich ruig wissen. MfG Stan
Hallo, also Cb Funk - ich weiß ja nicht. Es gibt 2,4 Ghz Sender fix und fertig zu kaufen mit passendem Empfänger, da hast du dann ein live Bild. Mußt halt nur mal schauen wegen den Deutschen Funk Bestimmungen. Aber geben tut es, gibts sogar bei Ebay. Peppe
Ich dachte Datenübertragung über CB-Funk und andere Sprechfunkfrequenzen sei verboten ?
Ne, ist erlaubt, hier nachzulesen: http://www.bundesnetzagentur.de/media/archive/1533.pdf Gruß, Feadi
Das Problem ist ja bei den billigen 2,4Ghz Systemen einfach die Qualität. Ganz zu schweigen von der Reichweite. Mit CB Funk sind da ja locker 10 Km drin. Außerdem ist die Frequenz schon belegt, sonst hätte ich das ja über einen Wlan Accespoint und einer Parabol + Biquad gelöst. Und mit dem Webserver könnte man ja dann noch ein Servor ansteuern. Und so hätte ich ein spitzen rundumblick. Aber man müsste wohl das Bild auf einer SD Karte zwischenspeichern. Um bei Störungn und Paketverlusten neue generieren zu können. Ich denke so eine Übertragung wird dann schon mal 10 min dauern. Also wenn jemand eine Schreibunterstüzung für die SD Karte erstellen kann würde ich mich gerne erkenntlich zeigen. MfG Stan
JUHU JUHU was ist das für ein Gefühl wenn es endlich klappt. Und das alles nur wegen einem zu schwachen Netzteil. *****schäm***** Kann ich eigentlich die Webcam auch in dem Source der 3C509B Version nutzen? MfG Stan
Ich habe den Server nun auch in Betrieb gebracht. Tolles Gerät. Schaltet und waltet und gibt Temperaturen aus. Per dxndns auch übers web. Alle Funktionen, die für das Bearbeiten von Variablen und Formularen zuständig sind, habe ich aus tcp.c und httpd.c in eine extra Datei gepackt. So muss ich nur dort und in webpage.c ändern. Was mir bisher nicht gelungen ist: SNTP und das Lesen externer Websites. Also der Aufruf von Seiten. Hat jemand sowas schon auf dem Server gemacht?
Hallo! Habe genau das gleiche Problem wie Stan weiter oben und kriegs alleine nicht gelöst! Kann mir wer helfen??? Stan´s Post : "Hy ich habe jetzt zwei Webserver zusammengelötet. Und auch gleich verschiedene Hex Files geflasht. Als Netzwerkkarte verwende ich je eine 3Com EtherLink III 3C509B-C. Ich habe sie auch auf RJ45 und 310 gestellt. Die nötigen Modifikationen auf der Platine habe ich auch gemacht. Die Files sind von hier: http://mikrocontroller.cco-ev.de/de/download.php#AVR_WEB Leider habe ich den Sever noch nicht erreicht, da ich ein 11,0592 Mhz Quarz verwende. Wie compiliere ich den nun das neue Hex File mit einer anderen IP und dem anderen Quarz. die Datein habe ich schon geändert. Aber immer wenn ich in Programmers Notepad 2 bei Tools Make all versuche eine Hex zu erstellen kommt immer sowas: > "make.exe" all -------- begin -------- avr-gcc (GCC) 3.4.6 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiling: uart.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=uart.lst -std=gnu99 uart.c -o uart.o In file included from main.h:17, from uart.c:8: C:/WinAVR/avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>." uart.c: In function `UART_Init': uart.c:36: warning: passing arg 1 of `fdevopen' from incompatible pointer type uart.c:36: error: too many arguments to function `fdevopen' make.exe: *** [uart.o] Error 1 > Process Exit Code: 2 > Time Taken: 00:00 was soll ich blos tun, langsam verzweifle ich noch hier. MfG Stan"
Das Programm ist mit einer älteren WinAVR-Version geschrieben. Ab diesem Jahr sind einige Sachen, die schon länger abgekündigt waren, abgeändert worden. Es gibt drei Möglichkeiten: 1. Man ändert das Programm ab. Es wären folgende Änderungen notwendig: - C:/WinAVR/avr/include/avr/signal.h entfernen. - Alles was mit Signal() zu tun hat,durch ISR() mit den richtigen Vektoren ersetzen. - fdevopen() hat nur noch zwei Parameter. der letzte ist zu viel. - ... 2. Man versucht es, in dem man die deprecated.h einbindet. Das geht dann nur eine Zeitlang gut, da die alten Sachen bei den nächsten WinAVR-Versionen rausfliegt. 3. Man verwendet eine WinAVR-Version aus den letzten Jahren. Gruß Elektrikser
@Heinrich ich werde mal versuchen die aktuellen Quellen vom Webserver in der nächsten Woche online zu stellen. Die Quellen laufen dann mit dem aktuellen WinAVR. Dann geht auch SMTP, also das Mailverschicken und auch noch FTP als Client, NTP, UDP, ... man kann die Bilder der WebCAM direkt auf die SD-Karte speichern und noch einiges mehr. Alles konfigurierbar per Textdatei auf der SD-Karte.... Ich verwende übrigends z.Z. einen MEGA644. (pin-komp. zum MEGA32 nur mit 64 kB Flash und mehr RAM) - RAM und Flash vom MEGA32 waren mir einfach zu knapp. Wenn das Wetter so sch... bleibt, könnte es im Laufe der Woche klappen ;-) Gruß, Ingo.
Hy das ist ja spitze mit dem neuen Code. und dem speichern auf der SD Karte das kommt mir bei meinem Funkproblem sehr gelegen. http://www.ulrichradig.de/site/forum/viewtopic.php?t=405&sid=e2c95956775f2d2c5a7188128fd0a5ae Ich habe mir zwei 3COM 3C5x9 Webserver gebaut. Nun möchte ich gerne noch die MCA 25 Handy Camera anschliesen. Ist das möglich? Was muss ich beim Source Code noch einbinden? Kann ich den Mega644 einfach in das Board reinstecken? Muss ich da was am Quellcode basteln? MfG Stan
Hallo Stan, Der MEGA644 passt so in das Board. Allerdings muss am Quellcode einiges angepasst werden, da die Register andere Bezeichnungen haben. Für die Kamera braucht man natürlich die entsprechenden Quellen. Leider sind die bei der 3COM-Version (V1.39) nicht dabei, die müsste man sich aus einer Realtek-Version kopieren. Oder du wartest noch etwas - bei den neuen Quellen ist alles dabei. Gruß, Ingo.
Moin Moin allerseits! Hab da folgendendes Problem mit dem Webserver und meiner 3Com-Netzwerk-Karte, die Initialisierung geht immer nur bis zum 5. Schritt, dann schreibt er "node 0xFFFF" und beendet die Initialisierung. Hab auch schon im Programm nachgeguckt, in der 3c5x9.c, konnte aber nicht richtig erkennen, wo der Fehler liegt, aber wahrscheinlich hats was mit der MAC-Adresse zu tun. Meine Netzwerkkarte ist eine 3C509B, müsste also eigentlich gehen, oder? Muss ich die genaue Beziechnung noch irgendwo im Programm einpflegen?Ach ja, ich habe die IRQ auf 9 gestellt und die andere Geschichte auf 310, pnp ist aus. Vielen Dank für Eure Hilfe! Grüße derChrome
@derchrome: Die I/O-Adresse muss 300 sein! IRQ9 stimmt schon. Dann sollte es gehen :)
Hy ich habe da mal wieder eine Frage: Im Dateianhang ist ein Bild von meinen verwendeten 3Com Karten. Das Problem ist das nur die unter funzt. Ich habe sie beide eingestellt und getestet, sie gehen. Nach den Bezeichnungen der Karte sind sie baugleich, aber es ist ja ein anderer Chip drauf. Bei der oberen leuchtet die grüne LED auf der Karte nicht auf, aber im HyperTerminal habe ich gesehen das sie anscheinend richtig initalisiert wird. Ich habe auch festgestellt das die Karte anscheinend die eingestellte I/O Adresse verliert. @derchrome vieleicht hängt das auch mit deinem Problem zusammen, wie sieht den deine Karte aus? MfG Stan
@ Stan : meine eine Karte sieht genauso aus wie die obere, meine amdere hat nur ne RJ45-Buchse drauf. Aber gehen tun sie beide nicht. Wie gasagt die Initialisierung kommt nur bis Schritt 5 (node : 0xFFFF). Kannst Du mir nicht mal dine Quelltext und einen Screenshot von der Initialisierung schicken, von wegen node und so?? Meine E-Mail-Adresse hast Du ja. Kriege auch morgen noch nen Schwung 3Com-Karten und endlich einen ISA-Sockel, so dass ich nicht mehr die Kabel an die Karte löten muss ums zu testen ;-), dann werd ich mal ne große Testreihe fahren über Vatertag. @ Maiximailian: Die Adresse hab ich vorher auf 0x310 programmiert, weil das in meinem Quelltext v1.39 so angegebn ist. Aber wenn Stan sagt die Karte behält sich das nicht, dann werd ich zur Vorsicht mal auf 0x300 im Programm einstellen und sehen was passiert,vielleicht sollte Stan das auch mal versuchen. @ all: Wie stelle ich denn die MAC-ADresse ein (die steht doch auf der Karte auf dem kleinen weißen Aufkleber mit EA davor, oder?) im Programm? Oder muss ich das gar nicht? Weil wenn ich die alphanumerische KOmbination hinter EA eingeben kompiliert er mir das Ganze nicht mehr! Vielen Dank für Eure Hilfe. MfG derChrome
Hallo, die bereits angekündigten Quellen für den Webserver sind jetzt in der Version V1.40 auf meiner Seite zu finden: http://www.mikrocontroller.com Gruß, Ingo.
Hy schön das der neue Code fertig ist. Spitzen Arbeit! Wo kann ich den den Atmega644 bestellen, bei Reichelt giebts den ja nicht. MfG Stan
siehe: http://www.mikrocontroller.net/forum/read-1-329929.html und http://www.mikrocontroller.net/forum/read-1-327252.html
Hy ich wollte mir einen Atmeg644 bei http://de.digikey.com/ kaufen. Aber welchen muss ich nehmen, das er auf das Board passt? MfG Stan
Hallo Ingo, ich versuche gerade deine V1.40, mit dem MEGA128 und der Platine von Ulrich Radig in Betrieb zu nehmen. Leider scheitert die Initialisierung des RTL8019. Am RLT8090.C Code wurde soweit ich das sehe nichts geändert. Außer die Funktion delay_ms. Ist noch was anderes zu beachten oder habe ich was übersehen --=== AVR-Server V1.40 ===--- MMC/SD: Ok. reading 'server.cfg'...Ok Init Network Card: ......... Init Ready! Gruss Volker
Hier die richtige Meldung des Terminals: --=== AVR-Server V1.40 ===--- MMC/SD: Ok. reading 'server.cfg'...Ok Init Network Card: ......... ERR: Init RTL8019: (255) ERROR !!! --
Guck mal in der rtl8019 header Datei: #define RTL_ISR RTL_REG_OFFSET+0x07 // renamed (avr-gcc 3.4.5) Die Änderung ist mir eben aufgefallen...
Hi ! hat schon jemand mal versaucht einen COM-Server aus dem AVR-Webserver zu machen? Müsste doch eigentlich realisierbar sein, oder? Gruß Steffen
Der WebServer V1.40 läuft (Mega128 Ulrich Radige Hardware) ISA_CTRL ist 2 mal definiert in Main.h und RTL8019.h beide müssen auskommentiert werden. clock.c und uart.c wurden angepasst. Danke für den Tip Maximilian Gruss Volker
Hallo Volker, vielleicht kannst du mir die angepasste Version mal schicken... (habe leider keine Mega128-Hardware zum Testen)... Gruß, Ingo.
hat schon jemand die mca-25 cam in verbindung mit dem mega128 webserver zum laufen gebracht? wenn ja, mit welchen sources? mit 1.40 war ich erfolgslos :-/ gruß, max
Mega 644 gibt es auch bei "Konnte nicht testen, hatte kein Strom" http://cgi.ebay.de/Atmel-AVR-Mega644-20PU-Prozessor-64k-20MHz-PDIP40_W0QQitemZ9732363725QQcategoryZ12949QQcmdZViewItem 6,90 Euro
Hallo Max, ich habe den Atmega128-Server mit MCA25 am Laufen. Die Version 1.40 habe ich noch nicht getestet, nur die 1.38. Die 1.40 habe ich zwar umgeschrieben, aber noch nicht getestet. Die 1.38 läuft einwandfrei. Gruß Elektrikser
Autsch, das war wieder ein grauenhaftes Deutsch...
hmm, ich komm einfach nicht über das 'CAM_running' hinaus... welchen Port hast du denn für CAM-Reset genommen? oder könntest du mir die sources zuschicken, die bei dir auf dem atmega128 laufen? gruß, max
Als Reset verwende ich PB0. Das Programm ist das, was Simon auf seiner Webseite zum Dowmload anbietet (vom 24.10.05). Du musst halt #define ISA_CTRL auf 0 setzen (main.h) oder anderweitig deaktivieren. Ansonsten habe ich nichts geändert. Verwendest du den richtigen Quarz? Es geht ja nicht jeder. Es funktionieren: 7.372800 MHz 14,745600 MHz 18.432000 MHz
Dank Dir Elektrisierer! Mein MCA-Reset-Pin war das Problem, schien wohl irgendwie durch die Software blockiert gewesen zu sein... Mit PB.0 gehts :-) Gruß, Max
Hallo Ingo, gib mir mal deine Mailadresse dann schick ich dir die Änderung Gruss Volker
Hallo Volker, hier meine Mailadresse: busker (at) mikrocontroller (dot) com Gruß, Ingo.
Hallo! Heute habe ich mal eine Frage zur Software. Ich beziehe mich auf die Version: "060118_Source1.38_jb04". In der Datei "httpd.c" finde ich ziemlich weit unten die Zeile: "Read_File (tcp_socket->Cluster,&buffer[tcpdata],tcp_socket->File_Block_Counter);". Wie ich erkennen und verstehen kann, werden hier die Daten von der MMC geholt und in einen Puffer geschrieben. Leider kann ich die Definition für buffer[] nicht finden. Ist der Puffer ausreichend dimensioniert, damit man auch andere Clustergrößen auslesen kann? Wie wird das Ende des Puffers geprüft? Danke und Gruß Guido
Hallo Guido, die Definition für buffer[] findest Du wie folgt: Am Anfang der Funktion mit der von Dir zitierten Zeile steht: //#################################################################### void httpd (char *buffer,int *bufferlen) // Beide Paremeter sind Zeiger, *buffer zeigt auf den Bufferanfang // *bufferlen zeigt auf die Länge des Buffers //#################################################################### Die Funktion httpd wird aus der Funktion 'get' in der Datei interrupt4.c wie folgt aufgerufen: httpd (packet,&packetlen); Die Definition von packet und packetlen steht am Anfang der Funktion wie folgt: unsigned int packetlen; // Länge des Ethernetpacketes unsigned char packet[MTU_SIZE+80]; // Array für zu empfangene und zu sendene Daten MTU_SIZE wird in main.h definiert. Die Konstante 80 habe ich eingefügt, damit Platzhalter von bis zu 80 Zeichen Länge ersetzt werden können. Gruß Joachim
Zu den MMC-Routinen kann ich übrigens nichts sagen, da ich bisher nicht damit gearbeitet habe. Joachim
Hi ! ich betreibe den AVR-Webserver mit webcam und einem 14,... Mhz Quarz. Allerdings schafft der nur einen Datendruchsatz von ca. 2 kbyte/s beim Laden des Bildes. Gibt es da eine Möglichekit die Geschwindigkeit noch etwas zu optimieren? Gruß Steffen
Hallo! Hurra! Ich habe einen ATmega644 bekommen und konnte nun endlich Version 1.40 testen. Es ist mal wieder eine gute Arbeit. Programmierung mit einer neuen AVR-Version (WinAVR) ging ohne Probleme. Auch das Schreiben mit AVRdude war ein Kinderspiel. Dennoch habe ich einige Fehler gefunden. Wo kann ich die Fehler einkippen, damit sie in der nächsten Version beseitigt sind? Im Anhang habe ich mal ein Beispiel für einen Fehler. Ich habe bewusst den Tag auf eine 512er-Grenze gesetzt. Leider mit diesem Ergebnis. Gruß und weiter so! Guido PS: Ich hoffe, dass Joachim sein OWI-Thermometer mit integriert, dann ist die Sache schon fast perfekt.
Hallo Sommerloch... ich wollte mal fragen ob nicht jemand mir eine kleine Anleitung schreiben könnte wie ich jetzt meinen ATmeg644 am einfachsten programieren kann. mit PonyProg gehts ja nicht. Viele Grüße Stan
Hallo Stan, wir benutzen den AVRDUDE. Da kann man auch den DT006 als ISP-Programmer einstellen. Gruss, Holger
Hallo das hilft mir jetzt aber wenig. dort kann ich ja auch keinen 644 auswählen. Kannste das nicht etwas ausführlicher beschreiben wie du das gemacht hast? Und was hat das mit dem Makefile auf sich? Ich hoffe ich bekomme das bald hin jetzt wo ich meine Cam habe! MfG Stan
zu AVRDude gehört noch eine .conf-Datei (oder .cfg?) Da drin werden die Programmier Parameter für alle unterstützten Controller aufgelistet. Was daran schön ist: Wenn ein Controller noch nicht unterstützt wird, kann man ihn selber hinzufügen. Ich habe damals den ATmega162 hinzufügen müssen. Dazu habe ich mir dessen Datenblatt und das eines schon vorhandenen (z.B. mega16) genommen und die Parameter verglichen. Es funktionierte.
Hallo Stan, der AVRDURE wird vom "makefile" aus mit den richtigen Parametern aufgerufen. Gruss, Holger
Hy Danke für die Antworten Also mal langsam. Wie starte ich das makefile? im Programmers Notepad? da klappts nicht so richtig, sieht mir nach einer endlossschleife aus. Und ich hatte 20 Prozesse vom make im Taskmanger. Da muss doch was nicht stimmen. Screibt doch mal eine Anleitung, so schwierig kann das doch nicht sein. Mit dem Atmega32 habe ich das ja auch hinbekommen. Betreibt den irgentjemand so einen Webserver als Ip Cam? also bis später. MfG Stan
Hey Holger ich hab mal ne frage und zwar hast du den Schaltplan und das Layout von der ersten version noch ?? wenn ja könntest du mir das bitte per mail zukommen lassen ?? oder is das alles hier drin und ich habs nur übersehn ?? MfG. Philipp
Hallo Philipp, ja, hier ziemlich weit oben im Beitrag. Gruss, Holger
Hallo, die neue Version gefällt mir ganz gut, zumindest das was ich bisher gesehen habe. ich wollte mal fragen ob schon jemnad die source auf nem at32 ans laufen bekommen hat und ob es möglich ist den 1Wire bus da mit einzupflegen. Genial wäre natürlich noch die geschichte mit den Funksteckdosen... Gruß Peppe
ich hab da nochma ne frage ... wäre es möglich ein lcd anzuschließen und da den betreibszustand anzuzeigen also z.b Starten, Bereit, Busy, Fehler + fehlercode ??? sowas wäre noch ne idee von mir MfG. Philipp
Hallo Phillip, für die Anwendung würde ich vorschlagen, ein weiteres AVR-Boardx an die serielle Schnittstelle anzuschliessen und alles auf dem Display anzeigen, was der Webserver per Ser.Schnittstelle ausgibt. Gruss, Holger
ich hab da mal noch ne frage .... was für einen trafo brauche ich ?? 230V --> 12V Ueff is kla aber wie viel VA wie viel zieht der denn ??
wenn ich mich recht erinnere zieht mein Webserver so knapp 100mA. wenn die cam angeschlossen ist, steigt der wert natürlich noch...
ok danke also reicht ein 2VA troffo vollkommen aus ... bzw 1.2 würde schon reichen naja egal hab einen mit 5 VA hier gut dann reicht der das wollte ich nur wissen
hallo holger ich würd dich gern mal auf einen thead aufmerksam machen wo ich grade versuche ein problem mit meinem webserver zu klären http://www.mikrocontroller.net/forum/read-1-410576.html
Hy jetzt war ich zwei Wochem im Urlaub und niemand wollte mir in der Zeit eine kurze Anleitung zum flashen der neuen Software erstellen. )-: )-: )-: )-: )-: )-: )-: )-: )-: MfG Stan
Hallo, probiere schon seit einigen tagen erfolgloss die Sourcen (v1.39) zu kompilieren irgendwas ist immer: Compiling: clock.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=clock.lst -std=gnu99 clock.c -o clock.o clock.c: In function `Start_Clock': clock.c:48: warning: implicit declaration of function `timer_enable_int' Compiling: uart.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=uart.lst -std=gnu99 uart.c -o uart.o uart.c: In function `UART_Init': uart.c:36: warning: passing arg 1 of `fdevopen' from incompatible pointer type uart.c:36: error: too many arguments to function `fdevopen' make.exe: *** [uart.o] Error 1 > Process Exit Code: 2 > Time Taken: 00:36 Vieleicht kann mir ja jemand helfen
Hi ! das Problem habe ich auch, wenn ich den neuen WinAVR-Compiler benutzte. Benutz mal WinAVR von 2005, damit gings bei mir.
Oder könnte vieleicht jemand, bei dem es funktioniert so lieb sein und mir den Sourcecode compilieren, währe echt super. mit SD-Karte Mega32 3Com 3c509 IP: 192.168.1.50 16MHz DANKE!!!
OK, habe jetzt eine alte-WinAVR version bekommen, konnte alles auch kompilieren, das Therminal meldet: START... Init... Phase 1 Phase 2 Phase 3 Phase 4 Phase 5 node 60-970E-5189 I/O address A80 Phase 6 Phase 7 MfgtID: 6D50 Product ID: 9450 Phase 9 Phase 10 Phase 11 ... -- Init 3C5x9: Okay -- My Mac: 0.60.97.e.51.89 My IP : 192.168.0.101 nur an der Netzwerkkarte leuchtet die Aktivitätsled nicht, und ich kann den Server auch nicht anpingen.
Hy gucke doch mal welche Karte der im Bild am änlichisten sieht. Die obere (beachte Chip) geht bei mir auch nicht! MfG Stan
na toll ;-( habe auch die obere. und die untere funktioniert? was für eine ist das dann?
Hallo, das Compiler-Problem mit dem fdevopen() löst Ihr, indem Ihr fdevopen(uart_putchar, NULL, 0); durch fdevopen(uart_putchar, NULL); ersetzt. Gruss, Holger
Hallo die Bezeichnungen sind die selben. Das Layout ist aber nur änlich. Und die Chips sind unterschiedlich. Seltsam. Jetzt hat mir doch noch immer niemand erklärt wie ich den Atmega644 flashe! MfG Stan
wieso Programierst du den mega644 nicht mit winavr?
Hab mal wieder ein Prob. -------- begin -------- avr-gcc (GCC) 3.4.3 Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiling: main.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99 main.c -o main.o main.c: In function `InitNetworkCard': main.c:78: warning: implicit declaration of function `init_3c5x9' main.c:67: warning: unused variable `wert' main.c: In function `ShowConfig': main.c:212: warning: suggest parentheses around comparison in operand of & main.c: In function `test': main.c:259: warning: unused variable `t' main.c: In function `main': main.c:277: warning: unused variable `Minuten_Timer' Compiling: 3c5x9.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=3c5x9.lst -std=gnu99 3c5x9.c -o 3c5x9.o Compiling: rtl8019.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=rtl8019.lst -std=gnu99 rtl8019.c -o rtl8019.o Compiling: analog.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=analog.lst -std=gnu99 analog.c -o analog.o Compiling: arp.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=arp.lst -std=gnu99 arp.c -o arp.o arp.c: In function `ARP_Reply': arp.c:66: warning: implicit declaration of function `Write_Ethernet_Frame' Compiling: checksum.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=checksum.lst -std=gnu99 checksum.c -o checksum.o Compiling: ftpd.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=ftpd.lst -std=gnu99 ftpd.c -o ftpd.o Compiling: httpd.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=httpd.lst -std=gnu99 httpd.c -o httpd.o httpd.c: In function `httpd': httpd.c:132: warning: suggest explicit braces to avoid ambiguous `else' httpd.c:237: warning: implicit declaration of function `Write_Ethernet_Frame' httpd.c:255:1: warning: "BLOCK_SIZE" redefined httpd.c:16:1: warning: this is the location of the previous definition httpd.c: In function `substitute': httpd.c:435: warning: 'length' might be used uninitialized in this function Compiling: ip.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=ip.lst -std=gnu99 ip.c -o ip.o Compiling: icmp.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=icmp.lst -std=gnu99 icmp.c -o icmp.o icmp.c: In function `ICMP_Reply': icmp.c:49: warning: implicit declaration of function `Write_Ethernet_Frame' Compiling: interrupt4.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=interrupt4.lst -std=gnu99 interrupt4.c -o interrupt4.o interrupt4.c: In function `get': interrupt4.c:76: warning: implicit declaration of function `Read_Ethernet_Frame' Compiling: clock.c avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=clock.lst -std=gnu99 clock.c -o clock.o clock.c:20: warning: return type defaults to `int' clock.c:20: warning: function declaration isn't a prototype clock.c: In function `SIGNAL': clock.c:20: warning: type of "__vector_9" defaults to "int" clock.c:22: warning: unused variable `t2' clock.c: In function `Start_Clock': clock.c:53: error: `TIMSK1' undeclared (first use in this function) clock.c:53: error: (Each undeclared identifier is reported only once clock.c:53: error: for each function it appears in.) make.exe: *** [clock.o] Error 1 > Process Exit Code: 2 > Time Taken: 00:10
Wer kann mir helfen, ich bringe das zeug einfach nicht compiliert Linking: main.elf avr-gcc -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o -std=gnu99 main.o 3c5x9.o rtl8019.o analog.o arp.o checksum.o ftpd.o httpd.o ip.o icmp.o interrupt4.o clock.o uart.o tcp.o telnet.o webpage.o mmc.o fat16.o ftpclient.o ntp.o time.o config.o auth.o sendmail.o webcam/mca25.o --output main.elf -Wl,-Map=main.map,--cref -lm main.o: In function `InitNetworkCard': C:\Dokumente und Einstellungen\Christian\Desktop\Webserver\V1.40\source/main.c:77: undefined reference to `init_3c5x9' arp.o: In function `ARP_Reply': C:\Dokumente und Einstellungen\Christian\Desktop\Webserver\V1.40\source/arp.c:66: undefined reference to `Write_Ethernet_Frame' arp.o: In function `ARP_Request':
Ich habe V1.38, die MMC-Karte wird erkannt, aber leider wird die html-Seite nicht von der MMC-Karte gelesen? Mit FTP kann ich auch nicht draufzugreifen -> Konnte Dateiliste nicht empfangen???
Wie gross ist die MMC-Karte? Bislang habe ich immer 128MB probiert - hat jemand auch mal 512MB oder 1GB getestet? Fat16 formatiert?
Hi, hab auch mal den WebServer von Holger B nachgebaut. Ich benutze die Version 1.38 und einen um9008f chip. Allerdings empfange ich alle Bytes doppelt. Das heißt jedes zweite Byte eines Packets gleicht dem ersten. Hatte irgendwer schon mal dieses Problem oder weiß jemand Rat?
Hallo @ all, hat einer von euch schon eine vernünftige Quelle für den mega664 aufgetan. Wenn ich bei de.Digikey.com einen bestellen will komme ich auf 36 mit Porto Versandt und Bearbeitungsgebühr. das ist mir doch ein wenig zu viel und bei Spoerle kann man so nicht bestellen. reichelt hat den zwar im Programm kann aber zur zeit nicht liefern. Bei Ebay bin ihc auch nicht fündig geworden. Oder hat jemand zufällig zwei bestellt und somit einen über, den er mir verkaufen würde? Gruß Peppe
Hallo Ich möchte den Webserver nachbauen, aber ohne SD Karte. Muss ich dann irgendwas in der Aktuellen Software 1.39 abändern oder auskommentieren? gruss Frank
Hallo Frank, die aktuellste Version ist die 1.40, diese ist aber für den Atmega664 ausgelegt und funktioniert nicht auf dem Atmega32. SO weit ich weiß mußt du in der mmc.h nur den Wert bei #define USE_MMC auf 0 stellen, so ist es zumindest bei der V1.38. Alles andere übernimmt dann der Complier für dich, da dieser Wert dann Global gesetzt ist und in der Source an den diversen Stellen abgefragt wird, genau so ist es mit der MCA25 Kamera. Gruß Peppe P.s. Wenn ich mich sollte lasse ich mich gerne eines besseren belehren.
Hallo Danke für die schnelle Antwort! Das heist also das es gar kein Source für den Atmega32 mehr gibt? Oder kann man die 1.40 auf den Meg 32 leicht abändern? Frank
Die Source V1.40 ist für den Atmega664, dieser ist Pin kompatibel zu dem 32er hat aber mehr Speicher,ich meine das die Register anders aufgebaut sind und somit die Source erst an den 32er angepasst werden müßte wobei dann immer noch das Problem mit dem zu kleinen Speicher vorhanden ist. Der Funktionsumfang ist erheblich in der letzten Version erweitert worden. Es ist nun auch möglich Dynamische Webseiten auf der MMC abzulegen, was vorher nicht möglich war. Ist nur eines von vielen Erweiterungen. Ich selber benutze auch noch den Atmega32, da ich noch keine Vernünftige Quelle für den 664er aufgetan habe, Reichelt kann den zur Zeit nicht liefern. Conrad führt ihn nicht und die anderen Anbieter die hier genannt wurden, verkaufen entweder nicht an Entkunden oder deren Bearbeitungsgebühr liegt bei 13 + 10 Versandt, dann würde ein Atmega664 ca 32 Kosten. Wenn du willst mache ich dir eine Hex fertig aus der V1.38 mit 1wire Bus, mit oder ohne Mca25, müßtest mir dann sagen, welchen Quarz du hast und welche Ip der Server haben soll, wobei der Quarz nicht beliebig gewählt werden kann, wenn du die Cam und den 1 wire Bus haben willst. Gruß Peppe
Hallo Danke für das Angebot! Ich habe jetzt ein 3Com Isa NIC 3c509b gefunden wie sie im Bild oben gezeigt wird(siehe auch Beitrag von STan Linke weiter oben). Nun liest man hier ja unterschiedliches. Geht diese Karte nun oder nicht(mit den entsprechenden Layout Änderunegen der Leiterplatte von Mikrocontroller.com)? Eine Realtek zu bekommen ist ja auch nicht so einfach?! Gruss Frank
Schau dir doch mal bei ebay folgende Artikel an: 260040833937 (Unter den stickern ist warscheinlich ein RTL8019) 140041854672 (Wie bei der ersten) 320036504804 (Da is sicher ein RTL8019 drauf) ich würde die letztere nehmen, da du da sicher sein kannst, allerdings kannst du wenn du auf risiko gehst bei dem ersten angebot ein echtes schnäppchen machen... Unter dem sticker kommt immer mal wieder was anderes zum vorschein, ich hatte glück einen RTL8019 zu finden. Insgesamt gibt es glaub ich 3 Möglichkeiten was drunter sein kann, wovon 2 gehen! zu deiner Karte kann ich leider nichts sagen :(
Warum bist Du dir bei der letzteren so Sicher? Hat denn noch keiner die 3COm Karte zum laufen gebracht? Frank
@Peppe: kann Dir einen ATmega644-20PU (DIL40) oder -20AU ( TQFP )abgeben, wenn noch Bedarf ist.
Hallo Steffan, wenn du den über hast hätte ich den gerne. Müßte dann noch deine Bankverbindung bekommen. Die könntest du mir per email zukommen lassen, ach ja und den Preis ;) Gruß Peppe
@Peppe: meine EMAIL ist mc_sho AT gmx.de. Kann Deine nicht finden. Gruss Steffen
@Frank: Ich habe eine 3com-Karte laufen. Meine ist praktisch identisch zu deiner oberen, nur ohne BNC. Nötig war noch ein weiteres Signal von der Karte an den µC anzuschließen und auszuwerten. Da müsstest du hier im Forum eigentlich fündig werden.
Frank wrote: > Warum bist Du dir bei der letzteren so Sicher? > Hat denn noch keiner die 3COm Karte zum laufen gebracht? > Frank Weil man da sieht das es ein RTL Chip ist...
Hallo Ich habe mir den Webserver von Holger nachgebaut mit dessen Platine. Nun möchte ich einen Software I2c Bus implementieren. Am Stecker S1 sind ja noch Port Pins Frei. Ich möchte nun die Homepage erweitern mit Checkboxen, die letzt endlich den I2c Steuern sollen. Ich habe aber noch nicht vertsanden, wo in webpage.c (source von Holger1.39)die verknüpfung ist um die Hardware an zu steuern. Man kann ja bei dem Beispielsource eine Rote LED ansteuern. Aber wo wird das Softwaremäßig umgesetzt? Gruss Frank
HI Frank, das ist schon realisiert und es gibt auch eine fertige Platine dazu. http://www.icplan.de/seite15.htm Wie du neue Variablen implementierst steht in der Doku des Quelltextes. Es reicht nicht , wenn du nur variablen in der webpage.c einfügst du mußt auch noch die tcp.c und die httpd.c erweitern, aber vorsicht wenn du zuviel erweiterst treten nebeneffekte auf, in der Form, dass die html seite nicht richtig dagestellt wird. Gruß Peppe
Hallo Danke für die schnelle Antwort. Das Projekt von Icplan ist nicht schlecht. Aber ich habe ja nun schon den Webserver von Radig/Buss aufgebaut. In der Doku/Quelltext finde ich nichts wie man neue Variablen implementiert?! Ich habe den Quelltext von mikrocontroller.com 1.39ib. Hat jemand schon mal einen Software I2c Bus in den Webserver implementiert? Frank
Hallo Frank, lade dir mal die Source 1.38 mit one wire anbindung runter da ist ein Ordner Doku drin mit der Server Anleitung, dort ist an Hand eines Beispieles erklärt wie du neue Variablen einbindest und wie du die Ports ansprichst. Wenn man sich da ein wenig eingelesen hat, wird einem schnell klar das es nicht reicht nur die Webpage.c zu erweitert. Die datei spiegelt die Grafische oberfläche wieder, die du nachher in deinem Browser siehst, für das versenden der Page ist die tcp.c verantworlich. Wenn du nun Häckchen setzt, und auf Aktuallisieren klickst wird dann der Status der Variablen an den Webserver gesendet. Nun muß der Webserver diesen Datenstream auswerten und die Variablen entsprechend setzen. Deshalb muß auch die httpd.c und die tcp.c angepasst werden. Die Variablen die du in der Webpage.c setzt, die nachher verändert werden sollen, müssen global bekannt gemacht werden. Die Deklaration machst du dann am besten in der main.h. Ich habe aufbauend auf der 1.38 Sourde und der Source von Joachim Börke (funk.s) die Ansteuerung der Funkschaltsteckdosen eingebunden. Ich muss Joachim fragen ob ich dir mein zusammengewürfelte Source schicken darf, die wirkliche Arbeit hat er nunmal gemacht und ich möchte nicht seine Arbeit als mein Verdienst ausgeben. Da müsste es dann relativ ersichtlich sein was wo an welcher stelle zu setzen ist. Leider ist die source nicht 100% stabil, es treten halt immer wieder die Nebeneffekte auf, dass die Seiten im Browser nicht richtig angezeigt werden. Ich glaube das liegt daran das die tcp.c recht überladen ist, bin mir da aber nicht ganz sicher. Gruß Peppe
Hallo Peppe Ich habe mir den Source von 1.38 runtergeladen und die Doku durchgearbeitet. Die Buttons sind da ja anders aufgebaut als in dem Source 1.39ib. Ich habe jetzt mal eine Checkbox hinzugefügt und einen anderen Port angesteuert. dDas geht auch soweit bis auf das ich jetzt das gleiche Problem mit dem Häckchen setzen habe wie Matthias in diesem Thread. Aber wenn Du mir dein Source mal schicken kannst, wäre das bestimmt schon mal lehrreich. Es ist nur etwas schwierig einen ganz anderen Source als 1.39ib zu nehmen, da ich auf den Atmega32 und eine 3com Karte festgelegt bin. Gruss Frank
Hallo Hier noch mal meine E-Mail alf.jenny@web.de Frank
Hallo, ich möchte per serieller Schnittstelle daten vom einen zum anderen Mikrokontroller senden. Offentischtlich habe ich Probleme, den Zeilenumbruch zu senden. So sende ich Zeichen ab: printf_P(PSTR("12\n")); In Hyperteminal wird auch 12 ausgegeben, aber sie kommt leider nicht am anderen Mikrokontroler an. Wenn ich mit Hyperterminal eine Zahl absende, dann kommt es auch an nur wenn ich es vom Mikrokontroller aus absende. Mach ich da was falsch beim Zeilenumbruch?
Hallo Ich habe auch noch ne Frage zum Webserver. Ich habe immer noch das Problem mit den Checkboxen, so wie es auch weiter oben der Matthias schildert. Wenn man eine zweite checkbox hinzufügt, dass das Häckchen wieder verschwindet. Angesteuert wird der Port einwandfrei. Kann mir denn keiner logisch erklären warum das so ist???? Frank
HI, @Steffen Ich habe da mal eine kurze Frage. Die Verbindung zwischen den beiden µcs wie hast du die realisiert? Mit zwei Max 232, oder klemmst du direkt den Ausgang des einen an den Eingang des anderen und umgekehrt? Hast du eventuell ein Dreher in der Verbindung? So das TXD an TXD und RXD an RXD des jeweiligen - verbunden ist? Darauf zu achten ist auch, dass Ground bei beiden verbunden ist, sonnst haben die Nicht die selben Potenziale und es kommt nichts gescheites an. Ist nur ein spontaner Gedanke. Das ist mir auch schon mal passiert und ich habe dann zwei stunden verzweifelt nach Fehlern gesucht, bis ich den Dreher bemerkt hatte, oder das der Gnd nicht richtig kontakt hatte. Gruß Peppe
Hi, erstmal danke für deine Antwort, Peppe. Also ich habe die beiden µcs direkt also ohnen einen MAX232 verbunden. TX auf RX, also gekreutzt. Ich habe es jetzt soweit hinbekommen, dass ich die Zahl, die ich absende auch empfangen kann. Nur wenn ich aber eine Integer variable mit printf absenden möchte, kommt nur müll an. Liegt wohl irgendwie am Zeichensatz. Es ist also ein Unterschied, ob ich printf("12"); mace oder die Zahl 12 in einer Vaiable abspeichere und diese dann abesende.
Hallo, habe ein Problem mit der Ver.1.40 Prozessor ist ATMEGA644 f=14,7456 Mhz -=== AVR-Server V1.40 ===--- ERR: no MMC/SD-Card found! (01) ** ERR: no MMC/SD-Card found! (01) ** MMC/SD: Ok. reading 'server.cfg'...not found! Use default configuration ......... NIC : Init RTL8019: Ok MAC : 1E 0A 2B 2B 2D 4D IP : 192.168.1.201 Ich habe verschiedene SD-karten ausprobiert, auch mit LINUX eingerichtet, aber ohne Erfolg. Die Spng. ist 3,6V über einen LM317, aber auch mit den 2 Dioden das gleiche Problem. Ideen? Gruß Peter
Ich hab mihc gerade ein wenig durchgelesen und hab leider feststellen müssen, das ich den mega32 gar nicht für eine webserver anwendung hernehmen kann (in verbindung mit sd-karte). Meine Überlegung dazu wäre folgende: Es geht dem kleinen Mega doch nur RAM ab, um die SD-Karte mit FAT einbinden zu können - seh ich das bis hier her richtig? Warum nicht einen Port opfern und einen externen RAM dazu? Ausser man kauft sich einen 644 ^^
Welches RAM willst du den nehmen, so das dir ein Port für die Ansteuerung reicht?
stimmt... schei*** brauch ja adresse & daten... aber im prinzip wär das möglich?
muss ich sowieso... aber ich hab dann ja 16 datenleitungen... d.h. ich brauch noch ein zweites Port...
Hallo, hab mir auch den Isa Webserver aufgebaut, bekomme aber bis jetzt nur Init Network Card: ......... Init Ready! Init: ERROR(33) My Mac: 1e.a.2b.2b.2d.4d My IP : 192.168.1.5 Beim "Booten" des Webservers leuchtet nur die grüne LED an der Netzwerkkarte, sobald aber das init durch ist, leuchtet auch die rote... was kann der Fehler sein? Ich bin der Meinung, dass ich die richtige Netzwerkkarte habe... keine 3Com oder so... Gruß Manuel
Ok - netzwerkkarte läuft jetzt - war eine schlechte Lötstelle - sorry... Aber nun frag ich mich, warum die SD/MMC Karte nicht erkannt wird... was mach ich falsch - ich habe beides ausprobiert SD und MMC, beide Fat16 formatiert... bringt nix... ist das überhaupt richtig, dass die äußeren beiden Pads nicht vom "Slot" kontaktiert werden?
Hi Stromi könntest Du vielleicht für unbedarfte Interessenten wie mich genauer erläutern, wie der Zugriff aus dem Internetcafe funktioniert? Üblicherweise ist doch da ein DSL-Router (z.B. Fritzbox), der bei Dir zuhause zwischen Deinem Server und der DSL-Leitung sitzt und der bei Inaktivität die Verbindung sofort unterbricht. Wie kommt man dann von außen an seinen Webserver? Oder hast Du eine Standleitung mit fester IP-Adresse? So viel ich weiß, gibt es Serviceunternehmen, die eine feste Adresse vortäuschen, aber da ist immer noch der abgeschaltete Router dazwischen. Es wäre nett, wenn jemand meine nicht so ganz intelligente Frage beantworten könnte, da ich auch an einer Verbindung zum häuslichen System interessiert bin mfg Egon
Den Router kann man so konfigurieren, dass er bei Inaktivität die Verbindung unterbricht. Das ist dann sinnvoll, wenn man beim eigenen Internetprovider nach einem Zeittarif abgerechnet wird. Mit dieser EInstellung ist man bei Inaktivität von Außen nicht erreichbar. Wer einen Volumentarif gewählt hat, kann dagegen permanent im Internet sein. Bei dieser Konfiguration können viele Router ihre IP-Adresse an einen dynamischen DNS-Dienst weiterleiten. Dieser DNS-Dienst leitet eine Internetabfrage an den eigenen Router. Sobald der Router nach 24h eine neue IP-Adresse bekommen hat, meldet er das wieder an den dynamischen DNS-Dienst. So ist man über den von DNS-Dienst erhältlichen URL immer von außen erreichbar. Gruß Joachim
Hallo zusammen, so ein DNS Anbieter ist zum Beispiel Dyndns (http://www.dyndns.org) Die Fritzbox unterstützt DDNS von sich aus. Sprich Account bei Dyndns anlegen und die Userdaten in die Fritzbox hacken, und schon ist dein Router oder WEbserver von aussen zugänglich, sofern du in der Firewall der FB die Ports freigibst und weiterleitest. Peppe
Hallo zusammen, ich bin neu hier im Forum. Das Projekt das Ihr hier habt ist wirklich sehr interesant. Soweit ich konnte, habe mich hier ein bisschen eingelesen. Im Mittelteil hatte "Stan Linke" die Idee die MCA-25 Cam Bilder per Funk zu übertragen. Genau so etwas würde ich auch benötigen. Daher hier meine Frage: Wäre es möglich das ein ATMega32 ein Previewbild (80x60)aus der Cam holt, es zwischenspeichert und per rs232 mit 9600bd weiterreicht (hier nur die reinen Bilddaten, ohne Steuerbefehle)? Irgendwo habe ich hier gelesen, das die Cam auch über den 1-wire-bus zu bedienen ist. Somit wäre der UART für die RSR232 Ausgabe ja frei. Grüße
Hallo zusammen, Ich versuche gerade den Webserver in der Version 1.40IB zu kompilieren. AVR-GCC Version ist 4.1.2 Wenn ich kompiliere, meldet er mir folgendes und bricht ab: (Abgesehen von den Warnungen...)
1 | In file included from main.h:34, |
2 | from mmc.c:29: |
3 | mmc.h:43:1: warning: "SPCR" redefined |
4 | In file included from c:/winavr-20070525/bin/../avr/include/avr/iom644.h:38, |
5 | from c:/winavr-20070525/bin/../avr/include/avr/io.h:226, |
6 | from main.h:15, |
7 | from mmc.c:29: |
8 | c:/winavr-20070525/bin/../avr/include/avr/iomxx4.h:267:1: warning: this is the location of the previous definition |
9 | In file included from main.h:34, |
10 | from mmc.c:29: |
11 | mmc.h:44:1: warning: "SPE" redefined |
12 | In file included from c:/winavr-20070525/bin/../avr/include/avr/iom644.h:38, |
13 | from c:/winavr-20070525/bin/../avr/include/avr/io.h:226, |
14 | from main.h:15, |
15 | from mmc.c:29: |
16 | c:/winavr-20070525/bin/../avr/include/avr/iomxx4.h:269:1: warning: this is the location of the previous definition |
17 | In file included from main.h:34, |
18 | from mmc.c:29: |
19 | mmc.h:45:1: warning: "MSTR" redefined |
20 | In file included from c:/winavr-20070525/bin/../avr/include/avr/iom644.h:38, |
21 | from c:/winavr-20070525/bin/../avr/include/avr/io.h:226, |
22 | from main.h:15, |
23 | from mmc.c:29: |
24 | c:/winavr-20070525/bin/../avr/include/avr/iomxx4.h:271:1: warning: this is the location of the previous definition |
25 | In file included from main.h:34, |
26 | from mmc.c:29: |
27 | mmc.h:46:1: warning: "SPSR" redefined |
28 | In file included from c:/winavr-20070525/bin/../avr/include/avr/iom644.h:38, |
29 | from c:/winavr-20070525/bin/../avr/include/avr/io.h:226, |
30 | from main.h:15, |
31 | from mmc.c:29: |
32 | c:/winavr-20070525/bin/../avr/include/avr/iomxx4.h:277:1: warning: this is the location of the previous definition |
33 | In file included from main.h:34, |
34 | from mmc.c:29: |
35 | mmc.h:47:1: warning: "SPDR" redefined |
36 | In file included from c:/winavr-20070525/bin/../avr/include/avr/iom644.h:38, |
37 | from c:/winavr-20070525/bin/../avr/include/avr/io.h:226, |
38 | from main.h:15, |
39 | from mmc.c:29: |
40 | c:/winavr-20070525/bin/../avr/include/avr/iomxx4.h:282:1: warning: this is the location of the previous definition |
41 | In file included from main.h:34, |
42 | from mmc.c:29: |
43 | mmc.h:48:1: warning: "SPIF" redefined |
44 | In file included from c:/winavr-20070525/bin/../avr/include/avr/iom644.h:38, |
45 | from c:/winavr-20070525/bin/../avr/include/avr/io.h:226, |
46 | from main.h:15, |
47 | from mmc.c:29: |
48 | c:/winavr-20070525/bin/../avr/include/avr/iomxx4.h:278:1: warning: this is the location of the previous definition |
49 | In file included from main.h:34, |
50 | from mmc.c:29: |
51 | mmc.h:49:1: warning: "SPR0" redefined |
52 | In file included from c:/winavr-20070525/bin/../avr/include/avr/iom644.h:38, |
53 | from c:/winavr-20070525/bin/../avr/include/avr/io.h:226, |
54 | from main.h:15, |
55 | from mmc.c:29: |
56 | c:/winavr-20070525/bin/../avr/include/avr/iomxx4.h:275:1: warning: this is the location of the previous definition |
57 | In file included from main.h:34, |
58 | from mmc.c:29: |
59 | mmc.h:50:1: warning: "SPR1" redefined |
60 | In file included from c:/winavr-20070525/bin/../avr/include/avr/iom644.h:38, |
61 | from c:/winavr-20070525/bin/../avr/include/avr/io.h:226, |
62 | from main.h:15, |
63 | from mmc.c:29: |
64 | c:/winavr-20070525/bin/../avr/include/avr/iomxx4.h:274:1: warning: this is the location of the previous definition |
65 | In file included from main.h:34, |
66 | from mmc.c:29: |
67 | mmc.h:51:1: warning: "SPI2X" redefined |
68 | In file included from c:/winavr-20070525/bin/../avr/include/avr/iom644.h:38, |
69 | from c:/winavr-20070525/bin/../avr/include/avr/io.h:226, |
70 | from main.h:15, |
71 | from mmc.c:29: |
72 | c:/winavr-20070525/bin/../avr/include/avr/iomxx4.h:280:1: warning: this is the location of the previous definition |
73 | mmc.c: In function 'mmc_init': |
74 | mmc.c:54: error: 'SPCR0' undeclared (first use in this function) |
75 | mmc.c:54: error: (Each undeclared identifier is reported only once |
76 | mmc.c:54: error: for each function it appears in.) |
77 | mmc.c:54: error: 'SPE0' undeclared (first use in this function) |
78 | mmc.c:54: error: 'MSTR0' undeclared (first use in this function) |
79 | mmc.c:54: error: 'SPR00' undeclared (first use in this function) |
80 | mmc.c:54: error: 'SPR01' undeclared (first use in this function) |
81 | mmc.c:55: error: 'SPSR0' undeclared (first use in this function) |
82 | mmc.c:55: error: 'SPI2X0' undeclared (first use in this function) |
83 | mmc.c: In function 'Read_Byte_MMC': |
84 | mmc.c:140: error: 'SPDR0' undeclared (first use in this function) |
85 | mmc.c:141: error: 'SPSR0' undeclared (first use in this function) |
86 | mmc.c:141: error: 'SPIF0' undeclared (first use in this function) |
87 | mmc.c: In function 'Write_Byte_MMC': |
88 | mmc.c:169: error: 'SPDR0' undeclared (first use in this function) |
89 | mmc.c:170: error: 'SPSR0' undeclared (first use in this function) |
90 | mmc.c:170: error: 'SPIF0' undeclared (first use in this function) |
91 | make: *** [mmc.o] Error 1 |
Weiß jemand, woran das liegt? Danke schon einmal...
Hi, versuchs mal eine aktuellere Version von Winavr. Könnte daran liegen. Peppe
Nein, aktueller als 25052007 gibts wohl nicht. Und das Problem ist genau das Gegenteil: der gcc ist zu aktuell, du mußt einen älteren nehmen (oder den Code entsprechend anpassen). Für welchen gcc das Projekt ist, steht sicher in den Headern oder der Projektbeschreibung. Gruß, Matthias
@Flo82 Du musst in der mmc.h die Zeilen #define SPCR SPCR0 #define SPE SPE0 #define MSTR MSTR0 #define SPSR SPSR0 #define SPDR SPDR0 #define SPIF SPIF0 #define SPR0 SPR00 #define SPR1 SPR01 #define SPI2X SPI2X0 löschen. Die werden jetzt über die io.h definiert. Das fehlte wohl in älteren Versionen. So übersetzt der Compiler jedenfalls das Programm, ob es läuft ist eine andere Frage...
wie realisiert man das zusammenspiel von der ISA schnittstelle und dem MEGA32??
@Uwe: Jup, vielen Dank. So compiliert er schon einmal. Im Moment habe ich noch keine Netzwerkkarte, bekomme ich erst dieses WE. Von daher weiß ich nicht, ob es tatsächlich funktioniert. Aber eine andere Frage: knapp 70 Warnings... habt ihr die auch alle? Danke schon einmal. Flo
Hi ich möchte ma fragen wie viel das so ungefär kosten würde halt alles zu sammen und wo ich am besten alles auf eimer kaufen könnte Danke schon ma in voraus
Was ist denn das für ein Pfusch mit dem SD-"Slot"?!
@Tino: z.B. bei Reichelt bekommst du alles was du benötigst. Eine Bauteil Liste findest du z.B: unter http://www.mikrocontroller.net/articles/Einfacher_und_billiger_Webserver_mit_AtMega32 Du solltest aber vieleicht doch den ATMega 644 nehemen und dein 14,??MHz Quarz Nun habe ich auch eine Frage: Ich habe die Original Hex-File über das AVR-Studio geflasht, die Fuses gesetzt (Externen Quarz, JTAG Disabled) Mit dem Terminal sehe ich, das er soweit ohne anstanden Initialisiert. SD-Card liest er, Initialisiert die NEtzwerkkarte usw. Das Problem nun: Bei meiner RTL8019 blinkt die aktivity Led ununterbrochen. Ein ping bringt keine Antwort, unter Windows bringt ein "arp -a" auch nur meinen Router. Die IP's sind im gleichen Netz. Jemand irgendwelche Ideen? Danke schon einmal
Hallo, habe mal den webserver nachgebaut (lochrasterplatine). software habe ich die SourceCodeCPP_V1_40_IB drauf. nach anfänglichen schwierigkeiten ( fehler in meiner schaltung) läuft es jetzt wirklich gut. ich hoffe das jetzt noch die mca-25 kommt. bis jetzt habe ich nur 3 ports für schaltaufgaben eingebaut. an einem port habe ich über ein solid-state relais eine steckdose drangehängt, und das klappt auch wunderbar. gruss und danke an die entwickler thomas
So, ich hab mir mal die Platine und die nötigen Teile Bestellt, mal schauen, ob ichs hinbekomme. Mein Problem ist jetzt nur noch, dass ich keine passende Netzwerkkarte finde, aber da wird sich schon noch eine auftreiben lassen. MFG S. Fischer
Hallo Hab mir auch den Webserver zusammengebaut.... Nur leider hab ich damit jetzt ein kleines Problem: Hab alles soweit betriebsbereit, d.h. Software drauf usw. nur leider bekomm ich keine Verbindung über die serielle Schnittstelle. Hat vielleicht jemand einen Tipp für mich? Danke. mfg Chris
Fuse-Bits richtig gesetzt, sodass wirklich der externe Quarz als Taktquelle verwendet wird?
Noch nicht... Kann ich auch noch gar nicht, denn die Platine ist noch nicht da. MFG Simon F.
Hallo Ich habe den Webserver aufgebaut und er zeigt mir folgendes über die serielle Schnittstelle: ** Isa-Ctrl Webserver ** ** Keine MMC/SD-Karte gefunden! ** ** Keine MMC/SD-Karte gefunden! ** ** Keine MMC/SD-Karte gefunden! ** ** Keine MMC/SD-Karte gefunden! ** ** Keine MMC/SD-Karte gefunden! ** ** Keine MMC/SD-Karte gefunden! ** Init Network Card: ......... Init Ready! Init: Okay 34 My Mac: 1e.a.2b.2b.2d.4d My IP : 192.168.1.66 Das ist alles richtig, es steckt keine SD-Karte drin. Wenn eine da ist, erkennt er sie auch. Die Netzwerkkarte ist eine mit RTL8019 drauf. Problem: Ich kann das Gerät nicht "anpingen". Ich habe den EEProm auf der Karte ausgelötet, um die Defaulteinstellungen zu bekommen. (Habe ´keinen Rechner mehr mit ISA-Slot, um sie dort umzustellen) Der Router erkennt, daß eine Karte dransteckt. (10 Mbit LED ist an). Laut Holgers Beschreibung soll die rote LED auf der Platine kurz leuchten, wenn ich einen Interrupt auslöse, tut sie aber nicht. Wonach kann ich jetzt noch suchen? MfG Paul
dort habe ich mal 2 versionen für den webserver mit uip und cam reingestellt, vieleicht hilfts einigen. gruss tom Beitrag "Handycamera MCA-25 ansteuern - ip webcam mit mega32"
FREUDE! JUBEL auf den RÄNGEN! Der Webserver läuft jetzt mit Atmega32, 16Mhz, der Version 1.38 von der Seite http://www.mikrocontroller.com/de/download.php#AVR_WEB mit der Adresse 192.168.1.66 Dank an Ulrich Radig, Holger Buss und Ingo B. SD-Karte wird zwar nicht erkannt, aber ich hoffe, das finde ich noch. (EMTEC 1GB) Fehler war: Ich war lediglich im falschen Subnetz (Schäm..) Erleichtert Paul ;-)
So, SD-Karte läuft nun auch. HINWEIS: Bei mir lag es an der Spannungsversorgung der SD-Karte, die über 2 vorgeschaltete Dioden 1N4148 realisiert war. Auf Grund der geringen Stromaufnahme der Karte (EMTEC 1GB) fiel an den Dioden jeweils nur 0,3 Volt ab, so daß 4,4 Volt an der Karte lagen. Die hat es überlebt, aber die Logikpegel waren dadurch zu hoch. Ich habe eine 3,3 Volt Z-Diode mit 68Ohm Vorwiderstand hineingesetzt und nun klappt es. Die Z-Diode sitzt an Stelle des Stützkondensators 100n direkt am Kartenslot drin und der Vorwiderstand an Stelle einer der "Vorschaltdioden". Auch 2 andere Karten von Sandisk und Hitachi habe ich erfolgreich getestet. MfG Paul
Sind bei der V1.40 beide Netzwerkkarten ohne Layoutänderung möglich? Gruß Robin T.
Ich hab mir auch diesen Webserver Nachgebaut (in einer dreifirtel Stunde). Das Projekt ist wirklich Super.noch eine frage zur SD/MMC:Gehen auch 2 GB oder 4GB???
Ich versuche seit längerem erfolglos die Software V1.40 (MEGA644) für die Verwendung mit einer 3COM Netzwerkkarte zu kompilieren. Das Kompilieren für die RTL8019 Netzwerkkarte funktioniert einwandfrei. Wenn ich aber in der main.h die 3C5x9 aktiviere (#define USE_3C5x9 1), bekomme ich beim kompilieren die folgenden Fehler:
1 | F:\Temp\SourceCodeCPP_V1.40\source>make.exe all |
2 | set -e; avr-gcc -MM -mmcu=atmega644 -I. -g -Os -funsigned-char -funsigned |
3 | -bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa, |
4 | -adhlns=3c5x9.lst -std=gnu99 3c5x9.c \ |
5 | | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > 3c5x9.d; \ |
6 | [ -s 3c5x9.d ] || rm -f 3c5x9.d |
7 | 3c5x9.c:98:4: #error PORT for your MCU not defined yet. |
8 | |
9 | -------- begin -------- |
10 | avr-gcc (GCC) 3.4.6 |
11 | Copyright (C) 2006 Free Software Foundation, Inc. |
12 | This is free software; see the source for copying conditions. There is NO |
13 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
14 | |
15 | |
16 | Linking: main.elf |
17 | avr-gcc -mmcu=atmega644 -I. -g -Os -funsigned-char -funsigned-bitfields |
18 | -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o |
19 | -std=gnu99 main.o 3c5x9.o rtl8019.o analog.o arp.o checksum.o ftpd.o |
20 | httpd.o ip.o icmp.o interrupt4.o clock.o uart.o tcp.o telnet.o webpage.o |
21 | mmc.o fat16.o webcam/mca25.o ftpclient.o ntp.o time.o config.o auth.o |
22 | sendmail.o --output main.elf -Wl,-Map=main.map,--cref -lm |
23 | main.o: In function `InitNetworkCard': |
24 | F:\Temp\SourceCodeCPP_V1.40\source/main.c:78: undefined reference to `init_3c5x9' |
25 | main.o: In function `main': |
26 | F:\Temp\SourceCodeCPP_V1.40\source/main.c:378: undefined reference to `do_network_io' |
27 | arp.o: In function `ARP_Reply': |
28 | F:\Temp\SourceCodeCPP_V1.40\source/arp.c:66: undefined reference to `Write_Ethernet_Frame' |
29 | arp.o: In function `ARP_Request': |
30 | F:\Temp\SourceCodeCPP_V1.40\source/arp.c:129: undefined reference to `Write_Ethernet_Frame' |
31 | httpd.o: In function `httpd': |
32 | F:\Temp\SourceCodeCPP_V1.40\source/httpd.c:237: undefined reference to `Write_Ethernet_Frame' |
33 | F:\Temp\SourceCodeCPP_V1.40\source/httpd.c:421: undefined reference to `Write_Ethernet_Frame' |
34 | icmp.o: In function `ICMP_Reply': |
35 | F:\Temp\SourceCodeCPP_V1.40\source/icmp.c:49: undefined reference to `Write_Ethernet_Frame' |
36 | interrupt4.o: In function `get': |
37 | F:\Temp\SourceCodeCPP_V1.40\source/interrupt4.c:76: undefined reference to `Read_Ethernet_Frame' |
38 | tcp.o: In function `TCP_PORT_CLOSE': |
39 | F:\Temp\SourceCodeCPP_V1.40\source/tcp.c:253: undefined reference to `Write_Ethernet_Frame' |
40 | tcp.o: In function `TCP_OPEN': |
41 | F:\Temp\SourceCodeCPP_V1.40\source/tcp.c:384: undefined reference to `Write_Ethernet_Frame' |
42 | ftpclient.o: In function `ftpc': |
43 | F:\Temp\SourceCodeCPP_V1.40\source/ftpclient.c:130: undefined reference to `Write_Ethernet_Frame' |
44 | ftpclient.o: In function `ftp_store': |
45 | F:\Temp\SourceCodeCPP_V1.40\source/ftpclient.c:168: undefined reference to `Write_Ethernet_Frame' |
46 | ftpclient.o: In function `ftp_connect': |
47 | F:\Temp\SourceCodeCPP_V1.40\source/ftpclient.c:253: undefined reference to `Write_Ethernet_Frame' |
48 | ntp.o:F:\Temp\SourceCodeCPP_V1.40\source/ntp.c:148: more undefined references to `Write_Ethernet_Frame' follow |
49 | make.exe: *** [main.elf] Error 1 |
Hat vielleicht jemand einen Tipp für mich? MfG Martin
Hurra, mein Webserver läuft! Er läuft: mit Atmega644 / 14,7456 MHz; 3COM-Netzwerkkarte (3C509B); 16 MB SD-Karte und Software Version 1.40. Meine Schritte und Erfahrungen bis dahin habe ich mal zusammen- geschrieben und jetzt hier ins Forum gestellt in der Hoffnung, dass es jemandem nutzt, der wieder so einen Server aufbauen möchte: Inbetriebnahme ISA-Ctrl mit 3COM Netzwerkkarte: [ Compiler: avr-gcc (GCC) 4.1.2 (WinAVR 20070525) ] [ Hardware: ISA-Ctrl Board mit ATmega644 / 14,7456 MHz ] Compiling Probleme mit Original-Version 1.40IB (eingestellt für NIC RTL8019) -> viele 'mmc.h: warning: "..." redefined' (mit "..." = SPCR SPE MSTR SPSR SPDR SPIF SPRO / SPR1 / SPI2X) => die entsprechenden #define aus mmc.h löschen; sie sind jetzt in iomxx4.h definiert (siehe auch Beitrag von Uwe Nagel vom 13.06.2007 hier weiter oben; danke für die Infos) ==> keine errors mehr, nur noch warnings -> main.hex wird erzeugt 3COM-Netzwerkkarte im Code (in main.h) aktivieren / RTL8019 deaktivieren:
1 | // --- Select Networkcard -------
|
2 | #define USE_RTL8019 0
|
3 | #define USE_3C5x9 1
|
4 | //-------------------------------
|
Compiling Probleme: -> 3c5x9.c: error: #error PORT for your MCU not defined yet. !> Problem: PORT Definitionen in 3c5x9.c sind für ATmega32, nicht für ATmega644 angegeben => da die verwendeten Ports an den gleichen Anschlüssen liegen, gelten die Definitionen auch für ATmega644. D.h. in 3c5x9.c
1 | #if defined (__AVR_ATmega32__)
|
in
1 | #if defined (__AVR_ATmega32__) || defined (__AVR_ATmega644__)
|
ändern ==> nur noch warnings -> main.hex wird erzeugt 3COM-Netzwerkkarte konfigurieren: mit 3c5x9cfg.exe die Karte wie folgt einstellen: @I/O base address: 310H @Interrupt request level: 3 @Boot PROM size: disabled @Transceiver type: on-board TP @Plug and Play Capability: disabled @Full Duplex: disabled Zusammenbau & Test: - konfigurierte 3COM-Karte in ISA-Ctrl Board (mit geänderter Adressleitung) stecken - Server mit dem Rechner verbinden (CrossOver-Kabel oder Hub/Switch!) - Server mit Spannung versorgen - PING aus DOS-Box (Rechner IP=192.168.1.1/Subnetzmaske=255.255.255.0): "ping 192.168.1.201" (ist definiert in main.c -> unsigned char MYIP[] = { 192,168,1,201 };) ==> Antwort vom Server kommt :-) - im Browser "192.168.1.201" ==> laut Debug-Info auf der seriellen Schnittstelle wird index.htm aufgerufen, kommt aber nicht im Browser an :-( - Server aus - SD-Karte verbinden (darauf Dateien aus "files_sd_karte" direkt im Stammverzeichnis) - Server mit Spannung versorgen - PING aus DOS-Box (Rechner mit geänderter (!) IP=192.168.0.1/Subnetz- maske=255.255.255.0): "ping 192.168.0.101" (ist definiert in server.cfg auf SD-Karte -> IP=192.168.000.101) ==> Antwort vom Server kommt :-) - im Browser "192.168.0.101" ==> Startseite "AVR-MEGA-Webserver" öffnet sich :-) Einschränkungen der HTML-Seiten: - keine Verzeichnisstruktur auf der Karte -> alles im Hauptverzeichnis - Dateinamen nur 8+3 Zeichen -> keine "langen" Dateinamen; kein .html (statt dessen .htm) Gruss Thomas
Oi oi ich habe nur eine ETH-Steckdose hier. Dort ist mein PC dran. Ich würd aber gene noch einen unabhängigen kleinen ATmega Webserver ans Netz hängen. Wie kriegt man das hin? Geht das überhaupt bei mir? Gruß
Kann mir einer die Fuse Bits sagen. Ich hatte sie mir zwar mal rausgesucht aber ich bin mir da nicht mehr sicher. Danke Ryven
Manchmal frage ich mich, was die Leute mit so einem Webserver wollen, wenn sie nicht mal Grundkenntnisse in sachen Netzwerk haben. Die nächste Frage lautet bestimmt, wie kann ich meine Mp3 bzw. Mp4 Sammlung damit sharen. Schuhster bleib bei deinen Leisten. Was die Fuses angeht, http://www.mikrocontroller.com/de/download.php Fuses extern.
Hallo! Ich habe ein Problem und werd's ausführlich erklären, hoffentlich ist dieser Thread nicht schon zu alt: Ich habe den Server mit einem Atmega32 hiernach http://www.mikrocontroller.com/de/avr_webserver.php aufgebaut. Auf den µC habe ich die „fertigen Hexfiles V.1.38“ aus dem Downloadbereich gebrannt(hab alle mal ausprobiert): http://www.mikrocontroller.com/de/download.php#AVR_WEB Die Verdrahtung meiner Platine scheint ok zu sein, habe es mehrmals überprüft, auch eine SD-Karte wird nach zwei, drei Fehlversuchen angeblich erkannt. Per AVRterm erhalte ich die Meldung(UART funktioniert also auch): Init Network Card ... Init Ready! Init: ERROR(98) My Mac ... My IP ... http://img227.imageshack.us/img227/8122/error98in4.jpg Die Netzwerkkarte habe ich gejumpert: Mem Disable 300H IRQ 2/9 Auch im Gerätemanager habe ich diese Karte auf diese Werte eingestellt(das sollte zwar durch die Jumper egal sein, aber ich hab’s probiert, hätte ja der Fehler sein können). Allerdings weiß ich nicht recht, wie ich die ersten drei Brücken jumpern soll: JP1: open: No PNP, close: PNP Mode JP2: close: Jumperless JP3: close: Jumper Meiner Meinung nach müsste das auf open, open, close gestellt werden Wenn ich JP3 öffne, kommt die ERROR-Nummer 255, ist JP3 geschlossen kommt, wie gesagt ERROR 98. Die anderen beiden Jumper scheinen keine Auswirkung zu haben. Eine zweite Netzwerkkarte, die ich genau so gejumpert habe, aber im Gerätemanager nur auf IRQ 2 einstellen konnte (IRQ 9 wurde nicht aufgeführt), bringt immer ERROR 98, egal wie ich die ersten drei Brücken jumper. Wenn ich an die fertige Schaltung Spannung anlege, leuchtet die gelbe Power-LED der ISA-Karte und die grüne LED geht kurz an, kurz wieder aus und bleibt dann an. Die rote LED auf der Atmega-Platine leuchtet dauerhaft(beim SD-Hex und fehlernder SD-Karte blinkt sie). Da verhalten sich beide ISA-Karten also gleich. Was ich vielleicht noch sagen sollte: Die Fusebits habe ich so gesetzt, wie sie auf dem Bild im Downloadbereich zu sehen sind: http://img233.imageshack.us/img233/6342/fusbeitsya0.jpg Die Anschlüsse A5, A6, A7 sind bei mir nicht verbunden, ich habe keine Ahnung, womit die verbunden werden sollen, aber auf dem Foto sind die ja auch ohne Anschluss. Ich habe nirgends eine Fehlerliste finden können, drum komm ich einfach nicht weiter! Ich habe in irgendeinem Beitrag hier im Forum schon mal den Fehler 255 gefunden, aber da hat niemand geholfen, zu Fehler 98 finde ich bezüglich des Webservers nichts passendes im Netz. Ich muss übrigens zugeben, dass ich mit Microcontrollern noch nicht viel gemacht habe, aber so schwierig ist die Sache ja eigentlich nicht, die Schaltung, die man wirklich braucht, beschränkt sich ja auf recht wenige Teile. Wär echt toll, wenn mir jemand helfen könnte. Meiner Meinung nach, liegt der Fehler an der ISA-Karte, vor allem deswegen, weil die zwei Karten verschiedene Fehler bringen. Es sind beide ISA-Karten, mit 'nem Chip in der Mitte, wo RTL8019AS drauf steht. Beide sehen sehr ähnlich aus: http://img99.imageshack.us/img99/9305/p1090212customvp2.jpg
Mit rset8019.exe von Realtek solltest du die Karten eigentlich konfiguriert bekommen.
Hallo Volker, danke für die rasche Antwort. Ich hab die exe runtergeladen, aber wenn ich eine Karte einstecke, boote und dann unter XP das Programm starte, kommt zunächst die Meldung, dass er com4 und com3 nicht findet. Dann kommt die Meldung "There is no active LAN board found on your system" http://img299.imageshack.us/img299/5135/thereisnoactivelanboardqi6.jpg Ich hab's ausprobiert mit beiden Karten, hab auch beim Gerätemanager wieder auf automatische Resourcenzuweisung gestellt und hab's mit PNP-Jumper offen und geschlossen probiert. Hast du noch einen Tipp?
Tja, nun: Mein Mitwohni hat noch einen Rechner mit ISA-Slot, auf dem ich bisher auch versucht habe, die Karten einzustellen. Nachdem ich mein Diskettenlaufwerk bei ihm eingebaut habe, konnte es die Disketten nicht formatieren. Also hab ich 'ne neue Packung Disketten gekauft. Davon hab ich eine als MS-Dos Startdiskette formatiert und RSET8019.exe draufgemacht. Wenn ich nun von der Diskette starte, kann ich aber IRQ nur auf 5 und 15 stellen, alle anderen werden als belegt angezeigt. Habe dann nochmal Windows(= Win XP) gestartet und gesucht, welche Komponente IRQ2 nutzt. Das war "Microsoft ACPI Compliant System". Das konnte ich nicht deaktivieren, also habe ich es deinstalliert. Das hat aber auch nix gebracht und nach einem Neustart hat er erstmal ewig alle Treiber neu installiert. Des weiteren habe ich mal einen alten Rechner im Wohnheim aufgetrieben, sogar mit 5 1/4" Diskettenlaufwerk. Dumm ist nur, dass die Adapter von DIN-ISO zu PS2 bei mir zu Hause sind und das ist weit weg. Also bin ich grad zum Computerladen durch die halbe Stadt gefahren und hab einen Adapter gekauft, um meine USB-Tastatur anzuschließen. Wenn ich nun von Diskette starte, zeigt er als EINZIGEN belegten IRQ 2/9 an. Also wieder Windows gestartet (= Windows 98) und den Gerätemanager aufgerufen. Dann alle Geräte durchgeguckt(geht nur mit Tastatur echt super...meine serielle Maus ist scheinbar kaputt). Das Gerät, dass IRQ2 nutzt, heißt "Programmierbarer Interrupt Controller". Dessen Einstellungen kann ich manuell nicht ändern(ich kann zwar "automatische Einstellungen" deaktivieren, aber immer, wenn ich etwas ändern will, steht da "Diese Ressourceneinstellung kann nicht geändert werden"). So, ich habe also zwei Rechner mit ISA-Slot(s), bei beiden ist IRQ 2/9 bereits vergeben. Was kann ich tun?
Wenn du das Board selber verdrahtet hast, dann kannst du dir denn IRQ doch aussuchen. Nimm halt z.B. IRQ5 (Anschluss B23). Ansonsten gibt es auch Software welche den IRQ gar nicht benutzen.
Hm, das versteh ich nicht ganz, es steht doch da, dass man IRQ9 nehmen soll. Wenn ich jetzt ITQ5 einstelle, müsste ich das doch zumindest in der Software ändern, oder? Also neu kompilieren und nicht eins dieser fertigen Hexfiles nehmen. Die hängen ja alle am selben Strang Int0.
Nee, du mußt nix neu compilieren. Du lötest einfach anstatt IRQ9? z.B. den IRQ5 an den INT0 des ATMegas. Das ist der Software egal welcher IRQ der Netzwerkkarte den Interrupt auslöst.
Na aber laut Plan sind die doch alle mit INT0 verbunden?!
Moment, Moment, natürlich hängen die alle dran, aber nur einer gibt die Interrupts aus. Die hängen nur alle dran, weil zum Beispiel im PC mehrere Karten drin sind und dann mehrere Pins für Interrupts bentötigt werden. Das hab ich verstanden. Also können weiter alle dran bleiben. Aber bei IRQ5 ist der Fehler immer noch derselbe wie gestern um die Zeit...
Tatsächlich :-) Dann sollte es mit irgendeinem IRQ deiner Wahl funktionieren. Wahrscheinlich wurde das auch deswegen so realisiert.
Kannst du mir vielleicht noch sagen, wie ich die ersten drei nun jumpern muss, schließlich hat sich immer noch nix getan. Im Moment hab ich die ersten drei Brücken so, wie es mir REST8019 befohlen hat: No PnP, Jumperless, Pin 3 auch offen
Was mir grad noch aufgefallen ist: Reset von ISA, also B1 liegt bei mir direkt an GND. Im Plan ist Reset vom Atmega32, also Pin 9 noch dreimal mit Reset bezeichnet und führt über einen Pullup zu 5V. Ist das überhaupt richtig, dass mein RESET zum GND geht, oder muss das direkt an Pin9?
Also wenn du Jumperless wählst, dann mußt du alle Einstellungen mit diesem rset8019 machen. Ansonsten (Jumpermode) sollte sich alles mit den Jumpern setzen lassen. Wichtig ist: PnP aus! (hast du glaube ich auch gemacht) I/O Adresse und der IRQ, welcher aber eigentlich egal sein sollte. Schalte mal Jumperless ein und versuche nochmal das mit rset8019 einzustellen. Abspeichern nicht vergessen ;-)
Stimmt, na so langsam kann ich schon nicht mehr geradeaus gucken. Also B1 ist an GND und B2 hängt an Pin 1 vom Atmega. Ojeoje...
So sind sie eingestellt: http://img142.imageshack.us/img142/9610/p1090225largevf6.jpg http://img229.imageshack.us/img229/2622/p1090226largerp0.jpg Ich hab der Vielfalt wegen zwei verschiedene IRQs genommen. Einmal ist BootRom aktiviert, bei der anderen nicht, AutoDetect der Verbindung ist eingestellt, Fullduplex ist disabled(weiß nicht, ob das wichtig ist)...
Bootrom würde ich deaktivieren, ansonsten sieht es IMHO gut aus. Ich weiß jetzt auch nicht was der "Fehler 98" bedeuten könnte. Ich kenne weder die Software noch die Hardware von Holger. Ich glaube aber mich daran erinnern zu können, daß Joachim Börke eine alternative Software basierend auf uIP für dieses Board von Holger zur Verfügung gestellt hat. Bin mir aber jetzt nicht 100%ig sicher.
Hallo Volker, würdest du dir bitte folgendes Bild ansehen: http://img511.imageshack.us/img511/7449/pingfv4.jpg Ich hab die Software von Joachim Börke gebrannt und gestartet. AVRterm zeigt mir absolut gar nichts an, ich nehme mal an, das ist so vorgesehen, damit die UART für was anderes benutzt werden kann. Eigentlich sieht das doch ganz gut aus, oder? Stutzig macht mich aber, dass irgendwo steht, dass die Schaltung für einen 14,75..MHz-Quarz vorgesehen ist, aber momentan steckt noch der 16MHz drin. Wieso sollte das also funktionieren...?
Nee, das sieht irgendwie nicht so gut aus... Wenn du mit 16MHz arbeitest, dann stimmt da auf jeden Fall das Timing nicht mehr. Kann sein, daß das Timing für die Netzwerkkarte noch okay ist, aber für die USART auf keinen Fall mehr. Du solltest auch mal folgendes überprüfen: Geht die Link-LED an der Netzwerkkarte an? Befinden sich der PC und der AVR-Server im gleichen Subnet?
gleiches Subnet? Welches Subent hat denn der Mega? Das hab ich bisher völlig außer Acht gelassen... Zu den LEDs: wie gesagt, bei Anlegen der Spannung leuchtet die PowerLED und die grüne Activity geht kurz an, kurz wieder aus und bleibt dann an.
Das siehst du an der IP-Adresse. Wenn du dich z.B. in einem Klasse-C Netz befindest, dann müssen die ersten 3 Zahlenwerte beider IP-Adressen (also die vom PC und die des AVR-Webservers) übereinstimmen - sonst kann es nicht gehen. Das Verhalten der Link/Activity-LED scheint ja okay zu sein.
Und wenn ich mir das letzte Bild von dir genauer anschaue, dann sind beide wahrscheinlich nicht_ im _selben Subnet.
Achso, ich dachte, du meinst die Subnetmask... Also, die IP-Bereiche stimmen überein, mein Rechner hat die IP 192.168.1.169, deswegen hab ich auch die hex mit 192.168.1.66 genommen. Wenn ich die Software von Joachim nehme, stimmt es nicht überein, das kann sein, das war auch mehr ein halbherziger Versuch, weil da schon die e2p nicht funktionierte, ohne die hex in das andere Verzeichnis zu kopieren... Also wenn ich die Software von Holger nehme, stimmen die ersten drei Blöcke überein und beim pingen kommt "Zeitüberschreitung".
Dann stimmt wahrscheinlich irgendwas mit der Kommunikation zwischen AVR und der Netzwerkkarte nicht. Nochmal genau alle Verbindungen überprüfen - sonst wüßte ich im mom auch nix anderes. Viel Spass noch :-)
Ok, danke dir für deine Geduld. Ich versorg mich jetzt erstmal mit Nahrungsmitteln, dann kommt meine Freundin, da wird wieder nix mehr, werd wohl morgen weitermachen müssen...
Volker wrote:
> Wenn du dich z.B. in einem Klasse-C Netz befindest, [...]
OT: Classful networking/classful adressing ist (zum Glück) schon lange
(ca. 15 Jahre) tot ;)
Gruß
Dominique Görsch
Ich hab mich nochmal auf die Fehlersuche begeben und die Verbindungen auf der Platine kontrolliert, ich konnte nix finden, keine unbeabsichtigten Verbindungen und keine fehlenden Verbindungen. Ein paar Fragen hätte ich aber, deren Antwort mir bisher klar schien: S1 ist praktisch mit nichts verbunden, also alle Pins vom Atmega, die S1 als Ziel haben, sind frei, so zB Pin5? Außerdem sind A5, A6 & A7 nicht verbunden(wozu sollen die gut sein? S1 ist ein Stecker für freie Pins, mit denen man was anstellen kann, aber A?). Pin 33, 34 & 35 vom Atmega sind also nicht belegt. Es geht, wie gestern schon, um diesen Plan: http://mikrocontroller.com/files/ISA-Ctrl_Schaltplan.pdf Würde mich freuen, wenn mir jemand meine Fragen beantworten kann.
Hey Volker... http://img144.imageshack.us/img144/976/dergehtuy2.jpg Data 0 bis Data 9 waren falsch rum...und ich hab ewig gesucht. Ich dank dir, tut mir leid, dass du wegen solchem Unsinn Zeit verschwendet hast. Na wenigstens hat's was gebracht, schließlich hab ich jetzt 'nen Rechner, der die Karten umstellen kann. Also vielen Dank!
Ein Problem hätt ich noch: Hexfile ohne SD-Karte: Wenn ich Spannung anlege, wird die Karte initialisiert, ich kann sie anpingen und im Browser die Seite öffnen. Hexfile mit SD-Karte: Wenn ich Spannung anlege, wird die Karte initialisiert, ich kann sie anpingen, aber wenn ich die Seite im Browser öffne, tut sich nix und hinterher kann ich sie auch nicht mehr anpingen... Hat jemand eine Ahnung?
Dominique Görsch wrote: > Volker wrote: >> Wenn du dich z.B. in einem Klasse-C Netz befindest, [...] > > OT: Classful networking/classful adressing ist (zum Glück) schon lange > (ca. 15 Jahre) tot ;) > > Gruß > Dominique Görsch Hi Dominique Deine Aussage ist zwar korrekt, wird aber nur in großen Rechenzentren/Firmen eingesetzt. Es gibt leider noch sehr viel Hardware, welche mit CIDR (http://de.wikipedia.org/wiki/CIDR) nichts anfangen können. z.B. sind viele SOHO Router nicht in der Lage CIDR zu nutzen. Ergo ist es noch lange nicht tot. Mit freundlichen Grüßen Stefan
Stefan M. wrote: > Dominique Görsch wrote: >> OT: Classful networking/classful adressing ist (zum Glück) schon lange >> (ca. 15 Jahre) tot ;) > > Es gibt leider noch sehr viel Hardware, welche mit CIDR > (http://de.wikipedia.org/wiki/CIDR) nichts anfangen können. > z.B. sind viele SOHO Router nicht in der Lage CIDR zu nutzen. Das stimmt (leider), auch ich nutze meistens noch die alten "Klassen" in den typischen Subnetzgrößen (zu Hause z.b. mehrere /24 aus 192.168.x, ergo 255.255.255.0), aber man sollte trotzdem nichtmehr von einem "Klasse-C Netz" sprechen. Gruß Dominique Görsch
Habt ihr vielleicht 'nen Tipp, was mein Problem betrifft?
Ich wollte nochmal nachfragen, ob denn irgendjemand einen Tipp hat? Ich hab auch, nach einem Hinweis weiter oben, eine der Dioden durch einen Widerstand und den Kondensator durch eine 3,3V-Z-Diode ersetzt, das hat auch nix gebracht. Was könnte der Fehler sein, kannich irgendwelche Spannumngen nachmessen(außer die an Pin 3, 4 und 6)?
Nur eine Vermutung: Vielleicht versucht die Software jetzt Dateien von der SD-Karte zu lesen welche nicht vorhanden sind? Das würde bedeuten, daß jetzt index.html (und evt. noch mehr) auf der SD-Karte sein müssen.
Also... Ich war am Wochenende nicht da und hab grad in aller Ruhe alles nochmal ausprobiert: Wenn ich MMC-Karte 1 einstecke, wird die Karte erfolgreich initialisiert http://img504.imageshack.us/img504/3871/mmc1qj7.jpg Ich kann die Karte anpingen und die eingespeicherte Seite (lilafarbene Seite, links und rechts ein Foto) aufrufen. Wenn ich MMC-Karte 2 einstecke, kommt nur einmal die Meldung, dass keine Karte gefunden wird: http://img370.imageshack.us/img370/2629/mmc2ng1.jpg Das Schöne daran ist, dass der Inhalt beider Karten völlig identisch ist(von der einen auf die andere kopiert). Allerdings sind sie von unterschiedlichen Herstellern mit untereschiedlichen Kapazitäten(128 bzw. 256MB) Wenn ich die Schaltung auf die Z-Diode umschalte(hab nen Umschalter dran gemacht, nach diesem Beitrag: Beitrag "Re: Einfacher und billiger Webserver mit AtMega32"), kommt mehrmals die Meldung, dass keine Karte gefunden wird: http://img221.imageshack.us/img221/2951/wennaufzdiodeumgeschaltgx6.jpg Tja...hat denn noch irgendjemand einen Vorschlag? Nachtrag: Ich habe die Files auf der SD-Karte dem Ordner "files_sd_karte" entnommen aus dem Archiv "SourceCodeCPP_V.135", folgende Dateien sind auf der Karte: ASCII.pdf index.htm ulrich.jpg UntitledFrame-3.htm
Wieso wird eigentlich diese interne Seite ständig neu geladen, wozu ist das gut?
mal ne frage: wie wird der server mit strom versorgt? mfg
Moin, Da ich auch auf den Server gekommen bin und nun einen ATmega644 habe, wollte ich mich daran versuchen diesen schnieken Server aufzubauen. Da ich noch wenig Ahnung von den lieben AVR-Bausteinchen habe wollte ich wissen, ob man hier noch Hilfe zu diesem Thema bekommt und ob ich einen Schaltplan bekommen könnte, da ich eine 3Com Karte verwenden wollte und daher eine andere Platine verwenden wollen würde. Gruß, Amadeus
Hallöchen, ich möchte meinen Elektorbausatz AVR-Webserver aus dem Dezemberheft 2007 verkaufen. Ich liefere eine Netwerkkarte mit der Server ist getestet und läuft.
I was looking for this for a long time now. Need input on this amzon is giving 300 off on it [IMG]http://www.imagefrost.com/img/ih/iG.jpg[/IMG] Is it worth the price...? and has anyone used sony bravia can give any input. Thanks
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.