Forum: Mikrocontroller und Digitale Elektronik AVR Netio Ethersex Atmege1284p Webserver Problem


von Bodo B. (gelbwichtel)


Lesenswert?

Hallo,
nachdem ich mich jetzt den ganzen Tag diverse Konfigurationen 
ausgetestet und das Problem minimiert habe, muss ich euch mal um Hilfe 
bitten. Ich weiß nicht mehr weiter.

Mein Problem: Ich setze seit Jahren auf einem NetIO Ehersex ein, um ca. 
20 1W Temperatursensoren und Ein-Ausgänge in FHEM (auf Raspberry) 
auszuwerten. Unter anderem überwache ich die digitalen Ports und steuere 
über ECMDSend den Raspi mit FHEM an. Mit dem Atmega32 gab es keine 
Probleme. Nach Umsteigen auf den m1284p stellt sich jetzt Folgendes dar:
 - Sobald ich in Ethersex unter Applications wie gewohnt "Watch IO 
changes (and react) aktiviere, ist der NETIO nicht mehr anzupingen, 
somit läuft auch der WEBServer nicht mehr.
 - Deaktiviere ich diese Option, so geht ping durch, der WEB-Server 
läuft und die Sensoren können ausgelesen werden
 - Unter ECMD ist "Send via TCP" aktviert
 - Die Fuses habe ich wie folgt gesetzt:
   -U lfuse:w:0xff:m -U hfuse:w:0x99:m -U efuse:w:0xfc:m bzw.
   -U lfuse:w:0xff:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m

Vielleicht hat jemand noch einen Ti, ansonsten werde ich mich wohl 
wieder mit dem viel zu kleinen ATMEGA32 rumquälen müssen.

Vielen Dank vorab

von c-hater (Gast)


Lesenswert?

Bodo B. schrieb:

> Vielleicht hat jemand noch einen Ti, ansonsten werde ich mich wohl
> wieder mit dem viel zu kleinen ATMEGA32 rumquälen müssen.

Du könntest den Fehler suchen, der das beobachtete Fehlverhalten 
bewirkt. So würde ICH es machen. Ich allerdings kann auch tatsächlich 
selber programmieren...

Und zufällig habe ich auch Erfahrung mit dem Ethersex-Code auf einem 
Mega1284P und kann dir deshalb sagen, dass dieser selber grundsätzlich 
erstmal keinerlei Probleme damit hat, jedenfalls nicht in allem, was 
irgendwie mit den Funktionalitäten zu tun hat, die ein generischer 
Webserver benötigt.

Sprich: der Bug liegt mit an Sicherheit grenzender Wahrscheinlichkeit 
irgendwo in dem Teil, den du selber konfiguriert oder programmiert (oder 
wahrscheinlicher: aus ungeeigneter Quelle mit Ethersex zusammenkopiert) 
hast.

Vermutlich engt das den Suchraum doch ganz erheblich ein...

von Bodo B. (gelbwichtel)


Lesenswert?

Hallo C-Hater,
Danke für deine Antwort.
Es liegt am NetIO selbst oder am enc28j60, muss ich noch genauer 
checken. Bin mal vom Testboard auf das Produktivboard gewechselt, danach 
war der NetIO ansprechbar.

Aber hast du noch einen Tip für mich, wie ich mit Folgendem weiterkomme?

Folgendes Settings:
  (AVR) Target Architecture
  (ATmega1284p) Target MCU
  (16000000) MCU frequency
  (Netio) Hardware/Periphery Class

  (Full-featured) I/O abstraction model (Port I/O)

  [*] ECMD (Ethersex Command) support  --->

      [*] TCP/Telnet
          (2701)  TCP Port
      --- Generate ECMD commands
      [*]   Send via TCP
      [-]   Send via UDP

  [*] Watch IO changes (and react)  --->

In der watchcat steht folgendes drin:

ECMDTCP(PA4, RISING, 
192.168.178.221,{portChanged2('NETIO02','4','off','1')}\n\n)
ECMDTCP(PA4, FALLING, 
192.168.178.221,{portChanged2('NETIO02','4','on','1')}\n\n)

Das Kommando kann ich per nc schicken

echo "{portChanged2('NETIO02','4','off','1')}"  | nc 192.168.178.221 
7072 -q 1  2>/dev/null

und FHem reagiert darauf.

Wenn ich den ADC Port von Hi of Low ziehe und dann wieder auf Hi, so 
sehe ich die Zustandänderung im Browser.

Aber das ECMDTCP-Kommando wird nicht abgesetzt.

Hab ich hier noch einen Konfigurationsfehler ? Wie kann ich das weiter 
untersuchen ?

LG
Bodo

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.