Forum: Mikrocontroller und Digitale Elektronik Ethersex Webserver erkennt keine One-Wire sensoren


von Web-Moritz (Gast)


Lesenswert?

Hallo Leute,

Ich habe heute erfolgreich die ethersex Firmware (Mit Webserver, und 
One-Wire aktiviert) auf meinen Atmega644 geflasht und den in mein 
AVR-Net-IO gesteckt. Jetzt kann ich erfolgreich über die Weboberfläche 
die Relaiskarte schalten, allerdings erkennt der Webserver den 
angeschlossenen 1-Wire Sensor (parasitären modus angeschlossen) nicht. 
Pins stimmen auch alle und theoretisch müsste alles gehen. Ich kann aber 
die Temperatursensoren nicht in der Liste oder in der Grafik des 
Webservers sehen...

Was kann ich da machen?

Ich habe was von ECMD-befehlen gehört, allerdings wenn ich 1w list mache 
sagt er nur OK und mehr passiert nicht.

Könntet ihr mir vielleicht helfen?

MFG Moritz

von Web-Moritz (Gast)


Lesenswert?

Was ist eigentlich der unterschied zwischen parasitären modus und 
normalen modus? Habe beide ausprobiert, keiner geht.

Gibt es da nur den unterschied das das eine 2 Leiter hat und nur bis 
+85°C stabil läuft und der normale modus 3 Drähte und dafür bis 150°C ??

MFG

von 1Wire (Gast)


Lesenswert?

Web-Moritz schrieb:
> Was ist eigentlich der unterschied zwischen parasitären modus und
> normalen modus? Habe beide ausprobiert, keiner geht.

Parasitär = bezieht seine Betriebsspannung wir ein Parasit aus der 
Datenleitung. Wärend einer Messung wird ein Strong-Pullup benötigt. Kein 
Polling zur Ermittlung des Endes der Messung möglich.

Normal = bezieht seine Betriebsspannung über einen eigenen Pin. Das ist 
(meiner Ansicht nach) die stabilere Betriebsart. Polling der Bauteile 
ist möglich. Die Kommunikation mit anderen Devices wärend einer Messung 
ist möglich.

von dunno.. (Gast)


Lesenswert?

hast du den pullup von datenleitung auf vcc eingebaut, wenn du nicht im 
parasitären modus testest?

von Web-Moritz (Gast)


Lesenswert?

Ja genau wie es hier beschreiben wurde, 
http://ethersex.de/index.php/Dallas_1-wire_Bus bei beiden versuchen 4,7K 
mit eingebaut...
die sensoren kommen aber nicht auf die weboberfläche...

MFG

von Christian (Gast)


Lesenswert?

Hallo!

Ich habe genau das gleiche Problem. An der Hardware kann es nicht liegen 
stecke ich einen ATMega32 in den Sockel (Pollin AVR Net IO) funktiert 
onewire tausche ich gegen den ATMega 644 funktioniert onewire nicht mehr 
(tausche ich wieder zurück zum 32er läuft's wieder...).
Ich habe jetzt schon sämtliche Fuses Konfigurationen die ich im Netz 
finden konnte durch probiert - keine Besserung.
Gibt es evtl. einen Bug in der ethersex Software speziell für den 644?
Zweite Frage: Das Schalten der Ausgänge (Konfiguriert als NamedPins) 
dauert immer einige Sekunden woran könnte diese Zeitverzögerung liegen?

Viele Grüße u. schönes Wochenende
Christian

von Johnny (Gast)


Lesenswert?

Hi,

da kann ich in die gleiche Kerbe schlagen. Auch bei mir funktioniert 
ethersex mit ATMEGA 644 auf dem AVR-NET-IO von Pollin mit Ausnahme der 
1-Wire-Sensoren.
Hardware hab ich überprüft, allerdings mit einem ATMEGA32 und einer 
Testsoftware die nur die Temperatur aus den Sensoren liest und per 
serieller Schnittstelle ausgibt.
Bei ethersex hab ich einen ATMEGA 644 eingesetzt. Der Hinweis mit dem 
ATMEGA 32 ist gut, das werde ich bei nächster Gelegenheit mal probieren. 
Bisher hatte ich immer nur den ATMEAG644 für ethersex verwendet.

von Johnny (Gast)


Lesenswert?

Nachtrag:

Ich hab gerade mal die Datenblätter des ATMEGA32 mit dem ATMEGA644 
verglichen. Der ATMEGA644 hat anders als der ATMEAG32 die Funktion
"Interrupt on Pin-Change". Wenn die Funktion aktiviert ist kommt es beim
Pegel- bzw. Flankenwechsel am 1-Wire-PIN jedesmal zu einem Interrupt.
Das wäre eine Erklärung warum 1-Wire mit dem ATMEGA 644  nicht 
funktioniert,
mit dem ATMEGA 32 jedoch schon! (Die Interrupts bringen das Timing
für den 1-Wire-Port durcheinander).
Jetzt muss ich nur noch herausfinden, wie ich die Interrupst beim 
"Pin-Change" ausschalten kann - sind die per default aktiviert?
Oder ist das ein Einstellungsproblem mit den Fuses ??

bye
            Johnny

von raketenfred (Gast)


Lesenswert?

Hi,

wenn du die Pins flott schalten willst, dann nicht über die Oberfläche 
vom Webserver, sondern via ECMD, ECMD hat da fast kaum Latenzen

von Johnny (Gast)


Lesenswert?

Lösung (zumindest bei meinem Problem):

Nach ein paar Versuchen hab ich jetzt eine Lösung für mein Problem 
gefundem:

Die gleiche SW konnte auf dem ATMEGA32 die 1-wire DS1820 lesen, auf dem
ATMEGA644 hat es nicht geklappt. Ist auch vermutlich ein Timing-Problem,
lag aber nicht an igrendwelchen Interrupts sondern an der Einstellung 
der Fuses!

Der ATMEGA644 war korrekt auf 16MHz externen Quarz eingestellt, aber
mit einem Teiler von 8! Nachdem ich lfuse auf FF eingestellt hatte,
kann auch der ATMEGA644 die 1-wire-Sensoren erkennen.

Bei meinem AVR-NET-IO mit dem ATMEGA644 und einem externen 16MHz Quarz
verwende ich folgende Einstellungen der Fuses (Parameter für avrdude):

-U lfuse:w:0xff:m -U hfuse:w:0x99:m -U efuse:w:0xfc:m

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.