Autor Thema: Alternative zum DS2423 Counter  (Gelesen 142466 mal)

Offline doubh

  • New Member
  • *
  • Beiträge: 21
Antw:Alternative zum DS2423 Counter
« Antwort #555 am: 25 Mai 2016, 16:40:51 »
hallo zusammen.

ich habe eine bug in der firmware entdeckt (und gefixt), der dazu geführt hat, dass manche flanken am eingang nicht gezählt wurden.
der fehler tritt auf, wenn 1-wire kommunikation stattfindet und in diesem moment eine flanke am eingang ansteht.

der fehler liegt im marco EN_OWINT(), dass in der ISR PIN_INT() aufgerufen wird.
1) PIN_INT (_VECTOR(1)) hat die höchste prio der aktiven IRQ
2) wenn der change interrupt PCINT0_vect auftritt, während gerade PIN_INT ausgeführt wird, ist das interrupt flag PCIF0 gesetzt
3) wird nun EN_OWINT() ausgeführt, wird mit dieser instruktion GIFR|=(1<<INTF0) das PCIF0 flag gelöscht und der pin change IRQ ist verloren
4) IRQ verloren -> flanke verloren -> counter falsch


fix:
zum löschen von INTF0 nur das entsprechende bit setzen (siehe datenblatt)
zudem sollte das flag vor dem einschalten des interrupts gelöscht werden und nicht danach:
#define EN_OWINT()               {GIFR=(1<<INTF0);GIMSK|=(1<<INT0);}          // enable interrupt


des weiteren würde ich generell nested interrupts vermeiden und entsprechend zu beginn jeder ISR cli() und am ende sei() aufrufen.
es kann z.b. auch ein problem geben, wenn in der timer ISR counterpack.counter = Counter[0]; ausgeführt wird und im selben moment der pin change interrupt auftritt.
da die 16-bit counter zuweisung nicht atomar abläuft, kann sie unterbrochen werden. ist bereits ein byte zugewiesen und beim inkrementieren des counters in der pin change ISR gibt es einen byte überlauf, stimmt die zuweisung nicht mehr.
bsp:
- Counter[0] ist gerade 0x00FF
- erstes byte in timer ISR ist zugewiesen, z.B. high-byte 0x00
- in diesem moment steht eine flanke an und der pin change ISR unterbricht die timer ISR (wg höherer prio)
- Counter[0] wird 0x0100
- timer ISR läuft weiter und weist das zweite byte zu, das low-byte ist aber nun 0x00
--> ergebnis in counterpack.counter: 0x0000

--> daher ist es sicherer hier keine nested interrupts zu verwenden.


gruß,
doubh

Offline g.finder

  • New Member
  • *
  • Beiträge: 17
Antw:Alternative zum DS2423 Counter
« Antwort #556 am: 12 Juni 2016, 15:29:52 »
Ist der Quellcode zum Tiny mit SRF02 irgendwo zu finden?

Gruß, Gerd

Offline Raven

  • Full Member
  • ***
  • Beiträge: 247
Antw:Alternative zum DS2423 Counter
« Antwort #557 am: 04 September 2016, 20:24:02 »
Ist der Quellcode zum Tiny mit SRF02 irgendwo zu finden?

Gruß, Gerd

ich wühle mich auch gerade durch...hier schon mal nachgelesen`?

https://forum.fhem.de/index.php/topic,22431.msg158105.html#msg158105
http://www.fhemwiki.de/wiki/1-Wire_Emulation_per_ATTiny
Cubietruck-Prod: HM-LAN, Heizung, Rolläden, Schalter, Viessmann (optolink)
Cubietruck-DEV:
Fritzbox 7490

Offline g.finder

  • New Member
  • *
  • Beiträge: 17
Antw:Alternative zum DS2423 Counter
« Antwort #558 am: 05 September 2016, 09:24:38 »
Danke Raven

Gerd

Offline pcjogi

  • Jr. Member
  • **
  • Beiträge: 72
Antw:Alternative zum DS2423 Counter
« Antwort #559 am: 25 September 2016, 19:53:41 »
Hallo zusammen,

ich bräuchte für meine Gaszähler noch einen DS2423 Counter Ersatz. Baut hier noch jemand einen (bzw. ich würde 2 nehmen).

Ich habe werde ausreichende Lötkenntnisse geschweige denn kann ich Leiterplatinen etc. fertigen (lassen). Alles kann man lerne, aber ich muss nicht alles können, wenn das jemand besser kann.

Vielen Dank

Jürgen
Haupt-Fhem 5.8 auf Debian 8, Sub-Fhem (Homematic, FS20 und Homeeasy) 5.8 auf RasPi, Sub-Fhem (Heizungssteuerung ) 5.8 auf RasPi : Homematic,FS20,Homeeasy,EPGM, TRX, OneWire

Offline gelbwichtel

  • Jr. Member
  • **
  • Beiträge: 78
Antw:Alternative zum DS2423 Counter
« Antwort #560 am: 20 März 2017, 20:57:22 »
Hi,
ich denke ich fange hier mal an zu fragen, obwohl sich in diesem Thread ja schon lange nichts mehr bewegt hat.
Hat jemand dieses Interface mal versucht mit EspEasy zu koppeln und kann vielleicht posten wie es zu definieren ist ?

Danke vorab
cu
gelbwichtel

Offline Tweak

  • Full Member
  • ***
  • Beiträge: 155
Antw:Alternative zum DS2423 Counter
« Antwort #561 am: 28 September 2017, 11:27:05 »
Hallo,
wollte mich erkundigen ob vielleicht jemand noch eine Platine für den Counter über hat. Bzw ob Dougie noch welche produzieren lässt?

Danke!
Lg

Offline AndiL

  • Jr. Member
  • **
  • Beiträge: 87
Antw:Alternative zum DS2423 Counter
« Antwort #562 am: 28 September 2017, 12:05:11 »
Hallo,
Schau mal hier:
https://www.tm3d.de/shop/kategorien/bausaetze
Am Seitenende ist ein DS2423 1-​Wire-​Simulator mit vier Zählern.
Werkelt bei mir schon seit längerem tadellos.....

Gruß
Andi
FHEM 5.7 auf RasPi B+
***********************************
FB 7390, FS20, HM mit USB-CFG, 1-wire (DS1820 und DS2408), Buderus KM200 mit GB 152, Phillips HUE und Bastelkram....

Offline ChrisKoh

  • New Member
  • *
  • Beiträge: 38
Antw:Alternative zum DS2423 Counter
« Antwort #563 am: 09 November 2017, 23:20:37 »
Hallo,
Schau mal hier:
https://www.tm3d.de/shop/kategorien/bausaetze
Am Seitenende ist ein DS2423 1-​Wire-​Simulator mit vier Zählern.
Werkelt bei mir schon seit längerem tadellos.....

Gruß
Andi

Den habe ich seit heute bei mir auf dem Tisch liegen. Leider habe ich ihn noch nicht zum laufen gebracht.
Wie hast du den angeschlossenen?
Ich möchte damit die Zisternen Messung per Ultraschall machen.
FHEM @ Raspberry 2 mit stapelbarem CC1101; USB CUL für HM; HomeBridge;
MAX-Cube(culfw@ARM) für HM
FS20: fs20du, fs20di, fs20s4a, fs20st, fs20tfk
HM: HM-Sec-RHS, HM-LC-Bl1PBU-FM
LD382; Harmony Hub, Philips HUE

Offline Franz Tenbrock

  • Hero Member
  • *****
  • Beiträge: 1306
  • trotz 1000 Beiträgen immer noch Anfänger :-(
Antw:Alternative zum DS2423 Counter
« Antwort #564 am: 10 November 2017, 08:11:51 »
Hallo
ich hatte den Counter von Dougie 2 Jahre im Einsatz, durch die Feuchte im Dom ist allerdings das Teil nun defekt, schade.
Problem ist sicher auch der US Kopf, ein feuchteunempfindliches Teil wie bei einem Auto wäre da sicher besser geeignet. Bin aber nicht in der Lage das zu implementieren.
Damals hatte ich ja einen Wiki Beitrag verfasst...
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Offline wfelkel

  • Newbie
  • Beiträge: 1
Antw:Alternative zum DS2423 Counter
« Antwort #565 am: 22 November 2017, 08:59:04 »
Hallo,
Ich habe auch Interesse an mehreren Platinen mit Prog Tiny's
Bitte Nachricht bezüglich Bestellablauf und Preis
Grüße
Wolfgang

 

decade-submarginal