Forum: Mikrocontroller und Digitale Elektronik winziger Webserver mit enc28j60+mega32


von Dirk (Gast)


Lesenswert?

@Simon...

Läuft.
Bis auf das kleine Problem mit MS-IE, dass ich in meiner letzen Mail
schon geschrieben habe.

Danke nochmals...


Dirk

von Ssss S. (sssssss)


Lesenswert?

Hi!

Evtl für den einen oder anderen auch interessant,
Handyblitzlicht als Scheinwerfer für die Webcam:
http://www.mikrocontroller.net/forum/read-1-331347.html#new

Bye, Simon

von Michael R. (rubi)


Lesenswert?

Hallo Simon

Das ist eine sehr feine Sache!
Die Idee hatte ich auch schon.

Von Linear gibt es feine Treiber dafür,
da braucht man außer den Leds kaum mehr Komponenten.
Die bauen die ICs für Handy Cams.
Außerdem erkennt man sofort das jemand online ist.
Löst die Software den Blitz automatisch aus?

Mit IR Leds würde man nicht einmal geblendet,
dafür ist wieder nichts mit der online Erkennung.

LG
Michael

von Ssss S. (sssssss)


Lesenswert?

Die Software wird die LEDs kurz einschalten,
6previewpics machen (nötig für helligkeitsabgleich),
dann das bild schiessen und die LEDs ausschalten.
Dann kommt der Bildtransfer. Dh die LEDs sind nur ganz kurz an ;)

IR geht nicht, farb cmos sensoren haben IR Sperrfilter drin (sonst
würden zb Bäume sehr komisch aussehen).

Bye, Simon

von Andreas Dörr (ADoerr) (Gast)


Lesenswert?

>IR geht nicht, farb cmos sensoren haben IR Sperrfilter drin
>(sonst würden zb Bäume sehr komisch aussehen).

Oder der c't-April-Scherz würde tatsächlich funktionieren ;)

von Marco S. (masterof)


Lesenswert?

ne letztes Jahr war es mit dem dikitalen Fernsehn aufem Stromkabel wo
man mit hilfe eines Netzwerkkabe wo man ein impulse mit einer von
frequenz 80Mhz drauf geben msute und dann bei ca 100 Mhz hat man dann
die Vidoes empfangen. Gabe es ein Programm das solte das alles machen.
das einzige was es macht war auf der Platte videos zusuchen und die
wiedergeben.
den April schertz hatt ich schnell gefunden ein mal die ct auf
geschlagen und schon ware ich bei dem Aprilschertz.

von Hr V. (hr_vorragend)


Lesenswert?

Ich moechte den Webserver jetzt direkt mit 3,6V betrieben. Reicht es aus
wenn ich die 4 Kontakte der RJ45 Buchse anhebe und IN und OUT from LM317
kurzschliesse um diesen durch das Aufladen von C13 nicht zu zerstoeren?


Gruss

H:V


btw. Wie siehts mit der Software aus? Gibts schon ein release Datum?
dreangel ;)

von Nik Bamert (Gast)


Lesenswert?

Hi, ich hätte kurz mal eine Frage zu Magjacks, wenn mir hier dazu jemand
eine Antwort geben könnte wäre das natürlich super.. :-)

Ich bin mir gerade dabei eine Schaltung mit dem ENC aufzubauen, habe
allerdings auf der Netzwerkseite noch einige Probleme. Das Datenblatt
des ENC gibt ja vor, den Netwerkseitigen Mittelabgriff des TX Teils
über
1000pF nach GND zu verbinden. Nun ist in meinem Magjack (SI-40140) aber
auch der Mittelabgriff des RX Teils über diesen C' schon mit GND, bzw
pin 8 verbunden. Nun - was tue ich da? eifach dennoch zu GND verbinden,
oder besser offen lassen(?) ...

Gruss
Nik

von Nik Bamert (Gast)


Lesenswert?

Hat sich geklärt, ich kann meinen Server nun auch schon pingen :-)

von Ssss S. (sssssss)


Lesenswert?

Hi!

Soooo es gibt wieder nen neues Hexfile:
http://avr.auctionant.de/avrETH1/firmware/avrETH1_testing_firmware_build1035_080406.hex

NEU:
*** build1013 ***
- httpd "add pgm data" rewrite (schachteln möglich)
- httpd bug for /fs/filename fixed
- tcp close routine enhanced (seqnum calc!)
- nic&mca25: buffer 600->900 --> faster!
- filesystem.c: fixed file not clean deleted bug!
- mpf10 led light fade in/out routines (not used)

*** build1034 ***
- http upload detects filename & stores file on dflash
- /fs/ls generates a clickable list (<a h ref=....)
- fixed dataflash overwrite bug
- mpf10 can be connected to PORTD7 (led light during webcam pic grab)
- first temp readout already during logger_init()

Bitte bei dem release beachten:
- ich hab am tcp stack geschraubt, evtl gibts wieder probleme unter
windows (conn werden nicht korrekt geschlossen). muss ich noch testen
- http upload: nur unter firefox(linux) getestet! ist sehr
provisorisch. geht aber :)
- beim http upload aufpassen dass die files nicht zu gross sind, auf
dem dataflash sind ja nur ~240KByte platz ;)
- dataflash access dauert aufgrund debug messages relativ lang
- nur html/jpg dateien werden korrekt an den browser zurückgeliefert
(hab nur content-type jpg+html aktiv)
- jpgs müssen .jpg benannt sein (kleinschreiben!)

-> alles noch seeehr beta!

Jetzt habe ich eigentlich alles soweit drin was ich haben wollte :)
Ich werde den Sonntag nutzen um das ganze provisorisch aufzuräumen
und dann hoffentlich einen halbwegs vorzeigbaren sourcecode haben g

Gruss,
Simon

von Michael R. (rubi)


Lesenswert?

Hallo Simon

Gratuliere!

LG
Michael

von Ssss S. (sssssss)


Lesenswert?

so, bin ein stück vorangekommen. der großteil ist halbwegs aufgeräumt
:)
Ich muss noch bissl was tun, sollte aber nicht mehr allzulange dauern.

http://avr.auctionant.de/avrETH1/firmware/avrETH1_build1077_cleanup.hex

CHANGELOG:
*** build1035 ***
- first code cleanup & added comments
- added dataflash content types (-> now detects jpg,png,bmp,gif,html)
- file extension is always converted to lowercase !
- moved html/ctype/image stuff to httpd_data.c/h

*** build 1068 ***
- first source cleanup finished
- fixed missing last buffer bug when uploading per http post

*** build 1077 ***
- moved /fs/ls inside main html template -> file list can be added by
$$L*

Würde mich über feedback freuen ob der Code bei euch läuft (speziell
http upload)

Bye, Simon

von Dirk (Gast)


Lesenswert?

Hallo Simon...

Machst Du eigentlich auch noch etwas anderes ausser Firmware für den
Weberver ertellen ??? ;-)

Das gibts nirgendwo anders.
Fast jeden Tag ne neue Firmware ggg

Was war los am Do ?
Hab mir auf der Intermodellbau noch ein paar billige Servos für die
Webcam gekauft (4€ / Stück)
Wann kommt denn die Servo Unterstützung ??? ;-)

Schönen Rest des Wochenendes

Dirk

von Ssss S. (sssssss)


Lesenswert?

Hi!

g
Ach mist, hätte dir bescheidsagen sollen am Do.
War nur ne Stunde auf der Intermodellbau/Hobbytronic.
Bzw wollte ja nur zur Hobbytronic, da laufen aber nur abzocker und
Gangster rum g
Preise weit jenseits von ebay (Datenkabel 15 Eur :-X) und teilweise
Städe wo man nichtmal erkennenkonnte wie die Firma heisst
(waren wohl ein paar Studenten die aus Hongkong SD Karten etc
eingekauft hatten)
Und dann noch der Eintrittspreis 8 Eur (Studentenrabatt!!!)

Servounterstützung:
Warte, gib mir 5 Minuten ..
scherz ne hab ichnoch nichts für gecodet...
Heute komme ich wohl auch nicht mehr zu allzuviel, muss noch diversen
anderen Kram machen
und vorallem endlich mal die Webcam im Hummelnistkasten
installieren...
Sonst zieht nachher eine ein bevor ich die cam drinhab (bzw evtl wohnt
schon eine drin :-X)

Bye, Simon

von Nik Bamert (Gast)


Lesenswert?

Hi!

Ich bin gerade dabei meinen Stack selbst zu schreiben, hin und wider
habe ich dabei trotz ethereal unterstützung Probleme - nun frage ich
mich, soll ich einen neuen Thread aufmachen wo man allgemein seine
Fragen dazu posten kann(ich bin sicherlich nicht der einzige der sowas
proggt), oder soll ich hier fragen?.. ;-)

Nik

von Ssss S. (sssssss)


Lesenswert?

besser nen eigenen thread ;)

von Nik Bamert (Gast)


Lesenswert?

okay, ich hab mich eben nur gerade gefragt, ob es denn überhaupt viele
andere ausser dir hier gibt, die noch Ahnung von dem haben(evt kannst
ja dann nur du mir antworten :-X)

mfg, Nik

von Marco S. (masterof)


Lesenswert?

Die ganze Hobbytronic war zum großen Teil ein Schampelmarkt.
Da ist die in Stuttgart viel besser.
Eins war gut in Dortmund es gab ausreichent Parkplätze nicht wie in
Stuttgart.

von André K. (freakazoid)


Lesenswert?

Wieviel Hallen waren es denn diesmal? Vor ein paar Jahren war das noch
echt geil. Mittlerweile immer weniger Hallen mit immer mehr
Spiele-/Druckerkrams. 10000 Refillsets. Das kotzt echt an.

Grüße, Freakazoid

von Ssss S. (sssssss)


Lesenswert?

War nur noch eine (oder ?)
Davon ein großer Teil dieser alberne Live-Casemodder Stand und diese
Riesenstände wo irgendwelche Kiddies am zocken waren.

Refillsets hab ich irgendwie keines gesehen dieses Jahr. Komisch
eigentlich g
Aber dafür einige "bezahl 2 Kabel, nimm 3 Kabel mit" Stände
mit preisen wo man eigentlich "mindestens 8 Kabel für 2 bezahlen"
erwarten würde (10m Netzwerkkabel -> 12 Euro / reichelt: 2,99)

Und so wars durchgehend :-\

Und dann auch oft "ohne Garantie" aber zum Preis von mit Garantie
::)

Vor 4 Jahren oder so war die Hobbytronic echt noch einen Besuch wert.
Aber seitdem sind die Preise stetig angehoben worden (Eintritt+Ware)
und immer weniger Interessante Stände sind da.

Bye, Simon

von Marco S. (masterof)


Lesenswert?

die Nachfüllset waren auch da.
die Hobbytronic war 1 große Halle.
Da ist die in Stuttgart viel größer 7 Hallen ca gleiche Größe.

von André K. (freakazoid)


Lesenswert?

Echt? Wie sieht es mit Technikzeugs in Stuttgart aus? In Do gibts nur
noch Computer,Drucker,Spiele,Modding,CD-Hüllen,Kabel, ... und bestimmt
das große C. Immer wieder lächerlich die Schlange davor ;-)

BTW: Hobbytronic-Thread?

von Dirk (Gast)


Lesenswert?

Mal zurück zum eigentlichen Thread...

Hallo Simon.

Hab die neue firmware (build 1077) eben mal eingespielt.
Leider tritt das Problem mit den Verbindungen (wie im Posting vom
04.04. 20:32 beschrieben) wieder auf.
Diesmal allerdings nur mit Mozilla.
verbindungen werden wieder nicht beendet.
Des weiteren funktioniert wohl der upload noch nicht richtig. (oder ich
habs nicht verstanden ;-)
Wenn ich ein File hochlade (mit Anfrage senden)und dann auf filelist
gehe, wird mir das File nicht angezeigt :-(

Dirk

von Michael R. (rubi)


Lesenswert?

Hallo Simon

Leider kann ich deinen Code im Moment noch nicht einspielen,
baue mir gerade einen neuen Programmer.


LG
Michael

von Ssss S. (sssssss)


Lesenswert?

Hi!

@Dirk:
Habe jetzt mal meinen Laptop rausgekramt (winxp) und getestet.
Sowohl im firefox als auch im ie wird die verbindung korrekt abgebaut.
Er lädt nicht länger etc... Was für ein windows hast du ?

Hast du eine möglichkeit mir mal ein aufrufen des webservers mit
ethereal (gibts auch für windows)
mitzuschneiden ?
Dann sehe ich direkt wo es hakt ;)

File upload:
Was passiert denn bei dir ? er lädt es hoch, dann zeigt er upload done
aber das file ist trotzdem nicht da ?
Da wäre interessant zu sehen was auf dem seriellen debugport los
ist...

Bye, Simon

von Dirk (Gast)


Lesenswert?

Hallo Simon...

habe WinXP Home Edition mit SP1
Ethereal hab ich nicht.
Nach dem File Upload kommt die Meldung: upload done
Wenn ich danach auf den Link File list klicke stehen immer noch nur die
2 Dateien temp8.int und upload.txt dort.

Dirk

von Ssss S. (sssssss)


Lesenswert?

hmm also ich bräcuhte entweder das was er auf dem seriellen debugport
sendet oder nen paketdump :-\

Guck mal in upload.txt rein, ist das evtl dein file ? Wenn er den
filename nicht aus dem post request extrahieren kann lädt er es als
upload.txt hoch.

bye, simon

von Dirk (Gast)


Lesenswert?

Hallo Simon...

Kleines Update:
upload funktioniert (allerdings bei mir nur unter Mozilla)
Mit IE das gleiche Problem wie oben beschrieben.
File List wird (nach upload mit Mozilla) aber auch im IE nun
angezeigt.
Allerdings wird der Content .jpg unter IE nicht aufgelöst.
Es erscheit das Fenster "Dateidownload".
Unter Mozilla wird jpg angezeigt.

Die hängenden Verbindungen sind erstmal verschwunden. (warum auch
immer)
Allerdings hab ich mit der Webcam unter Mozilla hin und wieder noch das
Problem, dass das Bild nur teilweise aufgebaut wird, dann erscheit unten
im Browser "Fertig" und die Verbindung wird geschlossen.

Dirk

von Dirk (Gast)


Lesenswert?

P.S.
Schau nochmal in Dein Logfile.
Dort findest Du evt. meine neue Adresse.
Vielleicht kannst Du Dich mit WinXP nochmal drauf connecten um das
ganze zu testen.
Aber bitte diesmal nur testen ! ;-)

Ach ja, wo ist eigentlich der Link zum Video ???

Dirk

von Ssss S. (sssssss)


Lesenswert?

jpg:
hab ich gerade auch gemerkt, schuld war ein conten-type: image/jpg
es muss aber image/jpEg heissen...

file upload:
muss ich mir im ie nochmal ansehen was der da macht

logfile: nacher, muss jetzt weg :-\

falls sich jetzt jemand fragt was dirk mit "Aber bitte diesmal nur
testen" meint:
ich hatte an einem Tag ein script gebastelt das alle 10 sekunden ein
Bild seiner webcam gegrabbt hat.
Damit hab ich ihm seine webcam total lahmgelegt g

Rausgekommen ist dann dieses Video:
http://video.google.com/videoplay?docid=2214203011728418871

Im original wars eindrucksvoller (640x480). Google hat da irgendwie
komisch komprimiert ;)

Bye, Simon

von Andreas Dörr (ADoerr) (Gast)


Lesenswert?

Hehe cool, das liebe Aprilwetter :). Über wieviele Stunden hast Du denn
gegrabbt?

von Ssss S. (sssssss)


Lesenswert?

War so 11-19 Uhr :)

von Michael R. (rubi)


Lesenswert?

Hallo Simon

Das ist toll, wahnsinn, super coole Idee!
Welche Software hast Du denn zum zusammenschneiden der Bilder
verwendet?


LG
Michael

von Andreas Dörr (ADoerr) (Gast)


Lesenswert?

Das geht z.B. mit VirtualDub recht einfach.

von Ssss S. (sssssss)


Lesenswert?

Einfach die jpgs in file100000.jpg bis file101334.jpg umbenannt und dann
kann man
das einfach in avidemux (linux) als video öffnen und als divx speichern
:)

Alternativ gehts mit mplayer -vo irgendwas (müsste ich nachgucken wie
der befehl genau hiess)

Bye, Simon

von Ssss S. (sssssss)


Lesenswert?

bitte mal alle mca25 user hier gucken (mein post wegen der rev2 cam)
http://www.mikrocontroller.net/forum/read-1-232801.html?reload=yes#333543

von Cruzador (Gast)


Lesenswert?

Hi, ich habe eine frage, was genau bewirkt dieses "Ding" (sorry) Ein
richtiger Server ? muss ich da was einbauen oder nur anschließen ? mfg
cruzador

von LOL (Gast)


Lesenswert?

Bau mal noch ORDENDLICH was rein.
Ist ja noch genug Platz.

von TheMason (Gast)


Lesenswert?

Hallo Simon,

erstmal : RESPEKT.
Ist echt ein geiles Projekt was du da machst. Interesse hätte ich auch,
wobei ich das ganze gerne mit einem MSP430 realisieren würde (da ich mit
den Teilen bis jetzt gearbeitet habe). Mit den AVRs hab ich noch nicht
soviel gemacht (obwohl dieses Projekt wahrscheinlich der beste Einstieg
wäre *hehehehe). Das ganze mit deiner Platine zu machen wäre insofern
schön als das man ja schon einige Leute hat die das Teil nachgebaut
haben und es bei denen läuft.

Insofern mal ne Frage : Wie teuer soll die Platine sein ? Ab wann wären
wieder welche da ? (du sagtest was davon das du erstmal die Software
aufräumen wolltest) Und, (jetzt muß ich auch mal quengeln *ggg) wann
gibt es die Sourcen, damit ich bestimmte anpassungen machen kann ?

Gruß
Rene

von [dws] D. (dws)


Lesenswert?

Hallo Simon,

machst du nochmal eine Sammelbestellung für Platinen?
kannst du den Schaltplan online stellen? Bin am überlegen, einen
Webserver mit einem PIC Prozessor aufzubauen, da ich mich im letzten
halben Jahr schon richtig an PICs gewöhnt habe ;)

gruss Matze

von Sirko (Gast)


Lesenswert?

Hallo Simon,

die Idee des "winzigen" Webserver find ich eigentlich ganz gut, aber
leider wirds damit ja auch etwas teurer.
Meine Fragen/ Vorschläge:
1. Kann man den Übertrager und die RJ45-Buchse usw. nicht von jeder
beliebigen Netzwerkkarte (2,90 bei Reichelt, Grabbelkiste) nehmen?
2. Würdest Du für ein LowCost-Variante deine Schaltung zur Verfügung
stellen? (Billigere Bauteile, keine teure Paltine ...)
3. Oder meinst Du, das lohnt sich nicht, und es kommen bald neue
Platinen?

Hintergrund: Ich hab so meine Probleme mit der Webcam-Software von Dir
für den Webserver von Holger Buss ....

Gruß
Sirko

von Michael R. (rubi)


Lesenswert?

Hallo

Bitte nicht weitersagen ist noch hoch geheim, aber Simon arbeitet
gerade schwer an einer abgespeckten Version.
Da kannst Du dann den Enc28j60 und die Übertrager einsparen,
da macht dann der Atmega die ganze Arbeit.

Es wird dann auch einen Soliidaritätszuschlag auf den Platinen Preis
geben , damit bedürftige eine umsonst bekommen können.

Eventuell wird es dann auch noch eine V3 geben bei der auch noch der
Atmeg eingespart wird. Das ist aber noch Zukunftsmusik.

LG
Michael

von Dirk (Gast)


Lesenswert?

Hallo Simon...

Was ist los ?
Ist das Projekt eingeschlafen ?
Gibt ja schon seit dem 09.04. keine neuere Firmware mehr... ;-)

Nee, mal im Ernst:

Hab ja nun (wenn auch nur im Mozilla) 2 Files auf meinen Webserver
geladen bekommen.
Werden auch angezeigt, und kann sie mir wieder downloaden.

Aber, wie bekomme ich die Files eigentlich wieder vom Webserver
entfernt ???

Ansonsten läuft Deine Software hervorragend (Bis auf die Sache mit dem
JPG Content Type im IE).
Läuft seit der letzten Firmwareeinspielung ohne Reset sauber durch.

Ach ja, schöne Osterfeiertage...


Dirk

von Sebastian Hodapp (Gast)


Lesenswert?

abo

von Ssss S. (sssssss)


Lesenswert?

Hi!

Ich hatte ein bissl viel an der Uni zu tun.
Ausserdem hat auch noch mein Laptop den Geist aufgegeben und der neu
bestellte ist immer noch nicht da (ich hasse eb*y powerseller grrrr)

Alle die eine Platine erhalten haben sollten eine
Osterüberaschung in ihrem Emailpostfach haben ;)
Wenn nicht bitte per email melden.

>Aber, wie bekomme ich die Files eigentlich wieder vom Webserver
>entfernt ???
Stimmt, da werde ich noch eine löschfunktion einbauen ;)

>Ansonsten läuft Deine Software hervorragend (Bis auf die Sache mit
dem
>JPG Content Type im IE).
Ist schon gefixt, sobald ich das file löschen drin hab gibts nen neues
hexfile :)

Bye, Simon

von Dirk (Gast)


Lesenswert?

Hallo Simon...

Was hat man denn als Student viel zu tun ? ;-)
Ich arbeite hier in Düsseldorf und komme auf dem Weg vom Parkhaus zu
meiner Arbeitsstelle jeden Tag am Landtag vorbei.

Das einzige was die Studenten hier tun, ist immer vorm Landtag zu
demonstrieren... (jetzt aber bloss schnell weg, bevor der Simon mich
schlägt) gggg

Freu mich schon auf neue Hex-File.
Wie schon geschrieben, läuft bisher ohne ein einziges Problem sauber
durch...

Aber nochmal ne andere Frage: Wirst Du die Temp-Messung über I2C
beibehalten ?
Hatte Dir ja schon mal geschrieben, dass meine Webcam über 10m Kabel
angebunden ist.
Daher wäre (zumindest für mich) die alte Lösung von J.Börke über
OneWire Schnittstelle wohl besser geeignet.
Ausserdem hätte ich dann noch ein Kabel frei für die Servoansteuerung.

Schöne Ostern...

Dirk

von Ssss S. (sssssss)


Lesenswert?

>Aber nochmal ne andere Frage: Wirst Du die Temp-Messung
>über I2C beibehalten ?
Das ganze nach onewire zu ändern/zu ergänzen dürfte überhaupt kein
Problem sein denke ich.
Am besten per define auswählbar oder so ;)
Ich habe aber keine onewire dinger hie rrumliegen, muss mir also
erstmal welche
kaufen bevor ich dafür code basteln kann ;)

BYe, Simon

von Dirk (Gast)


Lesenswert?

Hi Simon...

Hoffe, Du hast mir meine Sprüche über die Studis nicht übel genommen...
;-)

Könnte Dir nen DS18S20 zur Verfügung stellen.
Komme ja auch fast jeden Tag durch Deine Heimatstadt...

Dirk

von Ssss S. (sssssss)


Lesenswert?

>Hoffe, Du hast mir meine Sprüche über die Studis nicht übel
genommen...
Ne, keine Sorge g

Also wenn du den onewire über hast und einfach bei mir in den
Briefkasten werfen
würdest dann würde ich demnächst mal gucken das Ding zu unterstützen
;)
(Adresse hast du doch, oder ? Sonst siehe Impressum auf der avrETH
Website)

Bye, Simon

von Ssss S. (sssssss)


Angehängte Dateien:

Lesenswert?

Hi!

Es gibt mal wieder nen frisches hexfile :)

Neues kurz zusammengefasst:
- man kann files löschen
- man kann io pins per klick an/aus schalten (../site/io -> dort der
obere button ist die smd led (siehe anhang))
- bugfixes am httpd
- bissl den html kram aufgeräumt

echte Changelog:
*** build 1078 ***
- httpd_data.c: content type: jpg -> jpeg
- mca25.c: added workaround for rev2 cam (rev2 = KTY 105 017, rev1 =
KTY 105 016)

*** internal source version 1086 ***

*** build 1086 ***
- filesystem.c: fixed /fs/ls view
- httpd.c: added green/red button & io port control parser (port is not
set! just a demo!)

*** build 1094 ***
- httpd.c: removed if (pos<x) stuff from httpd $$ parser
- httpd.c: add support for io on/off
- port.c: implement port io functions
- httpd.c: removed /fs/f<fileid> support
- filesystem.c: added file remove link
- filesystem.c: fixed typo (..._HI & ..._HI in fs_delete_file + changed
flash->buf to buf->föash) -> del file should now work
- httpd.c: after upload show info inside main div

Bitte beachten:
- fast alle debug messages sind aus
- javascript kram nur mit firefox (linux) getestet
- beim benutzen der buttons von /site/io zeigt er immer
"transferring" an obwohl gar nix mehr gemacht wird (hängt irgendwie
mit dem javascript zusammen, irgendwelche ideen ?)

Und hier nun der Link:
http://avr.auctionant.de/avrETH1/firmware/avrETH1_build1094_newio.hex

Bye, Simon

von Christof Rieger (Gast)


Angehängte Dateien:

Lesenswert?

Ich bin verwirrt. Ich habe auf einen Standart initialisierten ENC von
Windows XP aus einen Ping gesendet. In der Anlage ist zu erkennen was
im ENC Speicher angekommen ist. Die MAC Adressen und die IP-Adressen
sind wunderbar zu erkennen. Nur die Strucktur hat nichts mit dem zu
tun, was ich hier über den Ping gelesen habe.
http://www.it-infothek.de/fhtw/semester_2/re_od_10.html
Im Header kann ich auch keine dem Standart entsprechende IP-Strucktur
erkennen. Hat da jemand eine Idee ?????

von André K. (freakazoid)


Lesenswert?

Da ist der Ethernet-Frame vor.

von André K. (freakazoid)


Lesenswert?

Zudem scheint es der ARP-Request von windows zu sein (Broadcast).
Ist Deine WinMac = 00:0a:e6:1a:72:42 (Elitegroup Mainboard g)?
Du weißt aber, daß vor jedem empfangenen Ethernet-Paket ein 6Byte
Status-Vektor kommt?

von Christof Rieger (Gast)


Lesenswert?

@André Kronfeldt,
Danke André das Passt ja alles auch wunderbar, Ether-Frame ist
erkennbar und OK, MAC ist OK, Win XP ist OK, Elitegroup ist OK. Aber
was nicht OK ist, die MAC des Senders Taucht 2 mal auf, zwischen
Quell-IP und Ziehl-IP liegen 6 x 00. Das hat alles nichts mit einem
Standart IPv4-Ping-Paket zu tuen wie ich es nach
http://www.it-infothek.de/fhtw/semester_2/re_od_10.html
erwartet hätte. Wo kann ich nachlesen wie der "Universal" Ping
struckturiert ist und welche Antwort er erwartet.

von André K. (freakazoid)


Lesenswert?

Es ist ein ARP-Request:

HardwareType: 0x0001
Protocol-Type: IP 0x0800
HardwareSize: 6
Protocol Size: 4
Opcode: Request (0x0001)
SenderMAC: 00:0a:e6:1a:72:42
SenderIP: 192.168.173.11
TargetMAC: 00:00:00:00:00:00
TargetIP: 192.168.173.250

=> Who has 192.168.173.250 tell 192.168.173.11
In Dein Reply kommt an die 6x 0x00 Deine MAC.
=> 192.168.173.250 is at xx:xx:xx:xx:xx:xx

Natürlich taucht die MAC des Senders im ARP-Header UND im
ETHERNET-Header auf.

Wie kommst Du immer auf IPv4? Dein Bild ist NICHT der Ping (ICMP über
IPv4), sondern ein aRP den Windows absetzt um das Ping auszuführen.
Eine MAC bleibt nicht sonderlich lange im ARP-Cache ;-)

Grüße, Freakazoid

von André K. (freakazoid)


Angehängte Dateien:

Lesenswert?

Hier mal Dein Paket in einem vernünftigen Editor ;-)

von Christof Rieger (Gast)


Lesenswert?

Vielen Dank für das Licht im Dunkel. Das sind meine ersten Versuche.
Ich wuste nicht, das vor dem eigentlichen Ping erst ein ARP kommt.
Wenn ich das nun Richtig verstanden habe, muss ich nun den APR mit
eingesetzert MAC und natürlich mit getauschtem Ziel und Quelle
zurücksenden. Daruf hin sendet XP erst den eigentliche Ping ?

von André K. (freakazoid)


Lesenswert?

Jo.
Das sieht ungefähr so aus:

XP: Ey Karte, mach mal Ping an 192.168.173.250
Karte: Okay. Wenn Du mir sagst welche MAC der hat? Ich kann nur
Ethernet. Bin halt Billigkarte ;-(
XP: Oki. ARP: Who has 192.168.173.250 tell 192.168.173.11
Rieger: 192.168.173.250 is at xx:xx:xx:xx:xx:xx
XP: Ey Karte. Mach mal Ping an 192.168.173.250 MAC xx:xx:xx:xx:xx:xx
Karte: Ping!
Rieger: Pong

g Dir fehlt erstmal der erste 'Rieger', also der ARP-Reply ;-)

Grüße & viel Erfolg, Freakazoid

von André K. (freakazoid)


Lesenswert?

BTW: ein ARP kommt nur, wenn Du an eine IP was schicken willst und
Windows die MAC braucht. NICHT vor jedem Ping. Der ARP-Cache behält die
MAC einige Sekunden lang bei. Um zu testen ob Dein Arp-Reply
funktioniert schick ein Ping.

Bei "No route to host" funktionert Dein ARP-Reply nicht.
Bei "Timeout sonstwas" kommt kein Ping-Reply (ICMP).

Ein 'arp -a' Zeigt Die auch den Arp-Cache an. Da sollte nach einem
Deiner Ping-Versuche sowas wie '192.168.173.250 <incomplete>'
stehen.
D.h. Windows hat ARP-Request für 192.168.173.250 gesendet, aber noch
keine Antwort erhalten.

Grüße, Freakazoid

von Christof Rieger (Gast)


Lesenswert?

Noch mal Danke, ich habe auch etwas brauchbares im Internet gefunden.
http://www.geocities.com/SiliconValley/Vista/8672/network/arp.html#A22

von Christof Rieger (Gast)


Angehängte Dateien:

Lesenswert?

Windows ignoriert mein ARP-Replay. Lt. ENC Statusvektor (ist auch mit
ausgegeben) hat er das Paket sauber übertragen können. Der ENC läuft
auf half duplex. Oben steht der WindowsARPrequest unten meine Antwort.
Danach hätte ich ein Ping von Windows erwartet, der schickt aber weiter
nur Requests.

von André K. (freakazoid)


Lesenswert?

Was von dem 2. Paket sendest Du? Alles? Auch das '0f' Anfang?

von Christof Rieger (Gast)


Lesenswert?

Ne 0F ist das INI-Byte für den ENC, so stehts zumindest im Datenblatt.
Darauf soll ich ja auch den ETXST zeigen lassen und der ETXND soll auf
das letze zu übertragende Byte zeigen! Oder ?

Schön von dir zu hören

Gruß Christof

von André K. (freakazoid)


Lesenswert?

öh? Woher kommt der Datenblock? Geht der so über's Netz, oder ist das
nur eine Vermutung von Dir?
Am Besten Du schneidest den Datenblock am Hub mit, oder unter Windows.
Das 0x0f darf nicht mit übertragen werden. Ansonsten scheint der Reply
okay zu sein (grob überflogen). Wo im Datenblatt steht das mit dem
INI-Byte?

Grüße, Freakazoid

von Christof Rieger (Gast)


Lesenswert?

André
bevor wir hier weiter machen, ist es glaube ich sinnvoll einen neun
Thread zu eröffnen. Das was wir hier Besprechen könnte auch für andere
die sich von Grund auf mit der Thematik beschäftigen wollen sehr
interesant sein. In welcher Rubrik wäre der Thread denn gut aufgehoben

von André K. (freakazoid)


Lesenswert?

Gefunden. Du meinst das 'PACKET CONTROL BYTE'. ja das stimmt. ETXST
und ETXND sollten damit korrekt sein. Wird das Paket denn gesendet?

von André K. (freakazoid)


Lesenswert?

Tja. gute Frage. Die Rubrik ist schon okay. Eigentlich ist das ja Simons
Thread. Insofern geb ich Dir Recht. Mach einen neuen auf. Problem ist
nur, daß da ebenfalls alle Themen den ENC betreffend einlaufen werden.
Aber das kann man dann nicht verhindern.
Gehen wir also mit gutem Beispiel voran ;-)

von Christof Rieger (Gast)


Lesenswert?

OK ich mach dann einen neuen auf. Schlimmstenfalls schieb unser Admin
ihn in eine andere Rubrik. Gib mir ne halbe Stunde.

von Christof Rieger (Gast)


Lesenswert?


von Sanic (Gast)


Lesenswert?

Super Projekt!

Allerdings interessiert mich warum du als Flash einen Atmel Dataflash
und keinen Baustein aus der "Serial Flash" Reihe genommen hast.
Vielen Dank für deine Antwort.

Grüße

von Ssss S. (sssssss)


Lesenswert?

Hi!

Weil es die dataflash Bausteine bei segor in SO8 gab :)
Ursprünglich wollte ich nur nen kleines i2c eeprom nehmen,
hab dann aber zufällig bei segor die dataflash dinger gesehen und
die passten sehr gut :)

Bye, Simon

von Ssss S. (sssssss)


Lesenswert?

Hi!

So, es gibt ein neues Hexfile :)

Neues kurz zusammengefasst:
* dataflash zugriff jetzt sehr viel schneller:
  - bei files <65KByte -> bis zu 35KByte/s
  - ab 65kbyte wirds bissl langsamer (15kbs) da die
    long arithmetrik ein bissl mehr rechenzeit braucht ;)
* fast alle debuginfos aus -> schneller
* ntpclient debug define bug gefixt

CHANGELOG:
*** build 1094 ***
- httpd.c: removed if (pos<x) stuff from httpd $$ parser
- httpd.c: add support for io on/off
- port.c: implement port io functions
- httpd.c: removed /fs/f<fileid> support
- filesystem.c: added file remove link
- filesystem.c: fixed typo (..._HI & ..._HI in fs_delete_file + changed
flash->buf to buf->flash) -> del file should now work
- httpd.c: after upload show info inside main div

*** build 1103 ***
- filesystem.c: speedup for dataflash read access: it does no longer
slow down more down the longer the file is
- filesystem.c: (use a pointer to next data byte)
- dataflash.c: use "read n bytes from buffer" -> speedup
- dataflash.c: dataflash read speed is 15-32 KByte/s 8with all debug
info off!) [0-65k -> fast, 65k-x slower because of long calc]
- ntp_client.c: fixed "nodebug->not time update" bug
- disabled nearly all debuginfo as default

download:
http://avr.auctionant.de/avrETH1/firmware/avrETH1_build1103_speedup.hex


Ausserdem habe ich jetzt mal Screenshots von allen Webseiten gemacht:
http://avr.auctionant.de/avrETH1/software_screenshots.html

Bye, Simon

von Andreas Dörr (ADoerr) (Gast)


Lesenswert?

Hm, ausgefallene Umsetzung eines NTP-Servers :P.

von Dirk (Gast)


Lesenswert?

Hallo Simon...

Hab die Beta 1103 im Web-Server.
Bin ich hier eigentlich der einzige, der die neuen Betas intalliert und
testet ?
Ist verdammt ruhig hier geworden.

Ach ja, läuft übrigens gut.

Einige Kleinigkeiten sind mir noch aufgefallen:
- Upload von Files mit meinem IE geht leider immer noch nicht.
 (Erscheinen dann nicht in der FileList)
- Es gibt anscheinend Probleme mit Filenamen >8 Zeichen.
  Wenn ich diese veruche in der Filelist anzuwählen und zu öffnen
ercheint eine Meldung: Seite nicht gefunden (HTTP 404 - Datei nicht
gefunden)im IE und im Mozilla
Auch ein remove dieser Files (erscheinen in der Filelist) ist nicht
möglich.
- Servofunktion läuft noch nicht richtig ;-)

Ansonsten aber meiner Meinung nach (z.B. beim Bildaufbau der Webcam)
schneller.

Dirk

von Ssss S. (sssssss)


Lesenswert?

>Bin ich hier eigentlich der einzige, der die neuen Betas
>intalliert und testet ?
g das hab ich mich auch schon gefragt ...
Ich glaub ich bau echt mal ne spywarefunktion ein
(ein nachladen von http://auctionant.de/spy.gif?avrethversion=1103 bei
jedem index aufruf) gg

>- Upload von Files mit meinem IE geht leider immer noch nicht.
> (Erscheinen dann nicht in der FileList)
ok da hab ich noch nicht dran gearbeitet ;)

>- Es gibt anscheinend Probleme mit Filenamen >8 Zeichen.
>  Wenn ich diese veruche in der Filelist anzuwählen und zu öffnen
>ercheint eine Meldung: Seite nicht gefunden (HTTP 404 - Datei nicht
>gefunden)im IE und im Mozilla
>Auch ein remove dieser Files (erscheinen in der Filelist) ist nicht
>möglich.
Ähh avrETH kürzt die Filenames auf 8.3 (also 8 zeichen fname+3
extension).
Wieso hast du welche mit >8 zeichen ?!
Könntest du mir mal deine dynip adresse zumailen ? dann kann ich mir
das mal anguggn :)

>- Servofunktion läuft noch nicht richtig ;-)
doch, musst nur /activate/hidden/wireless/servo/pos/controller/1
aufrufen g
Ne ist auch noch nicht drin ;)

@All:
weitere kommentare zur firmware sind willkommen ;)
Was ist eigentlich mit den anderen ? Habt ihr noch nicht gelötet oder
wieso gibts sowenig feedback ?

Bye, Simon

von Michael R. (rubi)


Lesenswert?

Hallo Simon

<<<
Was ist eigentlich mit den anderen ? Habt ihr noch nicht gelötet oder
wieso gibts sowenig feedback ?
>>>

Sorry, ich arbeite noch an dem Programmer, habe Angst das der Enc
wieder Wo gibt. Sind ja nicht gerade billig.
Ansonsten verfolge ich die Entwicklungen mit großer Aufmerksamkeit
und hoffe das ich auch bald Feedback geben kann.
Sorry das da bei mir so wenig weiter geht.

LG
Michael

von Ssss S. (sssssss)


Lesenswert?

Hi!

Achso :)

@Dirk: ich hab den fehler gefunden, das problem waren sonderzeichen
(leerzeichen zb) im filename.
Wird in der nächsten Version gefixt sein ;)
(ist ja fast wie bei DOS damals g)

Bis dahin bitte nur a-zA-Z0-9-_ im filename benutzen ;)

Bye, Simon

von Enrico (Gast)


Lesenswert?

Hallo,
ich möchte mit dem ENC28J60 zunächst alle Packete empfangen
und dann abhänig vom Inhalt entscheiden, ob es eins für mich war.
Ist das möglich, unabhängig von der ENC-MAC Adresse, also völlig
transparent, zu arbeiten? Oder akzeptiert er nur Broadcast und seine
Adresse? Danke!

Enrico

von Andreas Dörr (ADoerr) (Gast)


Lesenswert?

Solltest Du mit dem UCEN-Bit im ERXFCON Register steuern können. Siehe
Kapitel 8 im Datasheet (Seite 48).

von Dirk (Gast)


Lesenswert?

Hi Simon...

Das mit den Leerzeichen stimmt wirklich.
Waren welche im Filenamen drin.
Lassen ich nun auch nicht mehr vom Webserver löschen :-(

Bin schon auf die nächste Version gespannt.
Dann vielleicht schon mit Servounterstützung ? quängel
Du hast mal geschrieben, dass das ganze nur 2 Zeilen zusätzlichen Code
erfordert... ;-)
Kann ja dann nicht so schwierig sein ggg.

Ach ja, den DS18S20 zum Testen für die OneWire Temp-Messung schmeiss
ich Dir die Tage in den Briefkasten.

Dirk

von Lupin (Gast)


Lesenswert?

hey simon, eine schöne neue website hast du da :)

von Ssss S. (sssssss)


Lesenswert?

@Dirk:
guck mal auf deinen server im upload (hab deine ip in meinen auctionant
logfiles entdeckt g)

löschen:
ich wollte eh ne option zum formatieren einbauen (/mkfs oder so
aufrufen)

servo:
Problem ist dass kein timer pin nach aussen geführt habe :-\
Aber es müsste theoretisch ausreichen den signal pin für zb eine
sekunde
mit dem signal per software zu versorgen. die cam wiegt ja nix, sollte
auch danach in position bleiben ;)
Muss mir nur noch was für die html steuerung einfallen lassen
(hab da schon ne idee, würde aber wieder javascript brauchen :-X)

ds1820: cool!

@Lupin:
Danke :) Das alte system (einzelne htmls) wurde mir zu arbeitsintensiv
und ich hab es
auf mein selbstgebautes quick&dirty cms umkopiert.

Bye, Simon

von Dirk (Gast)


Lesenswert?

Hi Simon...

Hat funktioniert g Schönes Bild.
Bekommt die nächste Firmware nen Passwortschutz für die Admin-Seiten ?
lach

...dem signal per software zu versorgen. die cam wiegt ja nix, sollte
auch danach in position bleiben ;)...
Das ist nicht das Problem !
Weiss nur nicht, was das Servo macht, wenn es keinen Impuls mehr
bekommt.
Normalerweise erwartet es alle 20ms einen Impuls zw. 1,0 und 2,0ms
(1,5ms=Mittelstellung)
Kann mir vorstellen, dass das Servo dann Mist macht, wenn Spannung noch
da, aber kein Impuls mehr anliegt.

Dirk

von Ssss S. (sssssss)


Lesenswert?

Hi!

Ne, wenn kein Signal kommt bleiben die in position bzw gehen in so
ne Art Stromsparmodus. Hab ich zumindest letztens irgendwo gelesen,
muss ich mal testen ;)
Aber kann schon hinkommen, beim programmieren hat der servo bei der
alten Cam ja auch nicht gezuckt. Und da ist er ja auch an Vcc und
bekommt kein Signal.

Admin:
ja, war geplant, so langsam geht mir aber der Programmspeicher aus ::)
Muss ich mal sehen wo ich da noch optimieren kann...

BYe, Simon

von Sanic (Gast)


Lesenswert?

Was hälst du eigentlich davon ein FAT oder vergleichbares "offenes"
Dateisystem zu nehmen ? :)

Grüße

von Marco S. (masterof)


Lesenswert?

ich glaub der knappe Programmspeicher. Warum soll er FAT verwenden wen
doch kein ander Computer oder ein andere µc direkten zugriff auf den
speicher hat.
Gruß Marco

von Ssss S. (sssssss)


Lesenswert?

Hi!

Genau :)
Lohnt einfach nicht. Sowohl vom avr progmem als auch vom datenoverhead
;)
Ausserdem boten sich die 256+16 byte pro sektor geradezu dazu an eine
verkettete Liste als Datenstruktur zu nehmen (256byte daten + 16 byte
als verwaltung pro sektor).
Jeder Block hat also einfach nen next pointer ;)
Hat denb vorteil dass ich mich nicht um Lücken (defrag) kümmern muss
beim
files löschen etc ;)

Anbei mal eine neue Version, hat sich aber kaum was getan.
CHANGELOG:
*** build 1104 ***
- (internal) cvs checkin
- filesystem.c: fixed bad chars in filename bug (not tested yet)
- filesystem.c: /adm/rm/<fileid> in flist
- httpd.c: now always determines content type by file extension
- httpd.c: all files must use extension -> .htm etc
- httpd.c: moved critical stuff to adm -> add passwort protection!
- httpd.c: added filesystem format option -> /adm/mkfs.htm
- httpd.c: added /site/ficon.gif
- filesystem.c: file list with icon / size in kbytes
- insgesamt bissl aufgeräumt -> codesize

@Dirk:
probier mal die filelist ansicht, da solltest du auch deine defekten
files einzeln
löschen können.
Alternativ gibts jetzt auch nen /adm/mkfs.htm :)

Ich hab das gefühl dass der ganze server jetzt schneller reagiert.
(hab einiges aufgeräumt/umgebaut)
Debuginfos sind fast alle aus.

Hier das File:
http://avr.auctionant.de/avrETH1/firmware/avrETH1_build1104.hex

Bye, Simon

von Hans (Gast)


Lesenswert?

Hi Simon!
Kannst du nicht deinen aktuellen Server mal ans Netz hängen und ONLINE
verfügbar machen zum Testen?
(Solange du nicht dran Programmierst)
Einfach mal zum schauen wie es denn so in REAL funktioniert.
Immer nur Bildchen gucken ist langweilig
Wie schauts denn überhaupt mit neuen Platinen aus?
Ich hätte da interesse an 2 Stück, hab schon den ENC hier liegen.
Gruss Hansi

von Lupin (Gast)


Lesenswert?

jo ein webserver der nicht im web zu erreichen ist ist doof ;(

von Ssss S. (sssssss)


Lesenswert?

jo einen moment, ich stell sie gleich mal für eine h online ;)

von Ssss S. (sssssss)


Lesenswert?

so, bitteschön:
http://84.60.1.124:3333/

Cam zeigt aber nur schwarz an, bitte keinen quatsch hochladen,
bitte keine files löschen.
filesystem format ist disabled

BYe, Simon

von vorbeigeschlendert (Gast)


Lesenswert?

nachdem ich das Projekt jetzt schon länger nicht mehr beobachtet habe
kann ich nur eins sagen: Respekt!

von Ssss S. (sssssss)


Lesenswert?

danke :)

sorry musste gerade nochmal kurz neu programmieren ;)
jetzt sollte er wieder on sein

von Ssss S. (sssssss)


Lesenswert?

so, da der Besucherandrang langsam nachlässt schliesse ich die
verbindung auch mal wieder.
Mein labornetzteil stinkt furchtbar nach trafolack wenns länger an ist,
deshalb
kann ich es über nacht nicht anlassen ::)
Muss mal was anderes dranpacken.

n8, Simon

von Dirk (Gast)


Lesenswert?

Hallo Simon...

23:43 Dein Webserver ist nicht erreichbar.

Hab eben (bevor ich zur Arbeit gefahren bin noch kurz die 1105 auf
meinen Server gespielt.
Hat ganz gut funktioniert.
Auch das löschen der korrupten Files und das format hat funktioniert.
Hab dann gerade mal versucht, meinen Server zu erreichen. Geht
ebenfalls nicht.

Evt. ein Bug in der SW ?
Musste auch mit der 1104 gestern meinen Server 1x resetten.
War ebenfalls nicht erreichbar.

Dirk

von Ssss S. (sssssss)


Lesenswert?

Hi!

Mein server ist jetzt offline ;)

Wegen deinem hängen bleiber suche ich dann mal.
Wüsste nicht auf anhieb was ich grossartig geändert habe ::)
Weisst du noch wonach das passiert ist ?

BYe, Simon

von Dirk (Gast)


Lesenswert?

Kannst Du mal schauen, ob Du meinen Server erreichst ?
Nicht, dass es an unseren Firmen-Netz liegt...
Adresse hast Du ja ;-)

Kann Dir leider auch nicht sagen, wonach das ganze passiert ist.


Dirk

von Sirko (Gast)


Lesenswert?

Hallo,

da ich grad ne Kamera MCA-25 suche (eigentlich für meinen 2. Server von
Holger Buss) und die beim deutschen Ebay unbezahlbar werden, hab ich mal
bei nem amerikanischen Verkäufer nachgefragt.
Da die Versandkosten alles überragen (und es sich deshalb erst ab 5
Stück lohnt), würd ich gern wissen, ob hier Interesse daran besteht.
Der Preis wird hoffentlich nicht höher als 5 Euro pro Stück sein (bei 5
bestellten). Evtl. kann noch Zoll dazu kommen, aber die
Wahrscheinlichkeit bei so billigen Teilen ist eher gering. Versand
innerhalb Dtl.s würde auch nur 70 ct sein.

@Simon: Kannst Du schon sagen, wann Du neue Platinen machen lässt,
damit vielleicht noch mehr Leute interesse bekommen (und weil ich
selber warte)?

Gruß
Sirko

Kontakt: sirnan (ÄHT) gMx (Punkt) de

von Ssss S. (sssssss)


Lesenswert?

Hi!

Platinen weiss ich noch nicht genau. Das wird wohl auf ein neues
Layout hinauslaufen (stepdown reg, anderer uc,..)
Momentan stecke ich die energie ins schreiben der circuit cellular
contest doku. man ist das furchtbarm sich was auf englisch aus den
fingern zu saugen :-X
Ausserdem bastel ich am webservercode...

Aber wieso willst du die in amiland kaufen ? check doch erstmal
ebay.ch/at etc ;)
Btw beim deutschen bekommt man sie immer noch für 2-3 euro ;)
Man muss nur wissen wie man sucht und nen guten augenblick abpassen
g

So, es gibt mal wieder ein neues hexfile (nur für dirk ? g):
http://avr.auctionant.de/avrETH1/firmware/avrETH1_build1105.hex

CHANGELOG:
- main.c: rx buffer -> NIC_BUFFERSIZE !
- httpd.c: upload failure detection + err msg
- httpd.c: added http auth
- mynic.h: changed nic buffersize 900->1000

Jetzt sollten alle dateien in /adm/* passwortgeschützt sein.
logindaten:
#define HTTPD_ADMIN_AUTH_LOGIN "admin"
#define HTTPD_ADMIN_AUTH_PASS  "1eth1"
Ist bis jetzt aber nur mit dem firefox und konqueror getestet ;)

Bye, Simon

von marcel (Gast)


Lesenswert?

Hallo alle zusammen,

auch ich habe ein ENC28J60 Board gebastelt.
Softwareseitig habe ich dabei auf WinAVR, uIP, avrlib und efsl gesetzt.
Alle Quellen und meine Doku (die den Namen nicht wirklich verdient)
finden sich auf: http://www.pcclock.de/avr2web/

Ich habe gelesen das bei vielen der ENC heiß wird. Das ist auch bei mir
der Fall, daher habe ich ihm einen kleinen Kühlkörper aufgesetzt.

von Dirk (Gast)


Lesenswert?

Hallo Simon...

Version 1105 ist drin. (wahrscheinlich auch wieder nur bei mir ;-))
Allerdings hängt mein Webserver wohl schon wieder. :-(
Hab das Gefühl, die letzte "funktionierende" Version war die 1094.
Seit der 1103 konnte ich "Hänger" nachvollziehen.
Werde wohl in den nächsten Tagen mal die 1103 wieder einspielen um zu
sehen, ob's damit auch auftritt.
Server ist sowohl über Intranet als auch über Internet nicht mehr
erreichbar.
Gabs irgendwelche "grossen" Änderungen zw. 1094 und 1103, die das
Problem verursachen könnten ?
Kannst Du das ganze bei Dir eigentlich auch nachvollziehen ?
Mein Server hat mit der 1105 gerade mal 6h gelaufen, bevor er sich
weggehangen hat.

Dirk

von Ssss S. (sssssss)


Lesenswert?

Hi!

Danke! 1094->11xx hab ich einiges am filesystem/dataflash zugriff
gemacht.
Insbesondere habe ich den zugriff auf das dataflash erweitert!
Und wenn ein spi read beim dataflash hängen bleibt steht der server!
Da habe ich einen Ansatz wo ich suchen kann! Danke!

Könntest du mal versuchen keine dataflash/filesystem aufrufe zu machen
testweise ?
Also den server ganz normal nutzen, nur keine sachen aus fs und nicht
/adm/upload aufrufen

Oder hast du den serial debug port angeschlossen ? da könnte ich den
letzten output brauchen

Bye, Simon

von SuperUser (Gast)


Lesenswert?

Hallo marcel,

dein Projekt sieht ja wirklich gut aus. Werde ich mir mal genauer
anschauen....

von Dirk (Gast)


Lesenswert?

Hallo Simon...

Hab eigentlich keine Zugriffe aufs Filesystem gemacht.
Hab die SW eingespielt, dann einige Files hochgeladen.
Nach einiger Zeit hab ich nochmals versucht, den Server zu erreichen.
Ging auch noch ohne Probs.
Als ich nun in der Firma nochmal zum Testen drauf zugreifen wollte,
ging nichts mehr.
Zwischen den 2 Versuchen lagen ca. 2,5h, in denen ich nichts dran
gemacht hab.
Wie schon geschrieben werde ich 1103 nochmal draufspielen, um zu sehen,
obs damit auch Probleme gab.
Ansonsten kommt 1094 nochmals drauf.
Dann können wir weitersehen.
Debug hab ich nicht dran.
Hab den MAX232 beim letzten Mal nicht ans laufen bekommen.
Evt. mag meine Version vom Chip die 3,6V nicht, oder die C's waren mit
0,1µF zu klein.

Dirk

von Ssss S. (sssssss)


Lesenswert?

ah ok..
hab dir gerade mal ein hex (build1106) gemailt wo ich die vermutete
dataflash
änderung rückgängig gemacht habe. würde mich zwar wundern da es streng
nach datenblatt gecodet ist
(statt 1byte auszulesen lese ich 256 pro zugriff, genau wie im
datenblatt...)
aber evtl ist es das ja ;)

Bye, Simon

von Dirk (Gast)


Lesenswert?

Hallo Simon...

Werde ich morgen nachmittag ( nachdem ich aufgestanden bin ) mal
ausprobieren.

Kannst Du nochmal kurz versuchen, meinen Server zu erreichen ?
Adresse kennst Du ja.
Willl nur ausschliessen, dass es hier am Firmennetzwerk liegt.


Dirk

von Ssss S. (sssssss)


Lesenswert?

adresse kenne ich leider nicht (schick mir mal ne mail bitte avr AT
auctionant.de)
ich kenn sie nur wenn irgendwer auf den link unten geklickt hat und die
ip in meinem logfile ist ;)

Bye, Simon

von Dirk (Gast)


Lesenswert?

Hallo Simon...

Hatte die SW 1106 (die per Mail gekommen ist) drin.
Damit hat der Server ca. 0,5h gelaufen.
Danach war kein Ping oder ansprechen über Intra- bzw. Internet mehr
möglich.
Hab nun versuchsweise mal die 1094 wieder eingespielt.
Bis jetzt läuft er.
Später, wenn ich wieder in der Firma bin und von da aus nochmals testen
kann, kann ich Dir mehr sagen.

Dirk

von Ssss S. (sssssss)


Lesenswert?

Hi!

Ok danke! Dann wars nicht die Dataflash Änderung ::)
Kannst du mal drauf achten was die Seite war die du zuletzt aufgerufen
hast ?
Ich hab meinen gestern 1h laufen lassen mit der 1106 und per wget
im 0,1 sekundentakt webseiten runtergeladen.
Er ist ganz normal weitergelaufen...

Bye, Simon

von Dirk (Gast)


Lesenswert?

Hallo Simon...

Bin nun auf der Arbeit und... die 1094 läuft immer noch :-)
Wenn Du sagst, bei DIr läuft die 1106 ohne Problem stellt sich evt.
eine andere Frage:
Kann es an evt unterschiedlichen Chip Revisionen von enc oder Mega32
liegen ?
Gibt es in der Errata zu den Bausteinen Änderungen zw. den Revisionen ?

Hatte auch schon an therm. Probleme gedacht, aber die werden wohl nicht
bei einer älteren Firmware verschwunden sein...

Andere Änderungen gabs nicht zw. 1094 und 1103 ?
Evt. Änderungen im Cam-Part, welche den Server runterzieht ?

Dirk

von Ssss S. (sssssss)


Lesenswert?

Hi!

Ne, groß was gemacht hab ich nur am filesystem/dataflash...
Sehr merkwürdig...

Aber ich habe eine Sourcecode kopie von der 1094.
Ich habe gerade mal ein diff gemacht. es sind nicht viele Änderungen
gemacht worden. Eine Testversion mit ein paar zurückgeänderten
Sachen habe ich dir eben per mail geschickt ;)
Danke fürs testen !

Ich vermute fast dass es ein bug ist der nur zb mit dem ie auftritt
(warum auch immer!)

Ich bin gespannt auf deinen testbericht ;)

Gruss, Simon

von Andreas Dörr (ADoerr) (Gast)


Lesenswert?

> Kann es an evt unterschiedlichen Chip Revisionen von enc oder
> Mega32 liegen ?
> Gibt es in der Errata zu den Bausteinen Änderungen zw. den
> Revisionen ?

Die Erratas beim ENC28J60 sind gleich.

von Nik Bamert (Gast)


Lesenswert?

Hi Simon ;)

Ich bin nun gerade auch dabei so was kleines zu bauen. UDP ICMP ARP
konnte ich mir durch ethereal mehr oder weniger selbst erklären,
aber evt. könntest du mir sagen, woher du den ganzen TCP Kram gelernt
hast(?) Sourcen wie uIP hab ich mir schon angeschaut, nur ist der
bereits fast zu mächtig, hab dort den Überblick total verloren,
bei Ulrichs Code hats auch einige Dinge, die ich nicht nachvollziehen
kann. Daher - kennst du zufällig eine Seite, auf der das einigermassen
gut Erklärt ist?(vorallem TCP, der Rest geht ja bereits :-) )

Nik

von Ssss S. (sssssss)


Lesenswert?

Hi!

Zu TCP hatte ich mal was in einer (schlechten!) Vorlesung gehört.
Meine Hauptquelle war das inet, also zB
http://en.wikipedia.org/wiki/Transmission_Control_Protocol
http://www.web-ee.com/primers/files/BeginnersGuide2Ethernet.pdf

Bye, Simon

von Nik Bamert (Gast)


Lesenswert?

dankeschön ;) Das Pdf mag irgendwie nicht laden (firfox sagt
Verbindungstimout) aber die wiki Seite sieht echt gut aus, da gibts
sogar ne recht lange Ausführung davon in Deutsch, hätte nie gedacht das
man dort sowas auch findet. Ich muss leider zwangsweise alles aus
Büchern oder dem Inet lernen, bin noch zu jung für ein Studium und in
der Schule haben wir noch nicht mal besprochen, was transistoren etc
sind...schnarch.

Mein Problem bei tcp sind vorallem die Syn Ack Felder, ich bin mir
bezüglich des Programmaufbaus nicht ganz sicher was ich da in dem Fall
mache, wenn zB 5 Clients gleichzeitig verbunden sind, dann brauch ich
ja für alle einzelne Counter...ich werds mir mal ansehen und
hoffentlich auch bald integrieren, hab bis jetzt nämlich nur ein UDP
Interface, das kann man mit PHP zwar schön steuern, aber so 'das
Wahre' ists auch nicht...:P

Nik

von Ssss S. (sssssss)


Lesenswert?

>Mein Problem bei tcp sind vorallem die Syn Ack Felder, ich bin mir
>bezüglich des Programmaufbaus nicht ganz sicher was ich da in dem
Fall
>mache, wenn zB 5 Clients gleichzeitig verbunden sind, dann brauch ich
>ja für alle einzelne Counter.
Nicht nur das! Du musst dir pro tcp verbindung den ack/seq counter
merken, evtl den clientport und den aktuellen verbindungsstatus.
(bei ulrich radigs code merkst du dir die seq/ack nummern glaub ich
nicht)

Leider habe ich auch noch keine Doku gefunden wo genau erklärt wird wie
genau jetzt ein verbindungsabbau gemacht wird.
Da gibt es ja verschiedene Versionen (client baut ab, server baut ab,
fin+ack in einem paket etc)
Ich hab das dann mehr oder weniger durch probieren rausgefunden :-\

Bye, Simon

von Dirk (Gast)


Lesenswert?

Hi Simon...

Kurzer Zwischenstatus:

Die 1094 läuft immer noch sehr stabil !

Werde gleich mal die 1107 einspielen und weiter testen.


Dirk

von Dirk (Gast)


Lesenswert?

nachobenschieb

Hallo Simon...

Erneut ein kurzer Zwischenstatus:

Hab jetzt die 1107 drin !
Läuft jetzt seit ca. 8h, scheinbar ohne Probleme.
Sieht so aus, als hättest Du den Bug gefunden. freu
Alles weiter so in ca. 24h.
Dann sehen wir mal weiter...

Dirk

von Ssss S. (sssssss)


Lesenswert?

>Sieht so aus, als hättest Du den Bug gefunden. *freu*
sag das nicht zu laut g

Ich habe ja zwei Dinge gegenüber der 1006er version geändert.
Aber wenn es die änderung war die ich vermute:
main.c: nic_receive_packet(&buffer[0],NIC_BUFFERSIZE) back to
nic_receive_packet(&buffer[0],600) (buffersize is 1000 !)
dann ist das seeeeehr merkwürdig !
Muss ich nochmal genau nachforschen.

Das ist eigentlich seltsam da der sendebuffer in jedem fall 1000 byte
benutzt. Es kann dann nämlich nur
a) stack vs buffer konflikt sein (müsste dann aber auch beim senden
passieren ?!)
b) irgendein enc28j60 bug (vermutlich dieser ungerade pointerbug aus
der errata, den fange ich nämlich (noch) nicht ab)

Wie auch immer, danke dir fürs testen !!

Ich hab ne gute Nachricht für dich:
So wie ich das sehe hatte ich doch einen output compare pin
rausgeführt!
Hatte mich schon gewundert wieso ich das vergessen hatte g
-> hardware servo support...
Müsste man nur noch testen ob die servos auch mit 3.6V laufen. Sollten
sie aber eigentlich, beim modellbau hat man ja auch gerne mal etwas
weniger .)

Bye, Simon

von Tillomar (Gast)


Lesenswert?

@Simon:

Servos sind normalerweise für 4- oder 5-zellige Akkus gedacht; nominal
4.8 - 6 V, die Entladeschlußspannung liegt also bei 3.6 V bei einem
4-Zeller. Das dürfte dann auch schon die erreichbare Unterkante
darstellen; meine Graupner Varioprop zickt da auch schon mal ganz schön
herum. Also entweder solltet ihr eine höhere Betriebsspannung für den
Servo vorsehen, oder ganz gezielt einen kaufen, der mit 3.6 V
klarkommt.
Nebenbei bemerkt sind auch die (Anlauf-) Ströme der Servos nicht ohne,
mit ein bischen Pech steigt dann auch gleich der Webserver aus... aber
ein kleiner Micro-Servo tut es ja vielleicht -- hab' leider nur grad
nix passendes da zum Testen.

So long,
Tillomar

von Ssss S. (sssssss)


Lesenswert?

Hi!

Ja ich weiss ;)
Hab hier so super miniservos. Die ziehen locker 4A (zwar nur kurz aber
trotzdem).
Das ganze muss ja auch fast nichts bewegen, auf Schnelligkeit kommts ja
auch nicht so an ;)
Werde ich dann testen wenn ich den Code bastel. Sonst muss man dem
Servo halt noch extra 5v geben oder so ;)

BYe, simon

von Dirk (Gast)


Lesenswert?

Hallo Simon...

Ich befürchte, das war es doch noch nicht :-( heul
Server hängt wieder.
Hab heute nacht noch probiert, da lief noch alles.
Heute morgen wieder Timeout und kein Ping möglich.

Wobei ich nicht gleube, dass der Server wirklich hängt.
So alle ca. 20sec leuchted die rote LED kurz mal auf.

Dirk

von Ssss S. (sssssss)


Lesenswert?

Ah ok... bzw Mist! g

Das heisst der Server bleibt hängen wenn lange keiner drauf zugreift,
richtig ?
Das würde auch erklären warum das bei mir nicht passiert ist
(hab ja immer wie wild dateien geladen)

Da werd ich meinen mal ein paar h laufen lassen mit debugoutput...

Bye, Simon

von Dirk (Gast)


Lesenswert?

Hi Simon...

So ungefähr.
Wie geschrieben, denke ich nicht, dass der Server komplett hängt.
Weisst Du, was der ca. alle 20sec an Daten holt/bekommt ?
Das bedeutet doch das aufleuchten der roten LED, oder ?
Ist zumindest die LED neben der blauen "Link ok" LED.

Dirk

von Ssss S. (sssssss)


Lesenswert?

die rote led leuchtet immer wenn er irgendwas sendet oder empfängt.
Bzw wenn der enc28j60 was sendet/empfängt.
Selbst wenn der avr steht kann der leuchten.
Alle 20s wird wahrscheinlich der tcp conn request deines
browsers sein. ich schick dir gleich mal eben ein hex was genau wie
1007 ist nur immer mit der status led blinkt
wenn er noch läuft...

Bye, Simon

von Dirk (Gast)


Lesenswert?

Hi Simon...

1108 ist drin und läuft.
Mal sehen, wie lange.

Dirk

von Ssss S. (sssssss)


Lesenswert?

@dirk:
hast wieder post!
Kann es sein dass der server immer hängt wenn er die 0 uhr schranke
überschreitet und man danach die site/temp.htm aufruft ?

Ich habe soeben einen (blöden) bug gefunden !
Wenn die Systemuhrzeit zb 33 Uhr ist und man /site/temp.htm
aufruft dann bleibt der uc hängen !
Er versucht dann nämlich aus einem eeprom Speicherbereich zu lesen der
gar keiner mehr ist :-X
bzw eine for schleife tickt dann aus 8)

Warum die uhrzeit aber >24uhr werden kann ist mi nicht ganz klar
(habs bei mir zum testen manuell mit 33 uhr initialisiert -> tot).
Hab noch was an der clock routine gefixt.

Bye, Simon

von Dirk (Gast)


Lesenswert?

Hi Simon...

Du hast auch Post !
Server hängt wieder.
LED blinkt aber schön regelmässig vor sich hin.

Naja, mit 33 Uhr ist ja nicht ganz so schlimm.
So spät wirds bei mir selten ggg

Die 1109 werde ich morgen oder so mal einspielen.
Für heute ist Schluss.
Hatten eben Kindergeburtstag und nun bin ich am Ende :-(
Werde wohl früh ins Bett gehen... ggg

Dirk

von Ssss S. (sssssss)


Angehängte Dateien:

Lesenswert?

Hi!

Mein Webserver ist jett seit >24h durchgängig am laufen...

Ich vermute Dirk hat eine andere enc28j60 revision als ich.
Ich werde in der nächsten Version mal den pointer workaround aus der
microchip errata
einbauen.
Dirks Server schien nämlich nicht zu hängen (er empfing die
ethernetpakete immer noch) nur konnte er keine pakete mehr senden ?!
Sehr seltsam...

Anbei mal ein Temperaturgraph von heute (links von der linie = 5.5.06,
rechts davon ist von gestern).
Der Graph zeigt 24h. Der LM75 hängt bei mir aus dem Fenster
(Nordseite)

Bye, Simon

von Dirk (Gast)


Lesenswert?

Hallo Simon...

Wie bekomme ich denn die Rev. des enx28j60 raus ?
Steht die nur im Chip ?

Aufdruck auf meinem enc ist jedenfalls

ENC28j60 (e3)

Sollte e3 die Revision sein ?

Lt. Errata soll die Rev. im Register EREVID (Adresse 0312h) zu finden
sein.
Vielleicht kannst Du ja mal ne firmware "basteln", welche die Adresse
0312h ausliest und den Wert auf der Startseite mit anzeigt.
Evt. hilft das ja bei der Fehlersuche weiter.

Dirk

von Ssss S. (sssssss)


Lesenswert?

bin grad schon dabei, gibt gleich ne neue rev (mit servo beta)

von Ssss S. (sssssss)


Lesenswert?

So, hier die neue version:
http://avr.auctionant.de/avrETH1/firmware/avrETH1_build1110.hex

NEU:
*** build 1106 ***
- internal bughunt version

*** build 1107 ***
- internal bughunt version

*** build 1109 ***
- clock.c: new way to calc next time
- logger.c: add security check for eeprom bug (h>24 -> out of bound ->
hang!)
- lm75.c: do not return 0xFF as valid temp
- logger.c: do not use lm75 temp register, added own tempreg!

*** build 1110 ***
- enc28j60.c: moved rx buffer to begin
- enc28j60.c: added ptr bug workaround
- logger.c/lm75.c: fixed typo in logpos check !
- main.c: 800ms delay after init before sending any data
- servo.c: new, support servo connected to PORTD.7
  -> servo support:
    http://192.168.0.6/servo/000  bis
    http://192.168.0.6/servo/255 (führende nullen!)
    setzt servo an PORTD.7

Und nun das beste: meine normalen Modellbauservos gehen
direkt mit 3.6V :)
Das scheint nochnichtmal irgendwie zu stören :)
Aber bitte testen bzw um sicherzu gehen den Servo extern mit 5V
versorgen
(beide GND verbinden)

@Dirk:
Wäre cool wenn du den Code mal testest, da ist jetzt der enc28j60 bug
umgangen. Ich hoffe dass der fürs stehenbleiben verantwortlich war
.-\
Achja und auf der index.htm sieht man jetzt die enc28j60 revision (ich
hab rev4).

Bye, Simon

von Ssss S. (sssssss)


Angehängte Dateien:

Lesenswert?

so, gibt ne neue version.
Diesmal mit servo html seite wo man den Servo per mausklick
in die servopos Grafik steuern kann.(siehe screenshot)
das javascript ist mit ie,ffox,opera getestet, sollte also gehen ;)


http://avr.auctionant.de/avrETH1/firmware/avrETH1_build1111.hex

CHANGES:
- servopos nun über /servo_000.bmp bis /servo_255.bmp steuerbar
- /site/servo.htm als übersicht für den servo

Bye, Simon

von Andreas Dörr (ADoerr) (Gast)


Lesenswert?

Laut den Errata-Sheets gibt es aber keine Unterschiede zwischen Revision
B1 (EREVID = 0x02) und B4 (EREVID = 0x04). Und von anderen Versionen
stand nix auf der HP von Microchip, als ich vor ca. 3 Wochen geschaut
hab.

von Ssss S. (sssssss)


Lesenswert?

Hi!

Das hab ich schon gesehen. Aber komischerwiese scheint der
bug nur bei Dirk aufzutauchen und bei mir nicht ?!
Evtl gibt es ja noch einen unbekannten bug von der 2er rev oder so.

Wobei ich mich schon die ganze Zeit frage warum die eine
neue revision rausbringen die dann genauso viele fehler hat wie die
alte ?! :-X
Schon irgendwie seltsam...

Bye, Simon

von Andreas Dörr (ADoerr) (Gast)


Lesenswert?

Vielleicht damit sie die alten Revisionen ohne Reue noch verkaufen
können ;).
Mir ist das halt vor 3 Wochen aufgefallen, als ich bei meinem die
Revision ausgelesen hatte und mich erstmal geärgert hab, warum ich noch
die alte bekommen habe, obwohl ich ne Weile auf die neue gewartet hab
(wie ihr ja auch). Da hab ich dann erstmals in die Errata-Sheets
geschaut.

von Dirk (Gast)


Lesenswert?

Hi Simon...

Version 1111 ist drin.
Hab übrigens auch Rev. 4 des enc. :-(
Solangsam glaub ich, mein Server will uns nur ärgern.
Warum kannst Du das ganze denn nicht nachvollziehen ?
Vielleicht solltes Du mal meinen Server bei Dir aufbauen, und ich nehm
Deinen zum Testen mit.
Vielleicht liegts ja auch am Erdmagnetfeld unter unserer Wohnung oder
so... ;-)

Servoabsteuerung ist ja cool.
Hab zwar noch keinen Servo dran, aber schön, dass es nun drin ist.
Werd ich die nächsten Tage mal probieren.
Vor allem das Einstellen der Servoposition, klasse.
Meinst Du nicht, ne einfache Auswahlbox mit vorgegebenen Werten
(möglichst auf der Webcamseite) hätte gereicht ? ggg
Evt. mit automatischem Refresh des Bildes, nach Auswahl der
Servoposition.


Dirk

von Ssss S. (sssssss)


Lesenswert?

>Solangsam glaub ich, mein Server will uns nur ärgern.
Glaub ich auch g

>Warum kannst Du das ganze denn nicht nachvollziehen ?
Wie gesagt, ich bekomms nicht hin bei mir :(
Warten wir jetzt mal den Testlauf mit der 1111 bei dir ab.
Wenn da wieder was passiert werde ich meinen
Server ins Netz stellen und dir die Adresse geben. Dann
kannst du den mal genauso "bearbeiten" wie deinen. Wenn dann was
passiert hab ich das serielle Logfile und kann evtl sehen woran es
liegt.

>Vor allem das Einstellen der Servoposition, klasse.
Danke :D
Das kommt später mal direkt unter das Webcambild. Evtl zusätzlich noch
ne Auswahlbox daneben ;)

Ich muss mir nur was wegen dem Programmspeicherplatz überlegen, es sind
nur noch 30 Byte oder so frei :-X
Aber ich hab da ein paar Stellen wo ich ein bissl optimieren kann denke
ich :)

BYe, Simon

von LM1 (Gast)


Lesenswert?

Hallo

ich verfolge schon länger das Projekt. Leider arbeite ich mit PIC´s.

Ich habe allerdings gleiche Probleme: Es stürtzt immer mal ab. Manchmal
hilft auch kein Reset - einfach warten und immer reseten.... Machmal
hilft dafür aber ARP -d auf dem PC. Könnt Ihr ja mal testen. ARP.EXE
ist ein Dos-Programm für den ARP-Speicher auf dem PC.

Mal ne Frage: Die Common-Register sind doch alle gespiegelt? Werden
diese gleichzeitig beschrieben? Ich kann (zum debuggen) alle
Common-Register auslesen. Nur leider sind die Common-Register nicht in
allen Bänken immer gleich. Dachte erst die SPI macht fehler. Ist aber
doch wohl eher unwahrscheinlich, oder? Er geht manchmal stundenlang!

Könnt ihr mal die Common-Register auslesen?

Gruß LM

von Alexander (Gast)


Lesenswert?

Hi,

Ich hab einen aehnlichen Aufbau wie Simon mit einem Atmega32, und hab
meinen eigenen Code geschrieben. Ich hab manchmal auch das Problem,
dass der enc28j60 scheinbar abstuerzt, ich bekomme dann zb. keine
interrupts mehr fuer reinkommende Pakete (die reinkommen muessten, die
Led blinkt).

Hat da jemand noch eine Idee?

LM, hast du das mal ausprobiert, ob die Common-Register verschiedener
Baenke sich unterscheiden?

Gruss,
- Alexander

von Ssss S. (sssssss)


Lesenswert?

Hi!

Das hört sich interessant an Alexander!
Genau das hat Dirk nämlich beschrieben... Der Webserver läuft
weiter, rx led blinkt das wars.

In der neuen 1111er Version habe ich die von der Errata empfohlenen
Workarounds
für das PKTIF Flag (nochmal extra den count checken) und diesen
Pointerbug (immer ungerade werte ins register schhreiben + aufpassen
beim wrappen) implementiert.
Ich hoffe dass das der Fehler war.

Warum es aber nur bei Dirk passiert und nicht bei mir ?!
Evtl haben einfach nur manche der ENCs diesen Bug ? Schon irgendwie
komisch :-\

@LM1:
Welchen stack benutzt du ? den von Microchip ?
Das mit den ARP paketen hört sich eher wie irgendein Bug in der arp
verwaltung an. Oder evtl doch dieser pointerbug und nur durch genügend
eingehende pakete kommt er irgendwann wieder auf nen gültigen pointer
?
Schon irgendwie komisch...

Wegen dem auslesen ? Sind das evtl die Register die nur mit >8mhz
fehlerfrei auslesbar sind ?

BYe, Simon

von Alexander (Gast)


Lesenswert?

Hi Simon,

den Pointer-Workaround hab ich drin, den PKTIF-Workaround noch nicht,
das werd ich nochmal checken. Der ENC28j60 ist eigentlich sehr geil,
aber das gefaellt mir grad garnicht ://

Hat jemand mal mit Microchip geredet?

Gruss,
- Alexander

von Enrico D (Gast)


Lesenswert?

Hallo,
ich nutze "Ethereal" um meine gesendeten Daten im PC anzeigen zu
lassen.
Ich sende zyklisch ein Packet und bekomme den Inhalt auch richtig
angezeigt. Nur spielt es keine Rolle, wie ich TX und RX verbinde. D.h.
ich kann TPOUT mit 1-2 oder mit 3-6 vom PC verbinden, in beiden Fällen
zeigt mir der PC exakt meine gesendeten Daten. Allerdings nur, wenn ich
immer alle 4 Leitungen verbinde, nur Senden allein verbinden geht nicht.
Was stimmt bei mir nicht? Oder ist alles i.O.?
Danke! Enrico

von Ssss S. (sssssss)


Lesenswert?

Hast du evtl nen Switch der Crossover kabel erkennt und dann umschaltet
?

Bye, Simon

von LM1 (Gast)


Lesenswert?

Hallo,

ja ich benutze den Microchip-Stack.

ARP: So ganz kapier ich das auch nicht. Ist jedenfalls Definitiv so,
daß der ENC28J60 dann wieder geht. Eigentlich speichert das ARP doch
nur die MAC-Adresse.?
SPI ist bei 10MHZ (geht bei PIC problemlos)
Pointerbug? Welchen meinst du denn?

Evt. spielt da auch der Router mit (der händelt ja den verkehr über
eine ARP-Tabelle). Wenn ich über eine andere Mac (und ip-) adresse
(also 2ter PC) anpinge geht er wieder. Ist wirklich komisch.


LM, hast du das mal ausprobiert, ob die Common-Register verschiedener
Baenke sich unterscheiden?

Genau das ist das, was mich stutzig macht. die 0x1A bis 1F sollten
eigentlich gespiegelt sein. Wenn der ENC28J60 geht ist das auch so.
Aber leider nicht immer! Also scheint es ein SPI-Problem (Takt = 10MHz)
zu sein.

Gruß LM1

von Alexander (Gast)


Lesenswert?

Hi,

LM1, hast du das wirklich mal gesehen, dass die Baenke sich
unterschieden haben? Das wuerd mich interessieren, denn dazu hast du
bisher nichts konkretes gesagt...

- Alexander

von LM1 (Gast)


Angehängte Dateien:

Lesenswert?

@Alexander

so im Anhang steht es...
Für Debug mußt du Bank einsetzen. Wobei nur die letzten Bytes wichtig
sind.

Das ganze ist mit ICD2 und der "Watch"-Funktion aufgezeichnet.

Guß Lars

von LM1 (Gast)


Angehängte Dateien:

Lesenswert?

und das ganze wenn es geht...

von Enrico D (Gast)


Lesenswert?

@Simon

Nein, ich gehe mit dem Kabel direkt in meinen PC, also meine
Broadcom-Netzwerkkarte. Nur scheint es egal zu sein, ob ich TX-ENC mit
TX-PC oder RX-PC verbinde. Die Schaltung ist wie im Datenblatt, nehme
als Übertrager einen FB2022. Wie gesagt, ich kann ein gekreuztes Kabel
nehmen oder ein eins-zu-eins. In beiden Fällen empfange ich exat die
Daten des ENC. Warum? Danke!

von Ssss S. (sssssss)


Lesenswert?

HI!

Dann schaltet deine Netzwerkkarte wohl um :)
Der ENC kann das glaub ich ncht ...

Bye, Simon

von Enrico D (Gast)


Lesenswert?

Gut und danke, dann verbinde ich ENC-TX mit PC-RX (3-6) und ENC-RX mit
PC-TX (1-2), oder? Macht es einen Unterschied ob ich dann einen Switch
oder direkt eine Netzwerkkarte anspreche?

von Dirk (Gast)


Lesenswert?

Hi Simon...

Was soll ich sagen ?
Firmware 1111 läuft immer noch. ;-)
Ich will mich noch nicht zu früh freuen, und Dich nicht zu früh loben,
aber vielleicht wars das diesmal wirklich.
Immerhin läuft die Dose nun schon seit fast 48h.

Weiteres (auch bzgl. Servounterstützung) folgt die nächsten Tage.

Dirk

von Alexander (Gast)


Lesenswert?

Hi,

Ich hab immer wieder das Problem, dass der enc28j60 "abstuerzt", ich
bekomme also keine Interrupts mehr, es kommen keine Pakete mehr rein
(PKCNT konstant 0) und ich muss das ganze resetten, der Mikrocontroller
laeuft noch und der enc28j60 laesst sich auch noch ansprechen, aber es
kommt halt nichts mehr. :/

Irgendeine Idee?  Die Erratas hab ich soweit implementiert (speziell #6
und #13), das passiert auch mit beiden Hardware-Revisionen (rev02 und
rev04)...

- Alexander

von LM1 (Gast)


Lesenswert?

@Alexander
was sagt den RXERIF?

hat einer denn ne Meinung zu meinen Debug-Daten?
Gruß

von Alexander (Gast)


Lesenswert?

Hi,

EIR ist 0, soweit hab ich das schon gecheckt. :/

Gruss,
- Alexander

von Holger G. (holli1195)


Lesenswert?

Hi,

@Simon

hast Du noch Platinen zu verkaufen? Hätte gern eine zum probieren. Oder
gibst Du die Schaltung (evtl. die Eagle Files) frei?

Gruss Holger

von Andreas (Gast)


Lesenswert?

Hi,

gibt es eigendlich eine zusammenfassung von dem ganzen forum, also
sowas wie eine projektpage mit der ganzen schaltung etc, ich würde das
gerne nachbauen.

von Stefan (Gast)


Lesenswert?


von Holger G. (holli1195)


Lesenswert?

Hi,

@Stefan: Website schon weiter oben genannt, aber leider fehlt die
Schaltung zum Nachbau :-( Schade. Oder kann ich mal wieder nich richtig
gucken?

Gruss Holger

von Mike S. (memme)


Lesenswert?

Moin,

ich verfolge den Thread auch schon eine ganze Weile und kann dir sagen,
das es hier keinen Schaltplan gibt. Zumindestens den von Strfan habe ich
noch nciht gesehen.
Mußt du schon selber machen, wobei zumindestens bei dem Artikel zum
ENC28J60 2 Schaltpläne bei sind, nach denen man das ganze selber
entwickeln kann. Ist auch eigentlich nicht sonderlich schwierig.

Mike

von Holger G. (holli1195)


Lesenswert?

Na ja,

das mit dem "selber entwickeln" ist so eine Sache. Die Hardware muss
ja auch immer zur Software passen. Mit Hardware hab ich kein Problem,
bin beruflich und technisch in der Lage auch Fine-Pitch oder BGA zu
löten etc.
Mit Software bin ich ein Fossil - bin froh, wenn ich ein paar
Portbeinchen zum klappern kriege. Dann hörts ja auch schon fast auf. An
einer Übertragung mit UART hab ich 3 Wochen gesessen....
Will sagen, ich bin auf ein komplettes Projekt angewiesen - Webserver
Software selber programmieren kann ich nich.......
..na und die MCA-25 Cam würd' mich schon interessieren. Wollte auch
erst Ulrich Radigs Webserver nachbauen - kriege keinen RTL8019 mehr.
Selbst ein befreundeter Computerhändler hat schon seine alten
Kramkisten durchsucht....


Gruss Holger

von Schreiber (Gast)


Lesenswert?

@Holger:
Solche Netzwerkkarten mit dem RTL findest Du in jedem Wertstoffhof oder
zur Not bei eb**.

Simon hat an alle, die bei ihm Platinen bestellten, einen Plan in
Papierform beigelegt.


@Simon:
könntest Du bitte die Servo-Geschichte so machen, dass es auch im IE
und ohne Skripte geht, also nur ein Form, das man mit Enter eingeben
kann (Wertebereich 0..9). Bitte auf der Servo-Testseite und der
Kamera-Seite.
Vielleicht sogar so, dass nach dem Enter der Eintrag gleich markiert
ist, so dass für eine Neueingabe nur drübergetippt und Enter gedrückt
werden muss.

Wäre es möglich, die IPs für den Gateway und die eigene IP aus den
oberen EEprom-Stellen auszulesen, damit man eigene Werte eintragen
kann. Mit Schlüsselstellen z.B. AA 55 CC 33 davor und danach, wenn
diese nicht vorhanden, defaults verwenden.
Und das EEprom nicht jedes Mal löschen.


Danke

von Mike S. (memme)


Lesenswert?

@Holger:

Ok, dann gebe ich dir recht, daß ein nachbau einfacher ist.
Wenn du noch einen RTL8019 mehr kriegst, kannst du dich gerne nochmal
bei mir melden. Ich hab hier noch 2 oder drei Karten davon rumliegen.

Wollte auch erst den Webserver damit bauen, habe dann aber den enc28j60
entdeckt und bastel seid dem damit rum.

von Alexander (Gast)


Lesenswert?

Hi,

mittlerweile (danke Simon!) hab ich meine Bugs gefunden, ich hab Errata
#6 uebersehen und #13 falschrum implementiert.  Bei Gelegenheit gibts
dann von mir mal Schaltunterlagen und Software :)

- Alexander

von Alexander (Gast)


Lesenswert?

Hi,

solltet ihr auch mal Probleme haben, auf SPIF zu pollen, seid bitte
sicher, dass ihr den Pin SS entweder als Output konfiguriert, oder per
(internem oder auch externem) Pullup diesen Pin auf High zieht,
ansonsten kann es zu merkwuerdigen Effekten kommen.

Ich hab ne ganze Weile debugged bis ich gemerkt hab, dass der von SPI
Master auf Slave umspringt, weil der Atmel meint, dieser Pin (der in
meiner Schaltung so erstmal in der Luft hing) waer auf Masse gezogen
worden...

- Alexander

von Ssss S. (sssssss)


Lesenswert?

HI!

Danke :)
Der SS ist beim avrETH als CS für den ENC verwendet worden. Also nen
output ;)

@Holger:
Die Schaltung werde ich wenn erst nach dem Circuit Cellular Wettbewerb
freigeben ;)
Platinen habe ich momentan leider keine mehr.

@Schreiber:
Ja mal sehen wie ich das auch als non javascript machen kann.
Wobei das javascript eigentlich auch im ie gehen sollte
(wurde im ie, opera und firefox getestet)

BYe, SImon

von Holger G. (holli1195)


Lesenswert?

Hi,

@Simon:

Ja, OK, hab zwar noch nix von diesem Wettbewerb gehört aber ich wünsche
Dir auf alle Fälle Erfolg dabei! Das reicht mir auch, wenn ich
irgendwann mal an SB und evtl. eine Platine komme. Mir rennt das
Projekt ja nicht weg. Mach ich erst mal irgend was anderes: In der
Sonne liegen... Haha...
Bitte köntest Du an mich denken, wenn es evtl. mal wieder fertige
Platinen gibt. ist zwar kein Problem, aber das Rad muss ja nicht
zweimal  konstruiert werden.

Gruss Holger

von Holger G. (holli1195)


Lesenswert?

Ah, ha.....


lesen bildet! AVR 2006 Contest! Na dann Simon: viel Glück für die
15.000$ - bis 16. August ist ja nicht mehr lange hin.

Gruss Holger

von Patrick M. (Gast)


Lesenswert?

Thread wiederbeleb

Gibt es eigentlichen einen ungefähren Termin wann bugfreie ENC28J60 das
Werk verlassen?

Grüße,
Patrick

von Elektrikser (Gast)


Lesenswert?

Simon, ich wünsche dir auch viel Glück beim Wettbewerb!

Ich suche momentan eine Möglichkeit die Webseite ein bißchen flexibler
werden zu lassen. Mein Webserver liest drei DS18S20-Sensoren aus und
stellt die Temperaturen auf der Webseite dar. Nun muss bei mir die
Webseite immer neu geladen werden, um den neuen Wert anzuzeigen. Ist
nicht so schön.
Gibt es eine einfache Möglichkeit, dass ich die Seite stehen lassen
kann und nur den Temp.-Wert ändere? Leider habe ich noch keine
Erfahrungen in Java oder Javaskript.

Gruß Elektrikser

von Ich (Gast)


Lesenswert?

Hi,
wie gehts nun weiter hier?
Ist ja etwas ruhig geworden mit dem Projekt.
Gibt es updates, neuigkeiten?

von Ssss S. (sssssss)


Lesenswert?

Hi!

Ich schreibe momentan an der Doku für den Circuit Cellular Contest :)

BYe, Simon

von Schreiber (Gast)


Lesenswert?

Hallo alle, Hallo Simon,
freut mich, dass Du noch dran bist.

Habe in den letzten Tagen ein bisschen gebastelt, werde dazu auch noch
im anderen Thread bzgl. Kamera was tippen.

Was mir noch in den Sinn kam: was braucht die meiste Zeit bei der
Bildübertragung? Es sind ja immerhin einige (ca.6) Sekunden. Würde mich
freuen, wenn man da noch optimieren könnte. Die Bilder sind ja so in
etwa 40-50 KByte groß, d.h. die theoretische Übertragung bei 460800
dauert eine Sekunde. Klar kommt noch das LAN-Protokoll, aber dauert das
wirklich so lange?

Andere Möglichkeit wäre, dass man diese Übertragungszeit durch einen
höheren Prozessortakt verkürzen kann. Die nächsten geraden Frequenzen
wären 11,0592 MHz (Teilfaktor 3*8=24) und 14,7456 (Teilfaktor 4*8=32).

Klar läuft der Mega32L bei 11MHz außerhalb der Spec, dürfte er aber
schaffen. Andererseits liebäugle ich schon länger mit dem Mega644, wenn
ich das Datenblatt richtig interpretiere, ist er bei 3,6V mit 15 MHz
innerhalb der Spec.

Was meint Ihr?

Nochwas zum Servo: meiner (Multiplex MPX Tiny-S) läuft zwar prinzipiell
mit 3,6V, jedoch brummelt er oft, nachdem er eine Position angefahren
hat, insbesondere aus einer bestimmten Richtung.
Muss ich noch untersuchen, warum, evtl. Störungen, Spikes,
Überschwingen...

Evtl. könnte man dies und hohe Impulsströme vermeiden / verringern,
indem man das PWM-Signal in mehreren Schritten auf die gewünschte
Position anfährt. Finde ich auch optisch schöner, wenn die Kamera etwas
langsamer in die richtige Position schwenkt. Jetzt macht es einen Ruck.

Noch ein kleiner Bug: Wenn man den Positionierbalken ganz rechts
anklickt, geht er in die Position ganz links.

Simon, wäre schön, wenn Du eine neuere Version posten könntest, wenn
vorhanden.

Also, in ca. 10 Min. gibt es (seit 6 Wochen) was neues auf
www.mikrocontroller.net/forum/read-1-232801.html bzgl. Kamera.

von Ssss S. (sssssss)


Lesenswert?

>etwa 40-50 KByte groß, d.h. die theoretische Übertragung bei 460800
>dauert eine Sekunde. Klar kommt noch das
Also wenn das Bild zb 50 KByte hat kommt noch der Mux Overhead drauf.
Wenn ich es richtig im Kopf habe ist das nen Faktor ~1.33
-> 66.5 KB

Das größte Problem ist aber der tcp/ip overhead bzw dass der webserver
immer nur ein Paket
schickt und dann auf ein Ack wartet.
Das könnte man evtl verbessern indem man 2 Pakete losschickt.
Dazu müsste aber noch etwas am TCP Stack erweitert werden. Das passt in
den mega32 bestimmt nicht mehr rein (hab nur noch wenige Byte frei :-X)

Ich bin im moment noch am planen einer neuen Version des Webservers mit
größerem uC und mehr Anschlussmöglichkeiten.

Bye, Simon

von Mark S. (struberg)


Lesenswert?

> Nun muss bei mir die Webseite immer neu geladen werden,
> um den neuen Wert anzuzeigen.

Das reload kann man mit einem meta-header automatisch veranlassen. Der
Server muß dazu gar nichts machen, sonder nur die Anweisung in die html
Seite aufnehmen, daß der Client (WebBrowser) die Seite in x Sekunde
refresged werdeb soll.

<meta http-equiv="REFRESH"
content="5;URL=http://myip/meineurl.html">;

veranlaßt den browser nach 5 sekunden meineurl.html zu reloaden

von Elektrikser (Gast)


Lesenswert?

Das stimmt schon. So funktioniert es bei mir ja auch (sie aktualisiert
ca. alle 6s). Allerdings möchte ich die Seite stehen lassen und nur den
Wert immer neu aktualisieren. Dazu müsste ich eine Art dynamische
Webseite machen. Es gibt bestimmt eine Möglichkeit mit Java, PHP oder
Jscript. Da fehlen mir leider die Kenntnisse.

Gruß Elektrikser

von Mark S. (struberg)


Lesenswert?

dann schau dir mal AJAX an (asynchronus javascript and XML)
Ist aber für nen mega32 wahrscheinlich ein wenig zu dicke ;)

von Elektrikser (Gast)


Lesenswert?

Ich arbeite mit einem 128er. Mal sehen, ob das eingebaut werden kann.

von Mark S. (struberg)


Lesenswert?

die einfache Variante wäre natürlich über frames. Dann bräuchtest du nur
den kleinen frame in dem der Wert dargestellt ist zu reloaden.

von Elektrikser (Gast)


Lesenswert?

Dass wäre wahrscheinlich genau das, was ich bräuchte. Wenn ich den
Temperaturwert in einem kleinen Frame anzeigen würde und jedesmal wenn
der Wert sich ändert nur den Frame neu schicken bräuchte, wäre das
schon schöner. Das Geflackere beim Webseiten-Aufbau nervt mich.

von Alexander (Gast)


Lesenswert?

Hi,

ich hab dieses Wochenende auch mal einen Prototypen geaetzt, das
Ergebnis gibts unter http://www.lochraster.org/etherrape . Das ganze
ist 80x100mm gross und ausschliesslich ohne SMD-Teile gebaut, die
SMD-Version layoute ich gerade.

Meine Software kann bisher arp, ip, udp und icmp, weiteres ist
natuerlich geplant.

Gruss,
- Alexander

von Mode (Gast)


Lesenswert?

@Elektrikser

Lad mal bei Rapidshare was hoch, dann siehst du das, was du brauchst
sehr schoen in der Praxis...

von another (Gast)


Lesenswert?

Hallo Alexander!

Ich wollt mal Fragen, ob Du Deine Platinen selber aetzt, oder die in
Auftrag gibst. Falls letzteres, waer ich an einer interessiert (weil
das SMD-Layout ist mir doch nen bisschen futzelig ;-))

von Alexander (Gast)


Lesenswert?

Hi,

Ja, ich habe diese erste Testplatine selber geaetzt und ueberlege
gerade auch, da welche von fertigen zu lassen. Mein Vater hat
dankenswerterweise 20 Jahre Erfahrung im Aetzen und auch das
entsprechende Zubehoer alles da, deshalb dauert das mit Prototypen
meistens nicht lange.

Ob ich mal welche fertigen lasse, weiss ich noch nicht. Erstmal muss
die Software das koennen, was ich will.  Wer sich auch selber eine
aetzen will, kann mir ja eine Mail schreiben und bekommt von mir die
Vorlagen.

- Alexander

von Fabian S. (zero)


Lesenswert?

Hi,

interessiert mich sehr, hab dir auch gleich mal ne Mail geschrieben ;)

von Alexander (Gast)


Lesenswert?

Hi,

Ich hab mal die Schaltung, die ich verwendet habe, unter
http://lochraster.org/etherrape veroeffentlicht. Diese Schaltung tut
bei mir recht gut, aber ueber jegliche Hinweise und Anmerkungen bin ich
dankbar :)

- Alexander

von Alexander (Gast)


Lesenswert?

Hi,

Ich hab grad ein Problem mit dem enc28j60: Ich kann unter bestimmten
Bedingungen (nc <atmel> <tcp-echo-port> < /dev/urandom) einen Zustand
erzeugen, in welchem permanent ein receive error besteht, aber EPKTCNT
= 0 ist und auch ERXXWRPT > ERXRDPT ist:

net: controller interrupt, EIR = 0x01 = r
net: receive error!
RevID: 0x04
Cntrl: ECON1 ECON2 ESTAT  EIR  EIE
0x37 0x80  0x41     0x00 0xDB
MAC  : MACON1  MACON2  MACON3  MACON4  MAC-Address
        0x0D    0x00    0x32    0x00   ACDE48FD0FD0
Rx   : ERXST  ERXND  ERXWRPT ERXRDPT ERXFCON EPKTCNT MAMXFL
       0x0000 0x0FFF  0x001E  0x001D   0xA1    0x00  0x0280
Tx   : ETXST  ETXND  MACLCON1 MACLCON2 MAPHSUP
       0x1000 0x1068   0x0F     0x37     0x10
DMA  : EDMAST EDMAND
       0x0FCC 0x1019

Hat vielleicht jemand eine Idee, wodran das liegen koennte und wie ich
aus diesem Zustand wieder rauskomm?  Es reicht nicht, nach Datenblatt
das RXERIF in EIR per BFC zu resetten, das taucht direkt wieder auf...

grad etwas ratlos,
- Alexander

von Matthias B. (vsn)


Lesenswert?

abo

von Nik B. (nikbamert)


Lesenswert?

hehe ich bin nicht der einzige der so verrückt ist und das alles auf
Lochraster baut! :D Schöne Sache Alexander, aber eine Frage habe ich
noch - und zwar wie du den Magjack dennoch auf das normale Rastermass
bekommen hast, ich habe die Buchse nämlich einfach durch leichtes
umbiegen der Anschlüsse auf die Rückseite gelötet... ;-)
Bei der Software bin ich in etwa so weit wie du, icmp, arp, ip und udp
empfang gehen und im Moment stecke ich bei Tcp leider fest, da ich im
Moment nicht viel Zeit habe aber in meinen Sommerferien gehts dann
sicher weiter :-) Siehe
http://www.nikbamert.com/index.php?seite=elektronik&subsite=udp

Evt. kommst du aus dem Zustand mit einem Hardware Reset wieder
raus...ist vielleicht nicht die feine Methode aber etwas anderes fällt
mir leider nicht gerade ein. Ich habe hier mit meinem ENC auch ein
Problem und zwar muss ich die Schaltung teilweise 10 mal einschalten
bis der Ping endlich klappt, es liegt aber nicht an meiner Software,
die läuft nämlich jedesmal an, ich vermute der enc wird nicht jedesmal
richtig initialisiert, oder aber ich habe dann genau den Zustand den du
hast,ich muss mal den Status auslesen wenn das eintritt.. :P

Nik

von Alexander (Gast)


Lesenswert?

Hi Nik,

soweit ganz nett, dazu ein paar Anmerkungen:

* du verwendest zum Selektieren des SPI-Client nicht den Slave-Select
(SS/PB2) Port des atmega8, das kann zu Problemen fuehren, wenn dieser
Pin freischwebend, als Eingang und ohne Pullup konfiguriert ist.  Hat
mich nen Tag Debuggen gekostet rauszufinden, warum meine SPI
Datentransfers nicht enden (SPI war in den client mode gewechselt...).

* R_bias sollte nicht 2k sondern 2k7 sein (-> Errata)

* der atmel sollte Blockkondensatoren an den Versorgungsanschluessen
haben (100n oder so)

* deine ARP-Implementation ist sehr fehleranfaellig, es reicht nicht
aus einfach nur Source- und Destinationmac zu vertauschen, du pflegst
keinen ARP-Cache usw.

* warum macht ihr alle die Checksummenberechnung im Atmel?  Der
enc28j60 kann das viel fixer (siehe Datenblatt), wobei der Autor des
Datenblatts das Einerkomplement nicht verstanden hat, denn das
Ueberpruefen von Checksummen geht mit dem enc28j60 viel einfacher, als
beschrieben (das hab ich auch schon an Microchip weitergetuetet).


Was benutzt du fuer einen ferrite bead?  Ich hab mal bei Microchip
nachgefragt, was genau die meinen und welchen die verwendet haben...

Soweit,
- Alexander

von Sascha S. (sascha)


Lesenswert?

Hi,

ich versuche mich gerade an der Portierung des Code`s von Nik an den
M16C28.
Momentan hadert es an der Mehrfacheinbindung von der stack.h. Der
Linker beschwert sich über doppelte Definitionen:

Error (ln30): C:\Hew3\ethernet\ethernet\release\enc28j60.r30 :
'_buffer' is multiple defined
Error (ln30): C:\Hew3\ethernet\ethernet\release\enc28j60.r30 :
'_myip' is multiple defined
Error (ln30): C:\Hew3\ethernet\ethernet\release\enc28j60.r30 :
'_mymac' is multiple defined

Wie kann ich sowas verhindern?

Mfg Sascha

von Tillomar (Gast)


Lesenswert?

Moin Sascha,

normalerweise sollte der Compiler bei doppelten Definitionen nur
warnen, solange die Definitionen inhaltlich identisch sind.

Ansonsten ist es üblich, den Inhalt der Header-Files mit

#if defined(_STACK_H__HEADER_)
#define _STACK_H__HEADER_
...
#endif

zu klammern, Nach MISRA soll man sich zwar nicht darauf verlassen, aber
das wird Dich sicher nicht hindern...

Btw,, ich habe hier einen M16C62, den ich gerne mit dem ENC28J60
verheiraten würde; wird Deine Software irgendwann frei verfügbar sein?
Simon ist ja noch nicht so weit.
Ich suche (für den M16C) einen TCP/IP-Stack, der mehrere gleichzeitige
Verbindungen und Sliding Window Buffer beherrscht.

So long,
Tillomar

von Nik B. (nikbamert)


Lesenswert?

Hi Alexander

*Ich hab ihn aber als Ausgang definiert, enc28j60.c, Zeile 197 :-),
sonst geht bei mir nämlich gar nichts mit SPI

*R_bias Bin ich mir nicht ganz sicher, ich dachte falls der falsche
dran ist geht gar nichts(bei den früheren revs warens doch noch 2000
Ohm(?))

*Ja ich muss sagen ich hab mir die ARP Implementierung ein wenig
abgeschaut(bei U. Radig) aber ich verstehe nicht ganz weshalb ich einen
ARP Cache brauche, wenn ich den atmega nur als Server arbeiten lasse,
bzw jeweils nur auf Packete antworten lasse (er versendet selbstätig
noch keine Packete)

*Das mit der Checksumme verstand ich eben nicht ganz, ich hab die
Option im Procyon Treiber mal eingeschaltet - doch dann setzt er mir am
Ende das Packets eine 4 byte lange Checksumme hin, die, so glaube ich,
über das ganze Packet ausgerechnet wird...aber wenn man das irgendwie
anders besser hinkriegt...noch so gerne, das würde mir evt. gerade noch
den Platz einsparen um den minimal Code <2kb zu bringen Udp
bootloader... ;)

Zum ferrite bead: Ich hab den enc mittlerweile mehrfach in Betrieb, und
beide Male ohne, und zwar aus dem Grund weil ich die Microchip Angabe
nicht wirklich verstehe. Ich habe statt der Spule einfach einen Draht
genommen, klappt auch :-)

Die Sache ist eben die: ich habe bei der einen Schaltung hin und wieder
Probleme bis sie anläuft, wenns dann mal läuft ists kein Proble m
mehr(tausende Pings ohne Ausfall). Dann wenns nicht klappt mit dem
starten liegts aber auch nicht bei meiner ARP Implementierung, da der
Computer von dem ich Pinge die Arp noch immer im Cache hat. Die Sache
scheint irgendwo bei der Kommunikation enc<-->atmega zu liegen,
manchmal glaube ich fast, dass der ENC eine startup zeit braucht, oder
vielleicht mein Spannungsregler nicht genügend Saft liefert(beim
einschalten vielleicht nicht...) Aber die Blockkondis werde ich
natürlich einbauen(sobald CSD liefert...)

@Sascha:

Ich dachte zuerst du könntest vielleicht eine main.h anlegen und dort
dann stack.c einbinden, nur müsstest du ja dann auch in allen anderen
files wiederum main.h einbinden wobei man dann wieder beim gleichen
wäre...soo erfahren bin ich in C leider noch nicht, arbeite erst ein
Jahr mit gcc :(

mfg, Nik

von Sascha S. (sascha)


Lesenswert?

@Tillomar
#if defined(_STACK_H__HEADER_)
#define _STACK_H__HEADER_
...
#endif

sollte es nicht heißen
#ifndef _STACK_H
#define _STACK_H
...
#endif            was aber leider nicht hilft.

Sollte der Source fertig werden, ist er natürlich frei. Wenn ich das
erst einmal mit der Mehrfacheinbindung weg kriege.

Mfg Sascha

von Tillomar (Gast)


Lesenswert?

@Sascha:

> sollte es nicht heißen

Ja freilich, war wohl geistig abwesend...

Wenn das wirklich nicht hilft, dann heißt das entweder:
-- irgnedwo wird Dein _STACK_H wieder #undef-ed
-- oder es gibt in unterschiedlichen Headern die gleichen Definitionen;
da hilft dann nur suchen.

Vielleicht hilft es, wenn Du mal ein Cross-Referenz von Deinem
Sourcecode und seinen Includes anlegst; meist sieht man dann recht
schnell, woran es scheitert.

So long,
Tillomar

von Alexander (Gast)


Lesenswert?

Hi Nik,

im Datenblatt auf Seite 7 hast du gelesen, dass der enc28j60 eine
startup-Zeit braucht, und man CLKRDY pollen soll?

R_bias muss nach der Errata 2k7 sein, obs anders auch tut, keine
Ahnung.

Wir reden von verschiedenen Checksummen, du brauchst einmal eine CRC
Checksumme (4 Byte) fuer das ethernet-Packet und einmal eine
Einerkomplement Checksumme fuer IP/ICMP/UDP/TCP usw.  Du redest von
ersterer, ich von letzterer, und der enc28j60 kann beide in Hardware.

Wenn dus ordentlich machen willst, schaue nicht bei Ulrich Radig ab, da
sind unschoene Dinge drin...

- Alexander

von Nik B. (nikbamert)


Lesenswert?

>im Datenblatt auf Seite 7 hast du gelesen,
>dass der enc28j60 eine startup-Zeit braucht,
>und man CLKRDY pollen soll?

Habe ich zwar übersehen, aber die Procyon lib macht das von selbst habe
ich gerade gesehen.

Den 2k7k Widerstand probier ich dann mal aus wenn ich einen finde :-)

Zu den Checksummen(Seite 76) - sehe ich das richtig dass der Enc den
Wert zwar berechnen kann, ihn aber nicht selbst in das Packet
schreibt?

"The EDMACSH and EDMACSL registers will
contain the calculated checksum"
Dann muss man dann ja doch noch einen gewissen Aufwand treiben damit
die an den rechten Ort kommt, bin mir nicht sicher ob es mir das Wert
ist nur um die Sache ein bisschen schneller zu kriegen.

>Wenn dus ordentlich machen willst, schaue nicht bei Ulrich Radig
>ab, da sind unschoene Dinge drin...

Natürlich will ich es ordentlich machen, aber den Bootloader möchte ich
so klein wie möglich haben, damit er vielleicht auch noch in eine 2kb
section reinpasst (im moment noch 4kb, funktioniert aber tadellos)
Das einzige das mich daran hindert, den Code für den Bootloader auf
meine Website zu stellen ist, dass ich auf der anderen Seite ein
VisualBasic Programm habe, es funktioniert zwar ebenfalls wie
gewünscht, man braucht aber eine Runtime und Winsock und und und...
Hab mich schon an winsock in C (lcc compiler) ran gewagt, aber dort
habe ich den Durckblick noch nicht wirklich.

Nik

von Alexander (Gast)


Lesenswert?

Hi Nik,

das ist richtig, die Checksumme landet dann in den beiden Registern.
Zum ueberpruefen, ob die Checksum korrekt ist oder nicht langts
allemal, und das noch in ein Paket reinzuschreiben ist trivial, weil
das Offset ja immer konstant ist.  Ich wage zu behaupten, dass das bei
mir kuerzer ist :)

Die Magjack-Dose hab ich auch durch Bohren der groesseren Loecher und
durch Rumbiegen der kleineren auf die Lochrasterkarte bekommen...

- Alex

von Ssss S. (sssssss)


Lesenswert?

Hi!

Tatsache, der enc kann ja echt selber nen crc berechnen :o
Hab ich irgendwie überlesen... Das vereinfacht das natürlich
enorm/macht es schneller...
Muss ich demnächst mal einbauen :D

Bye, Simon

von Alexander (Gast)


Lesenswert?

Hi Simon,

Du machst _CRC32_ (die Ethernet Checksum) im Atmel?! Huch, weia, das
ist echt gross. Oder meintest du die Einerkomplementsumme? %)

Haettest du mir mal den Source geschickt, dann haett ich dir das schon
frueher gesagt G

- Alex

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.