AskSin++ Library

Begonnen von papa, 08 September 2016, 11:11:25

Vorheriges Thema - Nächstes Thema

papa

Cool. Mal schaun, ob man das noch irgendwie über die Templateargumente umschaltbar machen kann.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Wzut

Zitat von: papa am 27 Februar 2018, 08:11:01
Wenn Du nun einen Qurz bestücken willst, müssen da noch die beiden Lastkondensatoren gegen Masse bestückt werden.
Ich habe zu diesem Thema die letzte Stunde einiges gelesen, aber so richtig schlau bin ich leider noch nicht.
Kommt der 32kHz Uhrenquarz an XTAL1 & XTAL2 und wie groß müssen die beiden Kondesnsatoren sein ?
Ich habe im Netz so einige Varianten gefunden, u.A. war der Quarz ohne Kondensatoren an zwei anderen Pins, da an XTAL1/2 ein anderer Quarz war.
Die verwendeten Kondensatoren in diversen Schaltungen gingen von 7pF bis 33pF  ... :(
Müssen die Fuse Bits angepasst werden wenn z.Z der interne 8Mhz Takt verwendet wird ?       
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Tom Major

Zitat von: Wzut am 28 April 2018, 18:49:34
Ich habe zu diesem Thema die letzte Stunde einiges gelesen, aber so richtig schlau bin ich leider noch nicht.
Kommt der 32kHz Uhrenquarz an XTAL1 & XTAL2 und wie groß müssen die beiden Kondesnsatoren sein ?
Ich habe im Netz so einige Varianten gefunden, u.A. war der Quarz ohne Kondensatoren an zwei anderen Pins, da an XTAL1/2 ein anderer Quarz war.
Die verwendeten Kondensatoren in diversen Schaltungen gingen von 7pF bis 33pF  ... :(

Das hängt u.a. von der load capacitance des verwendeten 32 kHz Quarzes ab. Laut Atmel application note berechnen sich die nötigen C so:
Ce = 2Cl - Cs -Ci
e extern, l load, s stray, i intern

Sehr häufig findet man 32kHz Quarze mit 12,5 pF Cload, z.B. verwende ich diese
http://de.farnell.com/abracon/ab26t-32-768khz/crystal-32-768khz-12-5pf-cylinder/dp/2467704
Damit würde man auf ca. 13pF Cextern kommen (25-6-6 = 13), Cstray hängt vom Layout ab und ist geschätzt.

Bei einem Quarz mit 6 pF Cload braucht man keine Cextern (12-6-6 = 0).
http://de.farnell.com/citizen-finetech-miyota/cfs206-32-768kdzb-ub/quarz-uhr-32-768khz-zylinder-6pf/dp/1457085

Sicher wird der AVR eine Fehlanpassung der C in gewissen Grenzen tolerieren und der OSC trotzdem schwingen..
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

Tom Major

#813
sehe gerade dass noch 2 andere Fragen im Text waren,

ZitatIch habe im Netz so einige Varianten gefunden, u.A. war der Quarz ohne Kondensatoren an zwei anderen Pins, da an XTAL1/2 ein anderer Quarz war.
Müssen die Fuse Bits angepasst werden wenn z.Z der interne 8Mhz Takt verwendet wird ?   

Es gibt AVRs wo man noch einen Uhrenquarz als Timerquelle an die TOSC pins anschließen kann, und zwar unabhängig vom Hauptquarz. Das geht z.B. beim ATmega128.
Der ATmega328 hat zwar auch die TOSC pins, aber die liegen halt genau auf XTAL, so dass bei dem 2 Quarze parallel nicht gehen.

Wenn die Fuses z.B. auf 8MHz externer Quarz konfiguriert sind (bei einem gekauften Arduino Pro Mini für 3,3V z.B.) muss man diese natürlich ändern wenn man auf internen 8MHz RC OSC umsteigen will.

Hoffe das hilft,
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

Wzut

@Tom Major , danke für die ausführliche Erklärung ! Ich denke jetzt habe ich es gerafft, vor allem das bei den Quarzen auch ein pF Wert vorhanden ist.
Ich hatte mir den 32kHz Quarz bei Pollin rausgesucht , auch dieser hat wie bei deinen von Farnell 12,5 pF https://www.pollin.de/p/quarz-32-768-khz-230138
Hintergrund : Ich habe mir gestern den HM-WDS10-TH-O Sketch vorgenommen und diesen mangels Quarz auf dein UNISENSOR Beispiel umgeschrieben.
Das Timing ist damit nicht supergenau, aber für meinen Anwendungsfall ( Öltank Füllstand Messung mit US-100 ca. einmal pro Stunde ) völlig ausreichend. 

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

jp112sdl

Zitat von: Wzut am 29 April 2018, 08:22:29
Ich habe mir gestern den HM-WDS10-TH-O Sketch vorgenommen und diesen mangels Quarz auf dein UNISENSOR Beispiel umgeschrieben.

Ich habe genau aus diesem Grund beim HM-WDS10-TH-O auch nur mit Suchen/Ersetzen aus "rtc" ein "sysclock" gemacht. :)

Tom und ich hatten vor kurzem das Thema "Gangungenauigkeit mittels ext. 8MHz Quarz" mal etwas genauer betrachtet.
Er hat einen kleinen Sketch geschrieben, um die Abweichung zu berechnen. Bei mir sind es ~12% Abweichung, so dass ich den sysclock-Timer einfach mit 0.88 multipliziere.
Ist zwar immer noch nicht auf die Hundertstel präzise, aber macht doch schon einen sehr deutlichen Unterschied.

Wzut

ja die 12% kommen vermutlich auch bei mir mit 8Mhz extern hin, ich habe bei 3500 Sekunden Wartezeit ein Sendeintervall von 1:04 Stunden.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

papa

Welchen PowerSave-Mode benutzt Du ? Idle oder Sleep ?
Bei Sleep kommt die Ungenauigkeit durch den Watchdog. Da wären 12% echt super.

@jp112sdl: Wenn rtc durch sysclock ersetzt wird, muss aber auch die Zeitangabe angepasst werden. Die rtc zählt grundsätzlich in Sekunden. Die sysclock steht per default auf 100 Ticks pro Sekunde.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

jp112sdl

Zitat von: papa am 29 April 2018, 09:14:27
Welchen PowerSave-Mode benutzt Du ? Idle oder Sleep ?
Bei Sleep kommt die Ungenauigkeit durch den Watchdog. Da wären 12% echt super.
Den Sleep.
Aber lt. 328P-Datenblatt liegt die Toleranz beim int. 8MHz auch bei ~10%, wenn ich mich nicht irre.

Zitat von: papa am 29 April 2018, 09:14:27

@jp112sdl: Wenn rtc durch sysclock ersetzt wird, muss aber auch die Zeitangabe angepasst werden. Die rtc zählt grundsätzlich in Sekunden. Die sysclock steht per default auf 100 Ticks pro Sekunde.
Ja stimmt, das hatte ich damals auch gemacht.

Tom Major

Zitat von: jp112sdl am 29 April 2018, 08:37:58
Tom und ich hatten vor kurzem das Thema "Gangungenauigkeit mittels ext. 8MHz Quarz" mal etwas genauer betrachtet.

zur Verdeutlichung: Gemeint ist Gangungenauigkeit wegen der Ungenauigkeit des int. RC Watchdog OSC 128kHz (der im sleep mode bei Einsatz eines ext. 8MHz Quarz zum Einsatz kommt - für die langen Zeitspannen im sleep ist dieser zuständig, nicht der 8MHz Quarz, sonst würde man nie auf den sleep Strom kommen).

Der sketch zum Ausmessen ist hier:
https://github.com/TomMajor/AskSinPP_Examples/tree/master/Other/WDT_Frequenz
Wenn dort z.B. Faktor 0.916 rauskommt muss man statt
seconds2ticks(3600)
seconds2ticks(3298)
aufrufen um auf 1h zu kommen.
Für das Ausmessen muss ein ext. Quarz als Referenz angeschlossen sein, der int. 8MHz RC OSC geht nicht als Referenz da er selber ungenau ist.
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

MBHG

Hi Tom,

Zitat von: Tom Major am 07 März 2018, 01:17:43
Im verlinkten Arduino sketch werden als Demo dummy Werte generiert und an die CCU2 gesendet. Aufbauend auf dem sketch kann man die Messwerte beliebiger Sensoren selbst einbauen. Anpassen muss man nur den sketch selbst und für die Darstellung in der CCU2 die Datei hb_uni_sensor1.xml.
Vielleicht hilft es ja jemanden.
https://github.com/TomMajor/AskSinPP_Examples/tree/master/HB-UNI-Sensor1

kurze Rückfrage wg. dem wiring: in Bild sind zwei Sensoren, ein Temperatursensor und ein Lichtsensor auf der Platine abgebracht. In der Schaltung sind diese jeweils optional an A4 / A5. Im Sketch sieht es so aus als ob man beide gleichzeitig betreiben kann, würde auch zum Bild passen. Wo schliesse ich denn den anderen Sensor an, wenn ich den ersten an A4 / A5 anschliesse?

Gruss Marc
-----------------------------------------------------------
https://smarthome.family.blog Debian Linux, NanoCUL 868, Signalduino, 4x HM-SW4, 11x HM Asksin Unisensor, NodeMCU ESP8266, RCS 1000 N Comfort, Magic Home, Rauchmelder PT2262, Babble

jp112sdl

Zitat von: MBHG am 30 April 2018, 20:54:40
Wo schliesse ich denn den anderen Sensor an, wenn ich den ersten an A4 / A5 anschliesse?

Auch dort... Parallel... I²C ist ein Bus.

Tom Major

Genau, die IC am I2C werden über ihre device address angesprochen. Solange die IC/Sensoren alle eine andere Adresse haben gehen alle zusammen an einem Bus.
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

Franki

Hallo Papa,

Exzellente Arbeit!!
Kopplung des WDS100 klappte auf Anhieb. Leider sind die Werte fixiert. Temperatur, Feuchte Licht sehe ich nicht als Problem, sollte analog zu anderen Beispielen implemtierbar sein.
Als wesentlich schwieriger sehe ich die Implementierung des Regenmengenmessers oder auch des Windmessers (2 Counter?, Stromverbrauch?)
Hier habe ich leider zuwenig Kentnisse diese zu implementieren.
Alternativ: externe Zähler?
Hast Du vor diese zu implementieren oder irgendwer im Forum eine Lösung?

LG
Frank

Klaus0815

Hallo Tom,

hatte Deinen Post damals übersehen, eigentlich genau das was ich suche

Zitat von: Tom Major am 07 März 2018, 01:17:43
Im verlinkten Arduino sketch werden als Demo dummy Werte generiert und an die CCU2 gesendet. Aufbauend auf dem sketch kann man die Messwerte beliebiger Sensoren selbst einbauen. Anpassen muss man nur den sketch selbst und für die Darstellung in der CCU2 die Datei hb_uni_sensor1.xml.

https://github.com/TomMajor/AskSinPP_Examples/tree/master/HB-UNI-Sensor1


2 Fragen:
- Funktioniert es mittlerweile mit FHEM, hat es jemand getestet? Kann man auch in FHEM die Devices konfigurieren?
- wie schwierig / einfach wäre es, zusätzlich einen Taster einzubauen?

Ich habe noch einige MySensors-Teile am laufen, mehr schlecht als recht, will diese ersetzen.
Aber an fast allen habe ich entweder einen Bewegungsmelder oder einen Taster zum Licht schalten o.ä. dran.


Viele Grüße
Klaus