Exaktes Timing trotz PowerDown und externer Interrupts?

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

Antworten
HMSteve
Beiträge: 194
Registriert: 20.08.2019, 06:23
Hat sich bedankt: 6 Mal
Danksagung erhalten: 26 Mal

Exaktes Timing trotz PowerDown und externer Interrupts?

Beitrag von HMSteve » 20.03.2021, 18:41

Hallo zusammen,

ich sitze an einem Wetterdatensensor (moechte mein ELV-Teil mit neuer Hardware auf Basis des 1284P reanimieren). Ziel ist moeglichst Batteriebetrieb. Software orientiert sich stark an Jérômes Wetterstation, allerdings mit Schlafenlegen in der loop. Dann bringen jedoch die haeufigen Interrupts des Anemometer-Reedkontaktes das Sleep-Timing arg durcheinander, so dass viel zu viele Messages gesendet werden. Erscheint mir (inzwischen) logisch, da man nicht ermitteln kann, wie lange vor WDT-Ablauf ein ext. Interrupt zugeschlagen hat, um das zu korrigieren.

Nun die Frage, bevor ich umsonst einen Uhrenquarz bestelle und den CSTNE wieder von der Platine rupfe: Wird das Timing der Messages wieder deterministisch trotz externer Interrupts, wenn ich auf AskSinRTC umsteige? Konnte leider den Code nicht so weit durchdringen, um sicher zu sein, ob da eine entsprechende Korrektur existiert.

Danke und viele Gruesse,
Stephan

papa
Beiträge: 575
Registriert: 22.05.2018, 10:23
Hat sich bedankt: 6 Mal
Danksagung erhalten: 87 Mal

Re: Exaktes Timing trotz PowerDown und externer Interrupts?

Beitrag von papa » 20.03.2021, 20:50

Das wird wahrscheinlich auch nicht viel bringen, da die ständigen Interrupts die CPU immer wieder aufwecken.
Ich empfehle Dir einen PCF8583P - der kann zählen und wird per I2C ausgelesen. Arduino Unterstützung gint es hier https://bitbucket.org/xoseperez/pcf8583/src/master/
Anfragen zur AskSin++ werden nur im Forum beantwortet

FUEL4EP
Beiträge: 306
Registriert: 01.11.2017, 17:26
Hat sich bedankt: 48 Mal
Danksagung erhalten: 34 Mal

Re: Exaktes Timing trotz PowerDown und externer Interrupts?

Beitrag von FUEL4EP » 20.03.2021, 21:00

.. oder einen ABLIC S35770 24-Bit Binary Counter.

Software gibt es hier https://github.com/FUEL4EP/HomeAutomat ... LIC_S35770
Grüße

Ewald

HMSteve
Beiträge: 194
Registriert: 20.08.2019, 06:23
Hat sich bedankt: 6 Mal
Danksagung erhalten: 26 Mal

Re: Exaktes Timing trotz PowerDown und externer Interrupts?

Beitrag von HMSteve » 20.03.2021, 23:29

Danke fuer Eure Empfehlungen, ein separater Zaehler ist vermutlich wirklich sinnvoll, auch wenn's wieder mal ein PCB Redesign erfordert.

Da die Regenwippe seltener umkippt, wuerde ich die wahrscheinlich weiterhin ueber die Interrupts zaehlen lassen - der Stromverbrauch fuers Aufwachen allein zum Zaehlen ist hier vernachlaessigbar. Wuerde hier die AskSinRTC das gewuenschte erreichen, also keine (nennenswerte) Beinflussung der Clock durch die Interrupts, so dass der Sendetakt des Sensors konstant bleibt?

Viele Gruesse,
Stephan

papa
Beiträge: 575
Registriert: 22.05.2018, 10:23
Hat sich bedankt: 6 Mal
Danksagung erhalten: 87 Mal

Re: Exaktes Timing trotz PowerDown und externer Interrupts?

Beitrag von papa » 21.03.2021, 15:53

mit AskSinRTC kannst Du den Sendetakt ja direkt an den RTC-Timer koppeln. Dann sendetst Du auch immer schön im richtigen Takt. Das geht auch, wenn viele andere Interrupts kommen. Aber die versauen Dir halt den Deep-Sleep, der für Batterie nötig ist.
Anfragen zur AskSin++ werden nur im Forum beantwortet

HMSteve
Beiträge: 194
Registriert: 20.08.2019, 06:23
Hat sich bedankt: 6 Mal
Danksagung erhalten: 26 Mal

Re: Exaktes Timing trotz PowerDown und externer Interrupts?

Beitrag von HMSteve » 21.03.2021, 21:59

papa hat geschrieben:
21.03.2021, 15:53
mit AskSinRTC kannst Du den Sendetakt ja direkt an den RTC-Timer koppeln. Dann sendetst Du auch immer schön im richtigen Takt. Das geht auch, wenn viele andere Interrupts kommen. Aber die versauen Dir halt den Deep-Sleep, der für Batterie nötig ist.
Super, danke. Fand nach einigem Suchen noch einen alten Uhrenquarz und konnte das -erstmal testweise- so umsetzen. :D

Viele Gruesse,
Stephan

HMSteve
Beiträge: 194
Registriert: 20.08.2019, 06:23
Hat sich bedankt: 6 Mal
Danksagung erhalten: 26 Mal

Re: Exaktes Timing trotz PowerDown und externer Interrupts?

Beitrag von HMSteve » 21.03.2021, 22:04

FUEL4EP hat geschrieben:
20.03.2021, 21:00
.. oder einen ABLIC S35770 24-Bit Binary Counter.

Software gibt es hier https://github.com/FUEL4EP/HomeAutomat ... LIC_S35770
Hallo Ewald,

Danke. Vorteil dieses Zaehlers fuer meinen Zweck waere, dass er noch etwas sparsamer als der PCF8583 und sogar der RAM-lose PCF8593 ist. Hast Du mit dem S35770 praktische Erfahrungen mit dem Zaehlen flacher Flanken? Denn was mich im Datenblatt irritiert: Es wird zwar ein Schmitt-Trigger-Eingang hingemalt, aber als maximale Anstiegszeit 300ns angegeben. Das schaffe ich "nicht ganz" mit einem Reedkontakt mit RC-Tiefpass.

Viele Gruesse,
Stephan

FUEL4EP
Beiträge: 306
Registriert: 01.11.2017, 17:26
Hat sich bedankt: 48 Mal
Danksagung erhalten: 34 Mal

Re: Exaktes Timing trotz PowerDown und externer Interrupts?

Beitrag von FUEL4EP » 22.03.2021, 09:43

Hallo Stephan,

ich habe den S35770 Zähler erst seit kurzer Zeit in einer Applikation erfolgreich im Betrieb. Welche Anstiegszeit brauchst Du denn? Ich kann dann eine Messung mit einem Signalgenerator aufsetzen. Kannst Du einen Signalverlauf bereitstellen?

Nachtrag 22. März 2021 11:29 Uhr: Der S35770 zählt ein Dreieckssignal mit 100 kHz, 3.3Vpp, 50% DutyCycle korrekt. 50 kHz gehen auch. 1 MHz auch. 10 kHz auch. Also sind langsame Flanken kein Problem. Die 300 ns scheinen ein Fehler im Datenblatt zu sein. Es liest sich ja auch ziemlich Chinglisch :D
Grüße

Ewald

HMSteve
Beiträge: 194
Registriert: 20.08.2019, 06:23
Hat sich bedankt: 6 Mal
Danksagung erhalten: 26 Mal

Re: Exaktes Timing trotz PowerDown und externer Interrupts?

Beitrag von HMSteve » 22.03.2021, 21:55

Hallo Ewald,

ich habe einen Tiefpass mit 100n/100R vorgesehen, da sollte ich unter 50us bleiben, insofern danke fuer Deinen 10kHz-Versuch, sollte also ohne zusaetzliche Schaltungstechnik klappen. Muss nur dran denken, alles umzudrehen, da der S35770 steigende Flanken zaehlt.

Viele Gruesse,
Stephan

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“