Forum: Projekte & Code ENC28J60 (Mikro-)Web-Server die Nächste


von Simon K. (simon) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallihallo,

Webserver auf Basis des ENC28J60 gibt's ja genug. Trotzdem hier ein 
leicht verschiedener Ansatz. (Das ist keine Konkurrenz, Ulrich Radig! 
;))

Verwendet wird der uip Stack von Adam Dunkels zu finden hier:
http://www.sics.se/~adam/uip/index.php/Main_Page

Auf einem von mir gelayoutetem Eagle-Board.

Der Webserver ist im Moment in der Lage 14 normale Ein und Ausgänge über 
ein Webinterface zu steuern. (Ist nichts neues - nur eine 
Demonstration). Analogeingänge, Timer-Ausgänge (OC-Pins) und die 
serielle Schnittstelle sind auch unter diesen GPIOs.
Der Code und das Layout sollen eine gute Basis für eigene Entwicklungen 
dienen.
Ich habe auch einen "Application Hub" eingebaut, da es standardmäßig nur 
möglich war eine Anwendung auf den uip-Stack zu legen. Jetzt lassen sich 
aber anhand der Lokalports die Anwendungen unterscheiden und 
verschiedene Anwendungen aufrufen.
Jede Anwendung hat dabei ihre eigene Socket-Struktur. Alle 
Socket-Strukturen werden am Ende gemeinsam im Speicher übereinander 
gelegt und dem uip-Stack übergeben.

Das Eagle-Layout, dass ich erstellt habe ist mit 38x31mm² auf äußerste 
Kompaktheit ausgelegt worden und beinhaltet dementsprechend viele 
SMD-Bauteile.

Die verwendeten Bauteile sind komplett bei csd-electronics erhältlich 
und kosten insgesamt etwa 17€ (ohne die Platine natürlich).
zwei Platinen habe ich noch über und kann sie für 5€ Selbstkosten 
verkaufen, falls da jemand Interesse daran hat.

Unter http://klinkerstein.m-faq.de/index.php?content=MikroWebServer sind 
alle Dateien aktuell zu beziehen.

Angehängt noch ein Bild der Platine. Das Archiv habe ich nicht versucht 
anzuhängen, da es 1MB misst.

von Simon K. (simon) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hier noch ein Screenshot des Webinterfaces.

Alternativ könnt ihr es auch bei http://klinkerstein.dyndns.org:8080 
probieren, wenn er an ist ;)

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Ich hätte Interesse an einer Platine ;)

von Simon K. (simon) Benutzerseite


Lesenswert?

Hauke Radtki wrote:
> Ich hätte Interesse an einer Platine ;)

Dann hab ich nur noch eine. Schreib mir am besten eine persönliche 
Email.

Achja: Auf der Platine ist ein kleiner Fehler.
http://klinkerstein.m-faq.de/index.php?content=MikroWebServer&view=Bilder&pic=2.jpg
unten rechts kommt der Pin von der 10uH Festinduktivität unter dem 
Spannungsregler hervor. Hier muss man also ein bisschen friemeln (nen 
Millimeter Platz lassen unter dem Spannungsregler).

Ansonsten:
Die Platine ist nicht gerade einfach zu löten. Also nix für Anfänger :D

von Sebastian B. (sfreak) Benutzerseite


Lesenswert?

Hi,
ein sehr schoen kleines Design!

Die Platine sieht ja recht selbstgebaut aus. Wie machst du denn die 
kleinen Durchkontaktierungen?

Sebastian

von Lupin (Gast)


Lesenswert?

Erinnert mich stark an den avrETH1:
http://avr.auctionant.de/avrETH1/

Nur, dass du keinen extra Speicher vorgesehen hast.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Simon K.

Ich würde die zweite Platine nehmen, Nachricht ist raus an dich.

Gruß
Thomas H.

von blub (Gast)


Lesenswert?

evtl sollte man mal nen satz platinen bei haka bestellen ?

ich denke da bekommt man 16 stck zu 50 euro

von blub (Gast)


Lesenswert?

wieviel platz ist in dem flash noch frei ?

von Simon K. (simon) Benutzerseite


Lesenswert?

Mittlerweile ist keine der beiden Platinen mehr da. Ich habe aber sonst 
keine mehr auf Lager.

Bei genügend Interesse könnte ich aber weitere Platinen anfertigen 
lassen.

@blub:
Mit dem aktuellen Programm ist der Flash zu etwa 88% gefüllt (~14 kiB ).

Keine Ahnung, was "haka" ist, aber diese Platine stammt von bilex 
(http://www.bilex-lp.com) und ich habe auch nur insgesamt drei von den 
kleinen Platinen überhaupt gekauft.
Wenn überhaupt werde ich dort erstmal ein Angebot einholen, falls 
Interesse besteht.

@Sebastian: Wie schon gesagt ist die Platine nicht selber geätzt. Nur 
selber gelötet und selber gelayoutet ;)
Die Vias sind mit 0.5mm Innendurchmesser gelayoutet.

@Lupin:
Meine Platine sollte noch kleiner sein. Ich habe ja keinen externen 
Übertrager (Magjack-Buchse) und auch keine zwei Quarze eingebaut.

von André K. (freakazoid)


Lesenswert?

> Bei genügend Interesse könnte ich aber weitere Platinen anfertigen
> lassen.
Interesse an 2 Platinen anmeld

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

Hallo alle zusammen,

bei Interesse lasse ich die Platinen herstellen und biete auch gleich 
einen kompletten Bausatz an. Extra für meine "Überbestände" und Projekte 
hier aus dem Forum und von meiner Hobby-Seite habe ich jetzt einen 
kleinen Shop eingerichtet http://www.it-wns.de .

Ich habe schon Kontakt zu Simon aufgenommen damit das alles korrekt 
ablaufen kann, also nur für den privaten Bereich ohne kommerzielle 
Nutzung.

Wenn also Interesse an einem Bausatz besteht einfach hier posten und 
dann erstelle ich den Artikel im Shop. Ich hoffe das ein für alle 
interessanter Preis rauskommt, je mehr die erste Charge haben möchten 
desto günstiger kann ich einkaufen.

Die Platinen wären aus Deutschland inkl. Lötstopplack und RoHS konform, 
aber ohne Bestückungsaufdruck.

Also wer Interesse hat einfach posten.

von André K. (freakazoid)


Lesenswert?

> Die Platinen wären aus Deutschland inkl. Lötstopplack und RoHS konform,
> aber ohne Bestückungsaufdruck.
Klingt nach einem anderen Preis ;-)))

Gibt es NUR den Komplettsatz, oder eventuell auch größere Teile (ENC, 
MagJack, Platine) einzeln?

Den meisten Kram dürften die Jünger schon daheim haben.

Frohes Löten,
Freakazoid

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@André

Ich werde alle Einzelteile auch gesondert im Shop anbieten, der 
Komplette Bausatz wird 29,- EUR zzgl. Versand kosten.

Heute lege ich noch alle Artikel an, geordert ist auch schon fast alles, 
die Platinen dauern aber leider ca. 20 Tage.

von Simon K. (simon) Benutzerseite


Lesenswert?

Wie abgesprochen werde ich nun keine Platinen mehr bestellen. Die 
Platinen sind dann über den Onlineshop von Thomas Heldt beziehbar.

von André K. (freakazoid)


Lesenswert?

Lass Dir ruhig Zeit. Hab zu Weihnachten ein AT91SAM7X256-Board bekommen 
und bis ich das am Laufen habe vergeht noch was ;-)

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Alle

Die Platine kann jetzt schon geordert werden:
http://www.it-wns.de/themes/kategorie/detail.php?artikelid=113&source=2

Alle Einzelteile sind auch bereits im Shop angelegt.

Der Bausatz wird sogar etwas günstiger ca. 25 Euro zzgl. Versand.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Alle

Der Bausatz kann jetzt auch schon geordert werden, Lieferzeit aktuell 
ca. 2-3 Wochen wegen der Platinen Lieferzeit.

http://www.it-wns.de/themes/kategorie/detail.php?artikelid=114&source=2

von Gerd G. (elektrikser)


Lesenswert?

Wie warm wird die Platine? Wie ich bei meinem Server (nach Uli) sehen 
konnte, wird der 3,3V Spannungsregler doch ordentlich warm.

Und hier ist er direkt ohne große Massefläche auf der Platine.

Gruß Gerd

von Simon K. (simon) Benutzerseite


Lesenswert?

Ich habe mit einer Eingangsspannung von 5V gearbeitet (Der 
Spannungsregler geht eh nur als absolute-maximum bis 20V). Die 
Elektronik braucht etwa 150mA Strom.

Bis 7V ist der Regler Hitzetechnisch fühlbar gut warm (nicht heiß).

Mehr habe ich bis jetzt noch nicht ausprobiert. Leider kann man an die 
große Kühlfahne keine Massefläche anschließen, weil dort das 
Ausgangssignal anliegt...

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Hallo Simon,

Meine Platine ist schon da, und sieht sehr gut aus, die größe gefällt 
mir ;)

Mein Problem: Ich habe versucht dir eine Nachricht zukommen zu lassen um 
dich nach deinen Bankdaten zu fragen, leider habe ich keine Antwort 
erhalten (Spam habe ich schon durchsucht).

Könntest du dich bitte noch mal bei mir melden, ich möchte die Platine 
auch gerne Bezahlen !

Viele Grüße,
Hauke Radtki

von Simon K. (simon) Benutzerseite


Lesenswert?

Komisch, habe dir aber ein E-Mail geschickt. Ist die im Forum angegebene 
Email-Adresse korrekt?

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Ja, meine E-Mail Adresse sollte korrekt sein (hab auch aus dem Forum 
schon einige Mails empfangen). Ich werd noch mal suchen.

von SIGINT (Gast)


Lesenswert?

Hi zusammen,
  ich hab mir jetzt den Webserver auch mal bestellt. Der Preis ist ja 
unschlagbar... ich hoffe nur, ich bekomme das Teil ans Laufen.


Gruß,
  SIGINT

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@SIGINT

Wenn nicht gibt es Hilfe ;)

von SIGINT (Gast)


Lesenswert?

P.S.: Bin gerade am Überlegen, ob ich den ATmega168 nicht gegen nen 
ATmega328P austausche... dann bleibt mehr Flash über. Eine Idee wäre es 
nämlich noch eine MMC-Karte an den Webserver zu hängen. Sieht da 
irgendjemand schon ein Problem, oder geht das ohne Weiters?

Gruß,
  SIGINT

von Simon K. (simon) Benutzerseite


Lesenswert?

Oh, es gibt ja tatsächlich eine größere Version vom ATMega168. Das muss 
aber eine sehr frische Version sein. Mein lokales Datasheet vom 
September 07 über Mega48/88/168 beinhaltet diese Version noch nicht.

Wo bekommt man besagten Mega328 denn?

Achja, ich würde mal nicht davon ausgehen, dass es Probleme bereitet. 
Der Code müsste lediglich nochmal neu kompiliert werden. (Mit einem 
Compiler, der Definitionen für den Mega328 hat ;))

PS: Man hätte sogar 2kiB RAM. Damit kann man die Maximum Transmission 
Unit auf 1514 Bytes stellen (Maximum mit Ethernetheader). Das würde das 
Gerät noch ein wenig schneller machen, wenn es mit einem Windows-Client 
kommuniziert.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

Also ich kenne noch keinen der den liefern kann :(

von holger (Gast)


Lesenswert?

>Wo bekommt man besagten Mega328 denn?

Nichts für ungut Leute:

Hätte man einen ATMega im 44 Pin TQFP Gehäuse genommen
gäbe es keine Probleme mit erweiterten Funktionen.

Einen Webserver minimal auszulegen rächt sich immer irgendwann.

Aber Respekt ! Das das mit einem ATMega168 auch geht ist
schon ganz nett. Man sollte nur nicht zu viel erwarten.

von Simon K. (simon) Benutzerseite


Lesenswert?

holger wrote:
>>Wo bekommt man besagten Mega328 denn?
>
> Nichts für ungut Leute:
>
> Hätte man einen ATMega im 44 Pin TQFP Gehäuse genommen
> gäbe es keine Probleme mit erweiterten Funktionen.

Aber ein Problem mit der Platinengröße ;) ;)

> Einen Webserver minimal auszulegen rächt sich immer irgendwann.

Achwas, an dem Code, den ich als Webserver-Applikation implementiert 
habe, lässt sich theoretisch noch ne Menge optimieren. Das meiste, was 
drauf geht ist die statische Webseite im Mega168.

> Aber Respekt ! Das das mit einem ATMega168 auch geht ist
> schon ganz nett. Man sollte nur nicht zu viel erwarten.

Hm? Wieso sollte das nicht gehen? Warum sollte es mit einem Mega16/32 
gehen, aber mit einem Mega8/48/88/168/328 nicht? Wegen dem RAM? ;) Das 
ist ja wohl kein Argument. Ansonsten sind sie ja quasi fast 
Feature-gleich.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

Hallo an alle die einen Bausatz oder eine Leerplatine geordert haben,

soeben erreicht mich die Nachricht das die Platinen am 25.01. an mich 
versendet werden, also sollte die Auslieferung ab dem 29.01. erfolgen
können. Der Versand dürfte schnell gehen da bereits alles gepackt ist 
und nur noch die Platinen dazu gepackt werden müssen ;)

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Am 23.01. kommt meine neue Webserver Platine an, bis dahin müsst ihr 
euch noch etwas gedulden. Photo wird dann hier Online gestellt! 
Schaltpläne, Layouts und Platinen werden dann wie immer auf meiner HP 
zur Verfügung gestellt.

Gruß
Uli

von Simon K. (simon) Benutzerseite


Lesenswert?

Falscher Thread oder Schleichwerbung für die Konkurrenz? ;)

von .... (Gast)


Lesenswert?

Wenn der Bausatz im Shop nicht bald ne WEEE-Nummer hat, könnte es Ärger 
geben!

von Simon K. (simon) Benutzerseite


Lesenswert?

Soweit ich weiß gilt das nur für Fertiggeräte und nicht für Bausätze.

Sprich: Bei Bausätzen muss der Hersteller (= Der, der es lötet) auf die 
fachgerechte Entsorgung achten.

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

So sehe ich das auch! Geräte und keine Bauteile oder Bausätze!

Hier die Richtlinie:
http://www.bmu.de/files/pdfs/allgemein/application/pdf/elektro_eurichtlinie_geraete.pdf

Gruß
Uli

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

Richtig wie Ulrich schon sagt einzelne Bauteile und Bausätze sind nicht 
betroffen :)

Wenn aber jemand den fertig gestellten Bausatz in "Verkehr"bringt , also 
weiter verkauft, gilt dies dann als Gerät!

Korrekt Ulrich?

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Soweit wie ich weiß können sogar teilbestückte Platinen (Module) 
verkauft werden, die alleine nicht funktionieren. Aber da lasse ich mich 
lieber von einer Fachperson beraten. Wie bei microkontroller.com bei dem 
Mikrokopter da werden auch teilbestückte Platinen angeboten.

Gruß
Ulrich

von Michi Müller (Gast)


Lesenswert?

@ Thomas Heldt,

ich als Käufer eines µ-Webservers wollte einmal nachfragen, ob die 
Platinen/Bausätze schon unterwegs sind ?

Meine Sreichholzschachtel wartet schon ... ;-)

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Michi Müller

Die erste Welle wurde ausgeliefert, die nächsten Bausätze und Platinen
gehen in der kommenden Woche raus.

Wenn du im Shop unter www.it-wns.de über das Kontaktformular mal deine
Auftragsnummer übersendest kann man sagen ob du bei der ersten Welle 
dabei
warst, oder jetzt bei der kommenden.

Weitere Infos gibt es auch im Support-Forum des Shop -> Link SUPPORT in 
der
Navi-Leiste oben.

von Michi Müller (Gast)


Lesenswert?

Hallo,

hat sich erledigt.
Ich war bei der 1. "Welle" dabei und heute kam das Briefchen an :-)

von Simon K. (simon) Benutzerseite


Lesenswert?

Freut mich, dass das hier für mich unproblematisch läuft. Danke nochmal 
an Thomas ;)

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Simon K.

Ja wir versuchen hier alles was geht, aber es gibt schon Lieferengpässe 
beim MagJack, geordert sind genug aber leider kommt der Lieferant nicht 
nach :(

Deine und meine Platine kommt auch erst mit der übernächsten Lieferung, 
ich
habe alle Besteller vorgezogen bevor ich dir eine schicke und selber den 
Server aufbaue.

von Gast (Gast)


Lesenswert?

Hallo,
Ich bin am Wochenende auch  dazu gekommen, meinde Platine aufzubauen.
Es hat auf sofort auch mit einem atmega328p funktioniert!
Es mussten nur einige defines geändert werden.

Vielen Dank für den schönen Bausatz.

von Michi Müller (Gast)


Lesenswert?

Ja, da warst Du sehr schlau mit dem 328.
Ich hab nicht drüber nachgedacht und hab direkt den 168er verbaut und 
bin jetzt am Schwitzen weil der Platz knapp wird.
Naja, wenn sich der erste Ansturm gelegt hat, werd ich mir vielleicht 
noch nen 2. bestellen. Den 168 da jetzt runterzukratzen, tu ich mir 
nicht an ...

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Gast

Wo hast du den 328p denn bekommen?

von Gast (Gast)


Lesenswert?

über die Firma ;)

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Kannst du mir auch einen besorgen? (ist ernst gemeint! )

von Simon K. (simon) Benutzerseite


Lesenswert?

Oh ja, an ATMega328 wäre ich auch sehr interessiert.

von Gast (Gast)


Lesenswert?

Na da hab ich ja was angerichtet....
Ich wollte eigentlich nur eine positive Erfolgsmeldung abgeben, und dann 
sowas.
Ich hab leider selber keine weiteren 328. Sorry!

von Simon K. (simon) Benutzerseite


Lesenswert?

Achso, ich freue mich natürlich, dass es läuft. Und vor allem, dass es 
beim ersten mal läuft, da der kleine Isolate und die relativ 
fein-pitchigen Bauteile ja eher für das Gegenteil sorgen.

PS: Bin mal gespannt wann es den Mega328 für den Normalsterblichen zu 
kaufen gibt ;)

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Simon

Sobald ich den 328 bekomme stelle ich die Bausätze um sofern du das o.k.
gibst das die Software läuft, aber die aktuelle Anfrage bzgl. 328 hat 
nur
ergeben das sie im 1Q/08 lieferbar sein sollen.

von Simon K. (simon) Benutzerseite


Lesenswert?

Natürlich muss ich dann erstmal die Funktion prüfen, wenn ich so einen 
ATMega328 in die Finger kriege :-)

von Michi Müller (Gast)


Lesenswert?

Ich dachte eigentlich das es den 328 schon längst zu kaufen gibt. Das 
erste Quartal, da sind wir ja schon in der Mitte...

Naja, schade.

@ Thomas :
Wenn Du den 328 auf Lager und die Bausätze umgestellt hast, dann sag 
doch bitte hier sofort bescheid ! ;-)

@ Simon :
>dass es beim ersten mal läuft, da der kleine Isolate und die relativ
>fein-pitchigen Bauteile

Bei mir lief es auch sofort und es gab auch keine Probleme beim Aufbau. 
Es wurde da ja wirklich alles aufs engste zusammengequetscht.
Hast Du gut gemacht ;-)

von Simon K. (simon) Benutzerseite


Lesenswert?

Michi Müller wrote:
> Bei mir lief es auch sofort und es gab auch keine Probleme beim Aufbau.
> Es wurde da ja wirklich alles aufs engste zusammengequetscht.
> Hast Du gut gemacht ;-)

Ohne Neukompilierung? Hui, nicht schlecht :-) Aber ich könnte mir 
vorstellen, dass der Stackpointer so an der falschen Stelle liegt. Und 
das ist nur das Mindeste, was mir gerade einfällt ;)

Und was das Zusammenquetschen angeht. Ich glaub wenn man sich anstrengt 
geht da noch mehr :-)

von Michi Müller (Gast)


Lesenswert?

>Ohne Neukompilierung?
Naja gut, das hab ich schon gemacht. Fürs erste testen hatte ich nur 
eben die IPs geändert.

>Ich glaub wenn man sich anstrengt geht da noch mehr

Ja, aber dann wird das Löten wohl ein Krampf. Und mann muß dann 
aufpassen wo man ihn hinlegt, damit man ihn auch wiederfindet ;-)

von Simon K. (simon) Benutzerseite


Lesenswert?

Michi Müller wrote:
>>Ohne Neukompilierung?
> Naja gut, das hab ich schon gemacht. Fürs erste testen hatte ich nur
> eben die IPs geändert.

Ah, Okay. Gut zu wissen :D

>>Ich glaub wenn man sich anstrengt geht da noch mehr
>
> Ja, aber dann wird das Löten wohl ein Krampf. Und mann muß dann
> aufpassen wo man ihn hinlegt, damit man ihn auch wiederfindet ;-)

... Ich dachte du meintest den Sourcecode ;) Bezogen auf die 
physikalische Größe fühle ich mich sogar noch mehr geschmeichelt :-) 
Danke! ;)

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

Hallo alle zusammen,

heute und morgen gehen die nächsten Bausätze raus, einer wird noch
nachgeliefert wenn die nächsten Platinen kommen dann sind alle 
Bestellungen
erst einmal erledigt.

Bei allen Lieferungen werden die MagJacks nachgeliefert da die leider
noch immer nicht gekommen sind :(

Zum ATMEGA328P habe ich heute vom Distributor die Aussage bekommen,
Zitat "Produziert wird der ATMEGA328P seit Januar, ausgeliefert werden
soll er ab April!"

Also wenn die nächsten Platinen hier eintreffen wird es sicher noch 
keine
geben daher lasse ich den Bausatz aktuell mit dem ATEMGA168 im Shop.

von Sigint 112 (sigint)


Lesenswert?

Hi zusammen,
  ich hab den Webserver jetzt auch aufgebaut und das Teil funktioniert 
echt prima. :-)
Jetzt kann es endlich losgehen mit dem basteln. Ne schaltbare 
Steckdosenleiste wäre doch was feines :)
Mir ist nur aufgefallen, daß der ENC relativ warm wird; ist das bei euch 
auch so? Ich werd das mal im Auge behalten.
Erstmal "Danke" an Simon für das schöne, kleine Board und noch 
erfolgreiches Basteln an alle.

Gruß,
  SIGINT

von Simon K. (simon) Benutzerseite


Lesenswert?

Ja, der ENC28J60 wird fühlbar warm. (Aber nicht heiß!). Mit den 
ursprünglichen 2k2 Ohm Widerstand an dem ENC28J60 wurde er sogar noch 
etwas wärmer als jetzt bei der v2 der Leiterplatte (da sind ja 120 Ohm + 
2k2 Ohm hintereinander geschaltet). Alles in allem sollte der Webserver 
auch etwa 150 mA verbrauchen.

http://klinkerstein.m-faq.de/index.php?content=MikroWebServer
hier steht mehr. Btw, ich werde die Frage auch nochmal in die FAQ 
packen.

von Jojo S. (Gast)


Lesenswert?

in dem Artikel über den ENC stehts auch das er warm bis heiss wird: 
http://www.mikrocontroller.net/articles/ENC28J60

von Sigint 112 (sigint)


Lesenswert?

Also sollte man den Webserver nicht in EX - Bereichen einsetzen ;-)
Kleiner Scherz am Rande.
Den Stromverbrauch hab ich noch nicht gemessen... aber der Server läuft 
ja, daher gehe ich davon aus, daß alles OK ist. Ich werde mich mal in 
die Software einarbeiten und dann etwas rumspielen. Wäre auch mal 
interesannt zu lesen, was die anderen Nutzer mit dem Server schon 
angefangen haben... vielleicht hat ja schon jemand ne MMC Karte am 
laufen ;)

Gruß,
  SIGINT

von Simon K. (simon) Benutzerseite


Lesenswert?

Sigint 112 wrote:
> Wäre auch mal
> interesannt zu lesen, was die anderen Nutzer mit dem Server schon
> angefangen haben... vielleicht hat ja schon jemand ne MMC Karte am
> laufen ;)
>
> Gruß,
>   SIGINT

Rein theoretisch geht das sogar. Man kann nämlich die SD Karte am 
Programmierstecker anschließen (Ein Chip-Select müsste man sich über den 
20Pol Verbinder holen. :D Allerdings wird man dafür sicher erst auf den 
Mega328 warten müssen.

von Werner B. (Gast)


Lesenswert?

> Man kann nämlich die SD Karte am Programmierstecker anschließen

Bei einem 10-poligen ISP Anschluss habe ich auf einem Board schon den 
überflüssigen Pin3 als CS verdrahtet. Ein kleines Zusatzplatinchen mit 
MMC/SD Sockel und Spannungsregler/Pegelanpassung (falls nötig) mit 
Flachbandkabel oder als Piggiback anschließen. Geht prima.
Bei den 6-poligen ATMEL-ISP bzw. Powalt-ISP hat man allerdings ein 
Problem. Da könnte man evtl. den RESET Anschluß per Jumper umschalten.

von Simon K. (simon) Benutzerseite


Lesenswert?

Ich verwende eigentlich nur 6 Pol ISP Adapter. Und wie gesagt, das CS 
lässt sich auch vom 20poligen Pfostenstecker holen ;)

von Uwe H. (mistert)


Lesenswert?

Hallo,

sehr interessantes Projekt. Ich würde das gerne für eine Schaltbare 
Steckdose verwenden. Also ein Gehäuse wir bei einer Funksteckdose nur 
mit dieser Platine drin. So kann die Steckdose über LAN geschaltet 
werden.
Dazu sind wohl ein paar Änderungen notwendig:

- (Schalt)netzteil zur Versorgung aus den (vorhandenen) 230V
- Ein 230V Relais um die Steckdose dann zu schalten
- idealerweise ein PHY mit 2 Port Hub, so kann man den Netzwerkdrucker 
schalten und braucht nur 1 LAN Dose in der nähe

Jemand interesse daran mitzuwirken?

von Stephan (Gast)


Lesenswert?

Hallo,

ist den der "Fehler" auf der aktuellen Platine noch vorhanden?

Grüße
 Stephan


>Achja: Auf der Platine ist ein kleiner Fehler.
>http://klinkerstein.m-faq.de/index.php?content=Mik...
>unten rechts kommt der Pin von der 10uH Festinduktivität unter dem
>Spannungsregler hervor. Hier muss man also ein bisschen friemeln (nen
>Millimeter Platz lassen unter dem Spannungsregler).

von Simon K. (simon) Benutzerseite


Lesenswert?

Natürlich nicht :-)

von Simon K. (simon) Benutzerseite


Lesenswert?

Uwe H. wrote:
> - Ein 230V Relais um die Steckdose dann zu schalten
Du kannst die Relais aber nicht direkt aus der Pfostenleiste versorgen, 
sonst könntest du 3V Relais nehmen (Gibts von Finder, bei Reichelt 
bspw.).
Also wird in jedem Falle eine kleine Treiberplatine notwendig mit NPN 
Transistoren, die das Relais von den 5V (deines Schaltnetzteiles) gegen 
Masse schalten.

> - idealerweise ein PHY mit 2 Port Hub, so kann man den Netzwerkdrucker
Dann kannst du aber keinen ENC28J60 mehr nehmen, da dort die PHY schon 
eingebaut ist.

> Jemand interesse daran mitzuwirken?
Wenn du ein neues Projekt machst, wäre es gut, das nicht hier zu 
erledigen :-)

Übrigens: Wenn du eine kleine Kombination gefunden hast von MAC/PHY mit 
2 Port Switch untendran, wäre ich auch interessiert.

von Sigint 112 (sigint)


Angehängte Dateien:

Lesenswert?

Hi zusammen,
  ich hab jetzt mal mein altes Etherrape-Board wieder rausgekramt (hatte 
das nie im Einsatz) und die Software von Simon so angepasst, daß sie 
darauf läuft. Die USART und der Bootloader sind besser zum testen... 
später kann man die Software dann wieder auf den Mikrowebserver 
portieren. Ich hab vor das Interface mit Bildern aufzupeppen und 
konigurierbare Texte im EEPROM abzulegen. Dann kann man immer sehen, was 
an welchem Portpin angeschlossen ist.
Ich meld mich, wenn ich weiter gekommen bin.

Gruß,
  SIGINT

P.S.: Der Hardwarezugriff auf die IO-Ports ist zum Testen deaktiviert! 
Die Ports ändern sich also erstmal nicht.

von Simon K. (simon) Benutzerseite


Lesenswert?

Interessante Sache.
Wird mal Zeit dass Atmel den Mega328 herausbringt, damit könnte man auch 
etwas mehr rumbasteln.

PS: Die serielle Schnittstelle ist herausgeführt und kann direkt auf 
einen MAX232 gegeben werden (trotz 3,3V Pegel). Ich habe bei mir die 
Versorgungsspannung der Platine auf 5V gesetzt und dann am 
Pfostenstecker diese 5V und RxD/TxD abgegriffen und ein MAX232 
angeschlossen. Geht problemlos.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

Hallo alle zusammen,

endlich habe auch ich mal die Zeit gefunden und mir den "Kleinen"
aufgebaut, 30 Minuten und klappt auf Anhieb ;)

Ich habe die aktuell von it-wns.de ausgelieferte Version MJ2 der
Platine genutzt und die RJ45 Buchse von ERNI.

Ein Hinweis noch an alle die gerne die grüne LED der Buchse für
die LINK-Anzeige nutzen möchten statt der gelben, in der Enc28J60.c
einfach folgende Zeile
1
Enc28j60WritePhy(PHY_PHLCON, (12<<PHY_PHLCON_LBCFG0)|(1<<PHY_PHLCON_LACFG0)|(1<<PHY_PHLCON_STRCH)|0x3000);

gegen diese Zeile tauschen
1
Enc28j60WritePhy(PHY_PHLCON, (1<<PHY_PHLCON_LBCFG0)|(12<<PHY_PHLCON_LACFG0)|(1<<PHY_PHLCON_STRCH)|0x3000);

schon sind die beiden LED getauscht.

Schönes Wochenende ;)

Gruß
Thomas

von Simon K. (simon) Benutzerseite


Lesenswert?

Hey Thomas,

Heißt das also, dass die veränderte Variante der Platine funktioniert 
(Für HALO, bzw. jetzt auch ERNI Connector?)

(MJ2 sagst du, das ist also die "neuere" Variante?)

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Simon K.

Ja die MJ2 ist die alternative Platine, und es klappt wunderbar ;)

Die ERNI sind auch ab Lager verfügbar.

Evtl. entwerfe ich noch eine Zusatzplatine mit Relais und/oder LED
die man per Flachbandkabel anstecken kann ;)

von Pier S. (bigpier)


Lesenswert?

Hallo ,
erstmal grosses Lob zu diesem tollen Projekt !

Ich hab mir grad das Projekt gedownloadet ums mir an zu schauen aber 
wenn ich uWebSrv.aps mit dem AvrStudio öffne dann gibt es folgende 
Fehlermeldung : One or  more project files could not be found . und wenn 
ich das Projekt kompilieren will kommt folgende Fehlermeldung make: *** 
No rule to make target `../Net/TcpApps/Gpio.c', needed by `Gpio.o'. 
Stop.


kann mir jemand sagen was ich falsch mache !!

Danke schon mal im Voraus

von Pier S. (bigpier)


Lesenswert?

Danke hat sich erledigt hab mich Dumm angestellt sorry

von Simon K. (simon) Benutzerseite


Lesenswert?

Hallo,

War ein kleiner Fehler in der AVR-Studio Projektdatei. (Arbeite selbst 
mit Eclipse (daher auch die .cproject Datei) und hab es deswegen nicht 
gemerkt).

Ist gefixt.

von Michael (Gast)


Lesenswert?

Hallo Simon,

ich hab jetzt selbst mal so einen kleinen webserver mit 168er und 
enc28j60 aufgebaut und hab auch schon mehrere varianten von TCP stacks 
ausprobiert. Deine variante gefällt mir recht gut und hat auch auf 
anhieb funktioniert, allerdings ist mir dann doch etwas aufgefallen:

ich habe den http port auf 80 geändert, danach meinte der browser er 
müsse jetzt eine datei speichern anstatt die seite aufzubauen.
Schuld daran ist ein korrupter http header. Aus irgendeinem, mir noch 
nicht bakannten grund werden zwei zeichen nach der uip_send methode im 
buffer überschrieben.
Das passiert auch beim port 8080, nur an anderer stelle im header, die 
dem browser anscheinend nichts ausmacht, deswegen ist es auch nicht 
gleich aufgefallen.

der rest vom http traffic scheint nicht betroffen zu sein.
Ich habe den code mit AVR studio kompiliert und eigentlich keine 
änderungen dran vorgenommen, arbeite nur mit einer höheren taktfrequenz 
am 168er (18,432 MHz) daher einige anpassungen diesbezüglich, sonst nix.

kann es da evtl ein problem mit dem stack geben? hat noch jemand so ein 
verhalten beobachtet?
wäre dankbar für rückmeldungen

lg
Michael

von Simon K. (simon) Benutzerseite


Lesenswert?

Hallo Michael,
Ich werde der Sache mal nachgehen, aber lass dir gesagt sein, dass 
18,432 MHz Taktfrequenz vermutlich zuviel für den 3,3V Mega168 sind (bis 
10MHz offiziell).
Hast du meine Platine verwendet oder einen Eigenbau? Falls ersteres: Wie 
hast du das Quarz angeschlossen?

von Simon K. (simon) Benutzerseite


Lesenswert?

Hier ich nochmal,

Ich habe leider nicht die Möglichkeit im Moment das ganze auf dem 
Original µWebserver auszuprobieren, aber mit dem gleichen HTTP-Daemon 
habe ich die Sache mal auf Port 80 geändert und auf eine ähnliche 
Platine übertragen und es klappt ohne Probleme.

Es wäre mal nett, wenn du einen Dump des kaputten HTTP Headers 
mitschicken könntest.
1
0000   00 16 e6 d3 36 a2 00 03 6f 55 1c c2 08 00 45 00  ....6...oU....E.
2
0010   00 81 00 03 00 00 40 06 f8 c4 c0 a8 00 5d c0 a8  ......@......]..
3
0020   00 02 00 50 0f 85 00 00 00 e5 3f a4 1c 73 50 18  ...P......?..sP.
4
0030   05 b4 6c e5 00 00 48 54 54 50 2f 31 2e 31 20 32  ..l...HTTP/1.1 2
5
0040   30 30 20 4f 4b 0d 0a 43 6f 6e 74 65 6e 74 2d 4c  00 OK..Content-L
6
0050   65 6e 67 74 68 3a 30 30 30 30 30 30 35 37 31 32  ength:0000005712
7
0060   0d 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 69  ..Content-Type:i
8
0070   6d 61 67 65 2f 6a 70 65 67 0d 0a 43 6f 6e 6e 65  mage/jpeg..Conne
9
0080   63 74 69 6f 6e 3a 63 6c 6f 73 65 0d 0a 0d 0a     ction:close....

Für ein JPEG Bild siehts bei mir so aus.

von Michael (Gast)


Lesenswert?

Hallo Simon,

meine platine ist ein experimentierboard von www.embedit.de, wo ich den 
enc dazugebastelt hab. Da läuft der 168er mit 5V und den enc versorge 
ich separat über einen LM317 regler mit 3V3.
Ich gehe also davon aus, dass die hardware in ordung ist, denn ich habe 
auch schon erfolgreich andere TCP implementationen ausprobiert.(zB 
Ulrich Radigs version)
Außerdem wie gesagt passiert es auch mit dem port 8080, nur eben an 
einer, für den browser unkritischeren stelle, so dass die seite trotzdem 
korrekt angezeigt wird.
Ich werde dumps davon machen und posten.

vielen dank

lg
Michael

von Michael (Gast)


Lesenswert?

Hi, hier der versprochene Dump:
beim Conent-Type: sollte ja text/html stehen, allerdings ist das letzte 
'x' von "text" durch ein 'X' ersetzt und das 't' duch 0x00.

0000  00 18 f3 09 ca 0e 00 03  6f 55 1c c2 08 00 45 00   ........ 
oU....E.
0010  00 80 00 02 00 00 40 06  f6 a8 c0 a8 01 18 c0 a8   ......@. 
........
0020  01 65 00 50 04 47 00 00  03 4f a3 ac 20 b9 50 18   .e.P.G.. .O.. 
.P.
0030  01 be e1 31 00 00 48 54  54 50 2f 31 2e 31 20 32   ...1..HT TP/1.1 
2
0040  30 30 20 4f 4b 0d 0a 43  6f 6e 74 65 6e 74 2d 4c   00 OK..C 
ontent-L
0050  65 6e 67 74 68 3a 30 30  30 30 30 30 33 36 34 36   ength:00 
00003646
0060  0d 0a 43 6f 6e 74 65 6e  74 2d 54 79 70 65 3a 74   ..Conten 
t-Type:t
0070  65 58 00 2f 68 74 6d 6c  0d 0a 43 6f 6e 6e 65 63   eX./html 
..Connec
0080  74 69 6f 6e 3a 63 6c 6f  73 65 0d 0a 0d 0a         tion:clo se....

wie gesagt, der rest schint ok zu sein, naja eigenartig...

Gruß
Michael

von Michael (Gast)


Lesenswert?

Hallo nochmal,

ich hab den fehler gefunden. es lag daran, dass anscheinend die globale 
variable uip_slen falsch angelegt wurde (evtl linker dran 
schuld?)vielleicht hat er sie als const angenommen?

hab sie dann als static definiert, damit gehts.
womit hast du denn kompiliert bzw. gelinkt?

lg
Michael

von Clyde (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich bin absoluter Neuling, was AVR´s usw. angeht und habe dieses 
interessante Projekt entdeckt und auch schon den Webserver bestellt.
Ich hoffe Thomas Heldt hat noch einen auf Lager, das es nicht 2-3 Wochen 
dauert ;-)
Nun habe ich mir AVR Studio4 runtergeladen und wollte die Software 
schonmal an mein Netzwerk anpassen.

Leider kommen dann beim Build die Warnung wie im Anhang aber beim 
Compilieren scheint alles in Ordnung.

Da ich weder von C noch vom Programmieren große Ahnung habe möchte ich 
mich lieber hier vergewissern, was da los ist.
Ausser der IP habe ich nichs geändert.

Bei der gelegenheit würde mich interessieren, ob es möglich wäre(also 
mit dem µWebserver ATmega168),
won einem FTP-Server eine Datei bzw. die ersten 5-8 Zeilen aus einer 
txt-Datei in den Webserver zu holen und dann auf einem Text-LCD anzeigen 
zu lassen?

Vielen Dank!

Gruß
Clyde

von Michi Müller (Gast)


Lesenswert?

@ Thomas H. :

>Sobald ich den 328 bekomme stelle ich die Bausätze um sofern du das o.k.
>gibst das die Software läuft, aber die aktuelle Anfrage bzgl. 328 hat nur
>ergeben das sie im 1Q/08 lieferbar sein sollen.

Wie sieht es aus mit dem mega328.
Kommt der bald oder müßen wir noch länger warten ?

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Michi Müller

Alles wie immer, es gibt keinen Liefertermin :(

Gruß
Thomas

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Meine Platine liegt auch noch im schrank und wartet auf nen mega328 ....

von Clyde (Gast)


Lesenswert?

Kann mir niemand was dazu sagen?

Gruß
Clyde

von Clyde (Gast)


Lesenswert?

Hallo,

tut mir leid, aber ich muss nochmal nerven.
Ich bin scheinbar zu blöd, mit AVR Studio den 168 zu flashen bzw. 
richtig einzustellen...
Kann mir jemand sagen, was ich wie und wo bei AVR Studio einstellen 
muss, um den Webserver zugänglich zu machen?
Fuses lesen, löschen usw funktioniert alles nur reden will er nicht.

Ich habe in main.c meine IP eingetragen und die IP des Routers.
Dann compiliert und danach die Hex-datei hochgeladen.
Funktioniert ohne meckern. bei den Fuses habe ich auf Brownout 2.7 
eingestellt und alle 3 ext. Clock schon durch probiert.
 mehr habe ich nicht gemacht aber es kommt auch nichts übern ie.

Vielen Dank schonmal...

In hoffnung auf schnelle kompetente Hilfe
Clyde

von Horst Schimanski (Gast)


Lesenswert?

Welche IP Adressen hast Du denn eingetragen und welche Adresse hast Du 
im Browser aufgerufen ?
Wenn Du den AVR auf externen Takt eingestellt hast und ihn Beschreiben 
kannst dann laufen ENC und AVR schon mal. Trotzdem könnte aber auch 
theretisch am Aufbau was nicht stimmen.

von Horst Schimanski (Gast)


Angehängte Dateien:

Lesenswert?

Wäre auch noch gut zu wissen womit Du den AVR programmierst.

Ich machs mit dem STK 500.
Meine Fuses hab ich für Dich mal in den Anhang gepackt.
Den mega168 stellst Du beim Programmer im Reiter "main" ein.

Im AVR-Studio unter "Projekt -> Configuration Option" dann unter Device.

von Horst Schimanski (Gast)


Lesenswert?

Ach ja, un bitte dran denken, das der Webserver mit zB 192.168.0.3:8080 
aufgerufen wird.
Wie sieht es mit Ping aus ?

von Clyde (Gast)


Angehängte Dateien:

Lesenswert?

Guten Morgen und schonmal vielen Dank für die Hinweise.
Im Anhang zuerstmal ein Bild von den Veränderung der IP.
Im ie habe ich alles ausprobiert, mit 8080 und 9000 sowie auch ohne 
Portangabe. Beim ping auf den Port fand r den Host nicht und ein Ping 
auf die IP ohne Portangabe kam nur eine Zeitüberschreitung.
Ich programmiere mit dem AVR USB-ISP v1.2 von Tuxgraphics/chip45.

Kann es evtl. an dem SPIEN liegen, bei mir ist dort kein Haken und ich 
kann dort auch keinen setzen, wie bei Dir im Bild?

von Clyde (Gast)


Angehängte Dateien:

Lesenswert?

Hier noch ein Bild von meinen Fuses aus dem AVR Studio

von Clyde (Gast)


Angehängte Dateien:

Lesenswert?

Und hier vorsorglich von meinen LockBits, wo ich allerdings nichs 
verändert habe.

Ich hoffe es hilft weiter.
Ich habe bis jetzt noch keinen Erfolg gehabt.

Gruß
Clyde

von Horst Schimanski (Gast)


Lesenswert?

Sieht auf den ersten Blick ganz vernünftig aus.

Überprüfe mal alles auf der Platine ob da nicht was falsch gelötet 
worden ist. Anbei musst Du dran Denken, das Du mit 3.3 Volt 
programmierst, da der Enc28j60 eine Betriebsspannung von 3,3V hat. Nicht 
das Du da was geschossen hast.

von Clyde (Gast)


Lesenswert?

Hallo,

Platine habe ich nochmal geprüft, sieht alles richtig aus, 22pF da, wo 
sie sein sollen und die Widerstande auch. Ausrichtung der IC´s 
ebenfalls.
Wenn ich den Server ans Netzwerk anschliesse, blink es immer wieder mal 
und die Grüne LED Leuchtet. Sieht also nach korrekter Funktion aus.

Womit Du mich jetzt verunsicherst wäre die 3,3V.
Ich habe diesen Adapter 
http://www.chip45.com/index.pl?page=CrispAVR-USB&lang=de
und der sollte die Spannung usw. ja selbst erkennen, hat ja auch einen 
Levelshifter eingebaut und die LED´s blinken wie sie sollen bei 
korrekter Funktion.

Ich kann ja auch immer wieder den Atmel programmieren und löschen usw. 
ohne das dort ein Fehler angezeig wird.

Muss der ENC auch separat programmiert werde??? Davon habe ich jetzt 
irgendwie nichts gelesen...oder habe ich da was überlesen?
Die 3,3V hat er ja auf der Platine
Merkwürdig...

SMD Löten ist für mich jetzt auch keine große Sache, da ich selbst 
regelmäßig auf der Arbeit diese verarbeite
(selbst LPC2136 löte ich mit der Hand ohne Probleme)
Nur selber etwas programmieren ist neu(bin ja erst durch meine Arbeit 
dazu gekommen)und auf der Arbeit ist alles vorgekaut, das ich mir da 
keine großen Sorgen machen musste...
Da ich jetzt erst mit C und Atmels anfange und der µWebserver eigentlich 
so mein Bastelprojekt werden soll, ist es doof wenn ich jetzt schon beim 
flashen scheiter :-(

Vielen Dank
Clyde

von Clyde (Gast)


Angehängte Dateien:

Lesenswert?

Hallo nochmal,
ich krieg hier noch ne krise...

Im Anhang ein Bild vom Programmieren, alles OK.
Habe nun mal versucht, ob ich die LED Anzeige der RJ45 Buchse verändern 
kann um zu sehen ob was passiert.
Aber die grüne Leuchtet weiterhin und die Gelbe ist die Blinkende LED.
Also keine Veränderung.

Aber wie im Bild zu sehen, ist alles ok.

Momentan lasse ich einen IP Scanner laufen, ob irgendwo eine mir 
unbekannte IP auftaucht...

Sollte ich evtl. mal ein anderes Programm als AVR Studio probieren, wenn 
ja, welches?
Oder was kann ich noch versuchen?

Gruß
Clyde

von Clyde (Gast)


Lesenswert?

Guten Morgen,

mein Problem besteht immer noch.
Habe jetzt mal versucht, den Takt zu messen(mit nem normalen TruRMS 
Multimeter) und der zeigt mir an XTal1 nur 6,25Mhz an.
Bei Tuxgraphics habe ich aber was von 12,5Mhz gelesen.
Könnte das mein Problem sein? Wenn ja, wie kann ich das lösen?

Eigentlich kann(darf) der 168 ja nur bis 10Mhz bei 3,3V betrieben 
werden.

von Horst Schimanski (Gast)


Lesenswert?

Mit den 12,5 MHz bei 3,3V ist schon in Ordnung. Bei mir gehts ja auch.
Programmieren kannst Du den µC auch, ist auch schon mal OK. Und wenn die 
Netzwerk LEDs blinken, kann es auch ein gutes Zeichen sein.

>Da ich jetzt erst mit C und Atmels anfange und der µWebserver eigentlich
>so mein Bastelprojekt werden soll, ist es doof wenn ich jetzt schon beim
>flashen scheiter :-(
Hättest Dir vielleicht für den Anfang etwas übersichtlicheres nehmen 
sollen ;-) Aber nicht aufgeben.

Wie hast Du den Webserver den angeschlossen ? Am Router oder direkt an 
einer Netzwerkkarte ? Vielleicht liegt da ja irgendwo der Hund begraben 
..

von Clyde (Gast)


Lesenswert?

Hallo,

das interessante ist scheinbar, das ich nur 6,25Mhz Takt habe, keine 
12,5.
Ich habe ich an einen Switch, der mit dem Router verbunden ist.

Meine erste vermutung wäre, der Mega168 ist zerschossen, aber ich kann 
Fuses und ihn selbst programmieren, sieht zumindest danach aus.
Ich verstehe das Teil nicht.
Evtl. redet der 168 nicht mit dem ENC, aber wie finde ich es heraus?

Mein allererstes Projekt war eine Springbrunnensteuerung letzes Jahr, 
das klappte auch noch mit dem Mega88 und etwas C :-)
(aber Ehrlich, ein paar Pins an und Ausschalten ist ja nicht das höchste 
der gefühle :-) )
Damals hatte ich Imagecraft, welches ich leider nicht mehr habe, wäre 
für mich vermutlich nachvollziehbarer geworden jetzt. Aber soviel anders 
sieht AVR Studio auch nicht aus.

Achso, diverse Portfreigaben im Router habe ich auch schon probiert, 
aber das half auch nix.
Eigentlich hatte ich vor, dieses Wochenende damit zu verbringen, mir den 
Webserver zurecht zu basteln mit Website und steuerung, aber das er 
überhaupt nicht mit mir reden will...mannomann...

von Clyde (Gast)


Lesenswert?

Leute,
ich verstehe es nicht...
Ich kann den Atmega168 scheinbar programmieren, ohne Fehlermeldung.
Ich nutze den AVR Simulator und alle weiteren Einstellung sind ja 
bebildert. Die ISP-Frequenz ist 230,,4kHz und das scheint zu 
funktionieren.

Der ENC Leuchtet bzw. blinkt mit seinen LED´s (Grün leuchtet beim 
verbinden mit dem Switch und Orange blinkt hin und wieder)und gibt 
seinen default-takt von 6,25Mhz aus(default lt. Datenblatt) welchen er 
aber nicht verändert nach demflashen.

Irgendwo steckt da doch der Wurm drin...wer hat die V2 mit dem ERNI und 
evtl. ähnliche Probleme gehabt?
Oder, was mache ich falsch?

Kann der Atmega nen schuss haben obwohl er ich programmieren lässt?

für jeden Tip bin ich Dankbar.

Gruß
Clyde

von Clyde (Gast)


Lesenswert?

Achso, wenn es hilft...
Auto MDIX geht nicht, falls überhaupt möglich.
Verbindung mit Switch wird angezeigt, aber direkt mit einem PC gibt 
keine verbindung(nix leuchtet)

Gruß
Clyde

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Clyde

kontrolliere bitte alle Lötstellen am ENC28J60 und am Atmega168, wenn 
die
Fuses so sind wie geschrieben und alles andere korrekt gelötet ist muss 
es gehen. Ich hatte einmal eine kaum sichtbare Lötbrücke an den Pins des 
Atmega und da war dann auch so ein Problem da, Brücke entfernt und es 
lief ;)

Zur Not schick mir mal die Platine dann schaue ich sie mir an, einfach 
Mail an thomas [at] heldt-web [punkt} de senden.

Gruß
Thomas

von Josef K. (josefk)


Lesenswert?

Hallo,

ich bin jetzt auch Besitzer einer solchen Hardware. Lustig ist das Ding 
schon nur als ich versucht habe ein eigenes Projekt auf den Atmega168 zu 
portieren ist mir aufgefallen wie wenig Speicher ich da zur Verfügung 
habe.
Evtl. würden sich ein paar Leute über ein Redesign mit mehr Ram bzw. 
einem anderen µC freuen.

von Horst Schimanski (Gast)


Lesenswert?

@Josef
>Atmega168 zu portieren ist mir aufgefallen wie wenig Speicher ich da zur 
>Verfügung

Das hätte Dir aber schon vor dem Kauf auffallen müssen...
Wie Du vielleicht in diesem Thread gelesen hast, warten noch einige auf 
den mega328, der hat den doppelten Speicher aber der ist von Atmel noch 
nicht ausgeliefert. Alternativ kannst Du ja vom Ulrich Radig den 
Webserver mit dem mega644 holen, das gibts schon das 4fache an Speicher 
und irgendwo gabs auch einen mit nem Mega128. Aber die sind alle nicht 
so schön klein ;-)

@ Clyde
Ich glaube auc wie Thomas das irgendwo eine Lötstelle nicht richtig 
sitzt. Bei mir hatte damals der Taktausgang vom ENC keinen richtigen 
Kontakt zum Pad. Bei Dir scheint ja am SPI irgendwas nicht richtig zu 
sein.

von Clyde (Gast)


Lesenswert?

So, kaum Feierabend und zuhause, schon an der Schaltung...
Ich habe nochmal geguckt und werde morgen das Mikroskop auf der Arbeit 
bemühen.
Messtechnisch konnte ich folgendes feststellen, was evtl. mal jemand an 
seiner funktionierenden Schaltung nachprüfen könnte, wenn er lust hat.

PIN 12 und 13 des ENC melden Durchgang mit ca. 6,8Ohm
PIN 15/16/17 melden mit ca. 7Ohm Durchgang.

Die 49,9Ohm Widerstände R6/R5 haben ca 30 Ohm und R4/R3 melden nur ca. 
8Ohm. Könnte natürlich an dem Übertrager liegen, ist mir aber trotzdem 
merkwürdig.

Wenn ich morgen wirklich noch ne Brücke finde, fress ich nen Besen :-)
Wenn alles nix hilft, würde ich gerne Dein Angebot annehmen, Thomas.

Gruß
Clyde

von Clyde (Gast)


Lesenswert?

Als zwischenstand, ich habe MISO, MOSI usw. verfolgt und hat kontakt mit 
den entsprechenden Beinchen.
Morgen werde ich alles nochmal nachlöten mit meinem Flux und genau 
begutachten.
Wenn es das dann alles nichts bringt, würde ich mich gerne mal an Thomas 
wenden.

Gruß
Clyde

von Clyde (Gast)


Lesenswert?

Hallo,

malwieder.
nachdem ich heute die Schaltung nochmal komplett nachgelötet habe und 
unter dem Mikroskop keine Brücken finden konnte, bin ich weitestgehend 
am Ende.
Eine Idee hätte ich noch, wenn mir da jemand helfen könnte...
Wenn mir jemand ein funktionierendes hex-file des Webserver zur 
verfügung stellen könnte, wo zum Beispiel PortC an Pin0 auf Ausgang und 
diesen eingeschaltet hat. Einfach um zu sehen, das der Prozessor das 
macht.
Evtl. habe ich ja was mit der Software falsch gemacht...ist ja auch 
nicht auszuschliessen bei mir...bin da ja ein frischling...

Mal gucken, was mir noch einfällt, bevor ich den Thomas damit belästige 
und es hinter ne kleinigkeit ist...

Vielen Dank
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

Hallöchen,

Im dem aktuellen Downloadpaket auf meiner Homepage ist eine kompilierte 
HEX Datei dabei.

Zu deinem Problem: Wie du schon festgestellt hast, läuft der Controller 
mit nur 6.25MHz statt den 12.5MHz, auf die der Prozessor beim Start 
umstellt.

Mich würde mal interessieren ob sich was auf den MISO/MOSI/SCK Leitungen 
tut, die den ENC28J60 ansteuern. Falls dort nichts zu sehen ist (vor 
allem nachdem die Platine Strom bekommt), dann startet der 
Mikrocontroller nicht richtig.

Ich würde außerdem den Brown Out auf 2,7V einstellen. Der externe Takt 
ist schon richtig, ich würde aber 65ms Startup Zeit empfehlen. Und Pass 
auf, dass die ISP Frequenz beim Programmieren nicht größer als etwa 1 
MHz ist.

Ich tippe mal darauf, dass irgendeine Kommunikationsleitung zum ENC28J60 
nicht vernünftig verbunden ist.

von Simon K. (simon) Benutzerseite


Lesenswert?

Achso! Was auch noch sehr gut sein kann ist, dass du in den 
Projekteigenschaften des AVR Studios keine Einstellungen vorgenommen 
hast. Dort musst du natürlich den Mega168 angeben und den richtigen 
Quarztakt einstellen.

Alternativ: Wie gesagt, in dem neuesten Paket ist eine HEX Datei für den 
Mega168 dabei:
http://klinkerstein.m-faq.de/index.php?content=MikroWebServer&view=Downloads&dl=uWebSrv.zip

von Clyde (Gast)


Angehängte Dateien:

Lesenswert?

Hallo und vielen Dank für die Tips.
Dann muss ich wohl davon ausgehen, das der MC ne macke hat.

ISP Frequenz ist 230,4kHz(geht max. auf 920kHz) und den Brown out habe 
ich jetzt auf 2,7 und den Takt auf die 65ms gestellt, ohne Erfolg.
Die HEX Datei, die im Zip unter Release steht, habe ich eben nochmal neu 
runter geladen ohne veränderung.
Der ENC behält seinen default von 6,25 MHz und an MOSI/MISO/SCLK kann 
ich mit dem Multimeter nix messen...nen Oszi habe ich leider nicht 
hier...
Mal gucken, ob ich nen 168 aufgetrieben bekomme und ihn tausche. evtl. 
hilft das ja.

Im Anhang ein Screenshot von den Einstellungen, ist dort etwas evtl. 
nicht korrekt?das habe ich so default gelassen, also nichts verändert.

Evtl. hilft es, aber werde mal nach nem 168 gucken...

Vielen Dank
Gruß
Clyde

von Chris (Gast)


Lesenswert?

Hi Clyde,

bei mir schaut es im Moment ähnlich aus. Aktuelle Hex in den Atmel 
geschoben - Netzwerk auf dem PC eingestellt - aber der uWebServ 
antwortet nicht.
Die Link-LED leuchtet (bei mir ist es die gelbe LED), die grüne LED 
blinkt auch regelmäßig (gehe von aus, das diese den Datentraffic 
anzeigt).

Versucht hab ich bisher http, ping und arp - ohne Erfolg.

Was mir gestern noch in den Sinn kam, das der Reset-Pin am AVR keine 
Spannung erhält und dieser somit stets (low) geschaltet ist - das würde 
erklären, weshalb der AVR sich beschreiben läßt, respektive sich die 
Fuses einstellen lassen. Dann würde der AVR ohne ISP ständig im Reset 
sein und das Programm nicht "ablaufen".

Bei mir hat sich diese Vermutung aber zerschlagen, hab einfach nur einen 
falschen Massebezug genommen :-)

Werd heute Abend mal testen, ob das Programm ansich läuft, indem ich 
einen GPIO toggeln lasse.

Viele Grüße
 Christian

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Chris und Clyde

Zieht ihr das ISP-Programmer Kabel ab oder lasst ihr es angesteckt?

Wenn ihr es angesteckt lasst probiert mal ob der Webserver arbeitet wenn 
ihr das Kabel nach der Programmierung abzieht und dann kurz die Spannung 
trennt.

Ich habe gerade nochmal eine Platine bestückt und der Webserver lief 
sofort.

Gruß
Thomas

von Clyde (Gast)


Lesenswert?

Moin,

kurz und knapp...
Habe schon mit und ohne IPS Kabel probiert und natürlich immer mal die 
Spannung unterbrochen...

Mal gucken...

Gruß
Clyde

von Chris (Gast)


Lesenswert?

Hi Thomas,

ISP-Programmer-Kabel wird (selbstverständlich) abgezogen - 
Spannungsversorgung unterbrochen und wieder angesteckt. (ISP-Kabel wird 
im ausgeschalteten Zustand abgezogen :-)

Anmerkung - benutze den usbprog mit Levelshifter - bisher konnte ich 
meine AVRs mit Spannungsversorgung aus dem usbprog programmieren. Dies 
hat diesmal nicht geklappt (obwohl 3,2V an der richtigen Position am 
ISP-Anschluss anliegt). Ich muss den AVR mit der regulären Spannung 
versorgen und die Spannungszuführung vom usbprog her abschalten. 
Diesbezüglich hatte ich die Verbindungen auch schon ausgeklingel - 
scheint alles okay.

ENC (Pin) - ISP (Pin) - AVR (Pin)

6 - 1 - 16 -> MISO
7 - 4 - 15 -> MOSI
8 - 3 - 17 -> SCK

CS vom ENC hab ich gestern Abend nicht mehr gemessen - werd mir heute 
Abend nochmal MISO/MOSI mit dem Oszilloskop ansehen und, wie schon 
geschrieben, mal einen GPIO toggeln lassen.


Wenn alles nichts hilft, werd ich mir eine neue LP bestellen und 
nochmals bestücken - die Fehlersuche kostet mich sonst mehr Zeit, als 
die paar Euro :-)

Viele Grüße
 Christian

von Simon K. (simon) Benutzerseite


Lesenswert?

Hmm, ehrlich gesagt bin ich da ziemlich ratlos. Prinzipiell ist alles, 
so wie du (ihr) es eingestellt habt, völlig in Ordnung. Ich würde an 
eurer Stelle das nette Angebot von Thomas wahrnehmen und ihm, oder mir 
mal die Platine zur Fehlersuche zuzuschicken.

von Vajk .. (vajk)


Lesenswert?

Sehr schönes Projekt!

Ich hab da mal ne Frage - sowohl der ATmega 168(P) 
(Quelle:http://www.atmel.com/dyn/products/product_card.asp?part_id=3303) 
als auch ATmega168P und der ATmega328P sind mit Vcc 1.8-5.5 V angegeben. 
Also müßte die Programmierung mit 5V funktionieren, vorausgesetzt man 
läßt die Versorgungspannung über den ISP-Stecker weg - oder?

von Simon K. (simon) Benutzerseite


Lesenswert?

Programmieren kannst du den Chip mit +5V Versorgungsspannung, aber nicht 
während er aufgelötet ist. Auf der Platine ist nur ein 3,3V 
Spannungswandler und das aus gutem Grunde ;) (ENC28J60 mag nicht mehr 
haben).

Der Pin für die Spannung am ISP Stecker ist dafür da um den 
Levelshifter, der üblicherweise im ISP ist, mit der Spannung der 
Zielschaltung zu versorgen um so die korrekte Programmierspannung 
einzuhalten.
Der Pin ist nicht da um ein Programmiertarget mit Strom zu versorgen.

von Vajk .. (vajk)


Lesenswert?

Hallo Simon,
danke für die schnelle Antwort - Frage anders: ist er mit einem normalen 
ISP-Programmierer (ich nutze den von Matwei-USBisp od. eine einfache 
parallele Lösung) programmierbar (ohne Spannungspegel von dort)?
Oder bräuchte man eine Wandlerplatine (die ja auch bei IT-WNS zu 
bekommen ist)?
LG
Vajk

von Clyde (Gast)


Lesenswert?

Hallo Leute,

ich bin durch...
Prozessortausch hat nichts gebracht...
Keine Ahnung woran es liegen könnte, evtl. defekter/zerschossener ENC 
oder weiss der KuckKuck was...
Habe sogar die IP mal DMZ geschaltet, aber nix.
Takt bleibt bei 6,25...

Gruß
Clyde

p.s. wenn der Fehler entdeckt wird, werde ich berichten(hoffentlich habe 
ich nicht doch was übersehen...)
@Thomas, email for you...

von Simon K. (simon) Benutzerseite


Lesenswert?

Ich vermute mal du hast irgendwie Leitungen zum ENC28j60 
kurzgeschlossen. Defekt wird er nicht sein, da ja die Lampe für die 
Eingehenden/Ausgehenden Daten mal aufblinkt und auch die Link LED 
korrekt funktioniert.

Der ENC28J60 wird gar nicht erst initialisiert, worauf man durch die 
6,25MHz Takt schließen kann. Also stimmt was nicht mit der Kommunikation 
zu diesem.

von Simon K. (simon) Benutzerseite


Lesenswert?

Vajk Von ipolyi wrote:
> Hallo Simon,
> danke für die schnelle Antwort - Frage anders: ist er mit einem normalen
> ISP-Programmierer (ich nutze den von Matwei-USBisp od. eine einfache
> parallele Lösung) programmierbar (ohne Spannungspegel von dort)?
> Oder bräuchte man eine Wandlerplatine (die ja auch bei IT-WNS zu
> bekommen ist)?
> LG
> Vajk

Du wirst einen Programmierer mit Pegelwandler brauchen. Also 
beispielsweise einen Atmel ISP mkII (wie ich ihn habe).

von Chris (Gast)


Lesenswert?

Hallo allerseits,

hier läuft es jetzt auch ?!

Wie erwähnt, wollte ich ja mal einen GPIO toggeln, habe dementsprechend 
die main.c kurz erweitert. Nach dem Einspielen gibt es zumindest schon 
mal Antwort auf den Ping. Den Rest hab ich jetzt noch nicht 
kontrolliert, sollte aber laufen.

Da mich die Sache etwas stutzig gemacht habe, hab ich nochmals die 
Release-Version eingespielt. Es trat der gleiche Fehler auf, wie vorher 
- der Server war nicht erreichbar.

Vom Optischen her - vorher hatte ich ein Dauerleuchten auf der gelben 
LED (ging bisher davon aus, das die für die Linkanzeige zuständig ist) - 
jetzt zeigt sie mir die einzelnen Pings an und die grüne LED hat ein 
Dauerleuchten (Link-LED?).

Weitere Änderungen habe ich nicht vorgenommen.

Anmerkung zum verwendeten MagJack -> SI-60024F

Dann wird es jetzt mal Zeit, die weiteren Funktionen zu testen.

Viele Grüße
 Christian

von Clyde (Gast)


Lesenswert?

Chris, könntest Du mir mal dein Hex mit dem toggle mailen?
Welcher Pin wird dort geschaltet?
Würde das gerne auch mal testen.
Ich habe die ERNI Buchse mit Grün Links und Gelb Rechts.
Dafür packe ich den server gerne nochmal aus :-)

Gruß
Clyde

email: Phuture_Vibes (at) t-online (punkt) de

PS: an eine Brücke kann ich kaum noch glauben, aber manchmal sieht man 
den Wald vor lauter Bäumen nicht...

von Simon K. (simon) Benutzerseite


Lesenswert?

Chris wrote:
> Vom Optischen her - vorher hatte ich ein Dauerleuchten auf der gelben
> LED (ging bisher davon aus, das die für die Linkanzeige zuständig ist) -
> jetzt zeigt sie mir die einzelnen Pings an und die grüne LED hat ein
> Dauerleuchten (Link-LED?).

Jau, die Belegung der LEDs wird bei der (korrekten) Initialisierung vom 
ENC28J60 umkonfiguriert.

von Chris (Gast)


Lesenswert?

Okay, der Rest läuft (wie erwartet) auch - Webserver auf Port 8080.


@Clyde

Sorry, das erste Hex-File hatte geänderte IPs - ein neues Hex-File mit 
den Beispiel-IPs ist gerade raus.

Viel Erfolg

von Vajk .. (vajk)


Lesenswert?

> Du wirst einen Programmierer mit Pegelwandler brauchen. Also
> beispielsweise einen Atmel ISP mkII (wie ich ihn habe).
wird der 
(http://www.it-wns.de/themes/kategorie/detail.php?artikelid=260&source=2)
Pegelwandler auch gehen?

von Clyde (Gast)


Lesenswert?

Chris, vielen Dank!

Irgendwas ist doch hier komisch...
Nachdem ich das Hex (ich habe beide probiert mit gleichem Ergebnis)
vom Chris geflashed habe, leuchtet meine Gelbe(Rechte LED)mit kurzen 
unterbrechungen  und die Grüne(Linke LED) ist aus.
Eine toggelfunktion habe ich allerdings nicht auf PC0
ABER der ENC läuft jetzt mit 12,5Mhz

Irgendwo habe ich doch nen Bock,oder nicht.
Selbst mit der Original Hex, aus dem Zip von Simon kommt diese Funktion 
nicht zustande...
Auf MISO/MOSI messe ich jetzt auch ne Frequenz, was vorher nicht der 
Fall war.SCK zeigt 2,33Mhz,wenn mein Multimeter richtig misst.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Vajk Von ipolyi

Ja der Pegelwandler wird gehen da er nichts anderes macht als die 
Signale des 5V Programmers auf die Spannung des Targets anzupassen ;)

@Clyde
Scheint irgendwo dann doch an der Software zu liegen, aber wie gesagt 
ich kann es gerne testen.

Gruß
Thomas

von Clyde (Gast)


Lesenswert?

Momentan vermute ich ein problem in meiner Compilierung, liegt doch 
sicher nahe, wenn Chris´s HEX-File zumindest in der Kommunikation 
zwischen MC und ENC funktioniert...oder?

von Clyde (Gast)


Lesenswert?

Ha, überschnitten.Thomas.
Den Gedanken habe ich auch. Ich habe Chriss mal gebeten, mit meiner IP 
ein HEX zu compilieren. Mal sehen, wenn er so nett ist ;-), ob das 
funktioniert.
Dann muss ich den Fehler woanders suchen...
Ist das dabei dann ein Unterschied, ob ERNI oder MagJack? LED technische 
schon, oder?

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Clyde

Die Platinen sind unterschiedlich eine ist für den SI-60024F und eine 
(MJ2) ist für der ERNI angepasst, programmtechnisch sind beide gleich.

Gruß
Thomas

von Simon K. (simon) Benutzerseite


Lesenswert?

Ich möchte ja keinen Programmierfehler ausschließen, allerdings würde 
mir ein solcher ziemlich komisch vorkommen, da das Board bei 
mittlerweile vielen Leuten problemlos funktioniert.

Hm!

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Simon

Ich meinte eher das ein nicht funktionierendes HEX File durch falsche 
Einstellungen rauskommt ;)

Ich habe deinen Code ja auch auf beiden Versionen installiert und beide 
gehen.

Da ja bei Clyde mit dem Hex von Chris zumindest die Initialisierung zu 
gehen scheint scheidet ein Hardwarefehler fast schon aus.

Gruß
Thomas

von Vajk .. (vajk)


Lesenswert?

Bei uWebSrv ist ja kein makefile dabei - hat jemand schon eines für 
gcc/linux erstellt und könnte das hier bitte einstellen?

von Simon K. (simon) Benutzerseite


Lesenswert?

Thomas H. wrote:
> @Simon
>
> Ich meinte eher das ein nicht funktionierendes HEX File durch falsche
> Einstellungen rauskommt ;)
Jau, das stimmt.

> Da ja bei Clyde mit dem Hex von Chris zumindest die Initialisierung zu
> gehen scheint scheidet ein Hardwarefehler fast schon aus.
Meine HEX Datei sollte aber mit deinem Bausatz problemlos funktionieren. 
Er ist für einen Mega168 kompiliert.

von Simon K. (simon) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hier das Makefile, was sich ab sofort auch im zip Archiv auf meiner 
Seite befindet.

(Exportiert aus AVR Studio)

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

Hallo alle zusammen,

habe jetzt aus meinen Versuchen bzgl. obiger Probleme zwei fertige 
Webserver hier liegen die ich nicht mehr benötige und somit verkaufe.

Ich würde sie zum Bausatzpreis 26,99 EUR abgeben, die aktuelle Software 
von Simon ist drauf ;)

Wer einen oder beide haben möchte bitte entweder PN über das Forum oder 
Mail an thomas [at] heldt-web [punkt] de senden.

Verkauf also von Privat.

Gruß
Thomas

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Evt. hat die Platine eine Unterbrechung! Wurden die Platinen einen 
E-Test unterzogen?? Ich hatte bei HAKA auch schon Platinen bestellt ohne 
E-Test und hatte auf einer eine Unterbrechung!

Gruß
Uli

von Clyde (Gast)


Lesenswert?

Hallo,

da ich ja der Auslöser war, hier die "Entwarnung".
Dank Chris´s HEX-File ist die Platine Funktionstüchtig!
Es liegt wohl an Einstellungen in meinem AVR-Studio, aber der Server 
läuft!
Das Make-File macht mir zwar noch zu schaffen(no rule to make taget) 
aber hier gibt es ja viel zu lesen :-) )
Es ist also mit sicherheit kein Hardwareproblem.

Vielen vielen Dank, für die freundliche Hilfe und Unterstützung!


Gruß
Clyde


PS: leider(für euch :-) ) bin ich mir sicher, das ich anderweitig wohl 
noch hilfe hier im Forum suchen muss...

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Ulrich

Ja die Platinen wurden einem E-Test unterworfen, daher war ich ja so 
sicher das es kein Platinenfehler sein kann.

@Clyde

Nimm mal im Makefile die ../ vor den Zeilen der zu kompilierenden Files 
raus, danach hat es bei mir geklappt.

Gruß
Thomas

von Clyde (Gast)


Lesenswert?

Danke Thomas, das war´s...
Witzigerweise, habe ich dem Tutorial nach, die Sache mit den Pfaden 
gesehen und kontrolliert, aber das hab ich nicht gelesen oder 
überlesen...

Aber ich glaube, ich habe recht skurile Fehler hier...oder einfach nur 
DAU Fehler...

Bei Chris´Hex, muss ich, um die geschalteten Ports(grünes Feld) zu 
sehen, 2 mal auf Refresh im Browser drücken(nach Modify kommt  "Website 
kann nicht angezeigt werde", erst nach refresh kommt sie und dann 
nochmal refresh um die aktuellen Werte zu sehen.)

Bei "meinem" HEX ist nach einstellen des Ports und drücken auf Modify, 
schluss.
Nix kommt mehr und SCK ist ruhig(tot)(der Port wurde aber ein geschaltet 
am MC) und der Browser zeigt natürlich nichts mehr an und hängt.

Geflashed mit Simon´s Make-File und nur die IP und den Port 
geändert(Port deswegen,weil ich dachte das ein Konflikt in meinem 
Netzwerk dafür sogen könnte wegen 8080 im Router). Und die RJ45 LED´s 
habe ich mal getauscht.

Könnte es damit zusammenhängen:

Net/uip/uip_arp.c: In function 'uip_arp_update':
Net/uip/uip_arp.c:160: warning: 'tabptr' may be used uninitialized in 
this function

Net/uip/uip_arp.c: In function 'uip_arp_out':
Net/uip/uip_arp.c:356: warning: 'tabptr' may be used uninitialized in 
this function


was bei mir nach Build bzw rebuild all kommt?

Ich merke zunehmend, das diese Schaltung nix für Anfänger ist, obwohl 
ich sie gerade dafür so passend finde...:-(

Gruß
Clyde

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Clyde

In Sachen Software etc. kann dir besser Simon helfen, was für einen 
Browser nutzt du denn?

Ich habe es mit dem IE6 und Firefox2 probiert und bei beiden Webservern 
klappt es mit dem Seiten laden etc.

Die Hinweise keim kompilieren kannst du ignorieren.

Gruß
Thomas

von Clyde (Gast)


Lesenswert?

Ich will ja eigentlich nicht den ganzen Thread zu spammen mit meinen 
Newbie-Problemen...
Ich nutze den IE7...

Die Warnungen sind also keine Probleme?

Naja, bin schonmal Froh,das die Hardware läuft, zweifelte schon fast an 
meinem Löten und meinen Augen :-)

Gruß
Clyde

von Sucher (Gast)


Lesenswert?

Hallo Experten

des "kleinen" Miniservers. Besteht die Chance die DS18S20 
Erafssungsroutinen zu integrieren oder reicht da der Platz im 168er 
absolut nicht. Ich möchte nur ein Gefühl dafür ob es Chancenlos ist oder 
schwierig?
Hat das schon jemand versucht?

MfG
Achim

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Sucher

Also ich sage mal es sollte schon noch passen die Routine sollte ja 
nicht sonderlich viel Platz brauchen, zur Not halt die Portumschaltungen 
raus nehmen dafür ;)

Genau kann das aber nur Simon sagen.

Gruß
Thomas

von Simon K. (simon) Benutzerseite


Lesenswert?

Sehe ich genau so Thomas H. Sowas "einfaches" sollte noch hereinpassen.

Bzgl. Clyde:

Öffne doch mal eine Konsole (Ausführe->cmd) und tippe ein:
1
avr-gcc -v

Und poste das hier.

PS: Steht beim Thomas auf der Webseite nicht, dass es nichts für 
Anfänger ist?...

von Clyde (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

im Anhang das Ergebnis der Befehls.

Im Shop von Thomas werden praktisch SMD-Löterfahrung vorrausgestzt, aber 
von programmieren steht da nichts :o)
SMD ist für mich kein Problem, das habe ich schon beschrieben und daran 
hat es dann ja auch nicht gelegen.
Das mit dem Programmieren bzw. Compilieren ist dann doch etwas anders...
Es fängt ja schon bei der Wahl des Programmes an und von den PlugIns mal 
abgesehen...

Sorry, wenn ich damit nerve, werde mich bessern!

Gruß
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

Okay, das sieht nach der neuesten Version aus. Ich benutze zur Zeit noch 
die Version 4.1.2 (WinAVR 20070525) und hab bisher nicht geupdatet wegen 
bestimmter Probleme, die hier auch im Forum nachzulesen sind.

Ich bin mir nicht sicher, aber es könnte hier dran liegen. Was mich aber 
wundert ist, dass mein HEX File nicht funktioniert auf dem Bausatz, den 
du von Thomas bekommen hast. (Ich hab zwar (noch?) keinen von ihm hier), 
aber der Prototyp, von dem er das Platinenlayout hat läuft wunderbar mit 
dem HEX File in dem Zip Archiv von meiner Seite.

Wie hoch ist denn deine Versorgungsspannung?

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Simon

Ich hatte ja auf den beiden letzten Webservern dein Hex-File drauf, nur 
IP-Adressen angepasst und lief ohne Probleme.

Ich habe den WinAVR-20071221 im Einsatz, an die neue Version gehe ich 
auch noch nicht ran ;)

Meine Versorgungsspannung waren 5 und 9 Volt un damit rennt er wie er 
soll.

Schick mir bitte noch einmal deine Adresse dann sende ich dir einen 
Bausatz in der kommenden Woche raus dann hast du auch die aktuelle 
Platinenversion.

Gruß
Thomas

von Clyde (Gast)


Lesenswert?

Hallo,

meine Versorgungsspannung ist 5 Volt und 3,29Volt nach dem 
Spannungsreglerdes µWeb.

Ich kann auch mal gucken, das ich AVR Studio und WinAVR downgrade, evtl 
klappt es dann, wenn es bei WinAVR probleme in der Aktuellen Version 
gibt.

Es ist halt komisch, das, was ich compiliere(trotz Makefile) nichts 
bringt, aber das HEX von Chris weitestgehend läuft...

von Simon K. (simon) Benutzerseite


Lesenswert?

Clyde, wenn du doch das AVR Studio benutzt zum programmieren, wofür dann 
Makefile? Du kannst in den Projektoptionen alles einstellen.

Und am besten schreibst du dann erstmal ein Programm ala
1
int main()
2
{
3
    DDRC = 0xFF;
4
    PORTC = 0xFF;
5
6
    while(1)
7
    {
8
        asm volatile("nop");
9
    }
10
11
    return 0;
12
}

und schaust ob überhaupt was passiert (Voltmeter, LED+Vorwiderstand an 
PC0-PC5).

von jaja (Gast)


Lesenswert?

Ist nicht die Version 20080411 die neueste und 20080402 wurde 
zurückgezogen?

Grüße,
Jürgen

von Clyde (Gast)


Lesenswert?

Hi,

das Makefile nutzte ich, weil Du es extra online gestellt hast. Und 
meine "Einstellungen" scheinbar falsch sind.
Dein Programm werde ich noch testen, muss mir da noch die 
Include-Dateien zusammen kramen...

Gruß
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

jaja wrote:
> Ist nicht die Version 20080411 die neueste und 20080402 wurde
> zurückgezogen?

Hm, tatsächlich? Müsste man nochmal nachschauen. Könnte aber einiges 
erklären ;)

Clyde: In dem ZIP File ist auch eine AVR Studio Projektdatei drin, womit 
man direkt kompilieren kann ohne über das Makefile zu gehen.

Als einziges include-file brauchst du <avr/io.h>

von Vajk .. (vajk)


Lesenswert?

>     while(1)
>     {
>         asm volatile("nop");
>     }
hätte ein ";" nicht gereicht ;-)

von Simon K. (simon) Benutzerseite


Lesenswert?

Vajk .v.i. wrote:
>>     while(1)
>>     {
>>         asm volatile("nop");
>>     }
> hätte ein ";" nicht gereicht ;-)

Nicht bei bösen Optimizern.

von Clyde (Gast)


Lesenswert?

Guten Morgen,

habe gestern mal noch WinAVR auf 20071221 geändert.
Simon, Dein Programm sorgt dafür, das alle Pins High sind, 3,29Volt.
Ich denke mal, das es so sein soll in einer Endlosschleife, wenn ich das 
richtig verstehe.
Werde nachher mit der veränderten WinAVR nochmal compilieren und gucken 
was passiert.

Gruß
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

Ja, das Programm setzt alle Pins an PORTC(!) auf HIGH.

von Clyde (Gast)


Lesenswert?

Hallo,
ich meinte natürlich nur PortC.

Ich habe heute nochmal etwas probiert.

Habe das Zip vom Simon und vom Christian nochmal neu geladen und 
praktisch von vorne angefangen. Ohne Makefile sondern mit der 
aps-Projektdatei.

Bei Simon´s Sources die IP geändert, build und compile gemacht und 
geflashed.
Läuft, bis zu dem Zeitpunkt wo ich mit Modify einen Port einschalten 
will.
Port geht zwar an aber dann ist der Server nicht mehr ansprechbar.

Beim Chris seiner Source mit der Blinkenden LED(PCO) funktioniert das 
gleiche spiel, nur das ich nach Modify erstmal den IE refreshen muss, um 
den aktuellen Status zu sehen, da nach Modify erstmal eine Fehlermeldung 
kommt "Seite kann nich angezeigt werden". Aber es läuft weiter und ich 
kann weiter Ports schalten.

Wenn ich aber über meinen Tablet per WLAN schalten möchte, dann hängt 
sich der MC auf(scheinbar), da die blinkende LED stehen bleibt.

Verbindung wird über FB WLAN mit nachgeschalteten Switch realisiert.Alle 
haben eine feste IP, DHCP ist aus.

Bin ich der einzigste mit dieser Problematik?
Ich meine, ich ändere NUR die IP´s. Das eine HEX läuft, das andere nicht 
bzw. nicht ganz.

Gruß
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

Benutzt du IE7? Vielleicht gibt es da Probleme mit, wobei ich mir das 
nicht vorstellen kann. IE6 habe ich selbst ausprobiert.

Stinkt aber irgendwie schon danach, wenn beim aufrufen über IE7 der 
Server abschmiert.
Hast du die Möglichkeit mal Firefox zu benutzen?

von Clyde (Gast)


Lesenswert?

Hallo,

IE7 habe ich auf meinem "normalen" PC, auf meine Tablet(WLAN) läuft 
Win2K mit IE6.
Aufgrund der "einfachtheit" des Webinterfaces, finde ich das verhalten 
auch merkwürdig. Mein Netzwerk habe ich auch mal gechecked, da läuft 
alles sauber, schon seit ewigkeiten und den kleine uWeb habe ich DMZet, 
damit da garkeine Hindernisse aufkommen in der testphase.
Habe vorhin auch mal den Port gewechselt, weil 8080 auf meinem 
Apache-Server freigegeben ist, bringt aber auch keinen Erfolg.

Firefox könnte ich mir auch mal holen, aber was mich verwirrt, ist, das 
Dein HEX nicht so will, aber das von Chris, wobei Chris sagt, das er nix 
ausser der IP und dem Toggle gändert hat.

Ich raff das nicht, es müssten ja beide funktionieren, das 
refresh-problem hätte ich jetzt noch auf den IE geschoben aber so kapier 
ich es nicht...

Ich habe Chris HEX heute mal ein paar Stunden laufen gehabt und hin und 
wieder was geändert, kein Thema ausser dem üblichen refresh, also hat 
die Elektronik scheinbar keine (thermische) Probleme. Deine Schaltung 
scheint prima zu laufen.

Compilierungseinstellungen....keine Ahnung, ich nehme es so, wie es es 
vorgibt. Und da beides eigentlich identisch sein sollte(bis auf IP und 
Toggle LED), sollte es auch nach IP änderung und compilierung 
einwandfrei laufen...

Achja, ich habe es mal übers Internet versucht, dank dyndns...nach 
modify kommt nichts mehr(IE7), meinen Tablet(IE6) habe ich noch nicht 
getestet, er bekommt keine Aktuelle Site (refresh oder IE neu starten) 
mehr aber der MC läuft weiter aber nimmt scheinbar die 
Aktualisierungsanfrage nicht mehr wahr.

Alles komisch...

Gruß
Clyde

von Clyde (Gast)


Lesenswert?

Achso, kurz und knapp, mit IE6 über Tablet(WLAN) schmiert er ab. Nicht 
über IE7(LAN).
Sind da evtl. probleme mit der Laufzeit der Pakete oder so möglich?

von Clyde (Gast)


Lesenswert?

Hallo,

ich habe jetzt mal Firefox probiert.
Chris HEX funktioniert damit scheinbar einwandfrei.
Da ich selber noch keine Erfahung mit dem Browser habe, fällt mir eine 
beurteilung schwer. Er scheint aber langsamer zu sein wie IE beim 
Seitenaufbau. Beim uWebserver scheinbar passend, aber im vergleich zu 
meinen Favorites langsam und stockend...wie gesagt, ich habe ihn jetzt 
zum erstenmal genutzt und kenne ihn daher nicht.
Das Hex vom Simon und das gleiche über WLAN folgt noch die Tage.

Gruß
Clyde

von Vajk .. (vajk)


Lesenswert?

teste doch mal Opera .. ich warte noch auf das Modul, dann kann ich auch 
probieren. Firefox (heißt unter Linux iceweasel) ist eigentlich schon 
schnell.

von criuix (Gast)


Lesenswert?

Hallo,

Hat jemand den Server an einer Fritz Box über DynDNS am laufen?

Was habt ihr beim Portforwarding eingestellt?

von Clyde (Gast)


Lesenswert?

Hallo,

beim Portforwarding unter Portfreigabe einfach "Andere Anwendung" 
wählen.
Deine IP und den gewählten Port eingeben. Bei Port "von" und "bis" sowie 
"an" einfach den gleichen Port eingeben.
Der Port darf nicht für eine andere IP freigegeben sein.

So geht´s bei mir, aber nur mit Mozilla und Chris´s HEX. Simons habe ich 
noch nicht probieren können. WLAN mit Mozilla geht auch, Opera habe ich 
nicht probiert.
Am Wochenende werde ich mal weiter testen.

Gruß
Clyde

von Clyde (Gast)


Lesenswert?

Hallo mal wieder...
Nun habe ich Simons HEX wieder genommen...
Mit Firefox funktioniert es bisher eiwandfrei, mit IE7 hängt er sich auf 
wie oben beschrieben.

Woran könnte das liegen? Ich finde Firefox lahm im Seitenaufbau, evtl. 
liegt da der Knackpunkt...Aber andere haben kein Problem mit IE, oder?
Aufgrund meiner DVR Anwendung, kann ich nicht dauerhaft zu Firefor 
wechseln aber wie kann man das Problem lösen mit dem IE?
Ich will ja auch von überall darauf zugreifen können...

von Horst Schimanski (Gast)


Lesenswert?

Scheint an deinem System zu liegen.

Ich habe den Server gerade für Dich nochmal angeschmissen und bei mir 
läufts auf beiden fast gleich schnell.
Er läuft über nen Router und nen Switch und das Bild ist Ruck Zuck da.

von Simon K. (simon) Benutzerseite


Lesenswert?

Ich konnte zwischen IE6(!) und FF auch keinen Unterschied feststellen..

Wenn ich nur wüsste, was bei dir falsch läuft...

von Clyde (Gast)


Lesenswert?

Wenn auch ich das nur wüsste...

Das es bei mir hier irgendwo hakt, schliesse ich definitiv nicht aus.
Nur wo?

Mein Hauptproblem ist erstmal, der unterschied zwischen den Hex-Files 
bzw. die unterschiedliche Reaktion.
Die verstehe ich einfach nicht, da ich beide gleichermaßen 
öffne,verändere, compiliere und flashe...

Simon- "Absturz" durch IE7, Firefox OK.
Chris- geht so halb bei IE7, Firefox OK.
Firefox ist aber echt nur Bild-für-Bild darstellung bei mir, also 
langsam und IE "normal" schnell, im normalem Web.
Bei mir ist es ebenfalls Router-Switch-(Switch, habe 2 Switches 
kaskadiert aber auch schon direktanschluss probiert!).
IE6 über WLAN macht auch probleme...
Ich werde am WE mal weiter probieren mit IE6 über LAN usw.

Ich war mal versucht, Tuxgraphic-HEX zu nehmen, bin mir aber nicht 
sicher, ob die Portänderung für ENC-Int reicht...
Aber an dem Code kann es ja eigentlich auch nicht liegen, da Chris´s 
sein HEX ja wenigstens etwas funktioniert.

Evtl. würde ich mein Modul doch mal verschicken, um technischen Mangel 
wirklich vollkommen auszuschliessen...

Gruß
Clyde

von Criuix (Gast)


Lesenswert?

Hallo,

Welches Protocoll stellt man ein UDP oder TCP. Funkt bei mir mit beidem 
nicht ich möchte nur sicher sein das es nicht daher kommt.

von Clyde (Gast)


Lesenswert?

Hallo Leute,

ich möchte euch mal bitten, an meinem Webserver rumzuspielen und Eure 
Erfahrung mitteilen. Bitte nur GPIO 00-03 nehmen, da die anderen nicht 
angeschlossen sind ich dann nix sehen kann.

erreichen könnt ihr den unter http://217.236.189.73:5003

@criuix
ich habe tcp auf Port 5003 freigegeben im Router.

Danke
Gruß
Clyde

von Clyde (Gast)


Lesenswert?

als tip...DDR auch auf 1 setzen, damit die LED´s angehen ;-)

von Vajk .. (vajk)


Lesenswert?

> als tip...DDR auch auf 1 setzen, damit die LED´s angehen ;-)
:-) ich habs bei Dir vorhin blinken lassen - Rückmeldung gabs jeweils 
erst nach dem refresh, modify hat nicht gereicht (iceweasel).

von Chris (Gast)


Lesenswert?

Hi  Clyde,

habs auch eben mal "Blinken" lassen - keine Probleme. Nach Klick auf 
>Modify< bekam ich den (von mir eingestellten) Status wieder angezeigt - 
keine Abbrüche, kein Refresh nötig.

Ich setzte hier Firefox ein.

Viele Grüße
 Chris

von Clyde (Gast)


Lesenswert?

Mit Firefox ist es bei mir auch OK.Nur das es langsamer im Aufbau ist.
Bekomme dort auch rückmeldung.(Ausser bei FF refresh, dann meckert er 
wegen nem POST Inhalt)
Simons HEX ist da momentan drauf.
Abgestürzt ist er bis jetzt auch nicht.
Könnt Ihr mal IE6/7 ausprobieren?

Gruß
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

IE6 und FF braucht bei mir beides etwa 2-4 Sekunden der Aufbau. Völlig 
in Ordnung also.

von Chris (Gast)


Lesenswert?

@Clyde

auch mit IE7 keine Proeblem.

von Simon K. (simon) Benutzerseite


Lesenswert?

Hat jemand einen Safari Browser installiert? Der verhält sich 
merkwürdig. Im Wireshark sehe ich die komplette HTTP-Unterhaltung, wie 
in jedem anderen Browser, allerdings sagt der Safari nach ein paar 
Sekunden "unknown error".

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Ich glaub ich hab deinen Server gerade mit meinem IE6 zum Absturz 
gebracht, keine reaktion mehr, sowohl im FF also auch im IE6. Wollte 
Port 1 toggeln .... im Firefox wars kein problem, IE6 lässt ihn 
offensichtlich abschmieren

von Clyde (Gast)


Lesenswert?

Stimmt, er hing gerade...

von Clyde (Gast)


Lesenswert?

Das mit dem IE6, bei dem einen geht´s beim anderen nicht ist ja schonmal 
interessant...
Er ist mir also definitv nur 1mal bisher abgeschmiert.
Firefor ist also definitiv ok, aber IE nicht...woran könnte es liegen?

FF mit 2-4 Sekunden ist also normal, gut zu wissen, da ich keine FF 
erfahrung habe, dann ist es bei mir wohl normal.

Naja, evtl. kommt man der Sache ja noch auf den Grund...

Was anderes, hat schon jemand etwas mit Radio-Buttons oder Checkbox(en) 
realisiert als Http-bedienung?
Daran versuche ich mich gerade :-D

Naja, mal gucken, was sich noch so ergibt...
Auf jedenfall schonmal ein Lob an Simon, das Projekt gefällt mir(sonst 
hätte ich es ja nicht gekauft :-) ) und für die umfangreiche Hilfe und 
Unterstützung.

Gruß
Clyde

von Clyde (Gast)


Lesenswert?

Hallo nochmal...
kurze Frage, wenn ich einen Eingang High legen, sollte/müsste da nicht 
auch in der Spalte "Port" eine grüne 1 erscheinen oder ist es gewollt, 
das nur der entsprechende Pin eine grüne 1 zeigt?

Guß
Clyde

von Vajk .. (vajk)


Lesenswert?

Hallo,
heute ist der Bausatz angekommen - nachher mal löten.

Kleiner eagle-Tipp: die Schriftgröße der Beschriftung kann man mit 
"change size" kleiner machen, dann läßt sich das besser zum Bauteil 
positionieren und wird übersichtlicher. Dann passen auch die Werte noch 
in die Bauteilansichten des boards.
Und 0603 läßt sich genauso gut löten wie 0805, hätte besser gepaßt für 
die kleine Platine. Ich hab hier noch eine SMD-Lötanleitung: 
http://www.antennenkoppler.de/doku.php?id=smdloeten

von Clyde (Gast)


Lesenswert?

Hallo mal wieder :-)

Ich habe jetzt mal wieder rumgespielt und versucht die Oberfläche meinen 
Wünschen näher zu bringen.
Witziger weise ausgehend von dem (bei mir ja problematischem) Hex von 
Simon.
Wo ich vorher probleme mit dem IE7 hatte, habe ich jetzt wenigstens die 
möglichkeit, nach 2maligen Refresh, weiter zu schalten ohne absturz des 
uWeb. Also ähnlich wie bei Chris´s seinem Hex(problematik s.o.)

Kann es sein, das es da probleme gibt wegen fehlender w3c definierung?
Ich weiß nicht, ob man da jetzt einfach noch großartig was reinschreiben 
kann(JS wäre auch schön, sprengt hinterher vermutlich den Speicher).


Momentan sieht es so aus bei mir http://217.236.165.230:5003

Wenn ich über die externe IP gehe, will mein IE eine Datei 
speicher!?!?!Hat das noch wer?

Gruß
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

Ich habe IE7 nicht ausprobiert und glaube auch nicht, dass es Probleme 
gibt, wenn eine W3C DOCTYPE Definierung fehlt. Der Content-Type ist auf 
text/html eingestellt. Verstehe auch nicht, warum der IE7 da etwas 
herunterladen möchte.

Die Sache mit dem zweimaligen Refresh klingt irgendwie verdammt komisch, 
genau wie die anderen Probleme. Irgendwie bin ich ziemlich ratlos.

Kannst du mal einen (Wireshark-)Dump anhängen, wenn du die Seite remote 
aufrufst?

von Clyde (Gast)


Angehängte Dateien:

Lesenswert?

So, hier mal ein Dump. Hoffe der ist korrekt so...
Habe nun mal über meine Dyndns, über direkte Dyn-IP Eingabe und Lokal 
etwas rum gespielt.
Den Fehler mit der Datei konnte ich nicht reproduzieren...
Das mit dem Refresh liegt wohl am IE, nach Modify kann er die Seite 
nicht anzeigen, beim ersten Refresh lädt er sie wohl aus dem Cache und 
erst beim 2ten Refresh lädt er sie nochmal neu.

Leider kann ich nicht groß helfen, mit HTML setze ich mich auch erst 
frisch auseinander, gibt halt viel zu lernen...von C mal abgesehen :-)

Ich werde einfach weiter probieren, evtl. hat ja jemand ähnliche 
Problematiken. Nur mit Firefox klappt es einwandfrei...

217.236.159.139:5003 ist die Aktuelle Dyn-IP und die 192.168.178.15 im 
Dump ist lokal, nur mal zur erklärung.

Vielen Dank nochmal für die Geduld mit mir.
Gruß
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

Wo ist der uWebSrv denn jetzt genau abgestürzt? Ich sehe nur, dass du da 
ein paar mal die Seite von ihm anforderst. Und das läuft wunderbar. Wie 
geschmiert quasi ;)

Beschreib doch mal genauer was der Internet Explorer 7 macht und was du 
vorher gemacht hast. Irgendwie werde ich aus deinen Angaben bisher nicht 
schlau.

von Clyde (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

wenn ich das alles so genau wüsste...
Im anhang das eben erzeugt Dump.
Nach mikrocontroller.net eben den uWeb aufgerufen und verändert mit 
modify.
Wieder die refreshaktion.
Was man da sonst sieht, kann ich nicht "sehen".

Wie gesagt, das mit dem File speichern kam beim ersten Dump auch nicht 
und gerade auch nicht.
Komme mir gerade wie doof vor...vorallem, weil es bei ersten Dump, bis 
auf den Refresh-Akt lief.
Abgestürzt ist er mir nach meinen Modifikationen nicht mehr...

Werde gleich nochmal das Original drauf werfen und nur die IP ändern, 
wie am anfang und dann mit Shark aufzeichnen.

Gruß
Clyde

von Clyde (Gast)


Angehängte Dateien:

Lesenswert?

So, hier im Anhang, etwas länger, der Dump mit dem Zugriff IE7 auf 
Hex-Simon.
Nur IP geändert auf 192.168.178.15 auf Port 8080. Sonst nichts! 
geändert.
Keine Reaktion mehr bei IE7 und danach, versucht mit Firefox darauf zu 
zu greifen... Ohne Erfolg.

Evtl.ist das aufschlussreicher...

Auch kein blinke der Grünen LED mehr. MC scheint nun zu hängen...

Evtl. Hilfts...

von Simon K. (simon) Benutzerseite


Lesenswert?

Sehr gut, der Log ist besser.

Der Punkt, an dem der Prozessor in einer Schleife hängen bleibt 
geschieht, während er nach den 2xCRLF sucht, vermute ich mal. Oder kurz 
danach. Denn nach dem Paket mit den POST-Daten scheint der Webserver 
nicht mehr zu reagieren.

Der Fehler liegt irgendwo in dem Code, der POST Daten entgegennimmt. IE7 
scheint also irgendwo einen kleinen Unterschied in der Art, wie die POST 
Message aussieht gegenüber anderen Browsern, was ich jedoch anscheinend 
nicht beachtet habe.
Leider hab ich meinen uWebSrv im Moment nicht im betriebsfähigen Zustand 
:|

Thomas, hast du noch welche zum Verkauf? ;)

EDIT: Ich habe eine Vermutung woran es liegt: Beim IE7 ist der 
POST-Datenbereich (wo also die Information über die Pins drinsteht) auf 
zwei Pakete verteilt. Und zwar zufallsbedingt (es kommt gerade so aus). 
Mein Code geht aber davon aus, dass die kompletten POST-Daten in einem 
Paket vorliegen. Da werde ich wohl noch umstrukturieren müssen. Aber 
vorher brauche ich erstmal wieder eine funktionierende Version des 
Webservers.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Simon

Habe gerade wieder Platinen bestellt, sollten in ca. 2 Wochen da sein.

Schick mir doch noch einmal deine Adresse bitte damit ich dir einen
Bausatz schicken kann wenn wieder welche da sind. Ich habe auch keine
fertigen mehr und halt auch keine Bausätze.

Gruß
Thomas

von Clyde (Gast)


Lesenswert?

DDDAAAAANNNNKKKKKEEE!!!!
Schön, das ich doch nicht so blöd bin :-)
Hauptsache der "Fehler" wird auch für andre ausgemerzt!
Was auch immer...

Ich werde gucken, das ich den Wireshark mitlaufen lasse. in der 
"Hoffnung" das der File-Download nochmal kommt. irgendwoher kommt das ja 
auch und anderes ausser Pins ein und ausschalten mache ich auch nicht...

Gruß
Clyde

von Vajk .. (vajk)


Lesenswert?

... mal noch "so" ne Frage, der USB-Progger aus'm "shop it-wns" ist ja 
der hier: http://www.embedded-projects.net/index.php?page_id=148 - aber 
da steht nix von Pegelwandlung - also für das Projekt leider nicht 
verwandbar, oder?

von Vajk .. (vajk)


Lesenswert?

*** TUUUUUUUT *** freu ***

Geringe Anpassung am makefile UND Korrektur des Dateinamens in:
Net/TcpApps/HttpD.c und Hardware/GPIO.c auf Gpio.h - da unter Linux die 
Gross-/Kleinschreibung von Dateinamen unterschieden werden, CC = unter 
Linux keine .exe und avr-size unter Linux kennt kein -C (was das auch 
immer bedeuten soll) und das hex spielt - unter ip/8080 ansprechbar.

Allerdings führt ein modify im Brauser bei mir auch zur fehlerhaften 
Zeilenausgabe danach, geschaltet wird aber.

Der HTML-Header vor "value='0' maxlength='1' size='1'></td><td 
class='s1'> .... " fehlt dann ... probiere ichs mit opera, so kommt 
timeout - ein reload funktioniert dann wieder ...



Und jetzt eine neue Frage, wie kann ich bidirektional Daten austauschen, 
würde die 8+6 Bit gerne zur Datenübertragung nutzen. Die 
Webserverfunktionalität ist dafür wahrscheinlich nicht geeignet, oder ?


Noch eine Anmerkung - lustig die Quarzheizung ist

Und noch ein herzliches Danke an Simon, goiles kleines Teil, super 
kompakt!


LG
Vajk

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Vajk

Der Progger ist wie jeder andere verwendbar wenn man einen Pegelwandler 
(gibt es als Zubehör) dahinter hängt. Dann halt noch einen kleinen 
Adapter von 10polig auf 6polig basteln, kann man ja immer gebrauchen, 
und fertig ;)

Der Pegelwandler kann auch mit anderen Proggern genutzt werden da er 
einfach nur 5V auf der einen auf 3,3V auf der anderen Seite anpasst (und 
umgekehrt), wer oder was die 5V Signale liefert ist dem Pegelwandler 
egal solange die Belegung der 10poligen Kabel denen des 10poligem Atmel 
ISP entspricht.

Siehe 
hier:http://www.mikrocontroller.net/articles/AVR_In_System_Programmer#Pinbelegung

Gruß
Thomas

von Simon K. (simon) Benutzerseite


Lesenswert?

Danke für die Blumen :-) und auch Danke an Clyde zur Aufklärung des 
Fehlers!

Ich werde das mit Thomas mal regeln und mich dann mal an die Beseitigung 
setzen.

@Vajk: Danke für den Hinweis mit der Groß/Kleinschreibung. Ist mir 
tatsächlich nicht unter Windows aufgefallen :-) Makefile habe ich auch 
angepasst. Die -C Option von dem avr-size wird glaube ich durch einen 
Patch hinzufgefügt. Ich weiß nicht mehr genau was da ablief, aber es 
kann gut sein dass du die Option nicht hast (Die Option ermöglicht es 
Prozent-Angaben anzeigen zu lassen AFAIK). Berichtige mich, wenn dies 
nicht so ist. Der Fehler sollte aber nicht zu tragisch sein.

Zu dem Problem mit deinen "Brauser": Am liebsten wäre mir ein Hex-Dump 
(Wireshark, oder was auch immer), damit ich sehen kann, was genau in die 
Hose geht.

Danke an Alle dann nochmal :D

PS: Hat schon jemand weitere Infos bzgl. des ATMega328?

von Clyde (Gast)


Lesenswert?

bezgl. ATMega 328, meine Info vom Großhändler ist, das er erst im 3ten 
Quartal kommen soll...

von Simon K. (simon) Benutzerseite


Lesenswert?

Hallöchen,

Ich habe es doch noch geschafft behelfsmäßig einen uWebSrv 
zusammenzubauen. Zumindest hat der Behelf gereicht um den Webserver zu 
reparieren.

Auf meiner Seite ist ein neues ZIP Archiv online:
http://klinkerstein.m-faq.de/Download.php?content=MikroWebServer&dl=uWebSrv.zip

Ich habe die Struktur des HTTP Dienst etwas verändert. Unter anderem 
auch das Parsing.
Rückmeldung ob es funktioniert wäre nett :-) Und falls es das nicht tut, 
am liebsten wieder Wireshark-Berichte.

von Clyde (Gast)


Angehängte Dateien:

Lesenswert?

Hallöchen zurück :-)
So, das scheint jetzt zu funktionieren. Im Original mit geänderter IP 
auf gleichem Port.
Kein Absturz (WLAN muss ich noch probieren), beim refresh die Frage nach 
dem wiederholten sende dürfte bei POST normal sein. Prima Sache...

Ich glaube aber jetzt, das ich mit einem Persönlichen Problem komme.
In der alten Source habe ich mir das Webinterface angepasst, und damit 
klappt es nun nicht auf anhieb...
Nach "Modify" kommt nix mehr, erst nach einem Refresh.
Da ich HTML Neuling bin, habe ich evtl. was übersehen.
Im Anhang mal mein Wireshark...

von Clyde (Gast)


Angehängte Dateien:

Lesenswert?

...und hier im Anhang mal meine veränderte Source...
Ich habe das einfach von der alten HttpD rüber kopiert zur neuen...
OK, ehrlich gesagt, bin ich bei den Variablen noch nicht so 
durchgestiegen und witziger weise, klappt meine Menüveränderung jetzt 
auch nicht mehr mit Firefox...:-(

Die funktion wird übertragen und ausgeführt, aber die Seite nicht 
automatisch upgedated...

Aber wie gesagt, das Original vom Simon macht jetzt im IE bei mir keine 
Probleme mehr!

Vielen Dank,
Gruß
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

Super, dass der Originalcode erstmal funktioniert. Deine Probleme können 
durchaus davon kommen, dass ich ein bisschen an der Struktur gebastelt 
habe.
Die Warnung, bei einem Refresh nach einem POST ist völlig normal (je 
nach Browser).

Ich schaue mir deine Dateien mal bei Gelegenheit an :-)

von Simon K. (simon) Benutzerseite


Lesenswert?

Ich werde noch nicht so ganz daraus, was du vor hast. Könntest du das 
eventuell mal mit Worten beschreiben?

von Vajk .. (vajk)


Lesenswert?

Frage untergegangen:

Wie kann ich bidirektional Daten austauschen,
würde die 8+6 Bit gerne zur Datenübertragung nutzen.

Die Webserverfunktionalität ist dafür wahrscheinlich nicht geeignet, 
oder ?

von Simon K. (simon) Benutzerseite


Lesenswert?

Kommt drauf an, mit was oder wem möchtest du die Daten denn austauschen? 
Am einfachsten ist UDP zu realisieren, aber TCP geht natürlich auch.

von Vajk .. (vajk)


Lesenswert?

Kann das Modul schon UDP? Oder würde das anstelle des Webservers in dem 
Atmel passen?

von Simon K. (simon) Benutzerseite


Lesenswert?

Ja, der uip Stack unterstützt auch UDP. Für UDP ist auch ein 
"Application Hub" vorhanden im uip Ordner, wo du eine UDP Applikation 
einbauen kannst. Du kannst auch den Webserver herausnehmen dann um den 
Speicher freizukriegen.

von Clyde (Gast)


Lesenswert?

Hallo,

ich versuche es mal in Worten zu fassen.
Die ersten 10 GPIOs möchte ich nur zum Schalten nehmen, also DDR = 1 und 
dann mit den Radio-Buttons An oder Aus schalten, mit Statusmeldung.
Und die letzten 4 möchte ich als Eingänge zur Statusmeldung nutzen.

Da ich noch nicht durchgestiegen bin, wo die Variablen herkommen und 
hingehen, habe ich das versucht in HTML zu lösen.
Mit Hilfen von Google und entsprechenden HTML Kursen ;-)
Aber da stehe ich halt auch noch am Anfang, deswegen ist es für leute 
mit kenntnissen sicher recht *** ;-)
Ist halt "learning by doing" im "Try and Error" Format :-)

Mehr bei bedarf nach Feierabend...

Gruß
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

Clyde wrote:
> Hallo,
>
> ich versuche es mal in Worten zu fassen.
> Die ersten 10 GPIOs möchte ich nur zum Schalten nehmen, also DDR = 1 und
> dann mit den Radio-Buttons An oder Aus schalten, mit Statusmeldung.
> Und die letzten 4 möchte ich als Eingänge zur Statusmeldung nutzen.
>
> Da ich noch nicht durchgestiegen bin, wo die Variablen herkommen und
> hingehen, habe ich das versucht in HTML zu lösen.
> Mit Hilfen von Google und entsprechenden HTML Kursen ;-)
> Aber da stehe ich halt auch noch am Anfang, deswegen ist es für leute
> mit kenntnissen sicher recht *** ;-)
> Ist halt "learning by doing" im "Try and Error" Format :-)

Ah, Okay. Naja, das große Problem ist halt, dass du für die Sache nicht 
nur HTML brauchst, sondern auch nen Gefühl dafür haben musst, wie du 
HTML Quelltext mit den (dynamischen) Variablen ausm Code verbindest.

Bisher läuft das so, dass "%i<nn>" im HTML-Quellcode durch den Wert (0, 
1) von GpioGetPin(<nn>) ersetzt wird. "%d<nn>" durch GpioGetDdr(<nn>) 
und "%o<nn>" durch GpioGetPort(<nn>). Dafür sorgt die CopyHtmlData (oder 
so ähnlich) Funktion.
Das ist die eine Richtung.

Die andere Richtung geht über das POST Interface. Alle Elemente im 
HTML-<form> haben einen Namen und einen Wert, der per POST (also im HTTP 
Header des Browsers) in Form von "Name1=Wert1&Name2=Wert2..." an den 
uWebSrv zurückgeschickt wird, der dies wiederum wieder parst und 
"%d<nn>" in GpioSetDdr(<nn>) und "%o<nn>" in GpioSetPort(<nn>) umsetzt. 
Zu beachten ist hierbei aber, dass der POST-Parser nach einer bestimmten 
(zur Kompilierzeit festgelegten) Anzahl von Zeichen aufhört. Damit spare 
ich mir das weitere Parsen von dem HTTP Header des Browsers. (Das 
#define dazu steht in HttpD.c ganz oben irgendwo). Falls du also 
Änderungen vornimmst, musst du auch den Parameter anpassen. Die Länge 
des POST Headers kannst du mit Wireshark oder Firefox+Live HTTP Headers 
Addon herausfinden und dort eintragen.

von Clyde (Gast)


Lesenswert?

Ha, dann wird das vermutlich der punkt sein, mit dem Parser :-)
Werde ich nachher mal ausprobieren.
Danke auch für die weitere Erklärung, das hilft mir sicher sehr, denn 
ich habe mich schon gefragt, wo da die Schnittstelle ist :-)

Prima! Danke!
Ich hoffe das klappt dann, dann habt ihr ruhe vor mir ;-)

Danke!
Gruß
Clyde

von Clyde (Gast)


Lesenswert?

Hallo wieder :)
Der neue Sourcecode funktioniert auch bei IE6 auf W2K über WLAN.
Super Sache!!!

Bei meinem Persönlichem Menü hängt es zwar noch, aber die aktuelle 
Version von Simon läuft prima!!!

Wenn meine Version klappt, stelle ich sie gerne hier rein.
Falls jemand schon eine abgewandelte Vrsion hat, würde ich mich 
natürlich auch drüber freuen ;-)

Gruß
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

Clyde wrote:
> Hallo wieder :)
> Der neue Sourcecode funktioniert auch bei IE6 auf W2K über WLAN.
> Super Sache!!!

Super.

> Wenn meine Version klappt, stelle ich sie gerne hier rein.
> Falls jemand schon eine abgewandelte Vrsion hat, würde ich mich
> natürlich auch drüber freuen ;-)

Wenn du nicht weiter kommst, stell deinen bisherigen Quelltext mal rein 
;)

von Clyde (Gast)


Lesenswert?

Ja, das ist wirklich super! ;-)
Vielen Dank für die Hilfe, aber ich hänge derzeit ja nur im HTML Code 
und versuche es darüber passend zu machen.
Ich hoffe mal, das es mit Google machbar ist...
Nur etwas über HTML in verbindung mit MC´s zu finden ist schwierig ;-)

von Vajk .. (vajk)


Lesenswert?

> Nur etwas über HTML in verbindung mit MC´s zu finden ist schwierig ;-)

Kleine Info - das was der WebServer sendet ist HTML-Code - sprich eine 
ganz "normale" Seite, wie die Billionen von Seiten des Netzes, die Du 
Dir mit (vermutlich) jedem Brauser angucken kannst (typisch: Quelltext 
anzeigen).

Das Beispiel printf("Hello World") könntest Du vermutlich kennen.

Du mußt also nix anderes tun, als ein printinsnetz(Html_Code); machen.
Und eine gute Info über HTML-Code findest Du hier:

http://de.selfhtml.org/

Für ein zentriertes "Hello World" mußt Du also nix anders machen als 
folgenden Text Richtung Internet schreiben: 
printinsnetz("<html><body><center>Hello World</center></body></html>");

Am einfachsten baust Du Dir also erstmal eine Seite in normalem 
HTML-Code und überträgst das dann in die 
Textausgabe_Richtung_Internet(t).

Das nur so als Konzept/Idee/grundlegende Info - ist wirklich easy!

Viel Erfolg :-)
Vajk

Anmerkung des Verfassers:
"Brauser" ist (m)ein Scherz
printinsnetz ist eine Funktion, die den Text eben aus dem uC raussendet

Zur Verwirrung: php macht auch nix anderes, als eben programmgesteuert 
HTML-Code zu erzeugen ... mit php, könnte man auch einen 
uWebServer-Emulator schreiben ....

von Clyde (Gast)


Lesenswert?

Guten Morgen,

vielen Dank für die Ausführung.
Sowohl "Hello World" und auch Selfhtml kenne ich schon;-)
Selfhtml ist meine derzeitige Lektüre.

Mein Problem ist die einbindung der Variablen des uWeb im HTML ;-)
Und da finde ich nicht viel drüber, mal beschreibungen, die sich nicht 
umsetzen lassen und dann mal wieder aussagen, das Variablen in HTML 
nicht vorkommen sondern Javascript benötigen.
an JS will ich erstmal noch nicht, eins nach dem anderen halt.

Meine letzten Programmiertversuche sind schon fast 20Jahre her und waren 
auf nem C64 ;-) HD44780 am Userport.... lang lang ists her :-D

Gruß
Clyde

von Vajk .. (vajk)


Lesenswert?

> Mein Problem ist die einbindung der Variablen des uWeb im HTML ;-)
Was das Problem?
int uWebCounter = 7;
printf("<html><body><center>Hello World Nr. %d</center></body></html>", 
uWebCounter);
und schwupps, steht eine Variable im HTML-Code.
Oder anders gesagt, beschreibe Dein Problem ganz genau, dann kann man(n 
oder frau) auch ganz genau antworten oder Tipps geben ;-)

von Simon K. (simon) Benutzerseite


Lesenswert?

Im Prinzip stimmt das, was Vajk sagt, aber das mit printf ist natürlich 
nicht so ganz richtig ;)

Das "Verfahren" was beim uWebSrv angewandt wird, ist kein bestimmtes 
Verfahren, was man irgendwo nachlesen kann, sondern das ist von mir dort 
eingebaut worden.

Sprich: Der uWebSrv ist von mir darauf limitiert worden nur Seiten aus 
dem PROGMEM heraus zu laden. Das heißt, dass die komplette Webseite als 
Quelltext im ROM des Mikroprozessors stehen muss.
So, jetzt habe ich noch dieses besagte Verfahren eingebaut, was 
automatisch beim kopieren des Quelltextes in den uip-Buffer nach 
%-Zeichen sucht und an der Stelle das Ergebnis von den Gpio Funktionen 
einsetzt.
Das ist händisch von mir so eingebaut worden und diente mehr oder 
weniger auch nur der Demonstration als einem höheren Zweck. Was aber 
nicht daran hindern soll, den uWebSrv-HttpDaemon weiter auszubauen.

Und eben weil das Innere des Http-Daemons nur eine Demonstration für den 
uWebSrv (der nach meiner Definition nicht unbedingt einen Http-Daemon 
haben muss ;)) relativ schlecht dokumentiert ist, habe ich hier ja schon 
meine Hilfe angeboten bzgl. wie du dynamische Variablen in den Code 
einbauen willst.
Dazu wirst du nämlich nichts im Internet finden :D

von Clyde (Gast)


Lesenswert?

Hallo,
selfhtml hilft ja schon gut weiter @vajk.

Aber der uWeb mag meine
"<input type='radio' name='o00' value='1'>Ein &nbsp;<input type='radio' 
name='o00' value='0'>Aus"
Zeile nicht mehr(lädt nicht fertig), nach dem die Funktionierende Source 
kam. Vorher klappte es, mit der nicht richtig funktionierende Version. 
Das verstehe ich halt nicht ganz.

Da ich Variablenzuweisungen bisher nur als "Q=1" kenne und dies 
natürlich nicht geht, habe ich bei der Zuweisung des DDR-Wertes einfach
"<input type='hidden' name='d00' value='1'>%d00"
So wurde DDR nach dem ersten modify eingestellt und gleichzeitig durch 
das CSS markiert. Das Funktioniert auch in dem neuen Source.

Was den Parser angeht, es wird ja jetzt nicht mehr übertragen, daher 
half ein verändern des Wertes auch nicht, so meine 
erkenntnis/vermutung...

Eine Funktion mit "IP:Port:DDR:Pin" zum schalten ist sicher auch nett, 
aber da wird es mit der Statusabfrage sicher schwierig.

Wie auch immer, Deine Demonstration ist im Prinzip das, was ich brauch, 
nur halt mit Buttons, damit ich es mit einem Touchscreen einfacher habe 
;-)
halt mit Rückmeldung, was an ist und was aus ist.

Im C Code möchte ich noch nicht rumwühlen, da fehlt mir einfach die 
Ahnung. HTML sehe ich da als Leichter und für mich als Mittel zum Zweck.

Also, um es einfach fürs Verständnis zu machen :-)
Ich stelle mir ein Eingabefenster vor, wie jetzt, aber wo ich per 
"Knopf" die auf Ausgang gestellten Ports ein bzw. aus schalte und die 
auf Eingang geschalteten Ports den Zustand erkenne. Es reicht mir ja, 
wenn ich 1 und 0 mit Rot und Grün sehe :-) und die definition des DDR 
möchte ich im HTML festlegen...

So far so good...:-)

Gruß
Clyde

von Clyde (Gast)


Lesenswert?

Hallo,

könnte jemand mal die Input-Zeile mit den Radio-Buttons ausprobieren?
Ich glaube, das der "&nbsp" nicht gemocht wird, ohne klappt es 
scheinbar...


Gruß
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

Ich glaube du wirst nicht um das Ändern des Codes drumherumkommen, wenn 
du die Ausgänge einzeln schalten willst, übrigens.

Aber aus deinem letzten Post werde ich auch nicht so wirklich schlau :-) 
"&nbsp;" ist übrigens einfach nur ein Html-Spezialzeichen für ein 
Non-Breaking-Space. Also ein nicht umbrechbares Leerzeichen.

von Clyde (Gast)


Angehängte Dateien:

Lesenswert?

Hallo nochmal...

könnte jemand mal die Source im Anhang ausprobieren und mir schildern, 
was bei ihm passiert.
Das &nbsp scheint es nicht (nur) zu sein.
So, wie es jetzt ist, muss ich nach dem schalten nochmal refreshen.
Auch den Parser auf 177 zu setzen( o(nn) ist ja 2mal aufgeführt obwohl 
es ja dieselbe Variable ist) hat nichts verändert.
Evtl. den Parser noch weiter herauf setzen?

Gruß
Clyde

von Clyde (Gast)


Lesenswert?

Hat sich wohl überschnitten :-)
Ja, das &nbsp sollte jau auch ein Space in der Zeile sein ;-)

Ich hatte zu diesem Zeitpunkt nur die GPIO 00 geändert mit den 
Radio-Buttons und dann mal mit und dann ohne &nbsp probiert. Da war ich 
aber zu voreilig...
Nachdem ich die ersten 10 GPIO´s mit dem Radio-Button versehen hatte, 
stehe ich vor o.g. Problem...

Es läuft sonst, mit meinen verönderungen 100%, nur die Radio-Buttons 
werden nicht gemocht. Vermutlich, weil ich ja einmal die Input-Abfrage 
mit 1 und dann nochmal mit 0 mache um die Wahl zu haben...
Komisch das ist ;-)

Gruß
Clyde

von Simon K. (simon) Benutzerseite


Angehängte Dateien:

Lesenswert?

Clyde, schau dir mal die HttpD.c im Anhang an. Das sollte so ziemlich 
das sein, was du willst. Einziger Nachteil: Für den Status der 
Checkbuttons beim Laden der Seite musste ich Javascript einsetzen.

von Clyde (Gast)


Lesenswert?

Wow!!!
Danke!!!
So habe ich mir das gedacht :-D
Ich wollt Dich jetzt nicht mit der Umsetzung belästigen oder 
auffordern!, aber Danke!, das Du es gemacht hast

Mein Weg wäre wohl noch sehr weit gewesen...auch wenn er für 
Spezialisten wie Dich kein Problem ist ;-)

Javascript ist kein Problem, nur ICH hätte mich da jetzt noch nicht ran 
gewagt, weil ich erstmal HTML lernen möchte und ebenso auch C.
Das mit den "vormarkierten" Buttons war sogar eine Wunschvorstellung von 
mir;-)
Mal gucken, ob ich verstehen lerne, was Du gemacht hast. Eine 
Javascript-Seite habe ich schon aufgetan, die einiges beschreibt.

Mann, sie lädt sogar schnell!!!
DANKE!!! nochmals!

Prima Sache, auch wenn ich, scheinbar, recht "anspruchslos" in der 
Nutzung des uWebservers bin :-)

Gruß
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

Kein Problem, war ja nur eine Fingerübung für mich ;) Wie gesagt benutzt 
die Seite ein wenig Javascript. Das heißt u.a. dass der Start-Wert der 
Optionbuttons erst eingestellt wird, wenn die Seite komplett fertig 
geladen ist. Außerdem darf im Browser das Javascript nicht deaktiviert 
sein.

von Clyde (Gast)


Lesenswert?

Trotzdem Danke!
Ist ja nicht selbstverständlich, das sich jemand die Zeit nimmt:-)
Ich werde sicher jetzt OT, möchte aber gerne wissen, ob ich das richtig 
interpretiere und meine Leserei wirklich weiterhilft :-)

Wenn ich das richtig sehe, dann werden erst alle 10 Werte durch die 
Schleife eingelesen wenn die Seite geladen wird(onload) was Du ja im 
Prinzip oben geschrieben hast und dann verglichen in der "If Else".

Die zu lesenden Variablen sind mit var definiert, das heisst, wenn ich 
jetzt aller 14GPIOS zum schalten nehmen will, müsste ich diese in die 
var output setzen und die Schleife von 0 bis 13 zählen lassen, richtig?
Und natürlich die Tabelle entsprechend ändern.

Was mich etwas stutzig macht, ist die IF-Sache...
Wenn i ==1 dann o0+i gleich 0 aber ansonsten(else) o0+i gleich 1?
Ich hätte jetzt eher gedacht, 1=1 und 0=0 und dementsprechend dann die 
Buttons "ge"checked...

OK, mit Javascript hatte ich noch nix am Hut aber das wäre jetzt mein 
Verständnis gewesen :-) und mit document.irgendwas kann ich auch noch 
nix anfangen...

Gruß
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

Clyde wrote:
> Was mich etwas stutzig macht, ist die IF-Sache...
> Wenn i ==1 dann o0+i gleich 0 aber ansonsten(else) o0+i gleich 1?
> Ich hätte jetzt eher gedacht, 1=1 und 0=0 und dementsprechend dann die
> Buttons "ge"checked...

Nene, so einfach geht das nicht. mit "o0+i" bastele ich den namen der 
Checkboxen zusammen und hol mir eine Javascript Referenz per 
document.getElementsByTagName(...). Diese Funktion wiederum liefer ein 
Array (Es kann mehrere Elemente mit dem gleichen Namen geben).. Und dann 
wird entweder das erste Element mit dem Namen (On Check) oder das zweite 
(Off Check) entsprechend gesetzt.

von Vajk .. (vajk)


Lesenswert?

auch wenns offtopic ist, welche
3V3-Programmer
nutzt ihr, mit USB-Schnittestelle und avrdude-passend und/oder 
ponyprog-passend? Und schnell eben?

von Simon K. (simon) Benutzerseite


Lesenswert?

AVR ISP mkII

von Vajk .. (vajk)


Lesenswert?

Simon K. wrote:
> AVR ISP mkII

tnx ... wieso verkauft Tanter Reichelt den für 280 Euro, wenns den bei 
embedit für 45 Euro gibbet - der ist doch identisch, oder?
Und der "USBprog - Open-Source" würde mir besser gefallen, aber geht 
wohl nicht ohne Adapter ...

Oder?

von Simon K. (simon) Benutzerseite


Lesenswert?


von Vajk .. (vajk)


Lesenswert?

Simon K. wrote:
> Der ist das.
...
> 280€ kostet vermutlich das JTAG ICE mkII
Ah, Danke - wow Tante R hat eine "nichtverfügbarkeitsinformation" - wow

LG
Vajk

von Vajk .. (vajk)


Lesenswert?

@Clyde - könntest DU Dich hier mal anmelden, damit man Dir auch ein PN 
schicken kann.
Du hast den CrispAVR-USB - funktioniert der auch mit Spannungserkennung, 
wenn VCC auf der ISP nicht beschaltet ist?

@Simon K - sie selbe Frage, was wenn VCC nicht beschaltet ist?

von Simon K. (simon) Benutzerseite


Lesenswert?

VCC am ISP Stecker ist beim AVR ISP mkII (und eigentlich allen anderen 
Atmel Programmiergeräten) unbedingt nötig, da diese einen 
Spannungswandler beinhalten und diese VCC-Spannung die Spannung der 
Zielschaltung vorgibt in der programmiert werden soll.

Billige(re) Programmiergeräte haben meistens keinen Pegelwandler drin 
und programmieren fest mit 5V oder 3,3V

von Vajk .. (vajk)


Lesenswert?

Danke für die Info - also dann doch den USBprog mit separatem 
Pegelwandler ... hab hier 'ne Platine, an der ist der ISP ohne VCC.

von Clyde H. (clyde)


Lesenswert?

Hallo,

nun bin ich auch angemeldet. Hätte ich eh gemacht, hier gefällts mir ;-)
Ich kann Die leider nicht sagen, ob er auch ohne VCC auf dem ISP 
funktionier...ist mein Erster Atmel mit dem 6pol. ISP
Bei meinem Ersten "Projekt" hatte ich noch nen 5pol. Parallel adapter, 
passte auch da 5Volt.

Gruß
Clyde

von Clyde H. (clyde)


Lesenswert?

Ist ja richtig ruhig geworden hier :-)
Ist denn keiner mehr an dem uWeb dran?

Gruß
Clyde

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Ich warte noch auf den mega328 ;) Bei Digikey ist er gelistet, wird aber 
nur auf Anfrage geordert (lagerbestand 0). Ist der dann schon verfügbar 
oder einfach nur schon mal privisorisch gelistet?

von Clyde H. (clyde)


Lesenswert?

Tja, ich habe bei unserem Großhändler auch mal angefragt, die sagten mir 
was vom 3ten Quartal, wo der 328 kommen soll...
Evtl. würde ich mir nämlich nen 2ten uWeb zulegen und dann mit dem 328 
ausstatten :-D

von Simon K. (simon) Benutzerseite


Lesenswert?

Clyde H. wrote:
> Tja, ich habe bei unserem Großhändler auch mal angefragt, die sagten mir
> was vom 3ten Quartal, wo der 328 kommen soll...
> Evtl. würde ich mir nämlich nen 2ten uWeb zulegen und dann mit dem 328
> ausstatten :-D

Hoffen wir es :D Ich warte auch noch auf den Mega328. Eventuell gibt es 
dann eine SD-Kartenerweiterung. Versprechen kann ich aber nichts ;)

von Clyde H. (clyde)


Lesenswert?

Hey, SD-Karte hört sich gut an, vor allem, wenn die Website dort 
abspeicherbar ist:-) Dann flashe ich den Speicher vom ATM168 nicht noch 
kaputt bei meinen versuchen :-D

von Vajk .. (vajk)


Lesenswert?

SD-Karte .. warum nicht eine mit USB-Stick evtl. via vinculum?

von Simon K. (simon) Benutzerseite


Lesenswert?

Ich hab heute ein wenig mit WANem herumgespielt und mal den Webserver 
auf verlorene Pakete und doppelte Pakete getestet.
Dabei ist jetzt die Version 1.2 entstanden, wo die HTTP Applikation in 
Sachen Retransmit verbessert wurde. Der Webserver ist nun also komplett 
TCP konform.

http://de.klinkerstein.m-faq.de/index.php/MicroWebServer

von Clyde H. (clyde)


Lesenswert?

Ok, ich mal wieder :-)
Was verstehe ich jetzt unter TCP konform?
Und, was mir wichtig ist ;-) kann ich die abgewandelte HttpD.c von Dir 
einfach in 1.2 übernehmen?

Gruß
Clyde

PS: Habe momentan kein Programmierkabel da...

von Simon K. (simon) Benutzerseite


Lesenswert?

Clyde H. wrote:
> Ok, ich mal wieder :-)
> Was verstehe ich jetzt unter TCP konform?
Das heißt prinzipiell, dass der uWebSrv jetzt ein vollkommen konformer 
TCP Server ist. Genau so, als würdest du einen Apache Webserver 
ansprechen, wie der, der mikrocontroller.net hostet. Nur langsamer.

> Und, was mir wichtig ist ;-) kann ich die abgewandelte HttpD.c von Dir
> einfach in 1.2 übernehmen?
Die HttpD._c musst du in HttpD.c umbenennen (und die alte HttpD.c 
löschen oder so). Dann hast du die Webapplikation mit den 10 Ausgängen 
und 4 Eingängen wieder.

von Der T. (Gast)


Lesenswert?

..wo hast du denn konkret rumgeschraubt? :-)

von Simon K. (simon) Benutzerseite


Lesenswert?

Ich hab uip_rexmit() implementiert. Da stand vorher nur uip_abort() drin 
;) Jetzt wird korrekterweise das zuletzt ausgegebene Paket erneut 
gesendet. (So wie der uip-Stack es verlangt)

von Manuel K. (mkauf)


Lesenswert?

moin Simon,

hast du schon deinen 328 schon bekommen ? Hab meine schon 5 Monate 
zuhause liegen und noch nicht dazugekommen was zu machen :/. Tja 
beruflich geht einfach vor g

Aber wenn du die SD Karte einbindest .. muss ich es dann doch auch 
wieder mal Angehen gg

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Du hast nicht welche zu viel? :D

Ich würd ja auch was dran machen wenn ich endlich 328er hätte ;)

von Manuel K. (mkauf)


Lesenswert?

hehe ;) hab zwar 10 stück aber zuviele kann man nie haben gg (sry) ^^

die hab ich direkt von atmel bekommen ;) musst auch noch unterschreiben 
und blah (hatten irgendwie vertriebsprobleme damals gg) aber naja hab 
se bekommen gehabt so garnoch recht günstig.

von Simon K. (simon) Benutzerseite


Lesenswert?

Manuel Kauf wrote:
> moin Simon,
>
> hast du schon deinen 328 schon bekommen ? Hab meine schon 5 Monate
> zuhause liegen und noch nicht dazugekommen was zu machen :/. Tja
> beruflich geht einfach vor *g*

Woher hast du die denn, wenn man fragen darf? ;)

EDIT: Grad gelesen. Wie hast du die denn bei Atmel bestellt? per EMail? 
Hm..

von Manuel K. (mkauf)


Lesenswert?

hehe ne ich hab 2 leute bei atmel einen in vertrieb deutschland und 
einen in norwegen (hab beruflich mit denen zu tun) und ja g.

Brauchst einen Simon ?

von Simon K. (simon) Benutzerseite


Lesenswert?

Manuel Kauf wrote:
> hehe ne ich hab 2 leute bei atmel einen in vertrieb deutschland und
> einen in norwegen (hab beruflich mit denen zu tun) und ja g.
>
> Brauchst einen Simon ?

Auf kurz oder lang habe ich mir den schon ausgesucht. Die nächste 
Version des uWebSrvs soll mit dem Mega328 bestückt werden. Aber was 
nützt mir ein Mega328 wenn der Rest den noch nicht bekommen kann ;)

von Manuel K. (mkauf)


Lesenswert?

wie rest noch nicht bekommen kann ? gg

was fehlt den zum glück ?

von Simon K. (simon) Benutzerseite


Lesenswert?

Manuel Kauf wrote:
> wie rest noch nicht bekommen kann ? *gg*
>
> was fehlt den zum glück ?

Na im Laden ist er noch nicht erhältlich. Und ich glaub nicht jeder hat 
so einen Draht zu Atmel wie du ;)

von Manuel K. (mkauf)


Lesenswert?

noch nicht ? g

öhm umguck *gg*

naja wie gesagt könnte dir einen zur Verfügung stellen wenn du magst ;)

wie gesagt .. hab die teile schon 5monate rumliegen hab ma kurz getestet 
soweit fein aber halt keine zeit :/ deswegen wenn du da etwas zeit 
hättest und weiter basteln würdest könntest da schon einen ham ;)

von Clyde H. (clyde)


Lesenswert?

Huhu,

ich wieder mit meinen Problemen...:-(
Ich hänge wohl wieder am Parser...
Ich möchte gerade 9 Outputs und 5 Inputs generieren.
Die Tabellenänderung inkl. der abänderung der var output sowie 
document.elements... und der //set input/output war soweit kein Problem 
und der neue Input funktioniert auch.
Aber nun bleibt die Seite beim laden wieder hängen... Anderungen im 
define PARSEBYTES bringen nix... die Daten, die mir wireshark ausgibt 
helfen nicht weiter...

Übersehe ich da was, was ich noch mit ändern muss?
Ich versuche zwar en Weg im Code nachzuvollziehen, aber das klappt 
nicht...

Über Hilfe wäre ich wie immer sehr Dankbar!
Ich will ja nicht immer nerven, wenn ich mal was ändere...aber leider 
komme ich gerade nicht drum rum...

Gruß
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

Häng mal deine HttpD.c an.

von Clyde H. (clyde)


Angehängte Dateien:

Lesenswert?

Hallo,

hier mal im Anhang.
Die Parse Bayes habe ich mal auf 59 stehen lassen, probierte Werte 
anhand Wireshark waren 54, 60, 62(das waren die kleinsten Werte die er 
anzeigte) habe ich probiert, ohne Erfolg.

Der neue Eingang (GPIO09) funktioniert, bei aktivierung eines Ausgangs 
erfolgt auch eine, aber die Seite bleibt im Ladevorgang hängen.

Was übersehen ich?

Danke und Gruß
Clyde

von Simon K. (simon) Benutzerseite


Angehängte Dateien:

Lesenswert?

Im Anhang siehst du, wo du den Wert für die Anzahl POST-Request Daten 
ablesen musst.

Im "richtigen Leben" parst der Server diese Angabe ("Content-Length") 
und weiß dann bescheid, wie lange er parsen muss. Aber einen weiteren 
Parser für das Parsen der HTTP-Header Daten habe ich noch nicht 
eingebaut. Eventuell später mal.

Trägst du oben folgendes ein:
1
#define PARSEBYTES      53
funktionierts :-)

von Clyde H. (clyde)


Lesenswert?

Et funzt :-D
Danke!
zuerstmal habe ich nach den falschen Werten geguckt in Wireshark und 
hatte meinen Port nicht bei HTTP mit angegeben
(Du nutzt ja den 8080, ich nutze ja nen anderen...)
und somit kam bei mir natürlich auch keine entsprechende Meldung... :o)

Meine Versuche, am Anfang immer 1 Byte weniger bei Parsebytes, habe ich 
bei 54Bytes aufgegeben und bin dann erst zu wireshark :-) ein Byte 
weniger und es hätte funktioniert ;-)

Das mit dem Parsen habe ich noch nicht begriffen, aber das wird sicher 
noch...

Was anderes zwischendurch, warum hast Du eigentlich jetzt überall im 
HTML-Code einen Backslash?

Gruß
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

Clyde H. wrote:
> Das mit dem Parsen habe ich noch nicht begriffen, aber das wird sicher
> noch...
Ganz einfach. Bei dem POST-Request (wo die Eingabemaske an den uWebSrv 
übertragen wird) gibts eine bestimmte Syntax (auch zu sehen oben im 
Screenshot) wie die Ausgangseinstellungen übertragen werden. Diese muss 
einfach nur durchlaufen werden. Allerdings lässt sich (ohne das parsen 
der Content-length im HTTP Header) die Länge der vom Browser 
übertragenen Daten nicht bestimmen, sodass man diese Fix angeben muss. 
Sprich nach x Byte hört der Parser auf die Daten vom Browser 
durchzugehen.

> Was anderes zwischendurch, warum hast Du eigentlich jetzt überall im
> HTML-Code einen Backslash?
Das sind C-Escape Sequenzen. Wenn man ein Anführungszeichen in einem 
String verwenden möchte (der ja wiederum wieder in Anführungszeichen 
eingebettet ist), dann muss man diesen escapen. Und das geht mit einem \ 
davor.

http://de.wikipedia.org/wiki/Escape-Sequenz

von Clyde H. (clyde)


Lesenswert?

Ahja, jetzt Ja...:-)
Vielen Dank!
Also entspricht 1 GPIO = 6 Byte bei der Übertragung wegen "&o08=0"=6 
Zeichen á 1 Byte...logisch, wenn man es weiß :o)

Das mit dem Escape ist mir zwar noch nicht begegnet, aber ich stehe ja 
am Anfang. Vielen Dank für den Link!

Gruß
Cylde

von Friedo (Gast)


Lesenswert?

Hallo zusammen,

ich wollte mich auch mal zu Wort melden und über meine Erfahrungen mit 
dem MicroWebServer von Simon berichten. Da ich mich schon länger 
hobbymäßig mit den AVR's beschäftige, fand ich die Möglichkeit 
faszinierend, endlich über Ethernet mit dem Mikrocontroller Daten 
austauschen zu können. Ich beobachte dieses Projekt hier im Forum schon 
einige Zeit, bin aber erst jetzt dazu gekommen den Webserver selbst 
aufzubauen. Die Platine und die meisten Bauteile habe ich von IT-WNS, 
sprich Thomas Heldt (Lob übrigens, an Samstag bestellt, am Dienstag war 
alles im Briefkasten, Preise sind auch gut).
Also bei mir hat der Webserver auf Anhieb funktioniert (Fast jedenfalls, 
beim ersten Mal hatte ich vergessen die IP-Adresse an mein Netzwerk 
anzupassen). Wenn man das AVR-Studio 4 mit installiertem WinAVR benutzt, 
kann man die Sourcen von Simon Kueppers ohne Anpassungen sofort 
fehlerfrei übersetzen. Jetzt muß ich mal sehen, was ich damit anfangen 
kann. Vielleicht berichte ich später noch mal über meine Anwendungen 
(Viel Platz ist ja im Speicher nicht mehr frei, da muß man wohl irgendwo 
kürzen).
Ein paar Worte muß ich noch zu den dauernden Anfragen hier wegen dem 
passenden Programmiergerät loswerden. Ich nehme an, daß es allgemein 
bekannt ist, aber weil es hier noch nie gesagt wurde, möcht ich noch 
erwähnen, daß es auch eine kostenlose Möglichkeit gibt um das Hex-File 
in den AVR zu bekommen. Einige Neulinge wissen es vielleicht noch nicht 
und die Kosten für das Programmiergerät schrecken dann ab.
Ich benutze von Anfang an PonyProg2000 von Claudio Lanconelli zum 
programmieren der AVR's (http://ponyprog.sourceforge.net). Als Adapter 
benutze ich die Einfachstversion, bestehend aus 3 Wiederständen und 6 
Dioden, an der Seriellen Schnittstelle des PCs. Das funktioniert auch 
mit dem MicroWebServer bei einer Versorgungsspannung von 3,3 Volt (die 
Spannung der Seriellen PC-Schnittstelle wird mit den Dioden auf die 
Versorgungsspannung der Schaltung begrenzt).

Das war's erst mal,
Friedo

von Vajk .. (vajk)


Lesenswert?

@Friedo "Jetzt muß ich mal sehen, was ich damit anfangen kann."

Also z.B. Steckdose übers Netz steuern von PC und Co, Klingesignale aufn 
PC umleiten, Rasensprenger, Ideen gibts viele. ...

von Dieter O. (dot4net)


Lesenswert?

Hallo zusammen,

vor kurzem habe ich mir den uWebServer von Simon Küppers besorgt.
Nach dem Zusammenbau hat alles sofort funktioniert.
Simon hat in seiner Beschreibung die folgende MAC-Adresse
verwendet: 00:03:6F:55:1C:C2

Meine Fragen hierzu:
Wie kommt man zu der MAC-Adresse?
Gibt es für private Aktivitäten einen freien Adressbereich?

Für zahlreiche Infos wäre ich dankbar!

Gruß

Dieter

von Simon K. (simon) Benutzerseite


Lesenswert?

Dieter Otterbach wrote:
> Hallo zusammen,
>
> vor kurzem habe ich mir den uWebServer von Simon Küppers besorgt.
> Nach dem Zusammenbau hat alles sofort funktioniert.
Freut mich, schön!

> Simon hat in seiner Beschreibung die folgende MAC-Adresse
> verwendet: 00:03:6F:55:1C:C2
>
> Meine Fragen hierzu:
> Wie kommt man zu der MAC-Adresse?
> Gibt es für private Aktivitäten einen freien Adressbereich?

Die MAC-Adresse ist (weitgehend) zufällig gewählt. Einen offiziellen 
privaten Adressbereich gibt es nicht, da es aber diese MAC Adresse in 
meinem Netzwerk noch nicht gibt und das Netzwerk stark örtlich begrenzt 
ist (nur bei mir Zuhause), sollte es da (rechtlich als auch technisch) 
keine Probleme geben.

Es gibt aber ein wenig zu beachten, bei der MAC Adresse: 
http://de.wikipedia.org/wiki/MAC-Adresse#Aufbau

von Jochen S. (steinmann)


Lesenswert?

Hallo zusammen,

ich habe auch so einen kleinen Webserver von Simon, nun wollte ich eine 
UDP Application einbauen und dafür den ganzen TCP-Kram ausbauen, nur 
irgendwie blicke ich noch nicht so ganz durch den Code durch. Daher 
meine Frage, gibt es schon irgendwen, der erfolgreich eine 
UDP-Application eingebaut hat, bzw. gibt es ein einfaches Programm, 
welches eine UDP-Application laufen lässt. Einegntlich brauche ich auch 
keinen Application Hub oder so, da ich nur UDP-Pakete empfangen will.

Ach so, nur falls die Frage aufkommt, warum ich das machen möchte, ich 
würde gerne den Webserver in einen Artnet-node umfunktionieren, d.h. die 
Ausgänge per Netzwerk-DMX zu steuern.

Mit freundlichen Grüßen

Jochen

von Clyde H. (clyde)


Lesenswert?

Hallo und Guten Morgen,

nach einer kleinen Pause, will ich nun auch weiter machen.
Im Gegensatz zu Jochen, möchte ich allerdings den ganzen UDP-"Kram" 
rauswerfen und nur TCP/IP nutzen inkl. Webinterface.
In der Hoffnung doch einiges an Speicher frei zu räumen, da ich schon 
bei knapp 95% bin :-)

Ich konnte es noch nicht probieren und einfach die Dateien rauswerfen um 
zu sehen ob der uWeb dann noch läuft...

Da ich mit dem ATM18 Projekt von Elektor jetzt ein wenig am lernen bin, 
möchte ich versuchen gewisse Dine in den uWebServer einzubinden,
zum Beispiel die 2-Draht-Ansteuerung von 8 Relais. Würde Ports sparen 
für andere Dinge.

Gruß
Swen

von Simon K. (simon) Benutzerseite


Lesenswert?

Jochen S. wrote:
> [UDP Applikation bauen]

Hallo Jochen, entschuldige die späte Antwort. Die TCP Applikation kannst 
du im Prinzip relativ einfach ausbauen.

-In Net/uip/uip_TcpAppHub.h die folgenden Zeile löschen:
1
#include "../TcpApps/HttpD.h"
2
...
3
  struct tHttpD HttpDSocket;
4
...

-In Net/uip/uip_TcpAppHub.c die folgenden Zeilen löschen:
1
  HttpDInit();
2
...
3
    case (HTONS(PORT_HTTPD)):
4
      HttpDCall(uip_appdata, uip_datalen(), &uip_conn->appstate.HttpDSocket);
5
    break;

-HttpD.* aus dem Projekt entfernen. Nun sollte keine TCP Applikation 
mehr mitkompiliert werden

Um UDP Applikationen einzubauen kannst du am besten die 
uip-Dokumentation konsultieren. Da steht, was für Funktionen gebraucht 
werden um ankommende Pakete entgegenzunehmen. Diese Funktion müsste dann 
im Application Hub aufgerufen werden (nachdem der Zielport als passend 
ermittelt wurde).

von Simon K. (simon) Benutzerseite


Lesenswert?

Clyde H. wrote:
> Hallo und Guten Morgen,
>
> nach einer kleinen Pause, will ich nun auch weiter machen.
> Im Gegensatz zu Jochen, möchte ich allerdings den ganzen UDP-"Kram"
> rauswerfen und nur TCP/IP nutzen inkl. Webinterface.
> In der Hoffnung doch einiges an Speicher frei zu räumen, da ich schon
> bei knapp 95% bin :-)

Was heißt "ganzer UDP Kram"?
Das wird nicht viel bringen, da der UDP Kram aus einer leeren Funktion 
besteht.
Wie auch immer: Du kannst in uip/uipopt.h UDP ausschalten und alle 
Referenzen (#includes usw) auf den uip_UdpAppHub löschen und diese 
Dateien aus dem Projekt entfernen.

von Clyde H. (clyde)


Lesenswert?

Hast ja recht, leider...
Bringt nicht viel...
Naja, der 328 kommt gewiss :-D

von Midni M. (midni)


Lesenswert?

Ich wollte mir einen Webserver basteln habe aber keinen Übertrager.
Könnt ihr mir helfen.

Welchen Impulsübetrager nehmt ihr ?
Gibt es Alternativen?
Gibt es so etwas bei Farnell(de.farnell.com)?

von Pete K. (pete77)


Lesenswert?

Ich nehme einen Erni Magjack mit eingebautem Übertrager.

von Midni M. (midni)


Lesenswert?

Gibt es auch externe Übersetzer?

von Stephan (Gast)


Lesenswert?


von Jörg (Gast)


Lesenswert?

Hallo,
habe den (Web-)Server ohne HTTP am Laufen, d.h. nur die TCP/IP-Schicht.
Ich glaube, dass ich so bei 65% liege, habe also Luft. Die ganze 
html-Beschreibung ist wohl sehr speicherhungrig.

Eigentlich wollte ich vielleicht noch weitere Bausätze bestellen.
Aber in dem Shop ist dieser aber ausverkauft.
- Gibt es bald wieder den Bausatz?
- Vielleicht mit dem 328?

Gruß
Jörg

von Simon K. (simon) Benutzerseite


Lesenswert?

Jörg wrote:
> Hallo,
> habe den (Web-)Server ohne HTTP am Laufen, d.h. nur die TCP/IP-Schicht.
> Ich glaube, dass ich so bei 65% liege, habe also Luft. Die ganze
> html-Beschreibung ist wohl sehr speicherhungrig.
>
> Eigentlich wollte ich vielleicht noch weitere Bausätze bestellen.
> Aber in dem Shop ist dieser aber ausverkauft.
> - Gibt es bald wieder den Bausatz?
> - Vielleicht mit dem 328?
>
> Gruß
> Jörg

Hallo Jörg, danke für den Hinweis. Ich werde mich mal mit dem Thomas in 
Verbindung setzen.

Der 328 ist zum Glück Pinkompatibel zum 168. Also müsste nur dem Bausatz 
der Mega328 hinzugefügt werden. Ich werde das sofort veranlassen, wenn 
er verfügbar ist :D



Wenn ich einen Bausatz mit dem 328 besitze, werde ich auch meine kleine 
Erweiterungsplatine vorstellen mit Micro-SD-Kartenslot und FT232 USB 
Adapter.

von Vajk .. (vajk)


Lesenswert?

Hallo Simon

> Wenn ich einen Bausatz mit dem 328 besitze, werde ich auch meine kleine
> Erweiterungsplatine vorstellen mit Micro-SD-Kartenslot und FT232 USB
> Adapter.

die Variante mit uSD-SLot würde mich schon jetzt sehr interessieren, da 
ich bis heute z.B. den Webserver mit Karte nicht zum Laufen gebracht 
habe ... wie geht das zuverlässig?
LG
Vajk

von Simon K. (simon) Benutzerseite


Lesenswert?

Vajk .v.i. wrote:
> die Variante mit uSD-SLot würde mich schon jetzt sehr interessieren, da
> ich bis heute z.B. den Webserver mit Karte nicht zum Laufen gebracht
> habe ... wie geht das zuverlässig?

Wie meinst du das? Welcher Webserver? Bisher habe ich die SD Karte noch 
nicht angesprochen, da mir etwas Programmspeicher für einen 
SD-Kartentreiber und eine FAT-Implementierung fehlt. Wenn das 
funktioniert, soll der Webserver Dateien von der Micro-SD Karte öffnen 
können.
Das sollte eigentlich sehr zuverlässig arbeiten. Siehe Webserver von 
Ulrich Radig und diversen anderen, die hier mit SD Karten arbeiten.

Zum Thema *Verfügbarkeit*: Ich habe soeben erfahren, dass Thomas zur 
Zeit körperlich angeschlagen ist und deswegen diese Woche noch nicht zu 
erreichen ist. Hoffen wir alles gute :-)

von Vajk .. (vajk)


Lesenswert?

> Wie meinst du das? Welcher Webserver? Bisher habe ich die SD Karte noch
> nicht angesprochen, ...
na ich meinte genau das Teil (die mit der ISA-Netzwerkkarte-Variante) 
von U.R. ich hab das mal versucht nachzubauen, mit einer SD-Karte hat es 
bei mir nicht geklappt. Hatte mir sogar dann extra die Kontaktiereinheit 
gekauft, un Kontaktschwierigkeiten auszuschließen.

von Simon K. (simon) Benutzerseite


Lesenswert?

Vajk .v.i. wrote:
>> Wie meinst du das? Welcher Webserver? Bisher habe ich die SD Karte noch
>> nicht angesprochen, ...
> na ich meinte genau das Teil (die mit der ISA-Netzwerkkarte-Variante)
> von U.R. ich hab das mal versucht nachzubauen, mit einer SD-Karte hat es
> bei mir nicht geklappt. Hatte mir sogar dann extra die Kontaktiereinheit
> gekauft, un Kontaktschwierigkeiten auszuschließen.

Das wird dann entweder am Pegelwandler oder an der Software liegen. 
Roland Riegel hat ein paar Sources für SD Karte und FAT parat.

von Ralf H. (heschdy)


Lesenswert?

Wenn Interesse besteht würde ich eine Bestellung von Bausätzen 
organisieren. solange natürlich keiner etwas dagegen hat. (Thomas, 
Simon)

von Simon K. (simon) Benutzerseite


Lesenswert?

Inwiefern organisieren? Ich denke nächste Woche ist Thomas wieder dabei. 
Benötigt jemand den Bausatz so schnell so dringend?

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Der mega328 ist außerdem jetzt bei digikey verfügbar, leider in für 
bastler unerreichbaren Mindestmengen ;)

Vielleicht kann CSD ja was besorgen?

von Jupp (Gast)


Lesenswert?

>Vielleicht kann CSD ja was besorgen?

Dann solltest du CSD fragen.

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Jupp ist heute ja mal wieder ganz gut drauf ^^

Das ganze war als Information für jedermann den es interessiert gedacht, 
für mich allein wird CSD garantiert keine 500+ controller bestellen wenn 
ich nur einen benötige, wenn jedoch größeres Interesse besteht (was ich 
vermute) dann wird CSD wohl mal ne Ladung bestellen.

Und: Ich werde bei zeiten auch mal nachfragen, nur ist fahr ich morgen 
früh für etwa ne Woche weg, also wirds bei mir wohl etwas später ;)

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

Hallo alle zusammen,

leider lag ich ein paar Wochen im Krankenhaus und konnte daher nicht 
reagieren, die Bausätze wird es in ca. 3 Wochen, sobald die RJ45 Buchsen 
wieder lieferbar sind, wieder geben. Aktuell noch mit ATMEGA168 weil 
nirgendwo anständige kleine Mengen des 328P verfügbar sind.

Auch für uns sind 500 Stück (Digikey) oder 1000 Stück (Distributor in D) 
nicht sinnvoll sich auf Lager zu legen.

Sollte es in D den ATMEGA328P irgendwann und irgendwo mal in kleinen 
Stückzahlen geben wird es den Bausatz mit diesem MC geben.

Aktuell bin ich noch dran hier alles aufzuarbeiten, auch kann ich leider 
noch nicht so wie ich will daher dauert alles etwas länger :(

Auf jeden Fall wird es die Bausätze wieder bei IT-WNS geben, versprochen 
;)

Gruß
Thomas

von Roland R. (roland) Benutzerseite


Lesenswert?

Simon K. wrote:
> Roland Riegel hat ein paar Sources für SD Karte und FAT parat.

Wenn ich hier schon genannt werde, darf ich vielleicht kurz auf mein 
anderes Projekt hinweisen: mega-eth. Dort habe ich einen Webserver 
implementiert, der auf eine SD-Karte zugreift und relativ einfach 
erweiterbar ist, auch für Steueranwendungen über HTTP/HTML. Allerdings 
ist die Hardware deutlich aufwändiger und hat in der Folge größere 
Abmessungen als der hier diskutierte Mikro-Server von Simon.

Beitrag "Erweiterbares Ethernetboard mit MMC/SD-Slot und USB"

Gruß,
Roland

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

Hallo alle zusammen,

der Bausatz kann jetzt wieder bei IT-WNS bestellt werden, die 
Auslieferung erfolgt in ca. 3 Wochen wenn die neuen Platinen da sind. 
Aktuell wird der Bausatz noch mit dem ATMEGA168 ausgeliefert, also 
passend zur aktuellen Software.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

Hallo alle zusammen,

den Bausatz von Simons Webserver gibt es ab sofort wieder im Shop bei 
IT-WNS.

von Jochen S. (steinmann)


Lesenswert?

Hallo zusammen,

ich habe jetzt endlich mal zeit gefunden um mich etwas in UDP mit dem 
uIP hineinzufinden. Allerdings will der nicht so wie ich :-(
Ich will einfach nur UDP Pakete senden, das Empfangen brauche ich im 
Moment nicht. Nur wenn ich direkt in der Hauptschleife meine Funktion 
aufrufe kommt irgendwie nichts an.

Hier zur Verdeutlichung noch etwas Code.
main.c
1
while (1)
2
3
  {  
4
    udp_out();
5
    uip_len = 0;
6
    uip_len = Enc28j60Receive(uip_buf);
wobei udp_out meine function ist und so aussieht:
1
void udp_out(){
2
  static struct uip_udp_conn *sub_conn = NULL;
3
  char *subdata;
4
  uip_ipaddr_t ipaddr;
5
  uip_ipaddr(ipaddr,192,168,0,100);  // Server
6
  sub_conn = uip_udp_new(ipaddr, 124);  // new connection
7
  subdata = (char *)uip_appdata;
8
  memcpy_P (subdata, UDP_DATA, sizeof(UDP_DATA));
9
  uip_udp_send (sizeof(UDP_DATA));
10
  uip_udp_periodic_conn(sub_conn);
11
  uip_arp_out();
12
  Enc28j60Transmit(uip_buf, uip_len);  // Transmit packet
13
  uip_udp_remove(sub_conn);
14
}

Ich hoffe irgendwer von euch hat noch ein Paar Ideen, wie ich einfach 
nur UDP senden kann.

MfG
Jochen

von Clyde H. (clyde)


Lesenswert?

Hallo zusammen,

ich muss mich mal wieder melden. nach längerer Ruhezeit, will ich 
weitermachen.
Leider habe ich, obwohl ich lange Zeit nichts gemacht habe, mit 
folgender arnung zu tun...

../Net/uip/uip_arp.c: In function 'uip_arp_update':
../Net/uip/uip_arp.c:160: warning: 'tabptr' may be used uninitialized in 
this function
../Net/uip/uip_arp.c: In function 'uip_arp_out':
../Net/uip/uip_arp.c:356: warning: 'tabptr' may be used uninitialized in 
this function


Ich habe im moment keine Ahnung, warum diese kommt und wie schwerwiegend 
diese ist..

Kann mir bitte jemand was dazu sagen?

Gruß
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

Clyde H. wrote:
> ../Net/uip/uip_arp.c:356: warning: 'tabptr' may be used uninitialized in
> this function
> Kann mir bitte jemand was dazu sagen?

Die Warnung ist in diesem Falle gefahrenlos, auch wenn nicht wirklich 
schön. Sie ist Teil des uip Stacks.

von Clyde H. (clyde)


Lesenswert?

Vielen Dank für die prompte Antwort!

Dann will ich mal hoffen, das es keine weiteren Probleme macht.

Eine weitere Frage hätte ich noch :-)

Ich habe vor, den uWebServer als Webinterface über Uart zu verwenden.
Wie stehen meine Chancen bezgl. Flashspeicher und 
realisierungsmöglichkeit?

Mein Vorhaben ist, das der uWebServer über den UART einen String mit 
Zeit und Temperaturwerten empfängt und im Webinterface ausgibt und 
umgekehrt auch ein paar Steuersignale über den Uart sendet.
Der Sender/Empfänger ist ein Mega88(die Sache funktioniert schon prima 
mit dem T6963 Code von Dir Simon) und soll nun als weitere Schnittstelle 
den uWebServer bekommen.

So läuft es bis jetzt:
Mega88 nutzt Hardware UART und der Mega168 die Software-UART von 
Roboternetz.

Mega88 -> Daten -> Mega168 mit T6963
Mega168 -> Steuerbefehle -> Mega88
(Die Kommunikation läuft bisher einwandfrei inkl. 1Wire DS1820 und 
DCF77)

Der uWebServer soll im Prinzip parallel zum Mega168 (und seinem T6963) 
geschaltet werden, so das der uWebServer alles Anzeigen kann(Nur die 
Werte, die Formatierung der Anzeige wird HTTP-entsprechend sein) was das 
Display(T6963) anzeigt und umgekehrt soll er das Steuern(Buttons) was 
ich über die Tasten am Display steuern kann.

Ok, meine Frage ist, ob es realistisch ist, das der Mega168-uWebServer 
dafür ausreichend Platz(Flash)hat und der Grundlegende Code des 
uWebServers dafür passt?

Vielen Dank schonmal und sorry für den ausschweifenden OT.

Gruß
Clyde

von Simon K. (simon) Benutzerseite


Lesenswert?

Clyde H. wrote:
> Ich habe vor, den uWebServer als Webinterface über Uart zu verwenden.
> Wie stehen meine Chancen bezgl. Flashspeicher und
> realisierungsmöglichkeit?
Du willst den Webserver über den UART ansteuern? Oder willst du den UART 
über den Webserver ansteuern?

> Mein Vorhaben ist, das der uWebServer über den UART einen String mit
> Zeit und Temperaturwerten empfängt und im Webinterface ausgibt und
> umgekehrt auch ein paar Steuersignale über den Uart sendet.
Sollte machbar sein.

> Ok, meine Frage ist, ob es realistisch ist, das der Mega168-uWebServer
> dafür ausreichend Platz(Flash)hat und der Grundlegende Code des
> uWebServers dafür passt?
Hm, schwer zu sagen. Hängt stark davon ab, wie groß die statischen Daten 
zu der Seite sind, die auf dem Prozessor im Flash gespeichert werden 
müssen. Eventuell müsstest du die Seite als gzip komprimiert in den 
Flash ablegen und die Parameter, die du anzeigen willst per 
Ajax/Javascript separat holen.

Oder einfach noch ein Weilchen auf den Mega328 warten :-)

von Clyde H. (clyde)


Lesenswert?

Hallo Simon,

was will ich...
Steuern möchte ich den Uart über das Webinterface, das heisst Klick(x) 
im Webinterface sendet Zeichen(y) über den Uart und im Gegenzug möchte 
ich im Webinterface Temeraturen und Schaltzustände anzeigen, die er über 
den Uart empfängt.
Also im Prinzip ist der Webserver ein LCD-Display mit ein paar Tasten 
zum bedienen ;-)
Ich weiß nicht, wie ich das besser beschreiben kann...

OK, da ich nix von gzip weiß und Ajax auch nicht und mein Javascript 
sehr!!! beschränkt ist, muss ich wohl auf den 328 warten... wie so viele 
andere auch :-D

Ist aber auch Mist :-) zumal ich bei dem GPIO noch nicht ganz 
durchgestiegen bin, aber der Winter fängt ja gerade erst an :-)

Danke Dir aber trotzdem!
Gruß
Clyde

von Apollo X. (apollo13)


Angehängte Dateien:

Lesenswert?

Simon K. wrote:
> Clyde, schau dir mal die HttpD.c im Anhang an. Das sollte so ziemlich
> das sein, was du willst. Einziger Nachteil: Für den Status der
> Checkbuttons beim Laden der Seite musste ich Javascript einsetzen.

Ich wollte alle Ports als Ausgänge konfigurieren, aber das funktioniert
nicht so wie ich mir das dachte. GPIO 10 - 13 funktionieren einfach
nicht. Ich weiß nicht was ich noch ändern muß. Wenn da mal jemand drüber
schauen könnte.
danke Apollo

von Simon K. (simon) Benutzerseite


Lesenswert?

Hast du auch die Tabelle in Hardware/Gpio.h und das #define PARSEBYTES 
angepasst?

von Apollo X. (apollo13)


Angehängte Dateien:

Lesenswert?

Gpio.h ??
in der Gpio.c habe ich die Porttabelle angepasst. (hab momentan das 
AVR-NetIO von Pollin in gebrauch)
Am PARSEBYTES hab ich nichts geändert.
Bei GPIO 10 - 13 ist im Browser weder ON noch OFF aktiviert und ein 
aktivierter Button verschwindet nach "Modify" auch wieder.
Ich hab mal alles angehängt.

von Simon K. (simon) Benutzerseite


Lesenswert?

Apollo X. wrote:
> Gpio.h ??
> in der Gpio.c habe ich die Porttabelle angepasst. (hab momentan das
> AVR-NetIO von Pollin in gebrauch)
Ups, ja Gpio.c meinte ich natürlich auch.

> Am PARSEBYTES hab ich nichts geändert.
> Bei GPIO 10 - 13 ist im Browser weder ON noch OFF aktiviert und ein
> aktivierter Button verschwindet nach "Modify" auch wieder.
> Ich hab mal alles angehängt.
Du musst PARSEBYTES aber verändern. Das define gibt an, wie viele 
Zeichen gelesen werden sollen, bei einem POST-Request. (Also genau dann, 
wenn du den neuen Portstatus über "Modify" schreibst).

von Apollo X. (apollo13)


Lesenswert?

Die besagten Ports werden aber schon beim Aufruf nicht korrekt 
angezeigt.
Wenn ich den Wert für PARSEBYTES ändere, habe ich nach "Modify" die 
Sanduhr im Browser. Da dies mit dem Originalwert nicht ist, dachte ich 
der Wert ist so richtig.
Wie bekomme ich den richtigen Wert raus? Betriebssystem Suse.

von Clyde H. (clyde)


Lesenswert?

Probier mal, pro GPIO-Port den Parsebytes wert um 4 zu erhöhen.
Du Willst 4 Ports mehr als im Original, dann versuch mal 75 als 
Parsebytes.
Ich bin mir nicht sicher, meine aber das es 4 Bytes(Zeichen) waren.

Gruß
Clyde

PS: Ich habe mir Dein Zip noch nicht angesehen...

EDIT, versuche mal 6 Bytes pro GPIO-Port dazurechnen.Das müsste es 
sein...

von Apollo X. (apollo13)


Lesenswert?

Ne, das scheint nicht zu gehen. hab 83 versucht (4*6+59), danach einfach 
mal die Werte davor und danach versucht, aber immer kommt die Sanduhr im 
Browser.
Die neuen Ports werden jetzt aber geschaltet. Allerdings sind nach dem 
Aufruf des Webinterfaces im Browser immer noch weder on noch off bei den 
besagten GPIOs aktiviert.
Wie komme ich denn jetzt an den richtigen Wert für PARSEBYTES?

von Simon K. (simon) Benutzerseite


Lesenswert?


von Apollo X. (apollo13)


Angehängte Dateien:

Lesenswert?

Danke. Ich hatte das oben schon gesehen, aber hatte nicht damit 
gerechnet, dass es auch ne Linuxversion davon gibt.
So aber nun wirds doch verwirrend. Ich hatte schon, bevor ich das mit 
Wireshark herausgefunden hatte, alle Werte von 100 bis 60 durchprobiert.
ab 65 gehen die GPIO 10-13 zu ändern, aber die Webseite bleibt nach 
"Modify" immer im Ladevorgang, außer bei 59.
Die Kontrolle mit Wireshark gibt mir auch genau diesen Wert.
Was nun? Jetzt verstehe ich garnichts mehr.

von Apollo X. (apollo13)


Angehängte Dateien:

Lesenswert?

Das zeigt mir der Browser nach dem Aufruf des Webinterfaces an.

von Apollo X. (apollo13)


Lesenswert?

Ok, das Problem ist, dass die GPIOs 10-13 nicht selektiert sind, dadurch 
werden für diese Ports auch keine Daten gesendet. Klicke ich allerdings 
einen an und gehe auf "Modify", dann werden auch die besagten 6 Bytes 
mehr übertragen. Der Stadus dieser GPIOs (rot/grün) wird aber richtig 
angezeigt.
Wie kann ich das nun machen, das die ON/OFF Boxen richtig selektiert 
werden beim Ladevorgang.

von Simon K. (simon) Benutzerseite


Lesenswert?

Apollo X. wrote:
> Ok, das Problem ist, dass die GPIOs 10-13 nicht selektiert sind, dadurch
> werden für diese Ports auch keine Daten gesendet. Klicke ich allerdings
> einen an und gehe auf "Modify", dann werden auch die besagten 6 Bytes
> mehr übertragen. Der Stadus dieser GPIOs (rot/grün) wird aber richtig
> angezeigt.
> Wie kann ich das nun machen, das die ON/OFF Boxen richtig selektiert
> werden beim Ladevorgang.

Ah super, das hängt dann höchst wahrscheinlich mit dem Javascript 
zusammen. Hast du den Webserver irgendwo im Netz, sodass ich die Seite 
mal aufrufen kann? Kannst ja den Link auch per PM schicken.

von Apollo X. (apollo13)


Lesenswert?

Ne, leider nicht. Da ich nur Internet über UMTS habe (gibt hier kein DSL 
wegen Glasfasernetz) kommt man von außen nicht drauf.
Javascript, ich glaube auch. Ich denke hier ist das Problem.
"document.getElementsByName(((i<14) ? \"o0\" : \"o\") + i)[0].checked = 
\"true\";\n"
Ich kenn mich mit Javascript leider nicht aus, aber im Original war 
i<10, somit einstellig.

Edit: Ok, das war etwas dumm von mir, den Wert zu ändern. Hab die Zeile 
jetzt verstanden und die 10 wieder eingetragen.
Als PARSEBYTES hab ich jetzt 83 eingetragen und nun läuft es alles 
richtig.

von Simon K. (simon) Benutzerseite


Lesenswert?

Apollo X. wrote:
> Ne, leider nicht. Da ich nur Internet über UMTS habe (gibt hier kein DSL
> wegen Glasfasernetz) kommt man von außen nicht drauf.
> Javascript, ich glaube auch. Ich denke hier ist das Problem.
> "document.getElementsByName(((i<14) ? \"o0\" : \"o\") + i)[0].checked =
> \"true\";\n"
> Ich kenn mich mit Javascript leider nicht aus, aber im Original war
> i<10, somit einstellig.
>
> Edit: Ok, das war etwas dumm von mir, den Wert zu ändern. Hab die Zeile
> jetzt verstanden und die 10 wieder eingetragen.
> Als PARSEBYTES hab ich jetzt 83 eingetragen und nun läuft es alles
> richtig.

Ja, da muss natürlich 10 stehen bleiben. Super :-)

von Apollo X. (apollo13)


Angehängte Dateien:

Lesenswert?

Danke noch mal an Simon und Clyde.
Hab jetzt noch die anderen belegbaren Ports des AVR-NET-IO-Boards von 
Pollin erfolgreich mit eingebunden (siehe Bild). Wenn man erst mal weiß, 
wie es geht, dann ist es ja recht einfach.
Nach meinem Umstieg von Windows auf Linux will ich mich jetzt auch 
Programmiertechnisch etwas mehr mit c beschäftigen. Vorher arbeitete ich 
mit Bascom. Der Webserver ist da gleich nen harter Brocken, aber der hat 
mich halt gereizt.

bis dann Apollo

von Clyde H. (clyde)


Lesenswert?

Sieht doch schon gut aus.

Wieviel Flashspeicher hast Du denn noch frei beim Pollin-Board 8-)

Gruß
Clyde


PS: Und das mit dem harten Brocken kann ich sehr gut nachvollziehen ;-)
Siehe diesen Thread...

von Challanger Y (Gast)


Lesenswert?

@Apollo
kannst du bitte den fertigen Code, incl. Html, hier mal posten?

von Apollo X. (apollo13)


Angehängte Dateien:

Lesenswert?

@Clyde
Das kann ich so spontan gar nicht sagen, hab mich mit der flash-Größe
seit dem ich mit Linux arbeite noch nicht befasst. Bascom hatte das beim
Kompilieren immer schön in % angezeigt.

@Challanger
jo, kann ich.

Edit: ich hab allerdings "ON" und "OFF" getauscht, da ich zum Testen 
LEDs gegen +5V hatte. Somit ist also "OFF"=high=1

von Simon K. (simon) Benutzerseite


Lesenswert?

Ja, so ein Webserver ist auf jeden Fall ein großer Brocken. Es ist ja 
nicht nur ein einfacher Peer, der auf Anfrage Daten herausschickt, 
sondern ein Server, der auf HTML Requests antworten muss und diese auch 
interpretieren muss. Da aber auf der anderen Seite der Speicher (in 
jeder Hinsicht) sehr knapp ist bei so einem AVR muss man da teilweise 
schon ganz schön tricksen, was die ganze Sache noch einmal um ein nicht 
unerhebliches Maß verkompliziert.

Trotzdem habe ich den Webserver insgesamt so programmiert, dass er sich 
leicht portieren lässt, wie man hier im Falle des AVR-NET IOs sehen 
kann. Dass das Konzept so gut aufgeht freut mich sehr, muss ich zugeben 
:D

Das AVR NET IO hat meines Wissens nach einen Mega32 (und geht bis 
maximal Mega644, was 64kiB Flash wären). Der Speicher wird also zwischen 
50% und 25% voll sein (Mega32/644) :D

Ich freu mich schon mal Mega328s in die Hand zu kriegen. Dann habe ich 
vor eine kleine SD Karten Unterstützung zu basteln.

von Ein anderer (Gast)


Lesenswert?

Zitat:
@Challanger
jo, kann ich.

Nett, vielen Dank, Auch den Htm -Code?

von Apollo X. (apollo13)


Lesenswert?

Einen Port hab ich ja noch vergessen, ist mir gerade aufgefallen. PB3 
ist noch frei. Ich mach das nach meinem Urlaub dann noch mal fertig. 
Auch "ON" und "OFF" trage ich dann wieder richtig ein.

von Jochen S. (steinmann)


Lesenswert?

Hallo Forum,

hat eigentlich irgendwer schonmal die Software von Ulrich Radig, bzw. 
deren Abwandlungen auf diese kleine Hardware portiert? Ich verzweifle 
gerade daran.

Der Grund, warum ich das machen will ist folgender, es gibt für den 
Source von Ulrich Radig mehr Erweiterungen, wie z.B. Temperatursensoren 
und so weiter. Ich würde gerne die Funktionalität von Ulrich's Software 
mit der Größe von Simon's Hardware kombinieren.

MfG

Jochen

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

Hallo alle zusammen,

wer noch Interesse hat ich habe noch einen fertigen Webserver abzugeben,
war ein Test und ich brauche den jetzt nicht mehr. Ist mit ATMEGA168 und
SI-60024-F.

Wer also nicht löten will einfach melden thomas [at] heldt [punkt] eu

Gruß
Thomas

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Jochen S.

Also jetzt wo es den ATMEGA328P-20AU gibt wird Simon den Webserver 
darauf portieren und er wird dann auch erweitert werden.

Ich selber mache aktuell ein Addon-Board das dann einen µSD-Slot bietet 
z.B.

Bin mir fast sicher das dann auch Erweiterungen für 1-Wire etc. kommen 
werden ;)

@Alle
Der fertige Webserver von mir ist weg.

Gruß
Thomas

von Jörg T. (brause)


Lesenswert?

Hallo zusammen,

ich habe gerade eine IO-Erweiterungskarte mit einem I²C Port-Expander 
auf Lochraster testweise am Laufen. Der µServer steckt praktisch mit der 
Stiftleiste (von unten aufgelötet) auf der Karte. Z.Zt. ist es nur eine 
Out-Karte, also mit ULN2803 Leistungstreibern die 8 Relais ansteuern. 
Die nächsten Schritte: 1) Erweiterungskarte layouten und ätzen 2) 
Erweiterungskarte mit Optokoppler (also IN).

Gruß
Jörg

von Simon K. (simon) Benutzerseite


Lesenswert?

Jörg T. wrote:
> Hallo zusammen,
>
> ich habe gerade eine IO-Erweiterungskarte mit einem I²C Port-Expander
> auf Lochraster testweise am Laufen. Der µServer steckt praktisch mit der
> Stiftleiste (von unten aufgelötet) auf der Karte. Z.Zt. ist es nur eine
> Out-Karte, also mit ULN2803 Leistungstreibern die 8 Relais ansteuern.
> Die nächsten Schritte: 1) Erweiterungskarte layouten und ätzen 2)
> Erweiterungskarte mit Optokoppler (also IN).

Cool, dass mal jemand was damit macht :-)
Wie Thomas schon sagt ist 1Wire auch ziemlich interessant. Besonders im 
Hinblick auf zum Beispiel Temperatursensoren. Die könnte man dann auf 
der Webseite anzeigen lassen.
Mit den 32 kiB Flash werde ich auch mal den Webserver etwas verschönern. 
Damit es hoffentlich leichter ist, diesen zu erweitern und an seine 
Bedürfnisse anzupassen.

von Jörg T. (brause)


Lesenswert?

Hallo,

ich habe den µWebServer zu einem µServer kastriert, d.h. ich verwende 
nur noch TCP/IP. Er ist die Zentrale meiner Haussteuerung. Bisher hängen 
dort 3 Relaiskarten dran für eine Rollosteuerung. Gesteuert und 
überwacht wird er mit einer kleinen WinXP/GTK Applikation (also 
wahlweise Windows oder Linux , theoretisch auch Mac, Windows Mobile, 
...)

Aber ich habe noch sehr viel mehr mit dem µServer vor, da ich ja jede 
Menge Platz habe (kein HTML-Server) :-)

Gruß
Jörg

von Simon K. (simon) Benutzerseite


Lesenswert?

Das klingt ebenfalls sehr interessant.
Anscheinend hast du also deine eigene TCP Application geschrieben? Mit 
selbst erdachtem Protokoll?

von Jörg T. (brause)


Lesenswert?

Genau. Das Protokoll ist noch sehr einfach. Da bastel ich noch dran 
herum. Aber so habe ich mehr Platz auf dem ATmega168. Nachteil ist, dass 
ich nicht mit einem Browser darauf zugreifen kann, aber das gibt mir ja 
auch ein bisschen Schutz - ich will ja nicht, dass der Nachbar unserer 
Rollos hoch- und runterfährt :-)

von Vajk .. (vajk)


Lesenswert?

Hallo Jörg,
stellst Du Deinen Code zur Verfügung ?

Ich bin auch grad dran, eine Erweiterungsplatine zu machen. Relais für 6 
x 220 V und 2 x Niederspannung mit LEDs zur Schaltanzeige und Taster für 
mauelle Auslösung ...

LG
Vajk

von Sucher (Gast)


Lesenswert?

Hallo

@Jörg, stellst Du Deine "erprobten" Schaltungen hier ins Forum? Schön 
wäre der Webserver als Kern. Dann noch ne Relaiskarte und ne 
Temperaturerfassung mit 1 Wire...

MfG
Achim

von Simon K. (simon) Benutzerseite


Lesenswert?

Hi Sucher,
Eine 1Wire Implementierung mit Temperatursensoren plane ich, sobald der 
Mega328P erhältlich ist. Was bald sein wird :-)

von Simon K. (simon) Benutzerseite


Angehängte Dateien:

Lesenswert?

So, es gibt was neues.

1. Den uWebSrv werde ich ab nun nur noch bugfixen und nicht mehr 
erweitern.

2. Die angehängte uWebSrv Version wird dann also wahrscheinlich erst mal 
die letzte sein.
Ich habe dort einen Throughput Boost Hack implementiert. Die Seite 
sollte nun wesentlich schneller bei Windows clients laden (Sie lädt 
innerhalb von etwa 400ms). Ich wäre euch dankbar, wenn ihr das mal 
durchtesten könntet.

3. Der uWebSrv328P kommt so langsam ins rollen. µSD und ein verbesserter 
Webserver (flexibler in Sachen dynamische Webseites) sind nur zwei der 
geplanten Features. Mal schauen was mir noch so einfällt.

von Simon K. (simon) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hiermit dauert ein Seitenaufruf nur noch 50ms.

von Gast (Gast)


Lesenswert?

der mega328P-AU ist bei CSD erhältlich.

von Simon K. (simon) Benutzerseite


Lesenswert?

Gast wrote:
> der mega328P-AU ist bei CSD erhältlich.

Danke für den Hinweis. Thomas Heldt wird den Chip im IT-WNS auch bald im 
Bausatz für den uWebSrv328P anbieten können. Habe schon eine Version zum 
Entwickeln hier liegen.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

Der Chip ist einzeln und auch bereits im Bausatz bei IT-WNS erhältlich, 
den Bausatz mit dem 168er gibt es dafür nicht mehr.

Gruß
Thomas

von Jörg T. (brause)


Lesenswert?

Das sind ja gute Nachrichten.
Nur, dass ich damals ca. 24€ bezahlt hatte... :-(
Sind eigentlich bei IT-WNS noch Restbestände vorhanden?
Aber selbst der Bausatz mit 168 war ja vor kurzem schon bei 30€...

Gruß

von Simon K. (simon) Benutzerseite


Lesenswert?

Jörg T. wrote:
> Das sind ja gute Nachrichten.
> Nur, dass ich damals ca. 24€ bezahlt hatte... :-(
> Sind eigentlich bei IT-WNS noch Restbestände vorhanden?
> Aber selbst der Bausatz mit 168 war ja vor kurzem schon bei 30€...

Für Eigenentwicklungen ist es ja durchaus auch noch brauchbar, aber 
mangels Flash (was ja vor dem Kauf auch kein Geheimnis war) gibt es bei 
dem Dingen einfach nichts mehr zu machen.

von Gast (Gast)


Lesenswert?

bei Verwendung des 328P und Eclipse müssen die Pin-Defines geändert 
werden. z.B. PB3 in PINB3

von Simon K. (simon) Benutzerseite


Lesenswert?

Gast wrote:
> bei Verwendung des 328P und Eclipse müssen die Pin-Defines geändert
> werden. z.B. PB3 in PINB3

Ja, das ist korrekt. Das ist aber ein "Bug" von der avr Library. Ein 
Workaround ist schon eingereicht.

Ich habe nun schon angefangen ein wenig Software zu schreiben für das 
AddOn und den mega328P.
(https://www.it-wns.de/themes/kategorie/detail.php?artikelid=735&source=2)

Falls jemand das AddOn schon hat, kann er mal mit mir Kontakt aufnehmen, 
damit ich ein paar Tester bekomme.

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Endlich ist er da, ich warte schon relativ lange auf den 328 in SMD auch 
für eigene Projekte :D

Dann werd ich mal bei csd bestellen ...  ;)

von GR (Gast)


Lesenswert?

Hallo,

ich habe diese Frage zwar schon in einem anderen Thread gestellt aber 
bis jetzt noch keine Anwort erhalten.
Es ist eine Verständnisfrage zum uWebSrv-AVR-NET-IO-Pollin Code, und 
zwar wird in der Dokumentation vom
uIP Stack im Beispieltreiber:
http://www.sics.se/~adam/uip/uip-1.0-refman/a00150...
1
void
2
 devicedriver_send(void)
3
 {
4
    hwsend(&uip_buf[0], UIP_LLH_LEN);
5
    if(uip_len <= UIP_LLH_LEN + UIP_TCPIP_HLEN) {
6
      hwsend(&uip_buf[UIP_LLH_LEN], uip_len - UIP_LLH_LEN);
7
    } else {
8
      hwsend(&uip_buf[UIP_LLH_LEN], UIP_TCPIP_HLEN);
9
      hwsend(uip_appdata, uip_len - UIP_TCPIP_HLEN - UIP_LLH_LEN);
10
    }
11
 }
immer uip_buf gesendet und wenn uip_len größer ist als UIP_LLH_LEN +
UIP_TCPIP_HLEN auch noch uip_appdata.
In diesem Quellcode wird aber immer nur uip_buf gesendet:
1
Enc28j60CopyPacket(uip_buf, uip_len);
2
Enc28j60Send();


Warum braucht man hier den Inhalt von uip_appdata nicht zu senden?

MFG, GR

von Simon K. (simon) Benutzerseite


Lesenswert?

Der Unterschied hat irgendwas damit zu tun, ob man einen LinkLevelHeader 
hat oder nicht, soweit ich das weiß. Ist aber für Ethernet nicht 
relevant.

Mal was neues: Da das AddOn1 ja schon verfügbar ist habe ich mal die 
v1.0 online gestellt. Es sind alle herzlich zum Testen eingeladen:
http://de.klinkerstein.m-faq.de/index.php/MicroWebServer/Downloads

Features sind u.a.:
MicroSD Slot für non-SDHC Karten mit FAT16(!). Die beigelegte index.html 
dient als Test und sollte den im beigelegten Screenshot zu sehenden 
Output erzeugen.

Weiterhin ist jetzt auch der TCP Boost Hack für Windows implementiert, 
sodass die Seite in deutlich weniger als 1 Sekunden vollständig geladen 
ist.

Bei Fragen, einfach fragen!

von Sucher (Gast)


Lesenswert?

Hallo

@Simon zunächst mal vielen Dank für Deinen Webserver, den ich schon 
lange im problemlosen Einsatz habe.
Gibt es für das Addon-Board auch einen Schaltplan bzw. Eagle Files wie 
für den Server selbst?

MfG
Achim

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

Hallo Achim,

den Schaltplan als PDF findest du auf meiner Seite:
http://mikrocontroller.heldt.eu/index.php?page=addon-board-fuer-den-mikro-webserver-von-simon-k

Gruß
Thomas

P.S.
Die Eagle Dateien gibt es leider nicht ;)

von Jörg T. (brause)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
sorry, aber irgendwie komme ich in letzter Zeit nicht mehr dazu das 
Projekt voranzubringen. Anbei der Schaltplan für mein IOBoard. Zur 
Erinnerung. Es ist eine Testplatine mit der ich 8x 24V-Relais anspreche. 
Diese Steuern dann 4 Rollomotoren (jeweils 2 Relais für einen Motor: auf 
und ab). Dies ist aber prinzipiell unerheblich. Die Kommunikation 
geschieht über I2C zum Port-Expander PCF8574. Der µServer sitzt auf der 
Testplatine mittels einer Buchsenleiste etwas wackelig, da ja das 
LAN-Kabel etwas dran "zieht". So ist es aber nun seit einem halben Jahr 
im Einsatz. Eine kleine Windows-Applikation erledigt eine Zeitsteuerung 
der Rollos.

Grüße
Jörg

von Syd (Gast)


Lesenswert?

-hallo,


gibt es für den webserver auch eine FTP anwendungsmöglichkeit? hat das 
schonmal jemand versucht?

Gruß
Syd

von CSharp (Gast)


Angehängte Dateien:

Lesenswert?

Hallo

ich muß mal wieder dies Thread ausgraben. Ich habe den schon lange im 
Einsatz und kann auch mit Firefox die I/Os problemlos steuern.
Ich wollte jetz mit einem einfachen C# Programm einen Webclient 
erstellen, aber das Paket, welches ich an den Microwebserver schicke 
wird nicht erkannt.
Ich bin der Meinung, dass der Paketaufbau stimmt. Der einzige 
Unterschied, den man mit Wireshark erkennen kann.

Seltsamerweise ist wenn mann nur auf den Poseintrag geht vor der 
eigentlichen Nutzlast 2xCRLF beim Firefox aber beim Webclient nicht. 
Geht man aber >> Line-based text data: 
application/x-www-form-urlencoded<< wird

Kann mir da jemand weiterhelfen?

MfG
Achim

von CSharp (Gast)


Lesenswert?

Hallo

irgendwie ist das oben  verstümmelt angekommen. Die 2x CRLF sind erst 
sichtbar (kleines Fenster) , wenn man auf den Line Base Text klickt. 
Baut der Stack die Pakete nicht richtig zusammen. So wie ich aus dem 
Programm rausgelesen habe, wird gescannt, bis 2xCRLF kommt und dann 
werden die nachfolgenden 167 Byte zur Steuerung ausgewertet. Irgendwie 
erkennt der beim Webclient diese Trennung nicht, ich bin aber kein C 
Kenner.

MfG
Achim

von Simon K. (simon) Benutzerseite


Lesenswert?

Kannst du mir den Wireshark dump schicken? Habe leider im Moment keinen 
Webserver hier am laufen, aber ich werde mal ein Auge reinhalten.

von CSharp (Gast)


Lesenswert?

Hallo Simon,

vielen Dank für Deine Rückäußerung. Du hast Post (Impressum link Deiner 
Seite

MfG
Achim

von Simon K. (simon) Benutzerseite


Lesenswert?

Kleine Zwischenmeldung: Das Problem taucht anscheinend auf, wenn der 
POST Header (abgeschlossen mit \r\n\r\n) in einem anderen Paket kommt 
als die POST Daten. Das ist so natürlich nicht gewollt.
Muss ich den Bug nur noch ausfindig machen.

von Simon K. (simon) Benutzerseite


Lesenswert?

Ok sieht so aus als hätte ich den Fehler in einer neuen Version schon 
behoben gehabt.

von CSharp (Gast)


Lesenswert?

Hallo

den  letzen Beitrag von Simon kann ich nur bestätigen. Er hat mir ne 
neue Version geschickt. Mit dieser geht das problemlos.

Herzlichen Dank an Simon!!!

Viele Grüsse
Achim

von Matze .. (avr-rookie)


Lesenswert?

Hallo

beim kompilieren kommt bei mir dieser fehler.

Build started 9.4.2010 at 18:46:22
avr-gcc  -mmcu=atmega128 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT Main.o -MF 
dep/Main.o.d  -c  ../Main.c
../Main.c: In function 'main':
../Main.c:39: error: 'TIMSK1' undeclared (first use in this function)
../Main.c:39: error: (Each undeclared identifier is reported only once
../Main.c:39: error: for each function it appears in.)
make: *** [Main.o] Error 1
Build failed with 3 errors and 0 warnings...

Hab nix geändert außer in der main.c die IP und die Host adresse.

von Simon K. (simon) Benutzerseite


Lesenswert?

Du kompilierst für den Mega128, dafür müsste man erst ein paar Zeilen 
anpassen (So wie eben die, wo der Timer initialisiert wird).

von Matze .. (avr-rookie)


Lesenswert?

...hmmm...aber es ist doch ein ATmega128

7.Fuses des AVR modifizieren (LFuse: E0h, HFuse: DDh)
  1.Taktquelle auf Ext. Clock stellen (Startup Time 65ms)
  2.Brown Out Detector auf 2,7V einstellen

mit Fuses setzen hab ich noch gar keine Erfahrung

von Simon K. (simon) Benutzerseite


Lesenswert?

Matze .. schrieb:
> ...hmmm...aber es ist doch ein ATmega128
Die Software ist aber eigentlich für die originale MikroWebServer 
Hardware gedacht, da ist ein ATmega328P drauf (oder ATmega168 bei alten 
Versionen).

> 7.Fuses des AVR modifizieren (LFuse: E0h, HFuse: DDh)
>   1.Taktquelle auf Ext. Clock stellen (Startup Time 65ms)
>   2.Brown Out Detector auf 2,7V einstellen
>
> mit Fuses setzen hab ich noch gar keine Erfahrung
Welches Programmiertool benutzt du denn? Da musst du die entsprechenden 
Fuse Settings vornehmen, damit der richtige Prozessortakt verwendet 
wird.

von Matze .. (avr-rookie)


Lesenswert?

...AVR Studio 4

Hab die Fuse Einstellun gefunden. Er übernimmt es aber nicht.

von Matze .. (avr-rookie)


Lesenswert?

...und ich komme nicht in den programming mode...freuqenz steht auf 
125kHz und der mega128 ist ausgewählt. Zum Programmieren, nehme ich den 
AVRISP mkII mit USB. Die LED zeigt grün, also müsste er doch Verbindung 
zum ATmega haben. Achso, den ENC28 ist noch nicht auf der Platine 
angelötet. Das sollte doch aber dem Programmieren vom mega128 nicht im 
Wege stehn...oder?

von Matze .. (avr-rookie)


Angehängte Dateien:

Lesenswert?

..hier mal ein Bild

von Simon K. (simon) Benutzerseite


Lesenswert?

Doch der ENC28J60 muss drauf, da der Prozessor mit den Fuse Settings den 
Takt vom ENC28J60 bezieht.

Stecker falsch drauf? Hast du die angegebenen Fusebytes schon mal 
programmiert, und danach funktionierte er nicht mehr? Dann liegt das am 
nichtbestückten ENC28J60.

Bin mir jetzt aber erst mal einen "Löten", bis später ;) ;)

von Matze .. (avr-rookie)


Lesenswert?

...die Fuse's habe ich nur mal im AVR Programmer eingestellt, aber noch 
nicht geflasht...geht ja auch nicht @ programming mode...FAILED.
Na dann löt ich auch mal eine^^ und danach den ENC drauf.

Ich hoffe mal ich mab den MC beim Löten nicht thermisch beschädigt bzw 
es sind alle kontakte richtig gelötet und auch nicht verbunden. Na 
schauen wir mal.

Da hab ich gleich noch me Frage vorweg. Kannst du mir bei meiner Idee 
helfen. Ich möchte einen der Ausgänge per MagicPaket ansteuern.

MagicPaket aktiveiert Ausgang => Ausgang steuert Reederrelais an => 
Relais schaltet Verbraucher...so meine Idee

Beitrag "AVR-NET-IO per WoL Steuern"

Da gehts jetzt um den AVR von Pollin. Aber es müsste ja auch mit Deinem 
gehen.

von Simon K. (simon) Benutzerseite


Lesenswert?

Matze .. schrieb:
> ...die Fuse's habe ich nur mal im AVR Programmer eingestellt, aber noch
> nicht geflasht...geht ja auch nicht @ programming mode...FAILED.
> Na dann löt ich auch mal eine^^ und danach den ENC drauf.

Du musst aber einen Schreibvorgang ausgeführt haben, da sonst 
"Programming Mode FAILED" nicht auftauchen würde.
Bist du sicher, dass der ISP Stecker richtig herum steckt? Welchen 
Programmer benutzt du? Lass dir doch nicht alles aus der Nase ziehen ;)
Kannst du die Target Spannung auslesen? Hast du überhaupt eine 
Spannungsversorgung angeschlossen?

> Ich hoffe mal ich mab den MC beim Löten nicht thermisch beschädigt bzw
> es sind alle kontakte richtig gelötet und auch nicht verbunden. Na
> schauen wir mal.
Ersteres ist eher unwahrscheinlich. Zweiteres könnte sein. Eventuell mal 
bei abgeschaltetem Board mal die Programmierleitungen durchpiepsen.

> Da hab ich gleich noch me Frage vorweg. Kannst du mir bei meiner Idee
> helfen. Ich möchte einen der Ausgänge per MagicPaket ansteuern.
Hm, da müsstest du Veränderungen vornehmen am uip Stack, bzw. deinen 
eigenen (sehr einfachen) "Stack" programmieren. Der würde nur aus einer 
MAC Ebene bestehen (Ebene2), da MagicPacket direkt auf Ethernet läuft, 
soweit ich weiß.

> MagicPaket aktiveiert Ausgang => Ausgang steuert Reederrelais an =>
> Relais schaltet Verbraucher...so meine Idee
>
> Beitrag "AVR-NET-IO per WoL Steuern"
>
> Da gehts jetzt um den AVR von Pollin. Aber es müsste ja auch mit Deinem
> gehen.
Ja, müsste man dann übernehmen das Prinzip.

von Matze .. (avr-rookie)


Lesenswert?

ISP steckt richtig rum dran. AVRISP mkII zeigt grün, also hat er auch 
Spannung von der Schaltung.

MC scheint in Ordung. Wie komm ich dann wieder drauf wenn ich 
ausversehen die Fuses "verstellt" habe?

von Simon K. (simon) Benutzerseite


Lesenswert?

Im AVR Studio Programmierdialog kannst du auch die Spannung auslesen 
(Einer der hinteren Reiter).

Vermutlich hast du die externe Taktquelle ausgewählt (Was ja auch 
gewollt ist). Das heißt, du musst den ENC28J60 drauflöten. Der stellt 
dann 6MHz bereit und der Chip ist wieder ansprechbar. Die ISP Frequenz 
darf dabei 1,25MHz nicht überschreiten.

von Matze .. (avr-rookie)


Lesenswert?

Probier ich Montag sobald ich zu Hause bin..erstmal danke...bei dem 
Problem mit dem WoL melde ich mich sicher nochmal...

von Matze .. (avr-rookie)


Lesenswert?

ich wollte gerade den ENC auflöten...ich weiß nur nicht mehr wie. Hab 
keine Anleitung mehr und mein ENC hat einen Ausrichtungspunkt. Ist der 
gleich mit dem Strich auf dem Layer? Also muss der Punkt zum MagJack 
zeigen oder zum ISP?

von Simon K. (simon) Benutzerseite


Lesenswert?


von Matze .. (avr-rookie)


Lesenswert?

Danke für die schnelle Antwort. Auf dendem Bestückungsplan auf der 
Shopseite sieht man das auch nicht. Vielleicht könnets du das Bild mit 
zu dem anderen packen bzw auf dem Layouts die Punkt eintragen..oder hab 
ich ihn übersehn...naja egal

von Matze .. (avr-rookie)


Lesenswert?

ok ist drauf. Bei Fuses hab ich jetzt bei Spien einen Haken mit roten 
Fragezeichen. ist das normal?
die anderen beiden hab ich geändert und geschrieben. beim kompilieren 
kommt aber immer noch der selbe fehler.
Mal ne "dumme" Frage. Wie bekomme ich überhaupt die MAC vom ENC raus?

von Simon K. (simon) Benutzerseite


Lesenswert?

Matze .. schrieb:
> ok ist drauf. Bei Fuses hab ich jetzt bei Spien einen Haken mit roten
> Fragezeichen. ist das normal?
Ja, kannst du sie denn jetzt lesen und schreiben?

> die anderen beiden hab ich geändert und geschrieben. beim kompilieren
> kommt aber immer noch der selbe fehler.
Welchen Fehler?

> Mal ne "dumme" Frage. Wie bekomme ich überhaupt die MAC vom ENC raus?
Die MAC wird beim Starten des Programmes gesetzt. Der hat von "Natur 
aus" keine.

von Matze .. (avr-rookie)


Lesenswert?

ja ich kann lesen und schreiben. Ich habe mal die uWebSrv168.hex drauf 
geflasht. er macht aber nix...keine LED am MagJack. Ich glaube ich hab 
das vergessen, find es im AVR Studio aber nicht:

(LFuse: E0h, HFuse: DDh)

Fehler beim kompilieren mit AVR Studo 4:

rm -rf Main.o HttpD.o uip.o uip_arp.o uip_split.o uip_TcpAppHub.o 
uip_UdpAppHub.o  webserver.elf dep/* webserver.hex webserver.eep 
webserver.lss webserver.map
Build succeeded with 0 Warnings...
avr-gcc  -mmcu=atmega128 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT Main.o -MF 
dep/Main.o.d  -c  ../Main.c
../Main.c: In function 'main':
../Main.c:39: error: 'TIMSK1' undeclared (first use in this function)
../Main.c:39: error: (Each undeclared identifier is reported only once
../Main.c:39: error: for each function it appears in.)
make: *** [Main.o] Error 1
Build failed with 3 errors and 0 warnings...

Also kann ich eine X beliebige nehmen? Zum Bsp von einer alten 
Netzwerkkarte.

von Simon K. (simon) Benutzerseite


Lesenswert?

Matze .. schrieb:
> ja ich kann lesen und schreiben. Ich habe mal die uWebSrv168.hex drauf
> geflasht. er macht aber nix...keine LED am MagJack. Ich glaube ich hab
> das vergessen, find es im AVR Studio aber nicht:
>
> (LFuse: E0h, HFuse: DDh)
Gut.

> Fehler beim kompilieren mit AVR Studo 4:
>
> rm -rf Main.o HttpD.o uip.o uip_arp.o uip_split.o uip_TcpAppHub.o
> uip_UdpAppHub.o  webserver.elf dep/* webserver.hex webserver.eep
> webserver.lss webserver.map
> Build succeeded with 0 Warnings...
> avr-gcc  -mmcu=atmega128 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char
> -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT Main.o -MF
> dep/Main.o.d  -c  ../Main.c
> ../Main.c: In function 'main':
> ../Main.c:39: error: 'TIMSK1' undeclared (first use in this function)
> ../Main.c:39: error: (Each undeclared identifier is reported only once
> ../Main.c:39: error: for each function it appears in.)
> make: *** [Main.o] Error 1
> Build failed with 3 errors and 0 warnings...

Du hast auch wieder einen ATmega128 als Zielprozessor genommen. Der Code 
ist nach wie vor aber nur für ATmega168/328 garantiert kompilierbar, 
weil diese beiden Prozessoren mit dem uWebSrv ausgeliefert werden.

> Also kann ich eine X beliebige nehmen? Zum Bsp von einer alten
> Netzwerkkarte.
Für dein eigenes LAN geht das.

von Matze .. (avr-rookie)


Lesenswert?

...und sie dreht sich doch.
Ich dachte ich hätte es auf 168 geändert. Jetzt gehts aber.
Ein Webserver ist noch nicht drauf, oder?

von Simon K. (simon) Benutzerseite


Lesenswert?

Matze .. schrieb:
> ...und sie dreht sich doch.
> Ich dachte ich hätte es auf 168 geändert. Jetzt gehts aber.
> Ein Webserver ist noch nicht drauf, oder?

Guck mal hier:
http://de.klinkerstein.m-faq.de/index.php/MicroWebServer#Inbetriebnahme

Mal ping 192.168.0.93 ausprobieren.

HTTP Server liegt standardmäßig auf Port 8080.
Also in den Browser eingeben: http://192.168.0.93:8080.

von Matze .. (avr-rookie)


Lesenswert?

passt alles...meine Fritzbox hatte gerade einen reset.
Mal so nebenbei ich hoffe ich nerve nicht zu sehr. Gerade die 
offensichtlichen fehler sind ja echt peinlich.

Jetzt muss ich nochmal wegen der MAC fragen. Die MAC von der alte 
defekte  Netzwerkkarte ich doch so gesehn frei...ich weiß die ist auf 
den Hersteller zugelassen...aber das stört doch nicht.

Wie muss ich jetzt eigentlich mein Reedrelais anschließen?

von Simon K. (simon) Benutzerseite


Lesenswert?

Matze .. schrieb:
> passt alles...meine Fritzbox hatte gerade einen reset.
> Mal so nebenbei ich hoffe ich nerve nicht zu sehr. Gerade die
> offensichtlichen fehler sind ja echt peinlich.
>
> Jetzt muss ich nochmal wegen der MAC fragen. Die MAC von der alte
> defekte  Netzwerkkarte ich doch so gesehn frei...ich weiß die ist auf
> den Hersteller zugelassen...aber das stört doch nicht.
Das dürfte genau so wenig erlaubt sein, wie sich eine MAC Adresse 
auszudenken. Aber, das Teil hängt sowieso nur in deinem LAN und nicht 
bzw. über IP-Router am Internet. Von daher wird es niemanden 
interessieren, welche MAC Adressen du in deinem Netzwerk benutzt.

> Wie muss ich jetzt eigentlich mein Reedrelais anschließen?
Ich würde an die Stiftleiste eine Emitterschaltung hängen und die Relais 
(mit Freilaufdiode) an die entsprechende Spannung hängen.
Welche Relais hast du denn da?

von Werner B. (werner-b)


Lesenswert?

Du darfst aber eine "Locally Administered Address" verwenden.
Siehe: http://de.wikipedia.org/wiki/Locally_Administered_Address
oder http://netzikon.net/lexikon/l/laa-mac-adresse.html

Was ein MAC zu einer "Locally Administered Address" macht ist das 
gesetzte U/L-Bit (U/L=1) in der MAC-Adresse.

Genaueres bei http://en.wikipedia.org/wiki/MAC_address (Steht in der 
Deutschen leider nicht beschrieben welches Bit das ist).

Auszug:
-------------------------------------------------------------------
A locally administered address is assigned to a device by a network 
administrator, overriding the burned-in address. Locally administered 
addresses do not contain OUIs.

Universally administered and locally administered addresses are 
distinguished by setting the second least significant bit of the most 
significant byte of the address. If the bit is 0, the address is 
universally administered. If it is 1, the address is locally 
administered. In the example address 02-00-00-00-00-01 the most 
significant byte is 02 (hex). The binary is 00000010 and the second 
least significant bit is 1. Therefore, it is a locally administered 
address.[4] The bit is 0 in all OUIs.

If the least significant bit of the most significant byte is set to a 0, 
the packet is meant to reach only one receiving NIC. This is called 
unicast. If the least significant bit of the most significant byte is 
set to a 1, the packet is meant to be sent only once but still reach 
several NICs. This is called multicast.
-------------------------------------------------------------------

Einfach gesagt: alle MAC Adressen deren erstes Byte
(in der xx:xx:xx:xx:xx:xx - Darstellng) das zweite Bit gesetzt haben.
z.B. 02, 03, 06, 07, 0A, ...

von Werner B. (werner-b)


Lesenswert?

7 ist natürlich quatsch, denn das ist ein Multicast ;-)
Nur geradzahlig.

von Simon K. (simon) Benutzerseite


Lesenswert?

Wusste ich selber noch gar nicht. Danke Werner!

von Matze .. (avr-rookie)


Lesenswert?

...ah OK...aber da es eh nur im LAN existiert sollte das kein Problem 
sein...

...hat eienr Ahnung wie ich das MagicPaket auslesen und verarbeiten 
kann?

von Matze .. (avr-rookie)


Lesenswert?

@ Simon..

ich habe ein Reedrelais von Steinecker 243/10-24-MRR-5

von Matze .. (avr-rookie)


Lesenswert?

...es muss ja kein Relais sein. ich benötige nur einen kurzen 
Schaltimpuls von max. 1 Sekunde Dauer

von Simon K. (simon) Benutzerseite


Lesenswert?

Das Relais hast eine Nennspannung von 24V an der Spule. Das heißt du 
brauchst auf jeden Fall einen NPN Transistor gegen Masse und am 
Kollektor das Relais gegen 24V.

von Matze .. (avr-rookie)


Lesenswert?

...das Relais ist eh das falsche. ich hatte noch 2 Stück da. Ich habe 
aber nur 5 Volt Betriebspannung vefügbar. das die nur für 24 Volt sind 
hab ich glatt übersehn.
Aber wie gesagt...ich benötige gar kein Relais, da ich nur einen kurzen 
Impuls brauche. Da fließt nur ein ganz geringer Strom, wieviel genau 
muss ich noch messen.

In welche Datei(en) muss ich eigentlich die Anweisungen(en) schreiben 
damit der AVR das MagicPaket ausliest und umsetzt?
Ich tippe jetzt mal auf Enc28J60.h, uip.h und main.c, oder?

von Simon K. (simon) Benutzerseite


Lesenswert?

Matze .. schrieb:
> ...das Relais ist eh das falsche. ich hatte noch 2 Stück da. Ich habe
> aber nur 5 Volt Betriebspannung vefügbar. das die nur für 24 Volt sind
> hab ich glatt übersehn.
> Aber wie gesagt...ich benötige gar kein Relais, da ich nur einen kurzen
> Impuls brauche. Da fließt nur ein ganz geringer Strom, wieviel genau
> muss ich noch messen.
Und welche Spannung? Prinzipiell kann man die Emitterschaltung auch mit 
einem Pull Up benutzen (Widerstand statt Relais) und die Spannung am 
Kollektor abgreifen.

> In welche Datei(en) muss ich eigentlich die Anweisungen(en) schreiben
> damit der AVR das MagicPaket ausliest und umsetzt?
> Ich tippe jetzt mal auf Enc28J60.h, uip.h und main.c, oder?

Das weiß ich nicht, da ich noch nichts mit MagicPacket geschrieben habe. 
Ich vermute aber mal, du wirst den Ethernet-Teil des UIP Stacks 
modifizieren müssen. Das geht nicht von außerhalb.

Oder du schmeißt den uip Stack komplett raus (Wenn du nur MagicPacket 
brauchst) und schreibst dir ein kleines Programm selber, was die Pakete 
vom ENC28J60 dekodiert.

von Matze .. (avr-rookie)


Lesenswert?

> Und welche Spannung? Prinzipiell kann man die Emitterschaltung auch mit
> einem Pull Up benutzen (Widerstand statt Relais) und die Spannung am
> Kollektor abgreifen.

Also Betriebspannung und Schaltspannung sind je 5 Volt.

> Das weiß ich nicht, da ich noch nichts mit MagicPacket geschrieben habe.
> Ich vermute aber mal, du wirst den Ethernet-Teil des UIP Stacks
> modifizieren müssen. Das geht nicht von außerhalb.
>
> Oder du schmeißt den uip Stack komplett raus (Wenn du nur MagicPacket
> brauchst) und schreibst dir ein kleines Programm selber, was die Pakete
> vom ENC28J60 dekodiert.

Das habe ich befürchtet...ich hab davon leider noch weniger Ahnung als 
Du. :)

von Stefan P. (form)


Lesenswert?

Hallo, klasse Projekt!
Ich hab es heute nachgebaut, und der Beispielcode klappt super.

Nur komme ich gerade nicht weiter.
Ich versuche anstatt der standart HTML-Seite (g_HtmlPageDefault) ein 
Char-Array mit "Hallo Welt" auszugeben.
Mir ist nicht ganz klar wo ich dies einbinden kann - Hat es etwas mit 
"pSocket->pData" zu tun? Ich seh leider vor lauter structs und pointern 
den Wald nicht mehr...

MfG
Stefan

von Brause (Gast)


Lesenswert?

Hi  Matze ,

das ist gar nicht so schwer. Wenn Du den Client (PC) selber baust, 
kannst Du ja auch überfliegen, wie der µServer auf Dich reagiert und 
brauchst den HTTP-Kram (POST, etc.) nicht mehr. Das ist m.E. halt die 
TCP/IP Schiene.

Grüße
Jörg

von Matze .. (avr-rookie)


Lesenswert?

Hallo Brause...

das Prinzip von WoL / MagicPaket ist mir schon klar. Nur leider nicht 
wie ich das auf den AVR adaptiere.
Ich habe zwar Mikrocontrollerprogrammierung am Xmega mal in der Uni 
gehört...nur leider keine Grundlagen, sondern wir haben nur im Quelltext 
vom Dozenten rumgeschrieben. Dieser war mir seinem eigenen Stil 
programmiert, also konnte man so gut wie keine Rückschlüsse ziehen.

Den Webserver brauch ich im Grunde nicht wirklich. Ich würde ihn aber 
gerne drauf lassen..."nur" eben um die Funktion das er WoL verarbeiten 
kann.

Für den Anfang würde ja ein kleines Programm reichen das nur das 
MagigPaket empfängt verarbeitet und damit einen Port/Pin ansteuert...wo 
dann meinet wegen einen Transistor durchgeschaltet wird.

Wenn sich da jemand die Zeit nehmen würde mich ein wenig an die Hand zu 
nehmen, wäre das super.

von Brause (Gast)


Lesenswert?

Hallo Matze,

auch so, Du meinst DAS MagicPacket für Wake On LAN. Wouh!

Also bei mir habe ich das so gelöst.
Es gibt ja die Aufruf-Routine HttpDCall() in HttpD.c, die die 
empfangenen Bytes auswertet. Ich habe mir ein entsprechendes Modul 
TcpIpD.c gebaut. Wenn man weiß, wie die Daten kommen (also wie ein 
Magische Paket aussieht), so kann man das in der Aufruf-Routine 
abarbeiten und "erkennen". So mache ich das auch. Ich habe mir ein 
einfaches Protokoll ausgedacht, wobei die ersten 2 Bytes angeben, 
wieviele Daten folgen.
Damit steuere ich dann Relais-Karten für eine Rollosteuerung an...

Wenn Du willst, kann ich Dir mal das .c schicken.

Grüße
Jörg

von Stefan P. (form)


Lesenswert?

Könnte mir bitte jemand sagen wie man die HttpD.c abändern muss, damit 
ein Char-Array aus dem RAM im Browser angezeigt wird?

Das ganze Parsing usw. soll komplett raus.

Ich tu mich leider extrem schwer bei den ganzen structs und pointern und 
verstehe den Source nicht so ganz.

char text[] = "Hallo Welt";
So sollte es dann im Browser stehen (ohne HTML). Mehr brauch ich nicht 
:-)

Vielen Dank schonmal für jegliche Hilfe.

von Simon K. (simon) Benutzerseite


Lesenswert?

@Stefan: Wo ist das Problem? Statt dem HTML Code in der default-page 
einfach dein "Hallo Welt" eintragen.

von Stefan P. (form)


Lesenswert?

Ja das ist mir klar :-)
Ich möchte aber während der Laufzeit den Ausgabetext ändern.

Konkret:
Bei HTTP-Abruf wird per UART ein neuer Text von woanders abgeholt und 
dann zum Browser geschickt.

Ich hab das als quick&dirty Variante schon in der CopyHttpData() 
Funktion eingebaut - allerdings gibts da mehrere Probleme mit der Länge 
des Strings und mit dem nachträglichen "parsing".

Deshalb wär es sehr hilfreich wenn mir jemand sagen könnte wie man das 
sauber hinbekommt.

von Matze .. (avr-rookie)


Lesenswert?

Hallo Jörg,

das wäre super. Dann könnte ich mir die .c mal anschauen. Aber sei 
gewarnt... :) ich hab sicher Fragen dazu.

Matze

von Stefan P. (form)


Lesenswert?

Könnte mir jemand helfen?
Ich möchte eine UDP-UART Bridge bauen (Befehl per UDP an die Platine 
senden, sie schickt den Befehl dann über UART raus, wartet auf eine 
Antwort und schickt diese Antwort dann per UDP zurück zum Anfragenden)


Bei mir hagelt es leider schon compiler-Fehler wenn ich in der uipopt.h 
"#define UIP_UDP" auf 1 setze. (Da fehlt anscheinend die Definition 
einer Variablen und es fehlt eine Sprungmarke.)

von Simon K. (simon) Benutzerseite


Lesenswert?

Habe da mal reingeschaut, anscheinend muss man UIP_ACTIVE_OPEN ebenfalls 
auf 1 setzen. Komische Sache das.
Dann geht es aber.

Wenn du nur eine UDP Anwendung benötigst, kannst du den uip_UdpAppHub 
raus"operieren". Der ist nur nötig, wenn man mehrere (UDP) Anwendungen 
laufen lassen möchte.

von Simon K. (simon) Benutzerseite


Lesenswert?

Hier hat jemand (Dave Festing) einen SMTP Client (neben ein paar anderen 
Sachen) für den uWebSrv aus dem uip-Stack ans Laufen bekommen:

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=733740#733740

von nowayback (Gast)


Angehängte Dateien:

Lesenswert?

Hat jemand von Euch zufällig bereits einen NTP-Client, basierend auf 
Simons UDP-Hub, für diesen Stack geschrieben?
Ich bin zwar zur Zeit dabei, einen zu schreiben, aber leider wird aus 
irgendeinem Grund der UdpAppHubCall bei mir nicht aufgerufen (UDP ist 
natürlich aktiviert).
Ich habe den Source von Peter Bünger 
(Beitrag "Re: Webserver mit UIP Stack und NTP-Client") verwendet und 
entsprechend modifiziert.
Den Code findet Ihr in der Anlage.
Die Initialisierung findet definitiv statt, allerdings wird wie gesagt 
NtpCall nicht von uIP aufgerufen, und auch wenn ich manuell die 
NTP-Anfrage versende, wird nie das new_data-flag gesetzt.
Ich habe schon vieles durchprobiert, aber leider ohne Erfolg.
Ich hoffe, Ihr könnt mir dabei weiterhelfen.

von eisace (Gast)


Lesenswert?

Hallo nowayback,

ist denn auch UIP_UDP_APPCALL in Deiner uip-conf.h header definiert?

zB.

#define UIP_UDP_APPCALL UdpAppHubCall

Suche mal danach ob der Callback auch definiert ist.

MfG

eisace..

von nowayback (Gast)


Lesenswert?

Hallo eisace,

danke für deine Antwort. UIP_UDP_APPCALL ist in der uip_UdpAppHub.h wie 
folgt definiert:
1
#define UIP_UDP_APPCALL uip_UdpAppHubCall

von eisace (Gast)


Lesenswert?

Hallo nowayback,

poste doch mal ein wenig mehr Code. Insbesondere den uip Teil... zB. 
uip-conf.h und was Du noch so meinst wäre wichtig.

Vielleicht alles was uip ist.

MfG

eisace

von Simon K. (simon) Benutzerseite


Lesenswert?

Am besten das ganze Projekt. ;-)

von NTP (Gast)


Lesenswert?


von Simon K. (simon) Benutzerseite


Lesenswert?

@NTP: Nice. I will ask the author if Im allowed to link it on the 
MicroWebServer Website.

von nowayback (Gast)


Lesenswert?

Gerade wollte ich meinen Source hochladen, da sehe ich den NTP-Source 
von Tobi. Ein Vergleich zeigte, dass ich einfach die udp-Erweiterung in 
der main.c vergessen habe. Habe ich eingefügt und mein bestehender 
NTP-Code funktionierte auf Anhieb!

Hello NTP,
Thank you very much for this link! It solved my problem!

Da ich den uIP-Stack auf dem atxmega implementiere und es bisher 
anscheinend keinen uIP-Code für xmegas gibt, kann ich gerne mein 
komplettes Projekt hier hochladen, sobald es fertig ist.
Ansonsten vielen Dank für eure Hilfe!

von Simon K. (simon) Benutzerseite


Lesenswert?

Du kannst gerne deine Portierung für den ATxmega veröffentlichen. Wenn 
du es mir erlaubst, werde ich auch auf der MicroWebServer-Website darauf 
verlinken.

von Thomas (Gast)


Lesenswert?

Hallo,

also ich habe gerade ganz aufmerksam den ganzen Beitrag gelesen und find 
es toll, was ihr gemeinschaftlich auf die Beine stellt.

Ich verwende gerade das PIC32 Ethernet Starterkit als Hardwareplattform 
bei meiner Diplomarbeit. Ich soll eine Testplatine entwickeln, mit der 
ich mehrere Steckkarten a 32* 24V-Relais ansteuere. Warum PIC32? Wurde 
mir auf den Tisch gelegt. (Jetzt spiele ich mit dem Gedanken auf Atmel 
um´zusteigen:-))


Ich habe hier leider nach Tagelangem suchen keine richtigen Beiträge in 
Foren gefunden. Heute war ich verzweifelt und habe angefangen nach 
Alternativen zu gucken. Und siehe da!! Nach kurzer Recherche finde ich 
diesen tollen Beitrag. Vieles von den angesprochenen Dingen könnte ich 
in meine Diplomarbeit einfließen lassen.

Die Testplatine von Jörg T., mit der er 8x 24V-Relais anspricht, ist 
genau das, was ich entwickeln will. Und auch die fertigen Webinterfaces 
sind richtig gut gelungen.

Ich habe auf der Arbeit keine Ansprechpartner für den PIC32,
und komme mit meiner Diplomarbeit deshalb nicht in die Gänge. Frust 
statt Erfolg!!

Wenn ich umstelle auf Atmel, könnte ich direkt loslegen und mich mit 
euren Projekten beschäftigen!!

Da ich zeitlich sehr eingeschränkt bin, würde das meiner Diplomarbeit zu 
gute kommen.

Ich könnte euch dann auch immer wieder mit neue Infos anbieten und würde 
meine Arbeit dann auch hier zur Verfügung stellen..

Würdet ihr mir dazu raten??

Lieben Gruß

von Simon K. (simon) Benutzerseite


Lesenswert?

Ich kenne mich mit PICs nicht aus. Aber PIC32 klingt nach nem 32 Bitter, 
wohingegen der hier verwendete AVR nur ein kleiner 8 Bitter ist und von 
der Rechenleistung her um einige Potenzen unter den 32 Bittern liegt.

Ansonsten ist der Umfang von dem was du vor hast abhängig davon, wieviel 
zu letztendlich selber machen willst.

Willst du einen eigenen TCP/IP Stack schreiben: Nimm dir Zeit! ;-) 
Willst du nur den Webserver schreiben, das könnte eventuell hinhauen. 
Aber dafür musst du auch erstmal deine Plattform ans laufen bringen.

Ob 32 Bitter oder 8 Bitter hängt schlussendlich von der benötigten 
Performance ab. Für ein paar Relais über ein Webinterface (und evtl. 
noch UDP) zu schalten reicht ein 8 Bitter mit abgespecktem TCP/IP Stack. 
Für komplexere Sachen (Übertragung von großen Dateien z.B.) musst du 
beim Speicher und bei der Rechenleistung aufstocken.

von Matze (Gast)


Lesenswert?

@ Simon

Ist in deinem Sourcecode schon die Abfrage auf ein MagicPaket des Wake 
on Lan implementiert?

Bzw was muss ich beim ENC und im ATmega ändern das ich einen GPIO 
geschaltet bekomme wenn ein MagicPaket kommt?

von Frank K. (fchk)


Lesenswert?

Thomas schrieb:

> Ich verwende gerade das PIC32 Ethernet Starterkit als Hardwareplattform
> bei meiner Diplomarbeit. Ich soll eine Testplatine entwickeln, mit der
> ich mehrere Steckkarten a 32* 24V-Relais ansteuere. Warum PIC32? Wurde
> mir auf den Tisch gelegt. (Jetzt spiele ich mit dem Gedanken auf Atmel
> um´zusteigen:-))

> Ich habe hier leider nach Tagelangem suchen keine richtigen Beiträge in
> Foren gefunden.

Brauchst Du eigentlich auch nicht. Bei Microchip gibts alles, was Du 
brauchst. Versuche erstmal, die TCP/IP Demo Application zu übersetzen. 
Das sollte so auf Anhieb funktionieren. Wenn Du Den C32 1.12 hast, musst 
Du irgendwo eine Funktion auskommentieren, die der Compiler in der neuen 
Version schon eingebaut hat (ultoa), aber das siehst Du dann schon.

Wenn das läuft, dann kannst Du weitermachen und das Zeugs an Deine 
Bedürfnisse anpassen.

Solltest Du Probleme mit dem On-Board JTAG Debugger haben, lass den sein 
und klemm einfach extern ein ICD3 oder ein PicKIT3 an.

Und der richtige Ort für Fragen sind die Microchip-Foren. Da lesen auch 
Microchip-Leute, und die antworten auch.

> Würdet ihr mir dazu raten??

Nein.
1. Andere Plattform - andere Probleme.
2. Später im Job kannst Du das auch nicht einfach so machen.
3. Die Informationen, die Du brauchst, sind alle auf der Webseite von 
Microchip verfügbar. Als fertiger Ing. wird von Dir erwartet, dass Du 
Dir eigenständig Informationen besorgen und konsumieren kannst, auch 
wenn alls nur auf Englisch ist. Das hast Du zu können, ansonsten hast Du 
Dein Diplom nicht verdient.

fchk

von Matthias K. (matthiask)


Lesenswert?

Der letzte Beitrag ist schon etwas her, ich weiß...
Wird das Projekt noch gepflegt? Ich hätte eine Frage.

von Simon K. (simon) Benutzerseite


Lesenswert?

Das Projekt wird nicht aktiv gepflegt. Aber eine Frage kann ich dir 
beantworten ;-)

von Matthias K. (matthiask)


Lesenswert?

OK, Danke.

Ich habe den Code auf einen STM32 mit ENC28J60 portiert. Es fängt auch 
an zu funktionieren. Leider nicht stabil. Ich kann mit dem Browser unter 
der IP die Seite einige male abrufen, dann hängt sich das System auf. 
Manchmal geht es auch nur 1 mal. Dann kommt keine Antwort mehr. Es geht 
im Browser überhaupt nur, wenn ich nach der IP noch :8080 anfüge.

Ebenso beim Ping, klappt mal, mal nicht.

Im Prinzip habe ich nur die SPI Routinen an dem STM32 angepasst und 
alles was mit der AVR Progmem-Spezifik zu tun hat rausgenommen.

Wo soll ich anfangen zu suchen?

von Simon K. (simon) Benutzerseite


Lesenswert?

Hmm, hast du mal Wireshark Dumps von dem Moment, wo die Verbindung nicht 
mehr funktioniert?

Möglich ist, dass irgendwo ein Pufferüberlauf im Mikrocontroller 
stattfindet.

von Matthias K. (matthiask)


Angehängte Dateien:

Lesenswert?

Als Anhang ein Dump. 192.168.2.29 ist der ENC/STM32 Server.

Bis zu Eintrag 55 geht der funktionierende http Abruf unmittelbar nach 
Reset der Schaltung. Dann folgt der 2. Aufruf der IP, wo keine 
Verbindung mehr zu Stande kommt. Browser meldet nach einer Weile 
Zeitüberschreitung. Ping geht dann auch nicht mehr. (Manchmal geht der 
Aufruf auch mehremals hintereinander gut.)

Das µC System hängt sich dabei offensichtlich nicht auf. Andere 
Funktionen gehen noch. Es gibt auch keinen Hardfault-Error, was auf 
einen Zugriff auf ungenehmigten Speicher hindeuten könnte. Ein 
Bufferüberlauf könnte es trotzdem sein.

Hier mein main-loop:
1
 while (1) {
2
  if (keypressed()) clear_tft(BLACK);        // TFT löschen
3
    uip_len = Enc28j60Receive(uip_buf);
4
    if (uip_len> 0) {
5
      if (((struct uip_eth_hdr *)&uip_buf[0])->type == htons(UIP_ETHTYPE_IP)) {
6
        // uip_arp_ipin();
7
        sprintf(tft.buffer,"LAN UIP_ETHTYP_IP: %d",UIP_ETHTYPE_IP);
8
      printf_tft(1,90,tft.buffer);
9
        uip_input();
10
        if (uip_len > 0) {
11
          sprintf(tft.buffer,"LAN uip_len=%d (%d)",uip_len, temp1); temp1++;
12
         printf_tft(1,105,tft.buffer);
13
          uip_arp_out();
14
          uip_split_output();
15
        }
16
      } else if (((struct uip_eth_hdr *)&uip_buf[0])->type == htons(UIP_ETHTYPE_ARP)) {
17
        uip_arp_arpin();
18
        if (uip_len> 0) {
19
          uip_split_output();
20
        }
21
      }
22
    }
23
  if (g_nFlags.fPeriodic) {
24
    printf_tft(1,120,"Periodic             ");
25
    // cli();
26
      g_nFlags.fPeriodic = 0;
27
      // sei();
28
      int i= UIP_CONNS;
29
      while (i) {
30
        i--;
31
        uip_periodic(i);
32
        if (uip_len> 0) {
33
          printf_tft(1,120,"Periodic-OUT");
34
          uip_arp_out();
35
          uip_split_output();
36
        }
37
      }
38
      g_nPrescaler--;
39
      if (g_nPrescaler == 0) {
40
        //Every 10 seconds
41
        printf_tft(1,120,"Periodic 0");
42
        uip_arp_timer();
43
        g_nPrescaler = 100;
44
      }
45
    }
46
  }

von Simon K. (simon) Benutzerseite


Lesenswert?

Vorab: Funktioniert es denn ohne die ganzen TFT Routinen?
Und könntest du den Dump als Wireshark Dump anhängen? Statt als .txt. 
Das ist übersichtlicher.

von Matthias K. (matthiask)


Lesenswert?

Simon K. schrieb:
> Funktioniert es denn ohne die ganzen TFT Routinen?

Die TFT Anzeigen hatte ich erst später eingebaut, zur Fehleranalyse. 
Ohne diese ist das gleiche Fehlerbild.

Ich komme erst im laufe der nächsten Woche wieder dazu weiterzumachen, 
dann mache ich das Dump. Danke erstmal.

von Matthias K. (matthiask)


Lesenswert?

Simon K. schrieb:
> Und könntest du den Dump als Wireshark Dump anhängen?

Ich bin wieder dran. Wie geht das mit dem Dump? Ich konnte keine 
diesbezügliche Funktion finden.

von Simon K. (simon) Benutzerseite


Lesenswert?

Gibts nicht im Wireshark irgendwo Speicher Unter? .pcap Dateien waren 
das, glaube ich.

von Matthias K. (matthiask)


Lesenswert?

Speichern unter ist grau, also geht nicht. Bei Export gibt es kein .pcap

von Simon K. (simon) Benutzerseite


Lesenswert?

Du musst dafür auch das Capturen stoppen...

von Jürgen S. (Firma: privat) (jschmied)


Lesenswert?

Hallo!

Ich habe die Software auf einem PIC18F4585 am laufen (C18 Compiler). Bei 
Interesse einfach melden.

(braucht 20KB ROM/1,1 kB RAM)

vg

Jürgen

von Interessent (Gast)


Lesenswert?

Hallo Jürgen,
ich melde Interesse an, Hex-File und Peripherie/Pin/Quarzparameter bzw 
Schaltplan wären zum Probieren vorerst genug.

Source ist ja Dein geistiges Eigentum.

Gruß Matze

von Jürgen S. (Firma: privat) (jschmied)


Angehängte Dateien:

Lesenswert?

Hallo!

Die Schaltung ist mit wenigen Worten beschrieben:

- PIC18F4585 oder ähnlich mit internem Takt

- Das Breakout-Board:
http://www.ebay.de/itm/ENC28J60-Ethernet-LAN-Netzwerk-Modul-Arduino-RJ45-SPI-mit-Befestigungsbohrungen-/121158045138

CS auf  A3
SI auf C5 (SDO)
SO auf B4 (SDI)
SCK auf C3 (SCK)
RES auf B4

Den ENC28J60 über einen 3,3 V Regler versorgen.

In den Sourcen bitte usb.c (Hab noch einen UM245 zum loggen dran) und 
die printf's löschen, ist noch eine Testversion.

Compiler: C18 und MPLAB 8.91. Auf die Sourcen erhebe ich keine 
Ansprüche, ich habe es ja nur portiert.

vg

Jürgen

von Sixeck (Gast)


Lesenswert?

Ich bin zwar erst bei ca 40% des Threads, aber gibt es irgendwo noch den 
original Code des Programms das darauf lief ? oder ist das uIP ? Und was 
wurde aus klinkerstein.de ?

Dieser Webserver scheint eine alternative zu dem CrumbX1-NET zu sein, 
der mir letztens abgeraucht ist. Und vor allem billiger ...
Leider war da das 'OS' schon drauf...

von Simon K. (simon) Benutzerseite


Lesenswert?

Gute Frage was da mit der Website los ist. Ich kümmer mich drum!

von Simon K. (simon) Benutzerseite


Lesenswert?

Nachtrag: Läuft wieder alles! Danke für den Hinweis.
http://de.klinkerstein.m-faq.de/index.php/MicroWebServer

: Bearbeitet durch User
von Dennis S. (sixeck)


Lesenswert?

Nice danke :) jetzt ist es doch viel informativer als so eine weiße 
Seite.

von Dennis S. (sixeck)


Lesenswert?

Was jetzt noch fehlt ist ein PL Modem in SMD :D oder besser noch drauf

von anatol (Gast)


Lesenswert?

mit diesem Bausatz klappt auch sehr gut:

http://www.ehajo.de/baus%C3%A4tze/spi-netzwerkadapter-wiznet-w5500.html

leider preisslich ist nicht so gut, aber trotzdem ist eine gute Loesung,

lg
anatol

von Dennis S. (sixeck)


Lesenswert?

Einen kompletten Bausatz mit dem 328er gibts nicht mehr oder ? Bekommt 
man das noch irgendwo oder hat einer noch einen zuviel ?

von Sepp (Gast)


Lesenswert?

POE fehlt.

von Sepp (Gast)


Lesenswert?

Hallo zusammen

Weiß jemand was ich in der Software ändern muss, dass bei Empfang des 
MagicPaket (WoL) ein Port geschaltet wird...an dem ein Relais hängt?
Will damit eine externes Gerät per WoL starten.

Danke, euch.

von udp User (Gast)


Lesenswert?

Hallo,

ich verwende den Uip stack und tcp funktioniert wunderbar, kann neben 
http auch noch über andere ports daten senden und empfangen.
Nun möchte ich, da ich mehrere dieser Webserver habe, von meinem Qt 
Programm einen UDP Broadcast aussenden, sodass sich die Webserver beim 
Qt Programm melden...
soweit sogut udp apphub ist schließlich vorhanden.
Qt Applikation sendet brav UDP Broadcasts aus (Wireshark)..

Leider kommt am Webserver nichts an..


hier mein verwendeter code am Webserver:
1
#define BROADCASTPORT 65535
2
void uip_UdpAppHubCall(void)
3
{
4
  printf_P(PSTR("UDP Call!\n"));
5
  switch(uip_udp_conn->lport){
6
    case HTONS(BROADCASTPORT): printf_P(PSTR("Broadcast received!\n")); 
7
    printf("Remote address:%d%d\n",uip_udp_conn->ripaddr[0],uip_udp_conn->ripaddr[1]);
8
    //uip_connect(uip_udp_conn->ripaddr,HTONS())
9
    break;
10
    default: printf_P(PSTR("undefined UDP packet on PORT:"));printf("%d",uip_udp_conn->lport);printf_P(PSTR(" received!\n")); break;
11
  }
12
  printf_P(PSTR("undefined UDP Call!\n"));  
13
}
14
15
void uip_UdpAppHubInit(void)
16
{
17
  uip_ipaddr_t addr;
18
19
  uip_ipaddr(&addr, 10,0,0,230);
20
  c = uip_udp_new(&addr, HTONS(BROADCASTPORT));
21
  uip_udp_bind(c, HTONS(BROADCASTPORT));
22
  
23
  printf_P(PSTR("UDP init! Listen on Port:65535\n"));
24
}


in der uipopt.h

sind natürlich alle UDP optionen aktiviert:
1
#define UIP_UDP           1
2
3
4
#define UIP_UDP_CHECKSUMS 1
5
6
7
#define UIP_UDP_CONNS    3
8
9
10
#define UIP_ACTIVE_OPEN 1
11
#define UIP_CONNS       4
12
#define UIP_LISTENPORTS 5


abgesehen vom Empfangen von Broadcast Nachrichten, erhalte ich auch 
leider keine NichtBroadcast Pakete...

Sieht jemand meinen Fehler, bin mittlerweile etwas ratlos...

von RoBo (Gast)


Lesenswert?

Hallo,
C kann ich nicht. Darum die Frage:
An welche IP Adresse schickts Du den Broadcast (also das Ziel) und 
welche Netzwerkmaske wird in dem Netzwerk verwendet?

von Figlux E. (Firma: figlux electronix) (fuxl)


Lesenswert?

also config vom uip stack sieht wie folg aus:
1
void init_uip_user(void){
2
        uip_ipaddr_t IpAddr;
3
        uip_ipaddr(IpAddr, 10, 0, 0, 230);
4
        //uip_ipaddr(IpAddr, 192, 168, 77, 78);
5
        uip_sethostaddr(IpAddr);
6
        uip_ipaddr(IpAddr, 10, 0, 0, 138);
7
        //uip_ipaddr(IpAddr, 192, 168, 77, 77);
8
        uip_setdraddr(IpAddr);
9
        uip_ipaddr(IpAddr, 255, 255, 255, 0);
10
        uip_setnetmask(IpAddr);
11
    }

broadcasts sende ich vom qt aus via:
1
void MainWindow::on_BroadcastTimeOut(void){
2
    if(ui->gb_onlineDevs->isVisible()){
3
        broadcaster->writeDatagram("ON?",QHostAddress::Broadcast,BROADCASTPORT);
4
        qDebug() << "Write Udp Broadcast!";
5
    }
6
}
diese funktion rufe ich periodisch auf.

und ipconfig von meinem Notebook:
ip:10.0.0.xx
sub:255.255.255.0
gw:10.0.0.138


Zu deiner Frage:
ich verwende:
1
QHostAddress::Broadcast
lauf QT doku:

QHostAddress::Broadcast  1  The IPv4 broadcast address. Equivalent to 
QHostAddress("255.255.255.255").

Btw:
warum kann ich von meinem Notebook unangemeldet hier posten und von 
meinem PC aus nur angemeldet, egal welcher browser?^^

: Bearbeitet durch User
von RoBo (Gast)


Lesenswert?

Also 2 verschiedene Netze so wie es scheint.

Ein Broadcast bleibt im Normalfall immer in dem eigenen Netz, wo er 
losgeschickt wird.

Bei Deinem Notebook mit der Maske 255.255.255.0 geht der also auf die 
10.0.0.255 als Ziel.

von Figlux E. (Firma: figlux electronix) (fuxl)


Lesenswert?

Hallo,

aber mein uip Webserver ist auch im selben Netz:
1
       uip_ipaddr(IpAddr, 10, 0, 0, 230);
2
        uip_sethostaddr(IpAddr);
3
        uip_ipaddr(IpAddr, 10, 0, 0, 138);
4
        uip_setdraddr(IpAddr);
5
        uip_ipaddr(IpAddr, 255, 255, 255, 0);

Oder übersehe ich da etwas?

von RoBo (Gast)


Lesenswert?

Findest Du denn bei Deinem NB mit WireShark/tcpdump die Pakete wieder ?
Quelle IP Dein NB und Ziel IP 10.0.0.255 ?
Quelle MAC Adr. Dein NB und Ziel MAC Adresse ff:ff:ff:ff:ff:ff ?

von RoBo (Gast)


Lesenswert?

Auch wenn ich kein C kann ... ich finde oben in Deinem Code Schnipseln 
nicht die Ziel IP 10.0.0.255 als Broadcast IP Adresse oder macht die 
Software das selbst ?

von udp User (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

also udp broadcast geht raus sieht so aus wie am bild angehängt..
Denke eher es hapert an der UDP Konfiguration...

von Clyde H. (clyde)


Lesenswert?

Moin Moin zusammen.
Kann mir jemand nach gut 7 Jahren nochmal auf die Sprünge helfen?
Wo und wie kann ich im Code ansetzen, um die gesetzten Ports nach 
Zeit(x) wieder aus zu schalten?

Gruß
Clyde

von Clyde H. (clyde)


Lesenswert?

Hi,

ich habe jetzt in der Main.c die Schleife für das abschalten eingefügt:
1
  if (g_nPrescaler == 0)
2
  {
3
           //Every 10 seconds
4
    uip_arp_timer();
5
    g_nPrescaler = 100;
6
          
7
    //Automatisches ausschalten der Ports nach 10 Sekunden
8
    uint8_t i;
9
    for (i=0; i<8; i++)
10
    {
11
      GpioSetPort(i, 0);
12
    }
13
  }

Das abschaltet funktioniert wie gewünscht. Nur wie teile ich das der 
Webseite nochmal mit? Wenn diese geöffnet ist, üßberträgt sie bei jedem 
"window.setInterval" erneut. Das submit() habe ich versuchsweise mal mit 
reset() getauscht aber dann lädt die Seite nicht mehr richtig und muss 
ebenfalls erneut aufgerufen werden.
Hat jemand ne Idee?

von uct (Gast)


Lesenswert?

Hallo, hab noch einen ungenutzten uWebSrv v2 .. jemand Interesse ?

von Falkner F. (Gast)


Lesenswert?

Hallo Liebes Forum,
Hallo Lieber Simon,

soeben bin ich auf diesen Webserver von Simon gestossen und wollte den 
gleich mal ausprobieren auf meinen Atmega8 16 DIP. Leider bekomme ich 
ein paar Fehler die mich seit ein paar Stunden aus den Konzept werfen.
Das ist einmal "unknown type name 'prog_void'" und einmal 'TIMSK1' 
undeclared(first use in this function). Da ja C Ansicode ist sollte das 
doch mit jeder IDE gehen wenn man das richtig kopiert. Ich denke auch 
nicht, dass es ein Codefehler ist sondern eher das es an der IDE liegt. 
Mit welcher IDE wurde das ursprünglich erstellt? Oder besser, hat jemand 
eine lauffähige Solution AtmelStudio 6 SP2 die er mir zu Verfügung 
stellen kann. Das wäre das allerbeste. Ich möchte den nur benutzen und 
die Webseite evlt. an meine Bedürfnisse anpassen. Daher wäre das eine 
sehr elegante Lösung. Danke für eure Mithilfe.

Liebe Grüße

Falkner

von Falkner F. (Gast)


Lesenswert?

So heute endlich konnte ich das Projekt kompilieren. Für alle die das 
dann auch mal nachvollziehen wollen hier was ihr braucht:

Ich habe das jetzt auf WinXP SP3 unter VirtualBox auf einem Macbook Pro 
am laufen. Und es läuft stabil.

1. Diese IDE downloaden AVR Studio 4.13-528 (73 MB, updated 03/07): 
https://www.mikrocontroller.net/articles/Atmel_Studio

2. Nun braucht ihr den WinAVR der ist hier zu finden: 
https://sourceforge.net/projects/winavr/files/WinAVR/20100110/

3. Beides installieren

4. Jetzt könnt ihr das Projekt von Simon downloaden und mit der IDE 
öffnen:
http://de.klinkerstein.m-faq.de/index.php/MicroWebServer/Downloads

5. Ich benutze den myAVR light Pogrammer und für den gibt es das myAVR 
Prog Tool. Aufspielen auf den ATMEGA 168-20DIP und fertig.

Liebe Grüße

Falkner

von Matze .. (avr-rookie)


Lesenswert?

Hallo Gemeinde,

ich habe zwei Simon K.’s micro Web Server zu verkaufen.

 - 2x Simon K.’s micro Web Server (1x Bausatz, 1x aufgebaut)

Preis:  je 35€ VB

Hier die Details.

https://www.ebay-kleinanzeigen.de/s-anzeige/konvol...

Gruß, Matze

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
Noch kein Account? Hier anmelden.