mikrocontroller.net

Forum: Projekte & Code Netzwerkkarte mit RTL8019


Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
habe auf meiner Webseite einen kleinen Webserver mit einer
Netzwerkkarte und AVR µC gebaut. Wer noch eine Netzwerkkarte für ein
eigenes Projekt benötigt, findet hier auch eine keine Platine mit einem
Realtek RTL8019 Chip zum selber bauen(das Layout ist einseitig). Die
Layouts liegen als Eagle files mit der Libary vor.

Mfg Ulrich Ragig

meine Page www.ulrichradig.de

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Uli,

prima. Ich hatte die Seite schon vor einigen Tagen gefunden, habe aber
noch keine Netzwerkkarte mit RTL8019. Ich werd's demnächst mal mit
einer anderen Karte probieren. Ich brauche nur noch eine
ISA-Steckleiste.

Joline

P.S. Inzwischen funzt Deine Seite ja auch mit Opera.  ;o)

Autor: André Kronfeldt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Joline,

falls Du noch den ISA-Stecker suchst:

www.Reichelt.de:
STECKER 62-254
Preis: 0,45 Euro

Grüße,
André

Autor: stromi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
ich habe mit interesse das projekt gesehen. ist es dann möglich mit
browsern wie iexplorer die ad-kanäle und ports darzustellen und gibt es
dafür beispiele?
für eine antwort wäre ich dankbar.
tschaui

Autor: ulrichradig (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieses ist bisher nicht realisiert stellt aber kein Problem dar.
Dieses werde ich die nächsten Tage mal in Angriff nehmen.
Zur Zeit lassen sich nur die Ports steuern.

Mfg Ulrich Radig

Autor: stromi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für die antwort,
ich bin gespannt.
so etwas ähnliches wird ab und zu mal bei ebay angeboten.

Autor: Andreas Jakob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Ulrich,

das Layout für die einseitige Realtek Netzwerkkarte gefällt mir, werde
ich wahrscheinlich nachbauen. Aber bist Du sicher daß R1 220 Ohm haben
soll ? Soweit ich daß in Errinerung habe, muss dieser Widerstand dem
Wellenwiderstand das Kabels entsprechen, also 100 Ohm haben ?!

Grüße
Andreas

Autor: ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Laut Realtek ( www.realtek.com.tw ) soll der widerstand 200 ohm
betragen. da dieser nicht vorhanden war habe ich halt 220 ohm genommen.
funzt aber genauso.

Mfg Ulrich Radig

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe selber diesen Webserver nachgebaut und hat soweit super
funktioniert. jedoch ist mir vor einer woche die Realtek RTL8019AS ISA
Netzwerkkarte aus irgend einem grund kaputt gegangen. deshalb hab ich
versucht eine neue aufzutreiben, war aber nicht erfolgreich.

hätte jemand eine solche NIC für mich billig übrig? (am besten gleich 2
g). - wäre super!

danke schon mal,
Max

Autor: ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja habe ich noch,
inzwischen habe jetzt so viele netzwerkkarten getestet und herumliegen
das ich eine abtreten kann.

Mfg Ulrich

Autor: schneidertobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,
benoetigt man fuer dein projekt eigendlich unbedingt eine karte mit
diesem realtek chipsatz oder reicht auch jede normale isa(ne2000)
ethernetkarte?

Gruß Tobias

Autor: ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
NEIN!

es reicht eine ISA Netzwerkkarte (NE2000 Kompatibel)

getestet habe ich Netzwerkkarten natürlich Realtek RTL8019, Accton mit
MPX2 Chipsatz, 3Com 3c509TX und eine eines mir unbekannten Herstellers
mit UM9008F Chipsatz.

Mfg Uli

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hinzugekommen ist eine Realtek Netzwerkkarte mit RTL8009 Chipsatz

Mfg Ulrich Radig

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hat schon mal einer einen anderen als den ATMega103/128 ausprobiert?
Funktioniert aus ein ATMega8 oder ATMega16?

Joline

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur mit einen Mega32 mit 2Kbyte bisher noch getestet.
Sollte aber erstmal nichts dagegensprechen das Programm an einen mega8
anzupassen.

Mfg Uli

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wenn ich die Quellen compiliere, wird eine .hex Datei erzeugt, die
19.814 Bytes groß ist. Ist das auch die Speichergröße, die ich auf dem
Controller benötige? Dann würde nämlich ein ATMega8/16 nicht
funktionieren.

Joline

Autor: ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das ist richtig das die datei 19KByte groß ist :-)
lade dieses hexfile mal mit deiner programmersoftware
und du bemerkst dann das er nur ca. 8Kbyte programmiert
in dem HEX file sind adresslocation und prüfsummen enthalten
die nicht mit programmiert werden. Somit passt das programm in einen
Mega32

Mfg Ulrich Radig

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so habe von jemanden erfahren das dieser meinen Code für einen Atmel
umgeschrieben hat fotos werden laufe der nächsten tage auf meiner
homepage folgen.

Mfg uli

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe mega8 vergessen

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin schon gespannt darauf.  :o)

Autor: schneidertobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi ulrich,
ich hab grad nochmal dein layout ueberfolgen, und da ist mir noch was
aufgefallen, ist denn diese Verbindung zwischen den zwei pads ganz
links unten, auf der linken seite gewollt? die sieht so unpassend zum
restlichen layout aus

Gruß Tobias

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist Richtig.
Das sind die Pinne SMEMWB und SMEMRB wie im Schaltplan zu erkennen
liegen die auf +5V.

Mfg uli

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Uli

Hallo,

ich habe mir mal den Code etwas genauer angesehen und jetzt einige
Fragen:

1. Warum wurde INT4 benutzt? Ist es auch ohne weiteres (nach
Programmanpassung) möglich, einen anderen Interrupt, etwa INT0, zu
benutzen?

2. Auf der Website, die zurückgeliefert wird, werden 3 Checkboxen
angezeigt: Lampe 1, Lampe und Test. Bei diesen sind Value=1,2 bzw. 3
hinterlegt. An welcher Stelle des Codes werden diese Werte
ausgewertet?

3. Ist es richtig, dass im Moment nur PB0 als Ausgang benutzt wird?
Wird noch ein weiterer Kanal als Eingang benutzt?

4. Es wurde ein Quartz mit 14,xxx benutzt. Hat das einen wichtigen
Grund, oder war der einfach nur gerade verfügbar?

Joline

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
4. Der Quarz ist unerheblich, allerdings verlängern sich bei einer
niedrigeren Frequenz die Antwortzeiten z.b bei PING

3. Es ist richtig das zur zeit nur PB0 angesteuert wird. Ist aber ohne
weiteres auf 8 und mehr kanäle zu erweitern.

2. Die Auswertung findet in der datei Httpd.c statt direkt am Anfang.

1. Der INT4 ließ sich besser konfigurieren (mehr möglichkeiten) als
INT0. Würde aber auch mit INT0 laufen wenn dieser richtig eingestellt
wird. :-)

Mfg Uli

Autor: john (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo uli,

ich habe mir einen tragbaren mp3 spieler gebastelt der die daten von
einer mmc liesst. das neue projekt ist ein desktop player, der neben
mmc auch netzwerk haben soll.
ich hatt mir zwei packet whacker von edtp.com bestellt. leider war
einer schon kaputt als er an kam, und den zweite habe ich gebraten. da
habe ich deinen beitrag in diesem forum gelesen, und dein board ist wie
der packet whacker, nur das du auch noch galvanisch trennst.
lange rede kurzer sinn, tolles design.
frage : weisst du wo ich die RTL8019 einzeln bestellen kann ?
packet whacker ist mir zu teuer, und wenn ich auf zb easytcp/ip
umsteige, müsste ich die ganze source wieder ändern.

danke im vorraus,

john

Autor: Oliver Keller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Geht doch einfach zum Schrottplatz (ok, nur die mit
Elektronik-Container)!
Bei meinem findet man ISA NE2000 Netzwerk Karten in rauhen Mengen...

Gruss,
oli

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Uli,

ich bin noch Anfänger in Sachen Mikrocontroller. Deshalb auch die
blöden Fragen:

Wieso lässt sich INT4 besser als z.B. INT0 konfigurieren? Macht nicht
jeder Interrupt das Gleiche?

Und noch einmal zu meiner Frage 2 (s.o.):
Ich habe schon prinzipiell die Stelle (also Httpd.c) gefunden, sonst
hätte ich das mit PB0 ja nicht gewußt. Aber ich kann dort nicht finden,
wann welche Value ausgewertet bzw. gesetzt wird. Irgendwie bin ich da
blind.  :o(

Danke Joline

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meine ISA Karten habe ich vom Schrottplatz!
Habe dann den RTL8019 heruntergelötet und auf meiner Netzwerkkarte
verbaut.
Aber man bekommt den Chipsatz auch bei www.egnite.de, finde ich aber
etwas zu teuer.
Eine andere Alternative wäre da noch EBay.

Mfg Uli

Autor: kofi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe auch noch solche karten hier herumfliegen aber wie kann ich son
fetten IC darunter löten ohne was kaputt zu machen ???

gruß
-kofi

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich benutze dazu immer einen Heißluftfön.
Als erstes ziehe ich kupferlackdraht unter den IC beinchen durch,
danach befestige ich die Karte hochkant, durch erwärmen der unterseite
der platine und gleichzeitige ziehen am kupferlackdraht löst sich das
IC. Kupferlackdraht nehmen!!

mfg uli

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Uli,

ich bin noch Anfänger in Sachen Mikrocontroller. Deshalb auch die
blöden Fragen:

Wieso lässt sich INT4 besser als z.B. INT0 konfigurieren? Macht nicht
jeder Interrupt das Gleiche?

Und noch einmal zu meiner Frage 2 (s.o.):
Ich habe schon prinzipiell die Stelle (also Httpd.c) gefunden, sonst
hätte ich das mit PB0 ja nicht gewußt. Aber ich kann dort nicht finden,
wann welche Value ausgewertet bzw. gesetzt wird. Irgendwie bin ich da
blind.  :o(

Danke Joline

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ist eine IF abfrage 1 = 1 das setzt den portB.0
ist noch nicht ganz sauber aber ich arbeite dran

Mfg Uli

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Uli,

irgendwie kann ich nicht erkennen, wie hier Value = 1,...,3 versteckt
sind:

if ((buffer[TCP_hdrflags+1]&PSH_Flag) > 0 )
  {
  unsigned int result16 = ((buffer[ip_vers_len] & 0x0F) << 2) +
    ((buffer[TCP_hdrflags] & 0xF0) >>2) + 14;
    for (int a = result16;a < (result16 +20);a++)
      {
      if (buffer[a] == '1' && buffer[a + 1] == '=' &&
        buffer[a + 2] == '1')
        {
          if (bit_is_set(PORTB,0))
            {
              PORTB = 0;
            }
            else
            {
              PORTB = 1;
            }
         }
      }
  }

Vielleicht kannst Du das ja noch einmal kurz erklären.

Danke Joline

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das ist die 2 IF abfrage

if (buffer[a] == '1' && buffer[a + 1] == '=' && buffer[a + 2] ==
'1')

somit wird der portb.0 an bzw ausgeschaltet, diese routine müsste noch
überarbeitet werden am besten durchsucht man buffer nach den wert 1=1.
wenn man nun portb.1 schalten wollte kopiert man die routine und setzt
portb.1 ein und ersetzt das kriterium für die suche.

mfg uli

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Uli,

das mit portb.0 ist klar.
Aber wenn man aus "webpage.h" den HTML-code extrahiert, bekommt man
eine Seite mit 3 (!) Checkboxen angezeigt: Lampe 1 (Value=1), Lampe
(Value=2) und Test (Value=3).

Wird also nur Value=1 auf den Wert 1 geprüft und die beiden anderen
Checkboxen sind überflüssig?

------------

Dem Anschlußplan der ISA-Netzwerkkarte ist zu entnehmen, dass alle
wichtigen Signale auf dem ISA-Bus Ax und Bx liegen. Bei Dx und Cx sind
lediglich D16 mit VCC und D18 mit GND verbunden. Kann man diese beiden
eigentlich auch weglassen oder sind die wichtig?

Joline

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dx und Cx können weg gelassen werden. Mit der anderen annahme liegst du
richtig, man kann die anderen Checkboxen weglassen oder mit einer
Funktion belegen.

Mfg Uli

Autor: Kofi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin!
... hab' da mal ne Idee:
Was haltet ihr davon eine Fnktion zu integrieren, die die interne RTC
des µC mit dem NTP Protokoll und einem ntp server einstellt...
NTP ist recht simpel.


gruß

Kofi

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
an diese idee habe ich auch schon gedacht, aber da ich nun die mmc
ansteuerung fertig habe, werde ich erst diese für webseiten und
downloads impementieren

mfg uli

Autor: kofi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gibt es eigentlich schon ähnliche oder vergleichbare open source
projekte ?

gruß
kofi

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja,

von egnite. Da kostet nur die Hardware was.


Mfg Sascha

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja es gibt eine menge vergleichbarer Produkte Ethernut usw. und auch die
Elektor hat in ihrem Halbleiterjahresheft 2004 nun einen Webserver mit
MSP µC allerdings soll dieser 159€ kosten. Mein Ziel war es einen
Webserver zu bauen den jeder ohnen großen Aufwand nachbauen kann somit
sind auch meine Platinenlayouts einseitig. Ein weiteres Punkt ist und
war es so wenig Bauteile wie möglich also nur Prozessor und Netzwerk
IC. Somit ist dieser Webserver nach meinen Vorstellungen einer mit der
preiswertesten auf dem Markt.

Mfg Ulrich

Autor: kofi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dat stimmt !
Wie weit bist du eigentlich ?!
Ist das schwierig das man z.B. files per µC auf einer MMC oder SD-Card
ablegt ?!
...Ich meine braucht man da nicht ein richtiges Dateisystem für .. FAT
oderso ?

gruß
kofi

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
es geht voran werde in den nächsten 1-2 Tagen einen neuen Source Code
für den WebServer haben, nun kann dann auch eine Webseite Bilder
enthalten.
Die Ansteuerung einer MMC karte kommt dann laufe der Woche.
Die Daten werden dann zur Zeit mit einen CardReader gespeichert.
Der Webserver greift dann via FAT auf die Karte zu. Das Speichern von
Daten via FTP brauch dann noch ein wenig Zeit.

Mfg Uli

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bin beim Nachbau. Genutzt werden, soll ein ATmega32. Ich habe aber nur
Netzwerkkarten mit einem SMC Chip (83C790). Reicht es, nur das EEprom
auszulöten?

Mfg Sascha

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde die Netzwerkkarte in einen PC einstecken und dann
konfigurieren. EEprom würde ich nicht auslöten.

Mfg Ulrich

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, hab leider keinen PC, der noch nen Isa Slot hat.
Mfg Sascha

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiß nicht wie sich der Netzwerkchip verhält wenn man das EEprom
abklemmt, beim RTL ist es dann IRQ 9 IO 300 aber das kann bei deinen
Netzwerkchip anders sein. Am besten in die Spec. schauen.

Mfg uli

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hehe,

das ist es ja. Finde nichts mehr dazu. Außer den Nachfolger, den
83C795, der auch nicht mehr hergestellt wird. An der Karte kann ich nur
per Jumper INT3 und 10 und Adresse 280 und 300 einstellen.
IRQ3 - Adresse 280
IRQ10 - Adresse 300

Mfg Sascha

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das ist doch gut dann benutze halt irq10 und Adresse 300
mußt halt nur den int an IRQ10 der Netzwerkkarte anschließen anstelle
von IRQ 9 die ISA-Slot Belegung findest du auf meiner Seite.

Mfg Uli

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schon probiert.

Die Meldung der Initialisierung erscheint. Das ready auch. Aber an
meinem Hub ist die Lampe für den Port nicht an.

Mfg Sascha

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das bedeutet das der medium Type noch nicht auf RJ45 steht,
bei dem RTL 8019 gibt es am IC ein Pin um dieses einzustellen.
evt auf deiner Karte ein Jumper.

Mfg Ulrich

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Uli,

gibt's denn schomn Neuigkeiten bzgl. der Umsetzung auf einen
ATMega8/16?

Du wolltest doch mal Infos auf Deine Seite stellen.

Joline

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ja das habe ich auch noch vor, hatte aber zur Zeit weiter den Webserver
noch verbessert.

Mfg Ulrich

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am besten, Du gibst dann hier mal Bescheid.

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

hab hetzt ne 3Com EthelinkIII 3C509BC bekommen. Gibts ne Möglichkeit
diese zu nutzen? Sind keinerlei Jumper drauf :(

Mfg Sascha

Autor: Kay (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe da mal ne frage. wenn ich den webserver im Netzwerk habe, kann
ich ihn ja anpingen. kann ich denn übers netzwerk auf die Speicherkarte
zugreifen ? also quasi als Netzlaufwerk ?

mfg Kay

Autor: ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Zur Zeit ist die Speicherkarte noch nicht an den Webserver angebunden
wird aber bald geschehen. Wie eine Anbindung dann aussieht weiß ich
noch nicht ob FTP,NFS

Mfg Ulrich

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Uli,

hast du den source für den ATmega32?


Mfg sascha

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @sascha

ist doch kein Problem den Source an einen Mega32 anzupassen, sind doch
nur die ser. Reg. und Interrupt zu ändern.

Mfg Uli

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

schon fertig. Es läuft.


Mfg sascha

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

wie kann ich die IP-Adresse ausfindig machen, wovon auf den Webserver
zugegriffen wird?

Mfg Sascha

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die IP adresse ist 192.168.0.101 und wird in main.c angegeben

Mfg uli

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

so meinte ich es nicht. Meinte die Ip-Adresse, die auf den Webserver
zugreift. Nicht die, vom Webserver selber.
Hat sich aber schon erledigt.

Gruß Sascha

Autor: Oliver Keller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, bisher habe ich nur den
MSP430x4xx Family User's Guide (slau056d)
und den
MSP430x1xx Family User's Guide (slau049d)
gesehen.

Übrigens gibts jetzt auch Erratas dazu!
MSP430x4xx Family User's Guide Errata (slaz008)
MSP430x1xx Family User's Guide Errata (slaz007)

n8,
oli

Autor: Oliver Keller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
öh sorry! Falscher Thread... 's ist einfach schon zu spät!

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Sascha

Kannst Du vielleicht Deinen Code hier posten. Ich würde das ganze mal
auf einem ATMega8 laufen lassen (wenn Reichelt endlich liefert  :o( ).
Dann könnte ich mir mal die Änderungen im Vergleich zur Originalversion
ansehen.

Joline

Autor: Sascha (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier ist es.

Ist aber wirklich nicht viel geändert.

Mfg sascha

Autor: Christof Krüger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schaut mal hier:
http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&categ...

Ich brauche keine 50 Karten. Will jemand welche? Meint ihr, der
Verkäufer ist okay? Hat letztens 3 negative Bewertungen bekommen.

Gruß,
 Christof

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi.

also, ich habe bei zwei einzelnen zugeschlagen. Die haben wenigstens
alle Jumper onboard.

Mfg Sascha

Autor: Christof Krüger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm... ich schau mal, wie sich der Preis so entwickelt, wenn der nicht
zu hoch wird, greife ich eben zu. Vielleicht will jemand dann noch
welche.

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich habe die 50 Netzwerk-Karten ersteigert wer eine von euch haben will
bitte melden! Mal sehen wann diese kommen. Will keinen Gewinn machen
alle Netzwerk - Karten kosteten mit Versand um die 81€ also 1.62€ das
Stück.

Mfg Uli

Autor: Christof Krüger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm... gut, dass ich doch nicht mitgesteigert habe. Sonst hätten wir
uns evtl. noch gegenseitig hochgepusht... hättest ja was sagen können
;)

Okay, ich hätte dann gerne Netzwerkkarten im Wert von pi mal Daumen 15€
inkl. Versand.
Schreib mir doch einfach mal ne mail!

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

melde mich sofort, wenn ich die 50 Netzwerkkarten habe.

Mfg Ulrich Radig

Autor: Bjoern Biesenbach (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Super Arbeit Uli, wirklich super !
Habe mich vorhin mal hingesetzt, mir eine alte rtl8019 gesucht, und den
Webserver mit einem Mega32 ausgebaut. Und siehe da, inzwischen läuft er
:-)
Allerdings hatte ich Probleme mit meinem 16MHz Quarzoszillator, was
auch mit meiner wilden verkabelung zu tun haben könnte. Jedenfalls
funktionierts mit 8MHz jetzt prima.
Die Karte habe ich nicht umgebaut, sondern mit einem alten pc
umprogrammiert.
Anbei ein kleines Bild meines Testaufbaus.

Viele Grüsse
Björn

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@uli
sind die Netzwerkkarten aus ebay angekommen?
Wenn es damit möglich ist so einen Server aufzubauen würde ich welche
nehmen! Würde das jetz doch gerne mit deiner ISA variante probieren,
weil ich drauf hoffe hier hilfe zu bekommen, wenn´s doch nicht klappen
sollte.

Den Chip würde ich nur ungern auslöten, das man die Karte so verwenden
kann kommt mir auch gelegen.

Melde Dich bitte hier oder per Mail.

Autor: Fiffi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe noch ~10 ISA Netzwerkkarten mit folgendem Chip: 82595FX

Kann Ich diese Karten auch mit einem AVR ansteuern ?
Gibt es für diese Karten auch einen fertigen TCP/IP Stack ?


Vielen Dank für eure Hilfe !


Gruß

Fiffi

Autor: Titus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hab da mal ne frage. In der Device.h steht
#define data_port_rtl_read    PINA

jetzt meine Frage welcher Pin oder Port versteckt sich hinter "PINA"


MfG Titus

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Das ist Port A, in der Atmel Doku gibt es drei Register PortA für
Ausgabe PinA für die Eingabe und DDRCA für das Direction Control
Register.

Mfg Uli

Autor: Titus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe schon wieda ne Frage;

loop_until_bit_is_set(ReadRTL(isr),rdc);

was Prüfst du da? Also was muss anliegen damit es weiter geht, (muss da
0x07 anliegen?)

MfG Titus

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

in device.h " #define rdc  6 " also prüfe ich auf 6

Mfg Ulrich

Autor: Simon Lehmayr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe auch einen Posten RealTek Karten mit dem RTL8019 bei ebay
ersteigert. Ich habe sie auch getestet und gleich auf IRQ 9 und IO 300
konfiguriert. (Zum Glück habe ich noch nen 486 rumstehen :-)
Für 2 Euro pro Karte würd ich welche abtreten. 1-2 Karten kann ich
(ohne Slotblende wegen max. Höhe) als Großbrief für EUR 1,44 versenden,
bei mehr wohl als Päckchen oder Warensendung.
Bei Interesse einfach melden!

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
im gegensatz zu Simon habe ich probleme meine Karten von Ulrich zu
konfigurieren. Hab mich jetz ne weile mit einer beschäftigt, aber was
ich auch mache, das Konfigurationsprogramm ezcfg deaktiviert die
Menüeinträge, mit der ich Plug&Pray, IRQ un I/O einstellen könnte.

Momentan scheint die Karte auf I/O 220 und IRQ 5 zu stehen. der IRQ ist
einfach nur ein andere Kontakt an der Karte, aber was mache ich mit dem
anderen I/O Bereich? evtl. die Adress Pins anders Verschalten? also
statt A8 und A9 auf Hi nun A9 und A5 auf Hi. Denke mal das ist so
korrekt.

Aber: Hat die Karte sich die Werte denn gemerkt, oder will sie beim
nächsten Power on wieder ein Plug&Play haben?

Wer hat ein alternatives Config-Programm?

Autor: Titus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Henning,


Ich hätte da eine Hardware mässige Lösung;

falls das die Karten sind die grade bei Ebay zu massig versteigert
werden (Neuwahre) dan kannst du das mal versuchen;

EEPROM auslöten (dan ist standart IRQ 9 - I/O 300) alles was mit dem
BNC Übertrager und Wandler zu tuen hat kannste auch entlöten und ganz
wichtig ist, den Pin des RTL Chips 64 auf GND und Pin 65 auf VCC legen.
(geht mit Kupferlack draht gut)

MfG Titus

Ps: sorry Softwaremässig kann ich dir nicht weiterhelfen

Autor: uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Wenn dir das Auslöten des EEproms zuviel ist einfach das hardwiring an
den Adressleitungen ändern. Dieses ist auf I/O 300 eingestellt.
A8(256dez) und A9(512dez) auf high (256 + 512 = 768 also 300 HEX).

Mfg Ulrich Radig

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die Karte ist aber ja noch im Plug & Play modus. Merkt sie sich denn die
Adresse, die sie beim letzten Booten im PC zugeortnet bekommen hat?

Werde das ausprobieren, hab aber noch nicht gelötet. Im Moment baue ich
den Quellcode für meinen Mega32 um.

Eeprom auslöten ist ja nicht das Problem, aber Pin 64 und 65 sind so
ungünstig klein ausgefallen. Ich werde erstmal Ulrichs Vorschlag
probieren und Jumper für Adresse und IRQ vorsehen.

Autor: PatrickHH (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist es möglich, den Webserver auch mit einen Mega8 oder Mega16 zu
betreiben? Und wo werden eigentlich die Webseiten gespeichert? Im
Controller, oder in einem externen Eprom?

Danke!

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Daten der Website werden im Controller gespeichert und ich bin
gerade dabei das ganze auf einem Mega32 zum laufen zu bringen. Wenn ich
makefile hexsize (siehe wiki:winavr) ausführe zeigt er follgendes am:

   text     data      bss      dec      hex  filename
      0    10706        0    10706     29d2  main.hex

vielleicht hilft das weiter, aber mir scheint der Wert falsch zu sein:
vor der Hex Adresse $29d2 sind jede menge Adressblöcke mit $FF gefüllt,
als wenn sie unbenutzt sind. Wenn´s nach dem letzten Speicherplatz geht,
der kein $FF enthält, ist die Datei schon bei $14E8 zuende.

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Die Webseiten werden zur Zeit noch im Controller eigenen FlashSpeicher
abgelegt. Aufgrund des geringen Sram beim mega8 bzw 16 sehe ich einige
Probleme, mit einen Mega32 haben es schon einige Personen ohne Probleme
realisiert.

Mfg Ulrich

Autor: Volker Klautsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Henning:

Mit dem Programm rset8019 (oder so ähnlich :-) von der Realtek-Homepage
geht es problemlos.

Autor: Uli (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Habe eine neue Version des SourceCode auf meiner HP zum download
bereitgestellt. Enthält nun auch die Änderungen für einen ATMega32
(noch nicht getestet).

Mfg Ulrich

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich habe da mal eine neue Idee Voice over IP ist doch was feines für
den Webserver. Da ich noch keine Zeit gefunden habe mich schlau zu
machen. Frage ich mal ob jemand dazu Daten hat.
Welches Audio Format? (MP3/WAV oder was)
Ich nehme mal an irdendwas einfaches wie WAV mit evt 10Khz und Mono
reicht ja für ein Internet Telefon :-) dazu würde dann der interne ADC
vom AVR µC ausreichen.
Also wenn jemand dazu Datenblätter hat mal zumailen evt. programmiere
ich dann mal was. Ist doch ganz nett den Webserver auch als IP Telefon
zu nutzen oder? (wäre dann auch recht billig wenn es dann mal geht)

Mfg Ulrich

Autor: Uli (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

und nochmal eine neue Version :-)

Mfg Ulrich

Autor: Simon Lehmayr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab gerade den Server mit mega32 nachgebaut, allerdings erhalte ich
immer "Overrun" egal ob Netzwerkkabel angesteckt oder nicht... Ich
musste auch noch SIG_INTERRUPT4 zu SIG_INTERRUPT0 ändern. Im makefile
habe ich atmega32 eingetragen. Die IP habe ich auf 192.168.1.101
geändert.

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
haste denn auch den richtigen interrupt freigegeben? in der main.c

Autor: Simon Lehmayr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im aktuellen Code ist alles mit #if defined gemacht:
  #if defined (_AVR_ATmega32_)
    GICR|=0x40;
    MCUCR=0x03;
    MCUCSR=0x00;
    GIFR=0x40;
  #endif

  #if defined (_AVR_ATmega103_)
    EICR = 3;
  #endif

  #if defined (_AVR_ATmega128_)
    EICR = 3;
  #endif

  //Setze Portb für die Ausgänge auf output
  DDRB = OUTPUT;

  //Interrupt 4 oder 0 Einschalten (für die Netzwerkkarte)
  #if defined (_AVR_ATmega103_)
    enable_external_int (1<<INT4);
  #endif

  #if defined (_AVR_ATmega128_)
    enable_external_int (1<<INT4);
  #endif

  #if defined (_AVR_ATmega32_)
    enable_external_int (1<<INT0);
  #endif

Autor: Simon Lehmayr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe gerade festgestellt, dass ich A10 auf +5V hatte statt auf GND.
Jetzt passiert folgendes: Die MCU geht nach dem Init sofort auf Reset.
Card Init :34 zeigt er an und gibt noch MAC/IP aus, dann fängt er von
vorne an. Aber nur solange der Interruptpin auf GND liegt. Wenn man von
Hand auf 5V stopselt, passiert das nicht...

Autor: Simon Lehmayr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe gerade die Version von Sascha für den 32 laufen, die geht!

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Was ist denn an dieser Version noch anders??
Habe ich da noch was übersehen.

mfg ulrich

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
habe mir den code nochmal angeschaut!
Übernimm mal die definition des Ports D von Sascha in meinen Code!!

Mfg Ulrich

Autor: Simon Lehmayr (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hab den Webserver jetzt als Schalter für einen Netzwerklaserdrucker
laufen. Der Drucker zieht soviel Saft, dass er vom Netz getrennt sein
sollte, um Strom zu sparen. Außerdem macht sein Lüfter einen
Mordskrach. Der Webschalter kann mit einen Klick auf einen Link den
Drucker an und ausschalten. Im Anhang ein Foto vom Webserver im Einsatz
& als Prototyp und die Seite, die er sendet.
Nochmals vielen Dank an Uli, da es echt ein Erfolgserlebnis ist, für so
wenig Aufwand ein so tolles Projekt zu machen.

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @all,

Ja dann werde ich bald noch einen drauf geben, die ersten Teste als
Printserver und TimeServer mit DCF77 (SNTP) laufen schon. Dauert etwa
noch so 2 Wochen dann gibt es die erste Version, natürlich ohne weitere
Hardware. (klar ein DCF77 Modul von Conrad wird halt benötigt)
Was mich jetzt nur noch plagt warum lauft die Version 1.07 noch nicht
mit einen Mega32 ohne Probleme. Das mit Sig interrupt0 ist mir klar,
das muß ich in der nächsten Version an einen Mega 32 anpassen und was
noch? wollte nicht noch einen Webserver mit einen Mega32 basteln habe
doch schon 3 ;-).

Mfg Uli

Autor: Bjoern Biesenbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe die Version 1.07 mit meinem mega32 leider auch noch nicht ans
laufen bekommen.
@ Uli: Wäre schön wenn du die Dateinamen Device.h und Device.c von
deinem Quellcode noch klein schreiben würdest. Unter Linux findet er
sie sonst nicht, da sie ja in den anderen Files mit kleinem Dateinamen
inkludiert sind.

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Was mir noch zu Mega32 einfällt definiert doch mal (unsigned char
packet[1500]; auf 1400) evt stürzt er dann nicht mehr ab. Wie gesagt
habe noch leider keinen mega32 Webserver.

Mfg Ulrich

Autor: Titus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hab nur ne kurze Frage, schreibt jemmand den Webserver auch für einen
8051 von Philips (zb.: P89C51 etc)?

Bitte melden hätte interesse an den Sourcecode


MfG Titus

Autor: Simon Lehmayr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Uli, kannst du mal eine ausführlich Funktionsbeschreibung deines Codes
posten? (Welche Routine macht was, braucht was, wie hängt alles
zusammen, Programmflussplan, ...)
Mich interessiert hauptsächlich, wo denn die Pages verschickt werden,
so dass man die Seite abhängig von Sensorwerten erzeugen kann und nicht
fest eingebaut.

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@simon

Das passiert in httpd.c mittels Pointer. - Steht ja schließlich im
Quellcode ;-)

Autor: Simon Lehmayr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das weiß ich sogar, ich hab auch neue Seiten dazugefügt, aber ich will
ja Werte dynamisch übertragen, also Messwerte, Sensoren, etc.

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Werte dynamisch übertragen kein Problem!
Füge doch einfach in der Webseite einen Platzhalter ein wie bei printf
z.b. %x oder %i
Bei add Packet meine ich (zu faul jetzt nachzuschen) wo halt der
Pointer ins array geschrieben wird, einfach eine if abfrage einfügen.
Aber da bin ich schon zugange. Ist am dienstag fertig.
Problem da noch niemand den Fehler für einen Mega32 gefunden hat läuft
der neue Code dann wie die Version 1.07 auch nicht mit Mega 32. Sondern
nur auf Mega103/128.

Mfg Ulrich Radig

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Werde mich um den Mega32 kümmern, denn ich bin grad am löten. Termine
kann ich aber nicht versprechen.

Autor: Simon Lehmayr (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt neu:

Webserver mit mega8 (für alle die ein schmales Budget haben!)
Basiert auf der Modifikation für mega32 von Sascha.

Anschlussverdrahtung ändert sich wie folgt:
- Interner RC-Oszillator muss verwendet werden um PORTB frei zu haben.
Beachten bei STK500: PORTB6 und 7 liegen auf Anschluss PORTE als XT1
und XT2!!!
- PORTB 0..7 sind Daten-Leitungen D0..D7 (statt PORTA)
- PORTC 0..4 sind Adressleitungen A0..A4 (bleibt gleich)
- PORTD 2 ist IRQ (bleibt gleich)
- PORTD 5,6,7 sind Steuerleitungen (statt PORTC)

Autor: Simon Lehmayr (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Update:

Ich habe eine Variable für die Anzeige auf der Webpage in "tcp.c"
eingepflegt (Anzahl Druckerbenutzer).
Routine tcp_add_data in der Schleife, die den Puffer überträgt:

if (pgm_read_byte(pointer)=='%' && pgm_read_byte(pointer+1)=='S' &&
pgm_read_byte(pointer+2) =='1')
{
 sprintf(s, "%d", countaccess);
 i = 0;
 while (s[i] != 0)
 {
  buffer[result16] = s[i++];
  result16++;
 }
 pointer += 3;
}

Dieses Konstrukt reagiert auf %S1 und schreibt die Variable countaccess
hin. Der Pointer wird auch um 3 erhöht (Länge von %S1).

Autor: Simon Lehmayr (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ein Bild vom neuen Server. Die Platine mit dem mega 8 ist gerade mal
5x4cm groß!

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
impressive

Autor: Simon Lehmayr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dem mega32 Reset auf der Spur: Ich bin auf ein seltsames Verhalten
gestoßen. Wenn man die Baudrate der seriellen Ausgabe über 19200 erhöht
(16 MHz Boardtakt), startet der mega32 zyklisch neu. Und zwar kurz nach
dem printf mymac myIP. Das kann ich mir nicht erklären!

Autor: Mattias (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
also ich habe mir jetzt auch mal so einen Server gebaut. Ich habe
allerdings alles auf einer Platine untergebracht. Die Netzwerkteile
habe ich von einer Karte runtergelötet und bei mir neu platziert. Ich
habe den Mega128 verwendet und die letzte Version (1.07) von Ulrich.
Hat auf Anhieb funktioniert. Großes Lob an Ulrich.
Jetzt müssen wir nur mal sehen, wie wir am besten eine vernünftige
Kommunikation hinbekommen (Variablen Inhalt auf der Seite automatisch
aktualisieren usw.). Ich muss mich damit jetzt auch erst einmal
beschäftigen.

Gruss Mattias

Autor: Mattias (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Huch, falsche Datei geschnappt...
hier die richtigen Bilder

Mattias

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Habe nun auf meiner HP das EagleFile von Mattias nachgebauten Webserver
zum herunterladen.
Danke Mattias für die Bilder.

Mfg Ulrich

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Simon:

Hallo, ich hatte mal so ein ähnliches Problem. Hast du bei dem Mega32
das Fusebit CKOPT programmiert?

MFG Volker

Autor: Simon Lehmayr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, kein CKOPT.

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Simon:

Das würde ich dann mal empfehlen. D.h. CKOPT programmieren (auf 0
setzen)

Volker

Autor: Ralf Kirmis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wer kann mir gegen Kostenbeteiligung eine solche Platine
mit der alles auf einer Karte Lösung ätzen ?

bis denne
Ralf

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Simon,

ich habe mal versucht, die Quellen zum Mega8 mit dem neuesten WinAVR zu
übersetzen.
Dabei erhalte ich folgende Fehlermeldungen:

------------------------------------------------------------------------ 
--------
avr-gcc (GCC) 3.4.1
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.


Compiling: main.c
avr-gcc -c -mmcu=atmega8 -I. -gstabs   -Os -funsigned-char
-funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-adhlns=main.lst  -std=gnu99
-Wp,-M,-MP,-MT,main.o,-MF,.dep/main.o.d main.c -o main.o
In file included from main.c:49:
./device.c: In function `Write_Ethernet_Frame':
./device.c:156: error: invalid lvalue in unary `&'
In file included from main.c:74:
./interrupt4.c: In function `__vector_1':
./interrupt4.c:120: error: invalid lvalue in unary `&'
./interrupt4.c:126: error: invalid lvalue in unary `&'
make: *** [main.o] Error 1
------------------------------------------------------------------------ 
--------

In device.c ist es Zeile 156:
   loop_until_bit_is_set(ReadRTL(isr),rdc);

und in interrupt4.c sind es die Zeilen 120 und 126:

   if (bit_is_set (ReadRTL(isr),ovw))

   if (bit_is_set (ReadRTL(isr),prx))

Eigentlich sollte das doch funktionieren, oder? Zumindest sehe ich hier
keinen
Fehler. Oder stört sich die neue Version von avr-libc vielleicht an den
alten
bit_is_set-Funktionen?

Stefan

Autor: Simon Lehmayr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Version, die ich habe, kompiliert das (ist wohl eine Version
früher), die neue habe ich wieder runtergeschmissen, da es damit nicht
mehr ging :-)

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @Stefan

Schaue dir mal die Version 1.07 an da habe ich das if (bit_is_set
(ReadRTL(isr),ovw)) rausgeschmissen und ersetzt. Diese Funktion wird
vom neuen AVR GCC nicht mehr in dieser Form unterstützt.

Mfg Ulrich

Autor: Kai M. Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, allerseits!

Ich habe mit dem GCC genau das gleiche Problem, bin allerdings auch
kein Experte, was GCC angeht (Codevision-verwöhnt...). Ich habe in der
Datei interrupt4.c die Zeilen entsprechend geändert und bekomme nun die
Fehlermeldung

'ISR' undeclared (first use in this function)
'OVW' undeclared (first use in this function)
'PRX' undeclared (first use in this function)

Kann mir jemand einen Tip geben, wie ich das wegbekomme?

Des weiteren hatte ich testweise mal Simons main.hex in meinen Mega8
geladen. Der steckte auf dem STK500 und wurde mit einem 16MHz-Quarz
versorgt. Ich verwende eine Netzwerkkarte, wie Ulrich sie massenweise
bei eBay ersteigert hatte, und habe sie entsprechend umgebaut (EEPROM
auslöten etc.) Leider leuchtet beim Verbinden mit dem Netzwerkkabel die
grüne Lampe nicht, und ein PING vom PC aus sagt nur Timeout. Hast Du
einen Tip, woran das liegen könnte?

Vielen Dank schonmal für Eure Hilfe!
Gruß
Kai Markus

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hast du denn die uart angeschlossen und die initiallisierung
entsprechend bekommen?

Autor: Kai M. Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, allerseits!

Bin jetzt schon mal etwas weitergekommen.

@Henning:
Nein, ich habe die UART nicht angeschlossen. Muß ich mal ganz doof
fragen: woran sollte die UART angeschlossen sein und was sollte man da
sehen können?!?

Was den Compiler angeht, bin ich jetzt soweit, daß mir das Programm
annähernd einwandfrei übersetzt wird. Nur ganz am Schluß noch die
Fehlermeldung:

.... ccUhaaaa.s:3087 Error: garbage at end of line
make: *** [main.o] Error 1

Hat da jemand noch eine Idee?!?

MfG
Kai Markus

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Welche Version von GCC benutzt ihr meine Version 1.07 läuft mit dem
neuen AVR GCC und der alten Version, alle vorherige Versionen laufen
nur mit dem alten AVR GCC!!

Mfg Ulrich

Autor: Kai M. Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, Ulrich!

Ich benutze avr-gcc 3.4.1

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry, die antwort passte natürlich nur zum letzten teil deines post: da
die netzwerk karte noch nicht initiallisiert ist wird die led nicht
leuchten. und anpingen wirst du sie dann leider erst recht nich können.
sie hat ja noch garkeine ip zugeteilt bekommen.
auf der uart werden die unterschiedlichen initiallisierunsschritte
ausgegeben. du kannst dort also sehen ob die init prozedur geklappt
hat.

aber dein problem hängt ja noch beim compilieren des programms.

ich bin am tüfteln mit dem mega32 aber hab mir die fuses verbrannt, so
das ich jetz erst den uC wiederbeleben muss... die nicht ganz
eindeutige angabe in avrprog ärgert mich schon wieder... harken = fuse
programiert (=0) oder bit gesetzt (=1)...

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @Kai

Die alten Versionen laufen noch nicht mit AVR-GCC 3.4.1 - avr-libc
1.0.4 nur die neuen ich meine ab Version 1.05.
Ist auf meiner HP aber noch genau dokumentiert.

Mfg uli

Autor: Kai M. Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, Ulrich!

Ich kann leider nicht genau sagen, mit welcher Version von Deiner
Software ich arbeite. Ich habe die letzte Datei von Simon vom 10.9.
heruntergeladen, weiß aber nicht, auf welcher Version von Deiner
Software die aufsetzt.

Bei meiner Schaltung scheint aber auch anderes noch im Argen zu liegen.
Ich habe mal ein Skop an den TxD-Pin drangehängt und stelle auch da nach
einem Reset des AVR keinen Datenverkehr fest. Das müßte ja eigentlich
sein...

By the way, ich werde dann mal die RS232 des STK500 an den USART des
AVR hängen. Wie sollte mein Terminalprogramm denn konfiguriert sein?!?

Gruß
Kai Markus

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Tegtmeier

8Datenbits, No Parity, 1StopBit, 9600Baud kein Protocol

Mfg Uli

Autor: Kai M. Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, Ulrich und Henning!

Vielen Dank für die Infos. Habe gerade mal angeschlossen, da kommt im
HyperTerminal gar nichts an. Ich nehme mal an, daß noch etwas mit der
Schaltung im STK500 insgesamt nicht stimmt. Ich werde dann (allerdings
wahrscheinlich erst morgen) mal genau forschen, was los ist. Sobald ich
was weiß, melde ich mich wieder. Einstweilen schon mal vielen Dank und
einen schönen Abend noch!

Gruß
Kai Markus

Autor: Kai M. Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Da bin ich mal wieder. Ich habe mittlerweile die UART zum Laufen
bekommen und Simons Programm mit einer älteren Version (3.3.1) von gcc
übersetzt. Das ging dann auch ohne Probleme. In Simons Programm waren
die Befehle zur UART auskommentiert, deshalb tat sich da nix.

Am Status der Netzwerkkarte hat sich noch nichts geändert. Mein
angeschlossener PC sagt mir "Netzwerkverbindung mit 10 MBit/s" und am
PC leuchtet die "link"-LED auch auf. Nicht aber an der Netzwerkkarte.
Versuche ich die Karte anzupingen, bekomme ich eine
Zeitüberschreitung.

An der UART bekomme ich folgende Statusmeldungen:

Init Network Card: ......... Init Ready!

Hat jemand noch einen Tip, woran das liegen könnte?!?
Ich glaube, Ulrich sprach mal davon, daß evtl. die Netzwerkkarte noch
auf Autodetect RJ45/BNC eingestellt sein könnte und deswegen keine
Verbindung zustande kommt. Kann das hier der Fall sein?

MfG
Kai Markus

Autor: Kai M. Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls es weiterhilft, den Fehler einzukreisen:

Am RTL8019AS geht nach dem Einschalten der Pin60 in den High-Zustand.
Laut Datenblatt signalisiert das, daß er in den 10Base2-Modus
geschaltet hat oder in den Auto Link-Modus mit "link test failure".

Gruß
Kai Markus

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @Tegtmeier,

Also ich nehme mal an deine Netzwerkkarte ist noch auf BNC geschaltet.
Bei Init Ready sollte 34 als Init Wert erscheinen.
Somit solltest du die Netzwerkkarte entweder auf Auto Detekt bzw. auf
RJ45 umschalten.

Mfg Ulrich

Autor: Kai M. Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, Ulrich!

Vielen Dank für Deinen Hinweis. Ist diese Umschaltung hardwaremäßig
machbar (ich benutze eine von Deinen ISA-Karten aus eBay) oder muß ich
die in einen PC stecken und umkonfigurieren?

Gruß
Kai Markus

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Am besten ist es sie in einen PC einstecken und umkonfigurieren, oder
halt nach meiner Umbauanleitung mit Pin64 und 65. EEprom kann dann in
diesenfall drin bleiben. Wie gesagt konfigurieren mit PC ist meiner
Meinung nach die beste Lösung.

Mfg Uli

Autor: Kai M. Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, EEprom ist bereits ausgebaut, Pin 64 ist mit GND und Pin 65 mit VCC
verbunden. Was mir dabei nicht ganz klar ist: im Datenblatt vom
RTL8019AS steht, daß der BNC-Anschluß dann deaktiviert wird, wenn Pin64
auf High gelegt wird. Müßte dann Pin64 nicht eher auf "high" mit
External MAU gelegt werden?

Ich habe auch mal verschiedene Logikzustände an Pin74 bzw. 77 "Network
medium type" angelegt, aber auch ohne Erfolg.

MfG
Kai Markus

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

AUI pin 64 wird nicht benutzt also auf low.
PNP pin 65 auf high da nicht benutzt.

Da das EEPROM fehlt initialisiert sich die Netzwerkkarte auf IO300 IRQ
9 und auf medium type RJ45.

Wie bei Mattias und vielen anderen Personen funktioniert es auch so.
Ich habe schon so 5 Netzwerkkarten selbst gebaut und immer ohne
Probleme funktionierten auf anhieb. Kannst ja mal den Schaltplan von
meiner HP für die selbstbau Netzwerkkarte herrunter laden und
vergleichen.

Mfg Ulrich

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich hoffe ja nicht das du BNC benutzt!!

Mfg Ulrich

Autor: Simon Lehmayr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An alle Mega8 Nutzer:

Da der mega8 seinen Port B nicht ganz freigibt (XTAL an 6 und 7) muss
der interne RC-Oszillator mit 8 MHz benutzt werden!
Dann sollte auch die Netzwerkkarte korrekt initialisiert werden! Habe
ich in  meinem Beitrag vom 10.09.2004 aber erwähnt.

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi, ich habe das selbe problem, wie kai:

der Hub sagt, es besteht eine Verbindung, die LED der Netzwerkkarte
leuchtet nicht. ausserdem bekomme ich nach dem Init über die Uart den
Wert 255. Was kann ich mit diesem Wert anfangen? Vorher gebe ich nach
der Zeile Resetpin low und

  ReadRTL (rstport);
  WriteRTL (rstport , 0xFF);
den rstport aus und erhalte immer den Wert 18.

Auch ich verwende die Netzwerkkarten von Ulrich, habe das Eprom
ausgelötet und Pin 64 auf GND sowie Pin65 auf VCC gelegt.

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ausserdem erhalte ich 2 "Overrun!" kurz nach dem starten.
Ein Ping führt natürlich zum Zeitüberlauf...
vielleicht hat ja jemand nen Tip. Werd später versuchen die Signale per
Oszi nachzumessen.

Autor: Kai M. Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, Simon!

Diese Pinbelegung habe ich auch eingehalten. Tut sich aber bis jetzt
trotzdem noch nichts. Du hattest (vermutlich aus Platzgründen) in
Deinem Code die Kommunikation via UART ja deaktiviert. Welche Zeile im
Code ist denn für das Anzeigen der "34" zuständig, die nach der
Initialisierung erscheinen soll?

MfG
Kai Markus

Autor: Simon Lehmayr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist in device.c "init_rtl" oder so. Schau dir die Version von
Sascha für den mega32 an, ist ja fast identisch und der printf Code ist
da noch drin. Den kannst du direkt kopoeren. In main.c musst du dann
auch die printf inits wieder reintun.

Autor: Kai M. Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mir jetzt noch mal die Datei Device.c angeschaut, in beiden
Sourcecodes, und kann beim besten Willen keinen Printf-Befehl finden,
der über die UART eine Zahl ausgibt. Entweder bin ich zu blöd, die
Zeile zu entdecken, oder es ist schon zu spät?!?

Gruß
Kai Markus

Autor: Kai M. Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe gerade die betreffende Zeile in Ulrichs Code V1.07 entdeckt. Steckt
in der main.c. Die habe ich jetzt mal in Simons Code eingebaut. Nun gibt
mir die Netzwerkkarte auch den Wert 34 zurück. Nach wie vor läßt sich
die Karte aber nicht anpingen, und auch die LED leuchtet nicht. Ein
angeschlossener PC meldet aber 10MBit-Netzwerk. Kann das immer noch an
der Einstellung RJ45/BNC liegen?

Autor: Uli (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @ all

Hier der neue Source Code 1.08 nun endlich funktioniert auch der
Mega32. Habe mich mal über Nacht an den bau meines 5. Webservers
begeben aber dises mal mit Mega32 ;-). Und der neue Source Code läuft
jetzt auf Mega 32  103  128

nun stürtzt der Mega32 nicht mehr ständig ab. Eigentlich hatte ich die
Interrupt Einstellungen von Sascha übernommen aber dabei gemerkt das
immer ein Interrupt ausgelößt wird. Das funktionierte bei der Version
1.07 halt dann nicht weil ich die Datenannahme des NIC geändert hatte.
Nachdem ich die Interrupt Einstellungen richtig einstellte funktioniert
es nun. Und noch einen Webserver mehr.

Mfg Ulrich Radig

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmal für alle:

Nach dem Einschalten sollte folgende Meldung stehen:

Init Network Card: ......... Init Ready!
Card Init: 34

My Mac: 1e.a.2b.2b.2d.4d
My IP : 192.168.0.101

Wenn nicht 34 steht wurde die Netzwerkkarte nicht erkannt.
Bei einen Mega 103/128 wird der Interrupt 4 verwendet.
Bei einen Maga 32 der Interrupt 0 sowie die richtigen fuse Bits also
CKOPT.

Noch einen schönen Sonntag ich gehe jetzt Schlafen

Mfg Ulrich

Autor: Bjoern Biesenbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hurra, Version 1.08 läuft nun auch auf meinem Mega32 Webserver :-)

Autor: Mattias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ulrich
ich habe ja Deinen Webserver auf der ein-platinen-version gebaut.
Funktioniert wunderbar.
Nun habe ich aber noch ein paar Fragen zum Code:
Die wesentlichen Bestandteile werden ja in webpage.h und httpd.c
abgehandelt. Jetzt ist dort eine Schleife "for (int
a=0;a<10;a++)..".
Warum 10x ???
Warum wird der Header 10x eingelesen ???
Wie kommst Du an die Textstellen "1=1", "ulrich.jpg" usw, wenn Du
immer am Anfang des pointers "buffer" nachschaust ( a, a+1 ..) ???
Genauso wird 10x ein TCP Paket erzeugt und gesendet. Wird etwa jedes
Element (Bild, Text,...) getrennt versendet ???

Kannst Du eventuell mal in kurzen Worten erläutern, wie prinzipiell der
Ablauf funktioniert ???
Ich blicke da irgendwie überhaupt nicht durch.

Danke schon voraus.

Mattias

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Bei einer Webseite mit Bildern wird für jedes Bild sowie die Webseite
selber ein sogenanter Socket geöffnet. Des halb reserviere ich 10
Speicherplätze, da ein offener Socket auch wieder geschlossen werden
muß. Dieses wird in der Schleife erledigt. Der Header selber wird nicht
10 mal eingelesen sondern nur auf seinen Inhalt überprüft 1=1.
Schaue dir mal die Webseite in Version 1.02 (webpage.h) an, dort hatte
ich auf der Webseite einen Buttom zum steuern einer LED eingebunden.
Bei dem betätigen des Buttom wird an dem Header 1=1 hinzugefügt,
welches im µC (1=1) überprüft wird.

Mfg Ulrich

Autor: Simon Lehmayr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Uli:
Dein Projekt wär glatt mal "veröffentlichungsreif", so bei Elektor,
etc. Hast ja die Elektor schon erwähnt, mit dem Preis für ihr mickriges
MSC1210 Board und Netzwerkkarte, huahuahua...
Gibt auf diesem Planeten wohl genügend Bastler, die an deiner Version
echtes Interesse hätten, wo es doch fast keine günstigen Alternativen
gibt!

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @Mattias

Besorge dir mal das freie Programm Etherreal für den PC, damit kann man
sich die Datenpakete die über die Netzwerkkarte gesendet werden
anschauen.

Mfg Ulrich

Autor: Peter Kock (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe mir nun auch einen Webserver mit dem Mega32 gebaut, leider kommt
nach dem Einschalten immer

Init Network Card: ......... Init Ready!
Card Init: 255

Software-Version ist 1.08, der AVR läuft mit 14,318MHz, ist auch in
main.c eingetragen.
Die Karte ist auf IRQ9 und IO300 eigestellt, Anschluß auf 10BaseT.
Ist eine Realtek 8019AS.

Gibt es vielleicht schon eine "Fehlersuchliste", warum die Karte
nicht erkannt wird?

Gruß
Peter

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @Peter,

Das hatte ich auch bis ich die Fuse CKOPT eingestellt habe,
diese ist zum abschalten des 2. Quarzes.

Mfg Ulrich

Autor: Mattias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ulrich,
danke, das war ein guter Tip. Das is ja ein cooles Programm. Jetzt kann
man sich das besser vordstellen. Man, da ist ja wirklich was los auf dem
Netz.
Bei mir sagt übrigens mein Rechner zu dem Webserver immer:
...[CHECKSUM INCORRECT]...
Taucht das bei Dir auch auf ???
Der Inhalt wird trotzdem korrekt angezeigt. Das mit dem LED steuern
finktioniert auch.

Mattias

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mattias

...[CHECKSUM INCORRECT]...??

Wo schreibt er dieses??
Habe diese Meldung noch nie gesehen!

Mfg Ulrich

Autor: Uli (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @Mattias

Ich habe mal die Datenpackete mit Etherreal aufgezeichnet und man sieht
alle Checksummen sind correct (Datei im Anhang).

Mfg Ulrich

Autor: Uli (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich habe mal mit einer Doku angefangen evt. fällt einen oder andern der
dieses Projekt nachgebaut hat noch was ein.

Mfg Ulrich

Autor: Mattias (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@Ulrich,
also, ich habe auch mal so ein capture file erzeugt (so.). Mein PC ist
die ...14, der Webserver die ...15
Ich habe die Seite geladen, die Lampe1 angeklickt und den Button
gedrückt. Geht alles wunderbar. Aber die Meldung ...[CHECKSUM
INCORRECT]... kommt trotzdem.
Vielleicht kannst Du in diesem Wirwar ja was sehen :-).

Mattias

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ja nachdem Protocol macht mein Webserver keine Probleme.
Wieso?
Weil das Packet mit der falschen Checksumme von deinen PC erzeugt wurde
und nicht von meinen Webserver. Source = 141.25.73.14 also definitiv von
deinen PC.
Welches BS benutzt du? Ich benutze XP.

Mfg Ulrich

Autor: Mattias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Ulrich,
ich benutze auch XP.
Also ich würde das so verstehen: (habe aber keine Ahnung !)
schauen wir uns mal die relevanten Dinge an...

No.     Time        Source                Destination
Protocol
3 1.514749    141.25.73.14          141.25.73.15          TCP
1900 > http [SYN] Seq=0 Ack=0 Win=16384 Len=0 MSS=1460

Autor: Mattias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmal....
irgendwie ist mir gerade mein Mozilla abgeschmirt :-(((

also nochmal. Ich verstehe das so:
----------------------------------------
No.     Time        Source                Destination         Protocol
     3       1.514749    141.25.73.14          141.25.73.15          TCP
     1900 > http [SYN] Seq=0 Ack=0 Win=16384 Len=0 MSS=1460
----------------------------------------
No.     Time        Source                Destination         Protocol
     4       1.515586    141.25.73.15          141.25.73.14          TCP
     http > 1900 [SYN, ACK] Seq=0 Ack=1 Win=16384 Len=0 MSS=1460
----------------------------------------
No.     Time        Source                Destination         Protocol

5       1.515626    141.25.73.14          141.25.73.15          TCP
 1900 > http [ACK] Seq=1 Ack=1 Win=17520 [CHECKSUM INCORRECT] Len=0
----------------------------------------
No.     Time        Source                Destination         Protocol

6       1.519587    141.25.73.14          141.25.73.15          HTTP
 GET / HTTP/1.1
----------------------------------------
No.     Time        Source                Destination         Protocol

7       1.567106    141.25.73.15          141.25.73.14          HTTP
 HTTP/1.0 200 OK


In Nummer 3 will ...14 (mein PC) Kontakt mit ...15 aufnehmen (Seq=0
Ack=0).
Dann antwortet ...15 mit Seq=0 Ack=1.
...14 sagt daraufhin zu ...15 mit Seq=1 Ack=1, dass [CHECKSUM
INCORRECT] ist.
Bedeutet das nicht, dass CHECKSUM von ...15 nach ...14 falsch ist ???
Dann vordert ...14 trotzdem von ...15 irgendwas mit GET / HTTP/1.1.
...15 sendet daraufhin dises komische HTTP/1.0 200 OK.

Warum kommt die Verbindung überhaupt zustande, wenn [CHECKSUM
INCORRECT] ist ???
Was ist mit dem Win=xxxxx und MSS=xxxxx ???
Warum ist Len=0 ???

Gruss Mattias

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Die Verbindung kommt zustande weil das Datenpacket welches vom PC kommt
nicht auf die richtige Checksumme überprüft wird.
Die LEN = 0 weil dieses nur ein ACK Packet vom PC ist ohne Inhalt
(Daten).

>>Bedeutet das nicht, dass CHECKSUM von ...15 nach ...14 falsch ist ???


Nein da nur Checksumm error angezeigt wird in dem Packet welches einen
Error hat. Würde der Webserver einen Fehler verursachen würde der PC
die Verbindung daraufhin mit FIN oder einen RST abbrechen.
Und eine neue Verbindung aufbauen.

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @Mattias

Hier das gleiche Daten Packet mit Etherreal aufgezeichnet:

Frame 4 (62 bytes on wire, 62 bytes captured)
    Arrival Time: Sep 21, 2004 12:53:24.711546000
    Time delta from previous packet: 0.000849000 seconds
    Time relative to first packet: 1.179174000 seconds
    Frame Number: 9
    Packet Length: 62 bytes
    Capture Length: 62 bytes
Ethernet II, Src: 1e:0a:2b:2b:2d:4d, Dst: 00:0c:76:16:59:a7
    Destination: 00:0c:76:16:59:a7 (Micro-St_16:59:a7)
    Source: 1e:0a:2b:2b:2d:4d (1e:0a:2b:2b:2d:4d)
    Type: IP (0x0800)
Internet Protocol, Src Addr: 192.168.0.101 (192.168.0.101), Dst Addr:
192.168.0.1 (192.168.0.1)
    Version: 4
    Header length: 20 bytes
    Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN:
0x00)
        0000 00.. = Differentiated Services Codepoint: Default (0x00)
        .... ..0. = ECN-Capable Transport (ECT): 0
        .... ...0 = ECN-CE: 0
    Total Length: 48
    Identification: 0x273e
    Flags: 0x04
        .1.. = Don't fragment: Set
        ..0. = More fragments: Not set
    Fragment offset: 0
    Time to live: 128
    Protocol: TCP (0x06)
    Header checksum: 0x51d3 (correct)
    Source: 192.168.0.101 (192.168.0.101)
    Destination: 192.168.0.1 (192.168.0.1)
Transmission Control Protocol, Src Port: http (80), Dst Port: 1063
(1063), Seq: 0, Ack: 2603669461, Len: 0
    Source port: http (80)
    Destination port: 1063 (1063)
    Sequence number: 0
    Acknowledgement number: 2603669461
    Header length: 28 bytes
    Flags: 0x0012 (SYN, ACK)
        0... .... = Congestion Window Reduced (CWR): Not set
        .0.. .... = ECN-Echo: Not set
        ..0. .... = Urgent: Not set
        ...1 .... = Acknowledgment: Set
        .... 0... = Push: Not set
        .... .0.. = Reset: Not set
        .... ..1. = Syn: Set
        .... ...0 = Fin: Not set
    Window size: 65535
    Checksum: 0x89db (correct)
    Options: (8 bytes)
        Maximum segment size: 1460 bytes
        NOP
        NOP
        SACK permitted

Und dahinter steht dann das Datenpacket ist correct.
Ich weiß nicht welches Programm du benutzt!!
Probier es mal mit Etherreal aus evt. ist die Darstellung besser.
Auch hier ist das TCP Packet LEN = 0 da es keine Daten enthält.

Mfg Ulrich

Autor: Uli (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @all,

Hier nochmal eine neue Doku, ich hoffe jemand von euch kann besser
schreiben ;-)

Mfg Ulrich

Autor: Torsten Voigt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also erst einmal ein ganz großes Lob an Ulrich für dieses tolle
Projekt.
Habe mir den Server mit Mega32 gebaut, funktioniert ausgezeichnet.

Kleiner Zusatz zur Doku:
Wenn man einen Mega32  benutzt, muß das JTAG-Interface disabled werden,
weil die JTAG-Pins auf PortC liegen.

MfG Torsten

Autor: Mattias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ulrich,
ich habe mal jetzt die Verbindung zum Internet überprüft und
festgestellt, dass dort auch immer die Meldung [CHECKSUM INCORRECT]
kommt, wenn mein PC etwas anfordert. Das Netz funktioniert trotzdem
einwandfrei. Ich werde das jetzt einfach mal ignorieren...
Es liegt also tatsächlich an meinem BS.
Das Programm Ethereal ist wirklich genial.

Gruss Mattias

Autor: Mattias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
habe ein kleines Problem entdeckt.
Ich habe meinen kleinen Server an einem Netz betrieben, wo richtig was
los ist. Der Netzwerkchip (RTL 8019) hat praktisch ununterbrochen einen
Interrupt gesendet. Nun ist es ja so:
Sendet der 8019 einen Interrupt (Leitung auf high), muss er vom
Controller quittiert werden. Bleibt der Controller in der Interrup
Funktion hängen, kann er diesen nicht quittieren. Die Anlage hängt. Nun
ist in der Funktion von Ulrich aber nichts drin was hängen bleiben kann.
Man sollte also annehmen, dass der Interrupt immer quittiert wird.
Hier ein Auszug aus dem Ende der Interrupt Funktion:
.
.
.
  //Zurücksetzen der Interrupt Bits des NIC
  WriteRTL (ISR, 0xFF);
  //startet die Network Card
  WriteRTL (CR , 0x22);
  //Globale wieder Interrupts Einschalten
  sei ();
Ende Interrupt Funktion.

Ich habe nun folgende Vermutung:
Der Interrupt wird quittiert und die Karte wird gestartet. Wenn genau
zu diesem Zeitpunkt ein neuer Interrupt kommt, bekommt der Controller
das nicht mit, weil sei(); noch nicht ausgeführt wurde. Die
Interruptfunktion wird also nie mehr ausgeführt.
Ich habe jetzt noch folgendes (hinter sei();) hinzugefügt:

  if(PINE & 0x10){
  //Zurücksetzen der Interrupt Bits des NIC
  WriteRTL (ISR, 0xFF);

  //startet die Network Card
  WriteRTL (CR , 0x22);
  }
Wenn also der Interrupt Pin nach sei() high ist, quittiere ich einfach
erneut, ohne genau zu wissen, ob das so richtig ist. Vielleicht gibt es
ja eine bessere Lösung.
So funktioniert es jedenfalls schon seit mehreren Stunden einwandfrei.
Vorher ging es höchstens für 2 min. Dann hing der Server.

Gruss Mattias

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @Mattias,

Hast du den Webserver an einen Switch oder HUB angeschlossen?
Würde den Fehler gerne nachvollziehen aber bisher ohne erfolg in einen
Netzwerk mit 30 Rechnern (alles über einen Switch verbunden)

Mfg Ulrich

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Was mir noch einfällt anstelle den Interrupt flankengesteuert
einzusetzen, einfach meinen Code bei behalten und einen Interrupt
auslösen wenn High Pegel auftritt.

MCUCR=0x03; auf MCUCR = 0x01; einstellen ,meine ich, wenn ich das
Register noch richtig im Kopf habe


Mfg Ulrich

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Habe soeben den SourceCode 1.09 mit geänderten Interrupt auf meiner HP
eingestellt. Meine nun damit ist der Fehler beseitigt.

Mfg Ulrich

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Zum gefundenen Fehler eine kleine Erklärung.
Natürlich ist es Richtig das nach dem neu Start der Netzwerkkarte und
dem Zurücksetzen des Interrupts ein neuer Interrupt eintreten kann.
Somit ist der µC schon mit einen gesetzten Interrupt nicht mehr in die
Interruptroutine gesprungen. Da ja der INT flankengesteuert war.
Durch ändern der INT Einstellungen sollte dieser Fehler in Version 1.09
nicht mehr auftreten.

Mfg Ulrich

Autor: Mattias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
mein Server hängt an einem HUB, dieser an einem Netz mit ca. 200
Rechnern und dieses an einem Switch. Danach weiss ich nicht wie es
weiter geht.
Das mit dem INT High Pegel wollte ich auch schon probieren, war mir
aber nicht sicher, ob das nur auf Änderungen reagiert. Werde das heute
noch probieren und berichten. So, wie gesagt, geht es jedenfalls.

Gruss Mattias

Autor: Mattias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So,
habe jetzt die Änderungen von Version 1.09 übernommen. Geht so aber
nicht, da das die Definition für:

"Any logical change on INTn..." ist
Nur auf high Pegel geht leider nicht.

ISCn1 ISCn0 Description

0 0 The low level of INTn generates an interrupt request.
0 1 Any logical change on INTn generates an interrupt request
1 0 The falling edge between two samples of INTn generates an
interrupt
1 1 The rising edge between two samples of INTn generates an interrupt

Bleibe also erst mal bei meiner Änderung.

Gruss Mattias

Autor: PatrickHH (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tach,

Hab hier noch ne 3Com Etherlink III 3C509BC ISA-Karte rumliegen. Wollte
nur mal fragen, ob die auch funktioniert. Das wurde ja hier schonmal
gefragt, aber es gab keine Antwort drauf.

Gruß PatrickHH

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
3com ist scheinbar nicht ne2000 kompatibel -> geht nicht.

die interrupt funktionen scheinen falsch definiert zu sein, denn SIGNAL
erledigt die cli() und sei() automatisch. Hab den letzten Quellcode
nicht überprüft (ist nur nen kurzer gedanke, der mir früher aufgefallen
ist), aber das könnte es sein. Müsste nochmals genauer betrachtet
werden.

Autor: PatrickHH (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo Danke,

werde mir dann mal ne andere besorgen.

Gruß PatrickHH

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Die 3Com Netzwerkkarten funktionieren definitiv nicht,
die Register sind anders als bei einer NE2000 kompatiblen Karte.

Mfg Ulrich

Autor: Bjoern Biesenbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mattias

Dein einseitiges Layout für den Webserver gefällt mir sehr gut.
Hast du die Platine selber geätzt ?
Ich bin leider nicht in der Lage eine derart feine und komplexe Platine
selber herzustellen und wollte desshalb fragen, ob du mir evtl ein
Exemplar anfertigen könntest (gegen Bezahlung!), oder einen Tip für
mich hättest, wo man eine Platine kommerziell anfertigen könnte.

Gruß
Björn

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe gestern auch einen Server zum laufen gebracht. Dabei habe ich
einen Mega32 verwendet mit 16Mhz. die ISA Karte kommt von Ulrich.

Hier ein Paar stellen, an denen es bei mir geklemmt hat:
der Tackt muss bei 16Mhz über die Fusebits eingstellt werden. was da
AVRProg programmiert stimmt efinitiv nicht. ich habe mir dann per
PonyProg geholfen

Das JTAG muss per Fusebits deaktiviert werden, denn es Liegt auf Port C
(war ein Hinweis von Torsten Voigt)

Ab da hat dann die Initiallisierung hingehauen, aber die Interrupts
stimmten noch nicht. Bei den Karten von Ulrich ist eine Treiberdiskette
mit Konfig-Programm bei. Mit dem konnte ich zwar lustig testen, aber
keine einstellungen machen (heisst EZCFG ?) auch ein hinweis von Hier
hat mich dann auf rset8019 gebracht, damit konnte ich die Karte
einstellen. Hinweis dazu: Media-Type auf Auto lassen, denn 10Base-T (=
UTP = Unshielded Twisted Pair (die mit dem RJ45 Stecker)) hatte (bei
mir) dann keinen LinkDetect mehr. mit Auto Funktionierts aber
wunderbar.

10Base-2 und 10Base-5 sind übrigens die Coax-Kabel mit BNC Stecker
dran. Ich war zwischenzeitig auf der suche nach erklärungen der
Bezeichnungen.

Hab jetzt allerdings ein anderes Problem :) ich suche noch einen
gescheiten Verwendungszweck...

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

>>Hab jetzt allerdings ein anderes Problem :) ich suche noch einen
gescheiten Verwendungszweck...

Ich habe auch noch keinen ;-)

Mfg Uli

Autor: Mattias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Bjoern,
die Platine habe ich bei meiner Partnerfirma fertigen lassen, weil ich
keine Lust zum Bauen hatte. Ich habe aber den Film und könnte natürlich
mal einige machen. Die Mittel habe ich. Ich sag mal so 10 EUR + Versand
1 EUR.
Ich mach einfach mal welche. Ihr könnt Euch ja dann überlegen, wer eine
haben will.

Gruss Mattias

Autor: Bjoern Biesenbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Mattias

Super Sache ! Dann würde ich, wenn möglich, auch zwei nehmen.
Könntest du mir evtl deine Email-Adresse zukommen lassen ?
Danke

Gruß
Björn

Autor: Uli (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @all,

Hier mal eine neue beta des Webservers der nun auch die Anfänge eines
FTP Servers enthält. z.b. über Smart FTP einloggen und das Root
Verzeichnis sehen geht schon. Ist natürlich noch alles pseudomäßig.
Da es ja noch kein FileSystem gibt :-q
Auch der Webserver selber also httpd.c wurde etwas besser gestaltet.
Daher die Frage welches Speichermedium soll man nehmen meine MMC oder
doch besser DOC oder was ganz anderes?

Mfg Ulrich

Autor: Bjoern Biesenbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also ich würde zu MMC tendieren. Die Medien sind bei ebay günstig zu
bekommen und von allen wohl am einfachsten und mit dem wenigsten
"pin-verbrauch" anzusteuern. CompactFlash wäre aufgrund der Größe der
Karten (bis 4GB?) auch sehr schön, nur wäre der Aufwand wohl viel zu
gross.

Gruß
Björn

Autor: Simon Lehmayr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich tendiere auch zu SD/MMC, wegen guten Erfahrungen in diesem Bereich
:-)

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde SD sagen, da ich in dem breich schon ne speicherkarte habe und
die auch in einer dcam verwenden kann.

alternative währe HDD, dann kann man das gleich mit mp3 kompinieren...
jaja, der übliche mp3player...

wie sieht es eigentlich mit Übertragungsgeschwindigkeit aus? bilang kam
mir das ganze recht lahm vor. wirklich dateien kann man damit nicht
übertragen, oder was meint ihr?

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich wäre auch für MMC. Die HD hat so viele Pinne. Ich glaube da ist der
Atmel dann an seinen Grenzen bzw ohne Tricksereien geht es nicht mehr.


Martin

Autor: Uli (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Hier wieder ein neuer Source Code mit weiteren Verbesserungen, sowie
eine UHR mit Timer1 (noch nicht mit Mega32 getestet).

Mfg Ulrich

Autor: Torsten Voigt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe eben mal die neuste Version auf Mega32 getestet, FTP funktioniert
, jedenfalls kann man sich einloggen.
Die Uhrzeit wird über die serielle Schnittstelle ausgegeben. Gibt es
auch eine Möglichkeit, die Uhr zu stellen? Außer im Source Code?

Gruß
Torsten

Autor: Bjoern Biesenbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

was haltet ihr von der Idee, mal gemeinsam am Software Projekt
mitzuarbeiten? Ich würde schon gerne an der ein oder andern Stelle
etwas beisteuern.
Wir könnten das Ganze zB über "Subversion" oder "CVS" organisieren.
Einen Server könnte ich bereitstellen, falls Interesse besteht.

Gruß
Björn

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

>>Die Uhrzeit wird über die serielle Schnittstelle ausgegeben. Gibt es
auch eine Möglichkeit, die Uhr zu stellen? Außer im Source Code?

Ist schon in Arbeit wird bald über Telnet realisiert.

Mfg Ulrich

Autor: Uli (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @all,

mit diesem Device.c.h dateien läuft alles ein bisschen schneller ;-)

Mfg Ulrich

Autor: Simon Lehmayr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Uli:
Ich möchte gerne eine reine socket-basierende Verbindung aufbauen,
ungefär nach folgendem Prinzip:
1. PC (=Client) öffnet Socket auf einem bestimmten Port
2. (evt.) Miniserver schickt eine kleine Bestätigung
3. PC sendet Kommando (z.B. sende Analogwert Kanal 0 oder setze Ausgang
1 auf AN)
4. Miniserver antwortet mit Daten

alternativ:
3. PC sendet Kommando "Dauerübertragung"
4. Miniserver sendet kontinuierlich Datenpakete mit Messwerten, bis
Socket geschlossen wird.

Wo muss ich mich in deinem Code da einhängen?

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @Simon:

in Interrupt4 bei Get

Mfg Ulrich Radig

Autor: Bjoern Biesenbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mit Uli's Einverständniss habe ich einen neue Projektpage für den
AVR-Webserver angelegt. Bisher bin ich noch nicht zu Viel gekommen,
aber der Subversion Server steht schonmal.
Wer also gerne interaktiv am Code mitwirken möchte, kann sich bei mir
per Mail melden, und bekommt dann einen Entwickler Zugang zum
Subversion Repository.
Vorerst ist die Seite zu erreichen unter:
http://avrwebserver.bjoern-b.de

Viele Grüße
Björn

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Björn

Hast Du Dir schon mal Deine neue Seite aus dem Netz angeschaut?
Stichwort: Sonderzeichen.

Autor: Bjoern Biesenbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Hinweis Joline. Ich habe mich erst gefragt was du meinste,
hatte mir meine Seite mit Konqueror und IE angeschaut, doch in Mozilla
waren die Fehler dann sichtbar.

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Neuer Source Code auf meine HP V1.16

Mfg Ulrich

Autor: Mattias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist denn neu in dieser Version ????????
Die Beschreibung von version.txt geht nur bis 1.13 .

Gruss Mattias

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
genau deswegen habe ich mich davon gelöst und pflege meine eingene
Version. Da kommt nur rein, was ich haben will, bald werden die Sitens
dynamisch erstellt.

Ausserdem kann ich meine Compilierung ohne Probleme im AVRStudio
simulieren. Einzig Aufwendig ist es die Unterschiede zu den neuen
Versionen, die hier geboten werden, herauszufinden (zu vergleichen).

Die letzte Version, die ich von hier ausprobiert habe, hat den Server
übrigens nach dem Ersten HTTP Request regelmäßig resetten lassen. - War
für mich unerklärlich und ich bin wieder (aus Einfachheit) bei meiner
Version gelandet.

Hab aber noch ne Frage zu den HTTP Headern: Auch bei den JPG Dateien
wird der Header mit Content:HTML gesendet. Klickt man im IE auf das JPG
Bild mit Rechts und ruft die Eigenschaften auf, so wird auch das JPG
Bild als HTML content ausgegeben. (Fehler?)

Hab jedoch noch ne Frage zu den HTTP Headern: wenn ich
http://192.168.0.99/ als Adresse aufrufe, erscheint zwar die Site, aber
in der Titelleiste (des IE) erscheint die Meldung "Server nicht
gefunden". Öffne ich eine Adresse mit Filename wie zB
http://192.168.0.99/index.htm so klappt der Aufruf genauso, es wird
jedoch der Header der HTML-Datei (<head><title>Server</title></head>)
berücksichtigt. Gibt es eine Möglichkeit bei Eingabe der Adresse ohne
Datei einen Redirect zur Adresse mit Datei durchzuführen? Was sendet da
zB. Apache?

Und zu den HTML-Headern auch noch eine Frage g : Wieso ist der Inhalt
der Datei (zB Page1) nicht komplett, sondern es fehlen die <HTML> und
<HEAD> Tags (mit allem, was so dazugehört)? wurde das vergessen, oder
hat das einen Grund?

greez Henning

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Was neu in der Version 1.16 zu 1.13 ist es wurde ein Fehler bei einen
Antwortpacket beseitigt. Es wurde Device.c auf Geschwindigkeit
optimiert. Aus dem Hauptprogramm sind die Routinen für den UART
entfernt worden und in eine eigende Datei. Ich glaube das wars.

Mfg Ulrich

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe mir bis jetzt immer nur den Quellcode (oberflächlich)
angesehen. Dabei habe ich festgestellt, dass in der von Uli gepflegten
Version (seit 1.03?) immer nur ein Bild angezeigt wird (bitte
berichtigen, wenn falsch), was ja für einen Webserver auf µC-Basis
eigentlich ein bisschen sinnlos ist.

Nun gibt es ja hier einige, die das Ganze schon nutzbringend einsetzen
(z.B. als Druckereinschalter). Kann mal bitte einer eine "webpage.h"
und die passende "httpd.c" posten, in der ein paar I/O's gesetzt und
abgefragt werden?

Danke Joline

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Mal wieder eine neue Version auf meiner Homepage:

Über Telnet setzen der Uhrzeit mit set time xx xx xx
Ausgabe der Uhrzeit über Telnet mit time
Weitere infos in meiner Version.txt

Mfg Ulrich

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

So neue Version 1.21! Fehler in checksum.c noch gefunden.
Die Webseite wird alle 3Sec. nun neu geladen und ein Counter Zählt
hoch.

Mfg Ulrich

Autor: Bjoern Biesenbach (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe es jetzt geschafft, einen DS18S20 Temperatursensor an den
Webserver anzuschliessen, und die gemessene Temperatur dort anzeigen zu
lassen.
Das Ganze läuft mit einem ATmega32.
An PD7 ist der Data-Pin des DS18S20 angeschlossen. Diese Leitung wird
noch mit 4,7kOhm gegen VCC gezogen. Das ist notwendig da der Sensor
über den internen Pullup des AVR nicht genug Saft bekommen würde. Somit
funktioniert der Sensor mit nur zwei Adern (DATA und GND).
Zur Realisierung der Software habe ich den Code dieser Seite
verwendet:
http://www.siwawi.arubi.uni-kl.de/avr_projects/ind...
Dann habe ich Diesen noch in Version 1.22 von Uli integriert.

Zu bekommen ist der Sourcecode entweder über den Anhang, oder übers
Subversion-Repository: svn://bjoern-b.de

Viele Grüße
Björn

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe gerade erste Versuche mit einem mega32 gemacht.
Dieser war natürlich noch ganz frisch: den Fehler den externen Quarz zu
aktivieren habe ich schon 1000 mal gemacht. Aber gerade habe ich fast 1h
gebraucht um zu bemerken das default JTAG aktiviert ist. Dann geht
erstmal gar nichts bzw der network card init ist imemr 255 :-)
Sonst muss ich sagen recht schnell und auf den ersten Blick sehr
stabil...

Martin

Autor: Philipp Drewes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Ulrich,
sag mal, sind deine Leiterplatten hand oder autogeroutet?
Ich habe bisher den Freeware Eagle benutzt und da konnte man den
Autorouter so gut wie vergessen.

Gruß Phili

Autor: Mattias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also den Einplatinen - Server habe ich ja gemacht. Der ist vollständig
von Hand geroutet. Sowas kann Eagle nicht....

Gruss Mattias

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Alle Platinen von mir sind Handgeroutet.

Mfg Ulrich

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wurde schon öfters bemängelt: der Autorouter von Eagle ist mit den
meisten Aufgaben schon überfordert, bzw. erzielt keine
zufriedenstellende Ergebnisse... man kann sich die Arbeit damit jedoch
trotzdem um einiges vereinfachen, wenn man ihn geschickt auf einige
wenige signale ansetzt

Autor: Volkmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich verfolge den Thread schon geraume Zeit. Die Anwendung mit der
Temperatur ist ja schon ganz nett. Ich habe da aber noch was anderes im
Auge. Ich wäre an einer WebCam interessiert. Gibt es da Ideen?

Volkmar

Autor: marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo

@ uli
hab mal ne Frage zum Programmierstiel. mir ist aufgefallen das alle
*.c Datein in main.c eingebunden sind und nicht wie bei den meisten
anderen Beispielen hier im Forum einzeln übersetzt und zusammengelinkt
werden. gibt es dafür einen besonderen Grund?

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Das ist schon lange nicht mehr der fall das *.c dateien eingelinkt
werden. nur noch *.h :-)
Die neuste Version ist 1.30 natürlich auf meiner HP

Autor: Andreas Jakob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab ich grad gefunden :

AVR + NE2K zu Steuerung der Motoren einer beweglichen Webcam
+ Display und LED´s

http://home.teleport.ch/idobson/projects/UDP-webcam.htm

ganz unten auf der Seite den Link anklicken,
da kann man das ganze live ausprobieren.
Echt cool ! bekam sogar Antwort auf die Texte die ich im
Display anzeigen ließ :-)

Grüße
Andreas

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
hab gerade den Thread gefunden und durchstöbert. So ein
Ein-Platinen-Webserver ist genau das, wonach ich suche.

Euch fehlt es an Anwendungen? Gibt's doch nicht:o) Ich suche nach
sowas, um Luftfeuchte und Temperatur abzufragen. Und für ein AQ oder
Terrarium sind die käuflichen Lösungen überdimensioniert, sowohl von
den Abmessungen her als auch vom Preis. Ich möchte aber nicht den PC
immer laufen lassen, um diese Daten zu erfassen. Und Flatrate ist
sowieso vorhanden. Also wäre ein Ethernet Sensor ideal.

Ich würde den Ein-Platinen-Webserver ein einfaches XML-Dokument
bereitstellen lassen, und dieses von einer im Internet bereitgestellten
php Seite auslesen/einbinden.

Für diejenigen unter uns, die noch kein AQ oder Terrarium haben:
Luftfeuchte ist auch im Wohnraum nicht uninteressant.

Ein scheinbar recht brauchbarer (und daher auch nicht ganz billiger)
Sensor wäre z.B.
http://www.sensirion.com/en/sensors/humidity/senso...

Wenn jemand einen anderen Sensor kennt, bitte hier kurz vermerken.
Ansonsten muss ich jetzt nur noch Zeit finden, mich mit dem AVR erstmal
auseinander zu setzen, die Bauteile aufzutreiben und die Platine
aufzubauen... das wird sicher einige Wochen dauern. Ich hätte also
nichts dagegen, wenn jemand ebenfalls sowas brauchen kann und schon mal
das Sensorprotokoll implementiert:o)

Bis dahin,
Jochen

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat eigentlich schon mal jemand darüber nachgedacht, eine
Sammelbestellung für Platinen für den Webserver anzuleiern?

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thorsten
ich denke nicht, denn so kompliziert ist das Projekt mit dem M32 nicht.
Auch auf Lochraster kann das gut aussehen, wenn es darum geht. beim m128
sieht das natürlich anders aus...

Autor: Jens123 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo

ich haette da auch noch eine kleine anwendung..

Euch allen sagt sicher Instabus etwas oder??

was ist, wenn man nun hingeht und in (jeden) raum einen von diesen
webservern baut mit einer eigenen ip versieht und daraus lichtschalter,
steckdosen etc aufbaut oder sogar darueber den strom misst??

evtl laesst sich dieses projekt damit erweitern
die ip adresse koennte man dann ueber einen externen 8bit DIP Schalter
aufbauen..

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Uli
Hast du noch so ca 10 Stueck von den Netzwerkkarten abzugeben?

Gruß Tobias

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Leider habe ich nur noch 5 Netzwerkkarten, die ich selber gebrauche!

Mfg Uli

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ok ist nicht so tragisch.

Gruß Tobias

Autor: Volker Klautsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Tobias

Ich habe noch genügend. Wenn du immer noch welche haben willst - melde
dich bei mir.

MFG Volker

Autor: geloescht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieser Beitrag wurde auf Wunsch des Autors geloescht.

Autor: Volker Klautsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@All

Hallo - ich will mich ja net aufdrängen, aber wer noch Netzwerkkarten
haben will kann sich gerne bei mir melden :-)
Das sind die Karten, welche noch vor ein paar Monaten bei ebay zu je 50
Stk. zu ersteigern waren - also RTL8019AS Chip auf einer ISA-Karte.

Volker

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

wieviel willst du denn pro stueck haben? wierde gern noch ein paar
nehmen

Gruß Tobias

Autor: Volker Klautsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe damals 39 Euro für 50 Stk. bezahlt.
Macht also, wenn ich mich jetzt nicht verrechnet habe, 78 Cent/Stk.
(Kommt natürlich eventuell für dich noch das Porto dazu :-)

Volker

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
wuerd da dann gern noch 5 stueck nehmen(hab inzwischen noch welche bei
ebay gefunden).

Ich schreib dir noch ne mail.

Gruß Tobias

Autor: Jon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Volker,

ich würde gern 5-10 Karten bestellen, wenn das möglich ist.

Gruß, Jon

Autor: Alno (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi All,

nachdem ich den ganzen thread durch habe meine Frage:

kann man den Aufbau auch verwenden um z.B. ein WOL Signal
"abzufangen" und als Schaltvorgang umzusetzen? Ist die MAC Adresse im
Realtec chip gespeichert und auslesbar?

Gruß

Autor: Frank Bertling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe da mal 'ne Frage:
Sehe ich das richtig, dass man ausser einem Mega32 bzw. Mega128 einem
Quarz und der Netzwerkkarte (evtl. noch nen MAX232 zur Programmierung)
nichts weiter braucht, um das Teil ans laufen zu bekommen?

Wenn nicht, was muss ausser den o.g. Teilen noch auf seiten des "Atmel
Teils" der Schaltung vorhanden sein? Konnte das leider bislang nicht so
richtig ergründen.

Vielen Dank für alle Antworten und vorab schon mal große Anerkennung
für ein solch geniales Projekt.
MfG
Frank

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @Frank Bertling

Ja so ist es, es reichen eine Netzwerkkarte ein Mega32 und wenige
passive Bauteile aus.

Mfg Uli

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!

Ulrich erwähnte am 29.05., dass er den Webserver mit ner 3com Karte mit
3c509 TX Chipsatz getestet hätte, am 25.09. schrieb er, dass es mit 3com
Karten überhaupt nicht funktionieren würde. Was stimmt denn nun?

Ich könnte zur Zeit Karten mit 3c509B und 3c509TP Chipsatz bekommen.
Soll ich lieber die Finger von ihnen lassen?

Besten Dank für eure Hilfe!

Volker

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

3com Karten funktionieren nicht!!! Fehler meiner seits. Hatte hier so
viele Karten liegen und eine verwechselt.

Mfg Ulrich

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

nachdem die 3com Karten nun ja nicht wirklich funktionieren :-) suche
ich nach Karten mit z.B. RTL8019 Chipsatz. Hat zufällig jemand von euch
eine oder auch gerne mehrere abzugeben?

Meldet euch doch einfach mal!

Viele Grüsse

Volker

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei Pollin gibt es gerade welche mit einem RTL8029AS, keine Ahnung ob
der auch funktioniert. Kosten EUR 2,50, die Best.-Nr. ist 700108.
Ansonsten gibts die Karten eigentlich ständig bei eBay.

Gruß
Thorsten

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich benutze auch den RTL8019AS Chipsatz.

Mfg Uli

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Antworten!

Geht denn der 8029er Chipsatz auch?

Viele Grüsse

Volker

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Leider nein, der RTL8029 hat ein PCI Interface und lässt sich nicht
ohne weiteres an ein µC anhängen.

Mfg Uli

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okidoki,

das klingt logisch... könntest Du mal bitte ne aktuelle Liste der
getesteten Chipsätze posten? Danke!

Jetzt fehlt eigentlich nur noch ne WLAN Lösung :-)

Viele Grüsse

Volker

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Karte bei Pollin ist aber eindeutig ne ISA-Karte.

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Eigentlich alle NE2000 kompatible Netzwerk-Karten.
Am besten Realtek 8019, war gerade bei EBay da gibt es schöne kompakte
Netzwerkmodule.

Mfg Ulrich

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
..ausser 3com, das hab ich schon gelernt :-)

Was für Netzwerkmodule meinst Du?

Viele Grüsse

Volker

Autor: 123 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AVR Ethernet Platine

http://www.mikrocontroller.net/forum/read-1-138024.html#new

- Atmega128 bei 16MHz (oder UART Optimierter Takt)
- (optional) ca. 64KB Speicher
- (optional) MMC Karte
- (optional) RTC (Epson mit internen Quarz)
- Platine: 100mm x 80mm
usw...

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,

also auch erstmal Lob von mir an dieses schöne Projekt!

Ich hab jedoch ein paar Probleme:

Ich betreibe das ganze auf nem Atmega32 mit 16 MHz externen Oszillator
(fusebits korrekt gesetzt). Als Karte hab ich ne RTL8019as.
Wenn ich den Server starte, gibt er mir Init Ready mit dem Wert 34 aus,
Verbindungslämpchen an der Slotblende und am hub geht an, nur dass von
dann an nichts mehr passiert.
Das Timerinterrupt kommt regelmässig aber nicht das int0. Wenn ich dort
das Kabel rausziehe und wieder reinstecke, dann kommt int0 (funktioniert
also).
Sieht für mich also so aus, als ob die Netzwerkkarte nichts sagt :(.
Ich hab sie auf IRQ3 konfiguriert (und wenn ich mitm Multimeter die
pins messe, liegt auf dem Pin von IRQ3 auch ein low-level, bei allen
anderen ein high).
Kann mir jemand helfen, wie ich der Netzwerkkarte mal ein paar
informationen entlocken kann und woran das liegen könnte, dass die
nichts sagt?

Er lief übrigens auch schonmal kurzzeitig aber seit dem nicht mehr :(

juti, hoffe jemand kann mir helfen!
Stefan

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,
@uli: bei einem tcp/ip packet sind ja die lezten bytes des packtes
nutzdaten. wenn ich mir aber mal den buffer fuer die daten bis
packetlen ausgebenlasse bekomme ich am end eimme rnoch ein paar bytes
extra. werden die vom rtl angehaengt? und fuer was sind die gut? kann
man ihre laenge irgendwie bestimmen?

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tobias,

nicht das du deswegen genauso viele schlaflose Nächte hast wie ich: das
ist der CRC der MAC PDU - genau 4byte.


Martin

Autor: CDG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
mein Versuch den Webserver mit einem ATMega8
nach Simon Lehmayr und der Datei mega8test.zip
aufzubauen hat nicht funktioniert.

Ich bekomme keine Ausgabe auf die serielle Schnittstelle.
Auch im Fehlerfalle (wohl auch ohne Netzwerkkarte),
sollte dort was ankommen., oder ???

Ich habe daher einen Mega8 mit einer kurzen Textausgabe programmiert
und in die Schaltung eingesetzt (ebenfalls int. Osc. mit 8 MHz).
Das funktioniert einwandfrei.

Meine Verdrahtung ist wie folgt und mehrfach überprüft,
GND und +5V an den Pins der RTL-Karte laut Ulrich Radig:

- Mega8 PORTB 0..7 --> ISA-BUS D0..D7
- Mega8 PORTC 0..4 --> ISA-BUS A0..A4
- Mega8 PORTD 2    --> ISA-BUS IRQ9 ???? richtig ????
- Mega8 PORTD 5    --> ISA-BUS /IOR
- Mega8 PORTD 6    --> ISA-BUS /IOW
- Mega8 PORTD 7    --> ISA-BUS RES DRV

Fusebits:
cksel 3..0  -> 0100
SUT 1..0    -> 10

Auf meinem System ist kein GCC oder ähnlich installiert,
darum habe die in obigem Zip-File enthaltene .hex Datei
in den ATMEL gebrannt.

Ist die Datei ok ??
Ein Widerspruch ist in der main.c wo folgendes steht,
#define sysclk  16000000  //Quarz Frequenz in Hz
da müsste es doch 8000000 (für 8 MHz) heißen.

Wenn dies der Fehler wäre, sollten trotzdem verstümmelte
Zeichen erscheinen.

Ich danke schonmal für Hinweise

cdg

Autor: Jens123 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
externer quatz??
nim mal einen 16MHz Quarz an XTAL1 / XTAL2 mit den 2 kondensatoren..

sonnst stimmen die ganzen timings nicht mehr!!!

Autor: CDG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jens123
Wenn das an mich gerichtet ist, erstmal danke, aber

     ***!!!! ATMEL MEGA8 !!!!***
PB6+7 = XTAL1+2 sind belegt (siehe oben).
Dabei halte ich mich an die Beschreibung von Simon Lehmayr
also !! interner Oszillator 8MHz !!.

Hilfe von jemandem der das mit dem Mega8 laufen hat
wäre wohl sinnvoll.

MfG cdg

Autor: Jon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Atmega8 hat meines wissens intern nur 1MHz. Die 8 steht für den
Speicher, nämlich 8kB.

Soweit ich gehört habe ist der interne Oszillator auch sehr instabil
und das UART läuft damit nur auf 2400 BAUD o.ä. (müsste im Source
angepasst werden).

Du solltest also auf jeden Fall einen externen Oszillator anschließen,
mit 8 oder 16Mhz.

Gruß, Jon

Autor: CDG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jon und andere

Bitte versteht dies nicht falsch,
aber diese Antworten nützen mir nichts.

Ich wende mich an die, die den Webserver
mit dem mega8 laufen haben
wie z.B. der von mir oben angeführte Simon Lehmayr.

Angaben mit ... soweit ich weiß
oder interner Osc. ist instabil
oder intern nur 1MHz.
     Die 8 steht für den Speicher, nämlich 8kB.
     das UART läuft damit nur auf 2400 BAUD
sind schlichtweg falsch.
Aber wie schon gesagt, bitte nicht falsch verstehen
ich möchte den Webserver schon laufen haben.

Danke cdg

Autor: Jon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
entschuldige die Fehlangabe... hatte übersehen dass man den internen
Takt verändern kann, dennoch steht die 8 für den internen Flash
Speicher.

Wieauchimmer, noch ein unerwünschter Tipp von einem Atmega32 Benutzer:
Die Funktion des UART (nämlich die Baudrate) hängt direkt von der
definierten Clock ab. (siehe uart.c)

Dass Deine serielle Schnittstelle nicht funktioniert könnte
(entschuldige die Unsicherheit) also durchaus daran liegen.

Autor: CDG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jon
Danke für deine Geduld.

Ich habe mir (siehe oben) einen mega8 mit einer Textausgabe
programmiert, ohne Quarz, internen Osc. mit 8MHz eingeschaltet
und Baudrate auf 9600 Baud eingestellt.
Mit Hyperterminal ist das auch ok.
Auch andere Projekte mit dem mega8 und internem Osc. habe ich laufen.

Da ja offensichlich Simon Lehmayr den mega8 Webserver laufen hat,
hier aber z.Z. nicht schreibt suche ich andere Nachbauer des
mega8-Webserver.

Ok, ich kann auf einen mega32 oder mega128 ausweichen,
habe aber noch das Übersetzungsproblem (keinen Compiler installiert).
Auch das war ein Grund für den mega8 (.hex-File war hier im Forum)

Mich würde trotzdem interessieren, warum es nicht läuft
bzw. warum nichts auf der ser. Schnittstelle erscheint.

Freundliche Grüße
cdg

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, aber das hört sich leider ein wenig "wartend" an.

Versuche doch mal mit einem eigenen hex File eine Serielle Verbindung
aufzubauen. Wenn Du schreibst du hast nichteinmal nen compiler
installiert, dann sieht das ziemlich bequem aus.

Darüber kannst du dir dann sicher sein, das deine serielle Verdrahtung
in Ordnung ist und der Fehler nirgends in anderen Funktionen im
Programm liegen kann.

henning

Autor: Jon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja.. er hat ja schon ein serielles Testprogramm zum Laufen gebracht.
Nur die Atmega8 Sourcen stehen halt auf 16Mhz, es wird also eine
Baudrate in abhängigkeit von 16Mhz gesetzt. Da kommmen am Ende dann
nicht mehr die gewünschten 9600 raus.

Ich denke er muss die Sourcen neu kompilieren (mit sysclk=8000000) oder
einen 16Mhz Oszillator anschließen.

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hatte das ganze so verstanden, das er das auf einem anderen system am
laufen hat. nicht aber auf dem, mit dem er die Netzwerkkarte ansprechen
will.

das währe natürlich relativ nutzlos.

Autor: Simon Lehmayr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry für die späte Antwort zum Thema mega8 Server: Compiliert mit
WinAVR. Keine serielle Schnittstelle im Programm (der Code dafür hat
zuviel Platz benötigt, daher habe ich ihn entfernt). Die zweite
gepostete Version enthält richtiges #define SYSCLK (wird aber nicht
benötigt, weil keine Baudrate)
Mein mega8 Server hat nur an einem Switch richtig funktioniert, an
einem Hub wurde er mit IP-Paketen überlastet :-)

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Mein mega8 Server hat nur an einem Switch richtig funktioniert, an
>einem Hub wurde er mit IP-Paketen überlastet :-)

Das habe ich mit meinem Mega32 Server auch befürchtet, aber dann nicht
weiter verfolgt.

Autor: CDG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Simon, Henning, Jon

Danke für die Hilfe, nun wird es klarer.
Laut Simon:
>Keine serielle Schnittstelle im Programm (der Code dafür hat
>zuviel Platz benötigt, daher habe ich ihn entfernt)

>Mein mega8 Server hat nur an einem Switch richtig funktioniert, an
>einem Hub wurde er mit IP-Paketen überlastet :-)

Ok, ein Switch ist vorhanden.

zu Henning:
>Versuche doch mal mit einem eigenen hex File eine Serielle Verbindung
>aufzubauen.

Wie oben geschrieben, hatte ich das gemacht und es funktionierte !!
Der Fehler bzw. warum keine Ausgabe ist ja nun klar.

>Wenn Du schreibst du hast nichteinmal nen compiler
>installiert, dann sieht das ziemlich bequem aus.

Wenn bei einer Anleitung ein .hex File ist (alles in der .zip) und ich
hier in mehreren Beiträgen lese, neuere Compiler kommen mit den Sourcen
nicht klar, warum soll ich dann einen Compiler installieren
der anschließend nicht das gewünschte Ergebnis bringt.
Also erstmal Hexfile brennen und wenn blutgeleckt, dann Compiler
und Sourcen anpassen usw.

Werde nun aber doch zu einem größeren ATMEGA greifen,
zumal dort auch Erweiterungen in Arbeit sind und dort genug Platz ist.

Vielen Dank
cdg

Autor: Uwe Nagel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

habe den Webserver mit einem Mega32 aufgebaut.
Takt 14,318MHz, Softwareversion 1.33

Dabei sind mir ein paar Probleme aufgefallen:

1. Auf meinem IE6 wird die Beispielseite nicht richtig angezeigt. Nur
die Hintergrundfarbe erscheint. Schaue ich mir den Quelltext an fehlt
ein Teil (das Ende) der Datei. Breche ich die Übertragung ab erscheint
die Seite, allerdings ohne den Counter, der steht auch nicht im
Quelltext. Ich dachte erst der Controller überträgt nicht alles, habe
die MTU-SIZE erhöht und bekam entsprechend mehr Zeichen !
Dann hab ichs mit Firefox probiert und alles ist OK. Was ist das denn
nun, mal wieder Microdoof oder was?

2. Es wird immmer nur der HTTP_OK1 zurückgegeben, scheint aber die
Browser nicht zu stören...

3. 'Card Init: 34' wird auch angezeigt, wenn gar keine Netzwerkkarte
angeschlossen ist! Erst als ich Pullup-Widerstände an den Datenbus
gehängt habe, kam 255.

4. Die IOWR-Leitung liegt meistens auf 0. Wie kommt das, die wird doch
in ReadRTL und WriteRTL gleich nach dem Datentransfer wieder auf 1
gesetzt?

Versuchsweise hab ich auch mal die alte Version 1.08 ausprobiert. Dabei
ist mir Effekt 1 und 4 nicht aufgefallen. Bei 1. liegts wohl an der
kürzeren Seite.

Noch ne Frage:
Eigentlich könnte ich so was wie einen minimal-Web*Browser* gebrauchen.
Wozu? Ich möchte einfach ein PHP-Script auf einem anderen Server
aufrufen und ihm dabei einige Werte übergeben, die er in einer
Datenbank ablegen soll und dann grafisch aufbereitet im lokalen oder
auch globalen Netz anbietet.
Die Werte soll der AVR regelmässig ermitteln.
Lässt sich sowas mit den vorhandenen Routinen realisieren?

Vielen Dank
Uwe

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Uwe,

zu 1: was passiert wenn er nur die Hälfte der Seite anzeigt? Geht
danach noch ein telnet oder hängt der ganze webserver?


Martin

Autor: Uwe Nagel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Martin,

der Server hängt nicht, mit Telnet kann ich drauf zugreifen.
IE abbrechen, Firefox nehmen, Seite aufrufen, geht...
Stimmt nicht ganz: geht erst beim zweiten oder dritten Aufruf.
Vorher kommen nur Text und Bilder, aber kein Counter und der Browser
meldet ewig 'Laden...'.
Rufe ich mit Firefox den Server in zwei Tabs auf, zeigen beide nach
kurzer Zeit den beschriebenen Effekt (sollten ja nach 3s neu geladen
werden).

Ist der Server damit schon überlastet?

PC und Server sind über einen D-Link Router/Switch verbunden, falls das
eine Rolle spielt.

Gruß
Uwe

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
das mit dem Card init kommt daher, das bevor die 34 gelesn wird auch
eine 34 auf den bus geschrieben wird und daher einfach der selbe wert
zureuck kommt, wenn keine karte ngeschlossen ist.

Autor: Uwe Nagel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

das mit dem CardInit hab ich mir auch so vorgestellt, deshalb helfen
hier auch die Pullups.
Inzwischen habe ich festgestellt, das das ständige Neuladen der Seite
auch mit Firefox nicht dauerhaft geht, wenn man das System ganz in Ruhe
lässt. Irgendwann hängt es. Die Ausgabe über RS232 sieht übrigens
vernünftig aus und nach einer kurzen Pause kann man auch wieder auf der
Server zugreifen.
Mir scheint da gehen die Pakete unterwegs verloren, lade mir gerade mal
ETHEREAL...

Uwe

Autor: Uli (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Welche Version benutzt ihr??
Dieses Problem hatte ich bei meiner alten Versionen auch mit der Neuen
sollte dieses Problem nicht mehr auftauchen war ein Problem in
checksum.c im Anhang nochmal die neue.

Mfg Ulrich

Autor: Uwe Nagel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Ulrich

ich verwende V1.33 von deiner Homepage, da ist diese Version von
checksum.c drin.
Mit Ethereal komme ich noch nicht ganz klar, versuche noch die
Bedeutung der Werte hinter seq= und ack= zu verstehen.
Was ich sagen kann: die erste Hälfte von Index.htm kommt an, wird
quittiert und dann kommt unter Firefox oft, mit IE6 nie der zweite
Teil. Bei den Bildern gibt es keine Probleme, da kommen immer alle
Teile. Da aber das Ende vom HTML-Text fehlt, zeigt IE nichts an,
Firefox gibt sich wohl auch mit Bruchstücken zufrieden. Der wartet aber
ewig auf den Rest und führt das Reload nicht aus.

Uwe

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Wird eine MMC/SD-Karte verwendet? und wenn nicht sollte man den MMC
Teil deaktivieren. Bei mir tritt kein Fehler auf.

Mfg uli

Autor: Uwe Nagel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

den Teil muss ich ja deaktivieren, sonst wirft er mir auf RS232 immer
'keine MMC/SD-Karte gefunden' oder so ähnlich aus.
Ich vermute, dass es mit dem genauen Timing der Zugriffe zusammenhängt,
eventuell liegt es auch am Router. Habe gerade kein gekreuztes
Netzwerkkabel zur Hand, sonst würde ich mal eine direkte Verbindung
versuchen. Vielleicht morgen...
Erstmal werde ich mich mit Ethereal (echt interessantes Programm, wenn
man es versteht) und den diversen Protokollen beschäftigen.

Uwe

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab mal mein bastelzimmer nach ner alten isa netzwerkkarte durchsucht
und nix gefunden sniff

Das projekt find ich genial und will mir das auch nachbasteln !

möchte das dann auch noch mit nem vs1001k erweitern und dann als
streaming server verwenden können,
evtl. nen tv ausgang um die files auch schön anzuzeigen wär dann auch
ganz witzig :-)

mal schauen

hätte noch jemand eine (oder auch mehr) alte netzwerkkarte rumfliegen
für mich?

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @Uwe,

Ohne MMC/SD - Karte würde ich mal die Version 1.24 probieren! Ich
glaube nicht das es am Router liegt. Hast du die Orginalseite
verändert? Oder lauft es mit deiner Seite nicht.

Mfg Ulrich

Autor: Elektrikser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe deine V1.33 probiert. O.K. ich hatte [b]keine[/b]
MMC/SD-Karte...
Aber der Server reagierte sehr interessant darauf:
er brachte erstmal dreimal MMC/SD-Karte nicht gefunden und danach die
Meldung, das er eine gefunden hätte. Ja, wie jetzt? Das hat er bei mir
wiederholt gemacht. Sehr selten, dass er bei der Meldung "Keine
MMC/SD-Karte gefunden" blieb.
Der Bildaufbau der Webseite wahr natürlich (er suchte ja immer wieder
die MMC/SD...) nicht möglich. Die V1.24 hat sofort geklappt.
Danke Ulrich!

@Uli
Warum hast du eigentlich das Ein- und Ausschalten von Ports wieder
herausgenommen? Weiter oben im Thread, waren ja Versionen, in denen der
PB0 geschaltet wurde. Es würde mich sehr interessieren. Bin leider in
HTML ein frisch geschlüpftes Küken...
Hast du da noch ein Beispiel, wie das geht?

Gruß Gerd G.

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
falls jemand ein Programm zum beschreiben des EEPROM sucht kann das
unter ftp://152.104.125.40/cn/nic/rtl8019as/rset-8019(330).zip finden

Gruß Tobias

Autor: geloescht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieser Beitrag wurde auf Wunsch des Autors geloescht.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@guido
nö nu mußt nur das (330).zip mit aufnehmen
iss also nix *.exe :-)

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Uwe Nagel schrieb am 23.01.2005 11:56 :
> Eigentlich könnte ich so was wie einen minimal-Web*Browser*
> gebrauchen. Wozu? Ich möchte einfach ein PHP-Script auf
> einem anderen Server aufrufen und ihm dabei einige Werte
> übergeben, die er in einer Datenbank ablegen soll und
> dann grafisch aufbereitet im lokalen oder auch globalen
> Netz anbietet.

Du möchtest, dass der AVR zyklisch eine URL aufruft, und dabei
Parameter an dein php script übergibt? Warum nicht anders herum? Ich
hab das weiter oben schon mal angedeutet:
http://www.mikrocontroller.net/forum/read-4-87092....

Der AVR stellt dann gar kein html bereit, sondern nur eine einfache
(aber problemlos erweiterbare) XML-Datei. Die kann das php script
zyklisch (via cron job oder auch bei jedem seitenaufruf) abrufen und
die Daten weiterverarbeiten. Auf diese Weise könntest du auch jedem
Besucher die brandaktuellen Daten präsentieren. Und die Parameter wären
nicht auf URL Länge begrenzt. Sag Bescheid wenn du es so oder so
umgesetzt hast.

Gruß,
Jochen

Autor: Uwe Nagel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Uli

ok, werde mir die V1.24 runterladen und heute abend ausprobieren. Ich
habe deine Originalseite verwendet und nur die darin enthaltene IP auf
meine Verhältnise angepasst.
Wie schon gesagt, es fehlt infach der zweite teil der HTML-Seite.
Ethereal sieht dieses Datenpaket zumindest auf der PC-Seite des Switchs
nicht, deshalb möchte ich eine Direktverbindung probieren.

@Jochen

auch eine Idee! Ich werde mir beide Versionen überlegen.

Uwe

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm irgendwie bekomm ich jezt keine leds mehr am switch zum leuchten. Die
 led an der karte leuchtet immer, egal ob ein kabekl dran ist oder
nicht. Die karte gibt auch brav 34 zurueck.

In dem konfig programm habe ich als medium 10 base-t no link layer
detection angemacht.

weis jemand rat?

Gruß Tobias

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Uli:
welches programm benuzt denn du?

Autor: CDG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michael

Ich habe noch passende Netzwerkkarten.

Schicke bitte eine Mail vieviel du brauchst.

MfG cdg

Autor: Uwe Nagel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Tobias

meldet sich die Karte überhaupt?
34 ist kein Beweis, das zeigte mein Aufbau sogar ohne Karte.
Erst Pullup-Widerstände an PortA habe ohne Karte 255 gebracht.
Häng doch mal einen Pullup an PortA Bit 7, dann kommt ohne Karte
128+34=162.

Uwe

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,
das mit den 34 stimmt schon., hab den sorurce so veraendert, dass jezt
vorher noch 255 ausgegeben wird damit spaeter nicht wieder 34
eingelesen wird.

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vorallem interessiert es mich gerade, ob es bei einer konfigurierten
karte normal ist, das die link led immer an ist ...

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Natürlich benutze ich die Version 1.33! Est ist auch richtig das erst
mit Pullup Widerständen die 34 Aussgagefähig ist. Das Gleiche gilt für
die MMC/SD Karte! Wer nun jetzt den Source Code 1.33 ohne mmc benutzt
muß use_mmc auf 0 setzen.

mfg uli

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
wenn ich pin 65 auf high lege funktioniert alles(mit eingesetztem
eeprom) obwohl ich das eeprom im pc konfiguriert hatte. Hat dafuer
jemand eine erklaerung?

Autor: Michael R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moinsen...

Ich hab mir das ganze grade mal nachgebaut... Netzwerkkarte is ne alte
DM9008F (NE2000 kompatibel) hab die dann auf IO300 eingestellt und
IRQ10 (9 wollte er net) hab dann das kabel zum INT0 aber auch an IRQ10
gelötet und net an IRQ9... ;)

Als Basis dient mir im mom das rn-control1.4, und nun kommt mein
Problem... Es funzt alles klasse - bis auf die tatsache, das ich keine
antwort beim ping oder beim webseiten aufruf bekomme - hab v1.33 von
Uli grade in benutzung... ausgabe übers Terminal ist:

Init Network Card: ......... Init Ready!
Card Init: 34

My Mac: 1e.a.2b.2b.2d.4d
My IP : 192.168.1.101

hört sich also gut an und 192.168.1.101 is auch in meinem Netzwerk
richtig und auch noch nicht vergeben...

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine mac adresse ist an der zweiten stelle nicht 2stellig. ändere das
doch einfach mal.
bekommst du am server denn überhaupt daten, soll heissen wird die
entsprechende empfangsroutine den aufgerufen?

Autor: Michael R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups - hatte die einfach so gelassen, wie sie eh im source stand...

Habs nu geändert, jetzt kommt:
Init Network Card: ......... Init Ready!
Card Init: 34

My Mac: 1e.1f.2b.2c.2d.4d
My IP : 192.168.1.101

aber ping geht noch immer nicht - und mehr sagt er auch im terminal
net...

Autor: Michael R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so, das mit der empfangroutine hatte ich eben glatt überlesen - ups...
%)

Ähm, nein... kommt nicht... habe jetzt in der interrupt4.c in zeile 36
das printf("interrupt\n"); reingenommen - und es sagt nie etwas von
einem interrupt im terminal... Heißt also, mein interrupt funzt net -
frage ist jetzt nur noch warum nicht? Windows98 meinte ja, ich hätte
IRQ10 und von da geht jetzt ja auch die Strippe nach Portd.2 (int0 am
m32)...

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
so hier mal ein kleines Video davon was ich bis jezt damit gemchat habe
:)
http://kudd-radio.com/~schneider/Film.wmv

Gruß Tobias

Autor: Uwe Nagel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michael
was Windows meint muss nicht unbedingt stimmen...
Probier mal die anderen Interrupt-Leitungen (insbesondere 9) aus.
Ich wollte auf meiner RTL8019 Karte unter DOS 9 einstellen, ging aber
nicht, da 9 schon irgendwas anderes belegt hatte. Hab ich 5
eingestellt, am Controller kam trotzdem 9...
Hat wohl was mit Plug and Pray zu tun.

Uwe

Autor: Michael R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich hab die Leitung von IRQ10 jetzt mal auf alle anderen verlegt
und geguckt... aber es ändert sich net wirklich was... auf manchen
bekomme ich endlos viele Interupts auf anderen garkeine oder er sagt
einfach nur "Overrun" aber das irgendwie zufällig... XD

Was ich sehr praktisch fänd, währe, wenn ich einfach den Eeprom
abmachen könnte - nur leider werd ich aus dem Datenblatt nicht schlau,
was dann standard is, wenn der net da is... weil der Eeprom is nur in
nen sockel gesteckt und von daher schön easy raus und reinsteckbar...
Aber vielleicht kann ja jemand von euch mir mit dem Datenblatt
weiterhelfen:
http://modding.mr-action.de/projects/porsche_cayen...

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es wird zwar auf den picowebserver verwiesen, sieht aber recht ähnlich
aus:
http://www.heise.de/ct/machflott/projekte/55848

Autor: Jon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich beschäftige mich in letzter Zeit intensiv mit dem Thema dieses
Threads und hänge vor allem in Sachen Ne2000 Programmierung den
"Vorgaben" von Ulrich hinterher.

Kann jemand eine gute Referenz empfehlen, wo die Ne2000 (oder AS8019)
spezifiziert ist? Ich habe auf die "Schnelle" nichts sinnvolles
finden können.

Gruß, Jon

Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das datenblatt, welches uli empfohlen hat, ist das einzige an specs was
ich gefunden hab.

ich hab mich dann auf den linux kernel treiber verlassen:

/usr/src/linux/drivers/net/ne.c
oder
/usr/src/linux/drivers/net/8390.*

nett anotiert und ein paar tricks kann man sich da auch abschauen

ansonsten empfehle ich noch:
- interrupts aus und karte regelmäßig auf neue packete abchecken
- mac auf 00:00:xx:xx:xx:xx setzen. im oberen bereich liegen irgendwo
die multicast adressen. das kann probleme mit schlauen switches/routern
geben.

Autor: hebel23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michael R.:

also bei gezogenem EEPROM hat der RTL8019AS die Defaulteinstellungen:
-IRQ enable
-IRQ 2/9 (bedeutet INT0 am Chip, also PIN 4)
-I/O Baseadresse 0x300

Steht eigentlich alles im Datenblatt.
Zum Debuggen ist es sicher nützlich auch die TX und RX - LED´s
anzuschließen, damit man sieht ob physikalisch überhaupt irgendwas im
NIC ankommt.

Gruß Andreas

Autor: geloescht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieser Beitrag wurde auf Wunsch des Autors geloescht.

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @hebel123,

Mir ist es schon passiert das bei gezogenen EEprom die Werte laut
Datenbatt nicht stimmten, wieso? Weil ein Pullup oder Pulldown
Widerstand an der Datenleitung dran war :-)
Aber sonst stimmt das Datenblatt ohne EEprom haben Realtekkarten mit
rtl8019 IRQ9 IO 300 und MAC 00:00:00:00:00:00
Allerdings sollte man mit einer eigenen MAC aufpassen! Am besten die
alte von der Netzwerkkarte aufschreiben.
Ich hatte als mac mein Nachnamen benutzt (hexcodiert) und dieser
funktionierte nicht, obwohl die Werte im erlaubten bereich waren.
Ausserdem sollte die MAC im Netzwerk nicht doppelt vergeben sein, das
sollte aber ziemlich schwer sein wer eine Zufallszahl benutzt.
Ansonsten empfehle ich demjenigen Lotto zu spielen. Achso das Internet
arbeitet mit IP Adressen und nicht mit MAC Adressen nur eine anmerkung
zum Schluß.

Mfg Ulrich

Autor: hebel23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Uli,
aber werden die IP-Adressen nicht nur benutzt um via ARP die
MAC-Adresse rauszubekommen um anschließend über diese eine Verbindung
herzustellen?

@Guido:
Genau genommen stehen im EEPROM sogar die kompletten Config 1-4
Register, die MAC-Adresse, die Product-ID, die Vendor-ID, Seriennummer
sowie ein Haufen Plug and Pray - Info´s...

Gruß Andreas

Autor: geloescht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieser Beitrag wurde auf Wunsch des Autors geloescht.

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Uli hab einen fehler in Read_Ethernet_Frame() in rtl8019.c gefunden.
Ziemlich gegen ende der funktion heist es
buffer[tmp1 + 1] = 0;
damit schreibst du aber hinter den buffer. Bei großen packeten wird
dann bufferlen ueberschrieben und der mc hanegt sich auf.
es muss heisen
buffer[tmp1] = 0;

Wozu diese null ueberhaupt?

Gruß Tobias

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja, was sidn eigendlich die aenderungen von 1.33 zu 1.34 ?

Autor: Uwe Nagel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe mich nach zwei Wochen wieder mal mit diesem schönen Programm
beschäftigt. In der Zwischenzeit eine neue Netzwerkarte besorgt aber
immer noch Rätsel.
Das Originalprogramm in Version 1.34 läuft jetzt bei mir auf einem
mega32! Liegt aber nicht an der neuen Version, die alten gehen auch,
sondern daran das ich den Quarztakt reduziert habe!
Mit verschiedenen Quarzen zwischen 4 und 12 MHz läuft das Programm
stabil, mit 14.318 MHz nicht.
Jetzt habe ich in rtl8019.c überall, wo zwei nop's stehen 5 nop's
hingeschrieben, nun scheint es auch mit 14.318MHz zu laufen, jedoch
nicht mit 16MHz, da halfen auch zwei weitere nop's nicht.
Desweiteren verbesserte sich die Stabilität (bei 14MHz und zwei
nop's), wenn ich in die interrupt4.c ganz vorne ein
  printf("interrupt %d",ReadRTL(ISR));
einfüge (auch ohne den ReadRTL bringt es was), also hier ein wenig Zeit
verschwende.
Hier zeigt sich auch, dass 'interrupt 0' angezeigt wird, also ein
Interrupt ausgelöst wird, aber der RTL keine Ursache nennt!
Dieser Effekt verschwindet auch nicht ganz, wenn man den Interrupt nur
auf steigender Flanke auslöst, also in main.h schreibt:
#if defined (_AVR_ATmega32_)
  #define Networkcard_INT_Set()  MCUCR=0x03;
#endif
Warum eigentlich auf beiden Flanken? Das erzeugt doch nur eine
zusätzlichen Interrupt nach den eigentlichen, nämlich wenn der RTL
seine Interruptleitung wieder auf Null setzt. Letzteres führt
unweigerlich zur 'interrupt 0'-Meldung...
Kann es sein, dass der RTL hin und wieder einen Waitstate in seine
Zugriffe einlegen möchte?

Uwe

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Uwe

Hast du bei deinem Mega32 das CLKOPT Fuse gesetzt?

Volker

Autor: Elektrikser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnten wir nicht das Programm mal besser beschreiben? Ulrich hatte da
zwar was vor, aber da geht anscheinend nix mehr weiter...

Gruß Elektrikser

Autor: Jon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Rahmen eines Uni-Projekts haben wir einen TCP/IP Stack implementiert,
bzw. sind noch dabei, und werden das in Kürze hier veröffentlichen (Wenn
die Dokumentation vervollständigt ist). Lediglich auf der
Hardwareschicht, die wir quasi von Ulrich abgekupfert haben, hängts
manchmal ein wenig, auch weil wir noch keine ordentliche Dokumentation
dazu gefunden haben und keine Zeit hatten das detailliert zu
analysieren. (Hat da jemand Ahnung?)

Es muss also nicht unbedingt eine Initiative zum Neuschreiben gegründet
werden, da gibts evt. schon was :-) Wiegesagt... in Kürze mehr dazu an
dieser Stelle.

Autor: Elektrikser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich wäre für jede Info dankbar, bzw. würde mich gerne beteiligen. Habe
da noch Probleme, alle Einzelheiten zu verstehen. Aber Rom wurde auch
nicht an einem Tage erschaffen...

Autor: hebel23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

ich verfolge schon seit längerem sehr interessiert diesen Thread. Ich
habe mir anhand des ulrichschen Codes, Ethernut und easyWEB und anderen
Quellen meinen eigenen TCP/IP-Stack zusammengebaut.
Beim näheren Studieren des TCP/IP-Standard´s bin ich nun auf einige
Ungereimtheiten gestoßen. Bei TCP/IP-Verbindungen geht es ja um eine
gesicherte Verbindung mit Rückkanal, Bestätigung etc.
Dazu ist:

1.Verbindungsaufbau
2.Übertragung
3.Verbindungsabbau

vorgesehen.
Das Problem ist, dass das irgendwie jeder anders zu machen scheint.
Es fängt schon bei der Definition des Socket-Status an (Socket_Close
(0), Socket_Open(1) etc.)
Ich habe im Netz mehrere verschiedene Kombinationen von Zahlenwerten
und Statusdefinitionen gefunden, was früher oder später schief gehen
muss.
Laut RFC793 scheint das Folgende korrekt zu sein:

// TCP Status
#define SOCKSTAT_CLOSED      0 // Verbindung getrennt
#define SOCKSTAT_LISTEN       1 // Warten auf TCP-Verbindungssetup
#define SOCKSTAT_SETSYNC     2 // Veränderung der Verbindung gesendet
#define SOCKSTAT_GETSYNC     3 // Veränderung der Verbindung empfangen
#define SOCKSTAT_ESTABLISHED 4 // Verbindung besteht
#define SOCKSTAT_CLOSEWAIT   5 // Auf Verbindungsabbau warten
#define SOCKSTAT_FINWAIT1    6 // Warten auf Abbruchbestätigung
#define SOCKSTAT_CLOSING     7 // Schließen der Verbindung
#define SOCKSTAT_LASTACK     8 // Letzte Bestätigung
#define SOCKSTAT_FINWAIT2    9 // Warten auf Abbruchbestätigung
#define SOCKSTAT_TIMEWAIT   10 // Warten

// TCP Flags
#define  FIN_FLAG 0x01 // Datenübertragung wird beendet (finish)
#define  SYN_FLAG 0x02 // Verbindung aufbauen (synchronize)
#define  RST_FLAG 0x04 // Verbindung neu initialisieren (reset)
#define  PSH_FLAG 0x08 // Datenübergabe an Anwendung (push)
#define  ACK_FLAG 0x10 // Datenübertragung bestätigen (acknowledged)

Mir ist bei Ulrich´s Code aufgefallen, dass z.B. nie der Status
Socket_Established(4) erreicht wird und daher eigentlich nie eine
"richtige" TCP/IP-Verbindung besteht.
Beim Verbindungsabbau, also wenn der "Auflegende" das FIN-Flag setzt,
wird hier die Verbindung nicht geordnet abgebaut (FINWAIT1 und
FINWAIT2), sondern per Reset-Flag hart abgebrochen. Das sollte IMHO nur
bei einem schweren Fehler (keine Antwort über Timeout etc.) gemacht
werden. Sicherlich geht der TCP/IP-Standard damit relativ tolerant um,
so dass Daten ausgetauscht werden können aber so 100%ig korrekt scheint
mir das nicht zu sein. Was denkt Ihr darüber?

Gruß Andreas

Autor: Jon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andreas,

es spielt keine Rolle, mit welchen Zahlenwerten die Socket-Status
kodiert werden. Diese Zahlen sind sowieso intern und werden zwischen
verschiedenen Stacks ja nicht ausgetauscht. Wichtig ist lediglich, dass
die TCP Flags identisch sind, aber das sollte nun wirklich überall so
sein.

Ulrichs Stack macht kein echtes TCP. Er macht gerademal genug, um TCP
Verbindungen im Idealfall (keine Retransmissions, etc.) laufen zu
lassen. Das ist auf dem AVR insofern praktikabel, weil dort so wenig
RAM vorhanden ist, aber es geht natürlich besser ;-)

Wir sollten aber einen separaten Thread aufmachen glaube ich, wenn wir
die Interna von TCP diskutieren wollen.