Forum: Mikrocontroller und Digitale Elektronik AVR NET IO mit OpenMCP - Logproblem


von Timo E. (dubbdidu)


Lesenswert?

Hallo zusammen,

(mein erster Beitrag hier)

Zum Problem;
Ich versuche jetzt seit bummelig 1 Woche das AVR NET IO an mein 
Firmennetzwerk anzubinden. Gestern ist es mir gelungen, das Board 
anzupingen, jedoch erst nach dem flashen.

Klau ich dem Board nun die Spannung und starte es neu, kann ich es nicht 
mehr anpingen.
Ich habe mir das ganze mal mit HTerm angeguckt.
Nach dem Flashen ist das Board innerhalb von 2 Sek im Netz registriert 
und bereit.
Nach einem Reset liegt das Problem scheinbar im "Discover gesendet".
10x bekomme ich die Nachricht bis dann der Timeout alles abbricht und 
die default Werte angenommen werden. Aber auch mit den Sollwerten die 
ich als Default einstelle kann ich ihn dann nicht erreichen.

Sprich das Switch was dazwischen hängt gibt den Port nicht frei.

Meine Vermutung ist, dass das Programm nicht korrekt läuft. Bzw sich 
irgendwas im EEPROM ablegt, was nach einem Neustart nicht da sein darf.

Ich steig nicht so recht durch die ganzen Funktionen und Routinen durch 
und hoffe nun auf eure Hilfe.

Gruß Timo

Edit: Ich glaube ich habe hier schon einen ähnlichen Beitrag gefunden, 
dem meiner Meinung nach aber ein anderes Problem zugrunde lag.

von dunno.. (Gast)


Lesenswert?

also, du hast ein net io ohne addon, und betreibst darauf open mcp..?

poste doch bitte mal den "boot" log von der seriellen schnittstelle..

nach allgemeinen erfahrungsberichten hat es sich bewährt, dem 
ethernetcontroller die fehlenden stützkondensatoren -100nF- zu 
spendieren..

aber erstmal abwarten, wie das log aussieht..

mfg

von Timo E. (dubbdidu)


Angehängte Dateien:

Lesenswert?

Hey,

danke für die schnelle Antwort. Hier die Log Files.
Die fehlenden Ablockkondensatoren könnten das "Neubooten" beim "Log-nach 
Reset" erklären.

Gruß Timo

von dunno.. (Gast)


Lesenswert?

zuerstmal fällt mir auf, das OpenMCP offensichtlich noch die SD karte 
sucht, also hast du die config nicht richtig angepasst, hast wohl noch 
(wie die FW aus dem netz kommt) das ADDON eingestellt.. solltest du mal 
ändern.. ;)

ich hab übrigens bei meinem kein DHCP an, kann daher zu DEM problem 
nichts sagen.. kannst es ja testweise mal abschalten..?

mfg

von Timo E. (dubbdidu)


Lesenswert?

Also, ich habe die Config schon um einiges angepasst, sprich nicht ausm 
Netz einfach übernommen. Unter anderem musste ich die MAC Adresse 
einstellen, weil sonst gar nix laufen würde. Das Intranet hier im 
Betrieb lässt das Board sonst gar nicht zu.
Im Makefile ist das Addon ausgeschaltet, aber in der Config war die MMC 
noch aktiv. Hab ich jetzt geändert.

Einfach so DHCP ausschalten, würde - glaube ich - verhindern, dass das 
Switch den Port freigibt. Weil ein "Anmeldung" am selbigen dadurch nicht 
stattfindet. Oder sendet das Programm trotzdem ein "Ping" zum Switch?

Mit der Standard-Firmware vom AVR Net IO musste ich den Switchport auf 
komplett Dumm stellen, damit ich überhaupt drauf pingen konnte. Weil 
keine Anfrage vom µC kam und das Switch sonst dicht gemacht hätte. ;)

Aber ich probier trotzdem mal, ob ich es was bringt das DHCP 
abzuschalten.

Danke dir schonmal^^

von Timo E. (dubbdidu)


Lesenswert?

Nächster Tiefschlag...

Nach dem Deaktivieren des DHCP (und MMC) und neu flashen, hat es wieder 
funktioniert. Aber dann nach dem Reset (Unterbrechung der 
Spannungsversorgung) passiert GAR NIX mehr. Nicht mal die Ausgabe über 
UART scheint anzulaufen, denn ich kann nix mehr mit HTerm empfangen.
Anpingen ist auch nicht mehr möglich.

Kann mir einer genau sagen, was im EEPROM gespeichert wird und wie mit 
einer vorhanden Config verfahren wird? Kann man das evtl umgehen, so 
dass das EEPROM nach einem Neustart immer keine Config enthält, sodass 
eine neu erstellt werden muss. Mit Berücksichtigung der Schreibzyklen.

von Dirk B. (sharandac)


Lesenswert?

Salut,

das ganze klingt irgendwie nach einem Hardwareproblem. Hast du die Fuses 
eingestellt die im makefile hinterlegt sind? Einige switches wie z.b. 
die von Cisco sind mehr als hinderlich beim netio, die brauchen zu lange 
bis sie den Port richtig freigeben.
Die Config im eeprom kannst du dir per Webinterface unter System ansehen 
oder per Telnet mit
1
eemem print

Du kannst den Configspeicher auch schreibschützen per Telnet mit
1
eemem protect

CA sharan

von Timo E. (dubbdidu)


Lesenswert?

Update:
Ich habe jetzt mal einfach weiter rumprobiert ohne große Erfolge. Vor 
ein paar Minuten habe ich einfach mal stur versucht die Website 
aufzurufen und war erstaunt, dass ich diese erreichen konnte. Hatte 
gedacht die HTML Dateien werden nur auf die MMC geladen, aber ok^^ umso 
besser für mich.

Dann habe ich den alten Thread, von dem ich vorhin sprach ("Die andere 
Firmware vor AVR NET IO"). Dort hatte Karl das gleiche Problem. Und Dirk 
hatte ihm geraten mal den Haken bei "DHCP on" zu setzen.
Habe ich gemacht und tada es läuft. Auch nach einem Stromklau, kann ich 
den µC erreichen. Ich habe zwar kein DHCP (laut HTerm auf jeden Fall) 
komme aber durch die Defaultwerte trotzdem auf die Seite.

Aber die Frage ist nun, kann mir jmd sagen warum der Haken nach einem 
Flashen und einloggen nicht mehr gesetzt ist? Weil kein Eintrag aufm 
EEPROM vorhanden ist?
Aber dann versteh ich nicht, warum einen DHCP-Error erhalte, obwohl der 
Haken laut Website gesetzt ist und der Controller schon einmal 
eingeloggt war?!

Gruß Timo

von Timo E. (dubbdidu)


Lesenswert?

Hi Dirk,

ja die Fuses habe ich nicht verändert. Dürften dann also so sein, wie du 
sie im Makefile eingetragen hast.
Ich habe jetzt mal mit Telnet den Protect reingehauen.
1
  -> Config ist 2035 bytes gross, 166 byte werden benutzt. Offset 13
2
3
DHCP=on
4
IP=131.169.39.110
5
MASK=255.255.255.0
6
GATE=131.169.39.16
7
DNS=131.169.40.200
8
MAC=00:22:f9:01:82:2f
9
NTP=on
10
NTPSERVER=time.fu-berlin.de
11
UTCZONE=0
12
WRITE_PROTECT=ON

Allerdings sagt HTerm mir nach einem Neustart wieder das DHCP failed. 
Dennoch komme ich auf die Website.
1
OpenMCP ...<\r><\n>
2
UART Initialisiert<\r><\n>
3
STDOUT Initialisiert<\r><\n>
4
CLOCK Initialisiert<\r><\n>
5
CONFIG gefunden<\r><\n>
6
CONFIG initialisiert (Pos: 0, Len: 2035, Offset: 13)<\r><\n>
7
Config Initialisiert<\r><\n>
8
EXTINT Initialisiert<\r><\n>
9
PCINT Initialisiert<\r><\n>
10
GPIO Initialisiert<\r><\n>
11
ADC Initialisiert<\r><\n>
12
SHELL Initialisiert<\r><\n>
13
THREAD Initialisiert<\r><\n>
14
ENC28j60 (Rev.: 6) initialisiert ( HW-Add: 00:22:f9:01:82:2f )<\r><\n>
15
 Fullduplex: Link ready<\r><\n>
16
-+-> ARP initialisiert<\r><\n>
17
 |-> UDP (Tornado-engine) initialisiert<\r><\n>
18
 |-> TCP (Hurrican-engine) initialisiert<\r><\n>
19
 |-> Versuche DHCP-Config zu holen. <\r><\n>
20
DHCP-Client: Erzeuge Socket<\r><\n>
21
<\r><\n>
22
DHCP-Client: DISCOVER ->Discover gesendet<\r><\n>
23
Discover gesendet<\r><\n>
24
Discover gesendet<\r><\n>
25
Discover gesendet<\r><\n>
26
Discover gesendet<\r><\n>
27
Discover gesendet<\r><\n>
28
Discover gesendet<\r><\n>
29
Discover gesendet<\r><\n>
30
Discover gesendet<\r><\n>
31
Discover gesendet<\r><\n>
32
 ERROR -> Default Config<\r><\n>
33
DHCP-Config Fehlgeschlagen<\r><\n>
34
 |   IP     : 131.169.39.110<\r><\n>
35
 |   Netmask: 255.255.255.0<\r><\n>
36
 |   Gateway: 131.169.39.16<\r><\n>
37
 |   DNS    : 131.169.40.200<\r><\n>
38
 |-> NTP-Server Zeit aktualisieren: Zeit: 15:30:04.52<\r><\n>
39
HTTP-Server Port 80.<\r><\n>
40
Telnet-Server Port 23.<\r><\n>

Gruß

BTW: Ein super Projekt hast du dir da zusammengeschrieben^^ ;) Daumen 
hoch. Gut durchdacht und gearbeitet. Weiter so ;)

von Dirk B. (sharandac)


Lesenswert?

Ja, im Prinzip dürfe das Verhalten wie so wie es jetzt ist gewünscht 
sein. Es ist ja wie du sagt kein DHCP vorhanden, also endlose Versuche 
:-). Nachdem diese gescheitert sind nimmt er die config die du 
hinterlegt hast. Eigentlich solltest du das DHCP jetzt ausschalten 
können und er nimmt gleich die von dir hinterlegte IP-config 
(Writeprotect ausschalten nicht vergessen).
Die IP-config im der XXX.config.h ist für das Fall das keine config im 
EEprom hinterlegt ist und er keine IP per DHCP bekommt, also beim ersten 
starten.

CA Sharan

von Timo E. (dubbdidu)


Lesenswert?

Es ist halbwegs gewünscht. Mein Ursprungsproblem war ja, dass sich das 
Board nicht anpingen lies, sobald die Configdatei im EEPROM mit Daten 
gefüllt würde.
Die IP wird hier im Netz statisch zugeordnet. Sprich ich bekomme mit dem 
Board immer die SELBE IP vom Server zugewiesen. Dadurch kann ich in die 
Defaultwerte diese Daten eingeben. War halt komisch, dass es nur bei 
DHCP-Erfolg ansprechbar war.

Ich teste das nächste Woche mal aus, ob sich das Board jetzt auf einmal 
doch anpingen lässt.

Danke dir, hast mir unheimlich weitergeholfen und ich kann schön 
"entspannt" ins Wochenende^^

Schönes Wochenende euch
Gruß Timo

P.S: Kannst mich ja vll bei Gelegenheit mal bei ICQ zulassen :P
      --> 301 002 184

von Dirk B. (sharandac)


Lesenswert?

ACK !

von Timo E. (dubbdidu)


Lesenswert?

Soo, hallo zusammen,

um diesen Beitrag noch einmal abzuschließen:
Ich habe es gerade noch einmal genauso versucht, wie du es mir geraten 
hast. Und komisch komisch alles funktioniert so, wie es soll. Merkwürdig 
nur, dass es mir vorher nicht gelungen ist. Aber gut, ich will mich 
nicht beschweren, denn jetzt läufts ja^^

Also danke für die Hilfe. Wird bestimmt bald wieder irgendein Problem 
auftauchen, (nicht zwangsläufig zum Webserverprojekt) bei dem ich gerne 
eure Hilfe hätte ;)

Gruß Timo

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.