Forum: Mikrocontroller und Digitale Elektronik Funksteckdose Elro schalten mit RFM12


von Tobi D. (fanti)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte gerne meine Funksteckdose per Controller und RFM12B Modul 
schalten. Um den Schaltcode herauszufinden habe ook-sketch von Jeelabs 
ausgespielt, die Frequenz auf 434Mhz geändert und am Ausgangspin des 
Moduls gemessen. Wenn ich nun auf der Fernbedienung on/off drücke, kann 
ich Daten messen. Die sind zwar meiner Meinung nach plausibel und immer 
identisch, aber einen Schaltcode kann ich nicht herauslesen, weil die 
High-Low-Timings für mich keinen Sinn ergeben. Die sind gleich mit den 
Beschreibungen hier:
http://www.firefly-power.de/ARM/RFM12.html
http://avr.börke.de/Funksteckdosen.htm

Ich habe euch die Daten am FSK/Data Pin angehängt, evtl. hat von euch 
jemand eine Idee was da nicht stimmt.

von Conny G. (conny_g)


Lesenswert?

Wo ist das Problem?
Wenn Du Off und On untereinander legst siehst Du dass auf der rechten 
Seite sich etwas verändert, das meiste von links aber gleich gleibt.
Der Unterschied ist "on" oder "off".

von Michael U. (amiga)


Lesenswert?

Hallo,

was willst Du rausfinden? Wenn Du schalten willst, sende die Daten eben 
so wieder raus.
Wenn Du sagt, sie entsprechen den angegeben Links: da ist die Kodierung 
doch erklärt?
Oder habe ich Deine Frage nicht verstanden?

Gruß aus Berlin
Michael

von Tobi D. (fanti)


Lesenswert?

Es ist wohl möglich, die Daten genau so wieder rausschicken, dann sollte 
auch die Steckdose schalten, das ist mein Plan.
Ich muss die Daten aber vorher in SPI Datenpakete zusammenfassen.
Da liegt mein Problem. Ich kann aus den Messungen oben keine 0-1 Daten 
herauslesen.
Auch wenn meine Daten erst einmal gut aussehen, so passen sie nicht zu 
der Erklärung in den Links. Das Timing und das Verhaltnis High-Low passt 
nicht.

von Jojo S. (Gast)


Lesenswert?

es gibt doch viele verschiedene Funksteckdosen, warum soll deine zu den 
in den Links passen?
In den Diagrammen sieht man doch sehr deutlich 0en und 1en wenn man die 
Zeiten von steigender Flanke zu steigender Flanke anschaut, es gibt 
kurze und lange Perioden.
Etwas genauer wird das wenn du direkt am Sender den Modulationseingang 
zum Funkmodil messen kannst. Wenn die RFM übersteuern können die 
Pulslängen verfälscht sein. Oder messe mal mit Sender weiter weg damit 
du die Toleranzen in den Pulsbreiten siehst.

von Conny G. (conny_g)


Lesenswert?

Soviel ich im Code des RFM12_tx sehen kann hat das nichts mit SPI zu 
tun.
Die Interrupt Routine wird alle 300us aufgerufen und durchläuft eine 
State Machine in der die Bits übertragen werden, mit Low/High Zeiten als 
Vielfache von 300us.
Das passt im Groben auch zu Deinem Signal.
Von der RFM-Senderoutine wird dann das Modul per SPI auf Low/High 
gesetzt, mit dem SPI hast aber nix zu tun. Die Arbeit (Bits und Timing) 
passiert im TIM3_IRQHandler.

von Jojo S. (Gast)


Lesenswert?

Conny G. schrieb:
> Soviel ich im Code des RFM12_tx sehen kann hat das nichts mit SPI zu
> tun.

jepp, das liegt daran das die Module eigentlich Logik für FSK haben und 
für den ASK Betrieb für die Funksteckdosen 'missbraucht' werden. Da kann 
man nicht die Datenbytes in das Fifo des RFM schieben sondern muss den 
HF Träger ein- und ausschalten.

von Tobi D. (fanti)


Lesenswert?

Achso?
Das funktioniert mit dem Senden ähnlich anders, wie mit dem empfangen 
über den zusätzlichen Pin.
Ok, mit dem Sendeteil habe ich mich noch nicht beschäftigt, hört sich 
aber logisch an.
Ich hatte erwartet, dass ich abgesehen vom eingestellten Hauscode eine 
identische Übertragung bekomme wie in den Links beschrieben.
Ich bin davon ausgegangen, dass alle Funksteckdosen für 433Mhz auch die 
gleiche Pulsbreite und Codierung verwenden.

Das bedeutet für mich, ich sehe die Links nur als Information.
Erarbeite mir dann aber eine eigene Lösung.
Ich baue ein zweites Modul auf, dass sendet und passe die Werte an.
Am Empfängermodul vergleiche ich die Werte mit denen der Fernbedienung, 
bis es irgendwann identisch ist. Dann sollte auch die Steckdose 
schalten.

Ich finde die Methode zwar sehr aufwändig, aber wenn jeder Hersteller 
sein eigenes Süppchen kocht, dann bleibt mir keine Wahl.
Meine Hoffnung war noch, dass meine Messungen nicht stimmen und deshalb 
der "Standard" von den Links nicht passt.

Danke für eure Hilfe

von Conny G. (conny_g)


Lesenswert?

Ja, das ist so, jeder Hersteller hat sein eigenes Timing.
Das Protokoll ist dasselbe, aber die "Grundfrequenz" (die 300us) ist 
verschieden.
Ich habe mir einen Funksteckdosensender aus einem 433 Mhz Sendemodul und 
einem AVR gemacht und habe zwei verschiedene Funksteckdosen im Einsatz 
und beide haben eine andere "Frequenz".
Deshalb kann meine Senderoutine einen Parameter mit der Grundfrequenz.

von Holm T. (Gast)


Lesenswert?

...ist "mehr als 6 Monate alt" die Grenze für Leichenfledderei?

Ich riskiere es mal..


Ich habe das Problemchen das ich in einer anderen Wohnung im Selben Haus 
ein paar Verbraucher fernschalten möchte (Rechner wie z.B. eine 
VAX4000/300 abschalten nachdem sie heruntergefahren sind, Heizlüfter 
einschalten usw..) und bin dabei über ein paar Funksteckdosen gestolpert 
die hier noch herumlagen, Sender Coder-IC defekt..

Ich habe mir ein Platinchen mit Atmega644p das aus einem anderen Projekt 
übrig war gegriffen und einen RFM12B angespaxt, habe mir Code von "Das 
Labor" heruntergeladen und entrümpelt (da scheinen mehrere Versionen 
gemixt worden zu sein) und es nach einiger Prömplei geschafft die 
Funksteckdosen
der Fa. "Everflourish" Typ EWM200R damit anzusteuern, fein.

ich habe dazu die Beschaltung des Coders (SC2262) und des Decoders 
(SC2272) auf den Platinen herausgezeichnet, ich bin nicht anders zu den 
korrekten Codes gekommen.Diese Trinärgeschichte ..ist ätzend.

Nun haben wir im Wohnzimmer auch ein Funksteckdosen-Set und ich dachte 
mir das es keine schlechte Idee sei diese gleich Codemäßig mit zu 
behandeln so lange man in der Materie steckt. Diesmal erschien es 
einfacher, die Dosen sind vom scheinbar allseits bekannten Typ ELRO 
AB440S.
Die Verwendeten coder und Decoder sind die Selben wie bei diesen 
Everflourisch-Dingern..es waren keine  Schwierigkeiten zu erwarten zumal 
auch er Oszillatorwiderstand am Sender bei beiden Sets die selbe Größe 
hat (3,3M).

..es geht nur irgndwie nicht.

Ich habe mittels DVBT-Stick, SDR-sharp und Audacity angeschaut was da 
gesendet wird und interessanterweise ändern sich die Codes innerhalb 
eines Telegramms. Der erste Teil ist eingängig und deckt sich mit dem 
was ich über die Kodierung im Netz so gefunden habe, das ist auch das 
was ich sende, es kommen aber noch 2 Frames hinter her die sich am 
Schluß unterscheiden, dort kommt statt "00 0F" für an und "0F 00" für 
Aus "11 11"
hinterher, sowas wie ein "Stop Frame"?

Ich habe dieses Verhalten nirgendwo dokumentiert gefunden. Hier muß im 
Sender eine Schaltung integriert sein die nach Loslassen der Taste noch 
diese Stop-Frames erzeugt in dem sie den Pegel an den Dateneingängen auf 
VCC zieht.

Hat das außer mir schon mal einer erlebt? Gib es irgendwo eine 
Beschreibung der Codierung für die ELRO Dosen die so Etwas erklärt?

Momentan habe ich an einer Dose diese Dip-Switch Einstellung:

"00110 10000" (Hauscode FF00F, Dose A) und sende das wie folgt:

// ELRO
        { 0x50455100, 0x50455400 }, /* A 12 */
        { 0x50515100, 0x50515400 }, /* B 13 */
        { 0x50545100, 0x50545400 }, /* C 14 */
        { 0x50551100, 0x50551400 }, /* D 15 */
        { 0x50554100, 0x50554400 }, /* E 16 */

(jeweils An/Aus nebeneinander, die angehängten 00 sind bedeutungslos).
Mache ich da was falsch?

Gruß,

Holm

von Joachim S. (oyo)


Lesenswert?

Holm T. schrieb:

> ..es geht nur irgndwie nicht.
>
> Ich habe mittels DVBT-Stick, SDR-sharp und Audacity angeschaut was da
> gesendet wird und interessanterweise ändern sich die Codes innerhalb
> eines Telegramms. Der erste Teil ist eingängig und deckt sich mit dem
> was ich über die Kodierung im Netz so gefunden habe, das ist auch das
> was ich sende, es kommen aber noch 2 Frames hinter her die sich am
> Schluß unterscheiden, dort kommt statt "00 0F" für an und "0F 00" für
> Aus "11 11"
> hinterher, sowas wie ein "Stop Frame"?

Da Du von "0", "1" und "F" redest, nehme ich mal an, dass damit die drei 
möglichen Code-Bits gemeint sind, die bei dem von den PT22x2/SC22x2-ICs 
verwendeten Protokoll benutzt werden?
Falls ja, so erscheint es mir schon höchst merkwürdig, dass der Code für 
"an" am Ende "00 0F" und der Code für "aus" "0F 00" sein soll.

Grund:
Bei diesem Protokoll werden ja immer "Code Words" übertragen, die stets 
aus exakt 12 (dreiwertigen) Code-Bits bestehen.
Zumindest bei meinen ELRO AB440S-Steckdosen werden die gesamten ersten 
10 Code-Bits aber komplett durch die 10 DIP-Schalter auf der Rückseite 
festgelegt:
DIP-Schalter unten bzw. auf off: "0"-Bit
DIP-Schalter oben bzw. auf on: "F"-Bit
Da somit 10 der 12 Code-Bits bereits durch die Adresse der Steckdose per 
DIP-Schalter eindeutig festgelegt sind, bleiben für den eigentlichen 
An-/Aus-Befehl nur noch die letzten beiden Code-Bits am Ende übrig - ich 
z.B. schalte meine ELRO AB440S-Steckdosen, indem ich zum Einschalten am 
Ende (nach den Adress-Bits) "FF" sende, und zum Ausschalten "00".
In Deinen Beispielen ist der Befehl zum An-/Ausschalten ja aber auf mehr 
als nur die letzten beiden Code-Bits verteilt - was meiner Logik zufolge 
bei den ELRO AB440S-Steckdosen eigentlich gar nicht sein kann...

Da Du ja eh bereits das Signal des Funksenders gesampled und in Audacity 
betrachtet hast - lade doch am besten einfach mal genau wie der 
Threadstarter ein paar Screenshots des Signals in Audacity hoch.
Das würde es leichter machen, dazu etwas zu sagen.

von Holm T. (Gast)


Lesenswert?

Joachim S. schrieb:
> Holm T. schrieb:
>
>> ..es geht nur irgndwie nicht.
>>
>> Ich habe mittels DVBT-Stick, SDR-sharp und Audacity angeschaut was da
>> gesendet wird und interessanterweise ändern sich die Codes innerhalb
>> eines Telegramms. Der erste Teil ist eingängig und deckt sich mit dem
>> was ich über die Kodierung im Netz so gefunden habe, das ist auch das
>> was ich sende, es kommen aber noch 2 Frames hinter her die sich am
>> Schluß unterscheiden, dort kommt statt "00 0F" für an und "0F 00" für
>> Aus "11 11"
>> hinterher, sowas wie ein "Stop Frame"?
>
> Da Du von "0", "1" und "F" redest, nehme ich mal an, dass damit die drei
> möglichen Code-Bits gemeint sind, die bei dem von den PT22x2/SC22x2-ICs
> verwendeten Protokoll benutzt werden?
> Falls ja, so erscheint es mir schon höchst merkwürdig, dass der Code für
> "an" am Ende "00 0F" und der Code für "aus" "0F 00" sein soll.
>

Du darfst das nicht so vebissen sehen.."F" ist nicht hexadezimal, 
sondern bedeutet "floating". Es gibt im Prinzip immer Bitpaare, 00 01 
und 11 die
auf eine Stelle zusammengefaßt jeweils 0,F und 1 bedeuten.
Diese Nomenklatur habe ich nicht erfunden...

> Grund:
> Bei diesem Protokoll werden ja immer "Code Words" übertragen, die stets
> aus exakt 12 (dreiwertigen) Code-Bits bestehen.
> Zumindest bei meinen ELRO AB440S-Steckdosen werden die gesamten ersten
> 10 Code-Bits aber komplett durch die 10 DIP-Schalter auf der Rückseite
> festgelegt:
> DIP-Schalter unten bzw. auf off: "0"-Bit
> DIP-Schalter oben bzw. auf on: "F"-Bit
> Da somit 10 der 12 Code-Bits bereits durch die Adresse der Steckdose per
> DIP-Schalter eindeutig festgelegt sind, bleiben für den eigentlichen
> An-/Aus-Befehl nur noch die letzten beiden Code-Bits am Ende übrig - ich
> z.B. schalte meine ELRO AB440S-Steckdosen, indem ich zum Einschalten am
> Ende (nach den Adress-Bits) "FF" sende, und zum Ausschalten "00".

Ich werde es probieren.
Du meinst schon das Selbe wie ich, aber ich gehe halt von 24 gesendeten 
Bits aus, der Rest ist der Selbe :-)
Auf dem Oszillogramm sieht man auch das jede Position aus 2 Bits 
besteht, 00, 01, 11 für low, float und high (vcc).

> In Deinen Beispielen ist der Befehl zum An-/Ausschalten ja aber auf mehr
> als nur die letzten beiden Code-Bits verteilt - was meiner Logik zufolge
> bei den ELRO AB440S-Steckdosen eigentlich gar nicht sein kann...

Ich weiß nicht wie die die Datenausgänge beschaltet haben, wenn da ein 
RS-Flopflip dran hängt hätte das schon Sinn. Ich habe die Weisheit auch 
nur von einer Webseite: http://avr.börke.de/Funksteckdosen.htm

>
> Da Du ja eh bereits das Signal des Funksenders gesampled und in Audacity
> betrachtet hast - lade doch am besten einfach mal genau wie der
> Threadstarter ein paar Screenshots des Signals in Audacity hoch.
> Das würde es leichter machen, dazu etwas zu sagen.

Das hatte ich befürchtet.
Ich werde erst mal Deinen 00 und FF Vorschlag ausprobieren, wenn ich 
kein Ergebnis bekomme melde ich mich hier mit Signal-P ornos...

Gruß,

Holm

von Joachim S. (oyo)


Lesenswert?

Holm T. schrieb:
> Du darfst das nicht so vebissen sehen.."F" ist nicht hexadezimal,
> sondern bedeutet "floating". Es gibt im Prinzip immer Bitpaare, 00 01
> und 11 die
> auf eine Stelle zusammengefaßt jeweils 0,F und 1 bedeuten.
> Diese Nomenklatur habe ich nicht erfunden...

Das ist mir durchaus bewusst, ja :)

> Ich werde es probieren.
> Du meinst schon das Selbe wie ich, aber ich gehe halt von 24 gesendeten
> Bits aus, der Rest ist der Selbe :-)

Wenn Du es nicht als 12 dreiwertige Bits, sondern in der 
verallgemeinerten Form  (also als 24 "echte" bzw. zweiwertige Bits) 
betrachtest, dann gibt es aber nun mal kein "F"(loating)-Bit - daher 
halt meine Verwunderung, wie der Code zum Ein-/Aus-schalten auf "00 0F" 
bzw. "0F 00" enden kann...

Aber gut, das war also offensichtlich nur ein Missverständnis, und Du 
meintest eigentlich "00 01"/"01 00" (bzw. "0F"/"F0" bei Darstellung als 
dreiwertige Bits). Damit ergibt das natürlich plötzlich wieder alles 
Sinn.

Dann also zurück zur Frage: Als ich dann aber eben mal selbst einen 
AB440R-Handsender bedient habe, konnte ich das von Dir beobachtete 
reproduzieren:
Als ich die Taste "A ON" etwas länger betätigt habe, wurde erst sechs 
mal hintereinander der Code
F00F00FFFF0F
gesendet - und dann, ab der siebten Wiederholung, plötzlich stattdessen 
der Code
F00F0FFFFF11

Ist mir persönlich bislang noch nie aufgefallen - soll vielleicht 
irgendwie signalisieren, dass die Taste gedrückt gehalten wird oder so? 
Keine Ahnung... Wobei sich interessanterweise dabei ja nicht nur das 
Ende ändert...

Rein zum Ein-/Ausschalten der Steckdosen sind diese Codes jedenfalls 
nicht nötig - da genügt es, den normalen Code ein paar Mal zu 
wiederholen, ohne irgendwas zu verändern...

von Conny G. (conny_g)


Lesenswert?

So ein Verhalten habe ich auch noch nicht gesehen oder gelesen.

Aber kannst Du diese Frames nicht einfach mitsenden bzw. auf der 
Empfangsseite ignorieren?

Soviel ich mich erinnere wird das eigentliche Kommando 5x wiederholt um 
sicherzugehen, dass der Empfänger es trotz aller Störungen mindestens 3x 
empfängt. Der Empfänger schaltet nur, wenn er 3x empfängt.
Jetzt könnte der Sinn an diesem "Keyup"-Anhängsel sein, dass ein 
Funkdimmer auch Tastenwiederholung kann indem er die verschiedenen 
Serien über das "Keyup" auseinanderhalten kann?

von Joachim S. (oyo)


Lesenswert?

Habe eben übrigens nochmal eine Taste seeehr lange betätigt und das 
Signal aufgezeichnet.
Der Code mit den 11 am Ende kommt tatsächlich nicht automatisch nach 
einer ganz bestimmten Anzahl von Wiederholungen des eigentlichen Code, 
sondern offenbar wird erst ganz am Ende exakt zweimal der Code mit 11 am 
Ende gesendet.
Scheint also tatsächlich eine Art "Keyup-Anhängsel" zu sein, das dieser 
Handsender am Ende sendet.

von Holm T. (Gast)


Lesenswert?

Wenn Du sagst das die Steckdosen dieses Key-up Signal nicht brauchen, 
reicht mir das im Prinzip. Den anderen Kram sende ich ja soweit passend, 
nur klappert es halt noch nicht, die anderen Dosen gehen aber.




                 A  B  C  D  E    x  y
---------------------------------------
Switch D
0  0  1  1  0    0  0  0  1  0    1  1
F  F  0  0  F    F  F  F  0  F    F  F
01 01 00 00 01   01 01 01 00 01   01 01
 0101  0000    0101  0101  0001    0101
    5     0       5     5     1       5 ON      50551500
 0101  0000    0101  0101  0001    0000
    5     0       5     5     1       0 OFF     50551000
---------------------------------------

..hier nochmal meine "Berechnungen" nach Deiner Idee...funktioniert aber 
auch noch nicht. Die letzten beiden Nullen haben wie schon erwähnt nix 
zu sagen.

Muß erst mal weg..einkaufen...

Gruß,

Holm

von Lateinlehrer (Gast)


Lesenswert?

Joachim S. schrieb:
> Wenn Du es nicht als 12 dreiwertige Bits, sondern in der
> verallgemeinerten Form

"dreiwertige Bits" ist ein Widerspruch in sich. Das Wort "Bit" ist 
zusammengezogen aus "binary digit" und das hat etwas mit zweiwertig zu 
tun (Erfindung der alten Römer).

Wozu wurde wohl der Begriff "Symbol" in der Datentechnik erfunden?

von Joachim S. (oyo)


Lesenswert?

Lateinlehrer schrieb:
> Joachim S. schrieb:
>> Wenn Du es nicht als 12 dreiwertige Bits, sondern in der
>> verallgemeinerten Form
>
> "dreiwertige Bits" ist ein Widerspruch in sich. Das Wort "Bit" ist
> zusammengezogen aus "binary digit" und das hat etwas mit zweiwertig zu
> tun (Erfindung der alten Römer).
>
> Wozu wurde wohl der Begriff "Symbol" in der Datentechnik erfunden?

Stell Dir vor: Ich habe die entsprechenden Datenblätter der 
Encoder-/Decoder-ICs, in denen das halt etwas unglücklich als (Code- 
bzw. Adress/Data-) "Bit" bezeichnet wird, gar nicht persönlich verfasst.

"An AD Bit can be designated as Bit “0”, “1” or “f” if it is in low, 
high or floating state respectively."

von Holm T. (Gast)


Lesenswert?

Lateinlehrer schrieb:
> Joachim S. schrieb:
>> Wenn Du es nicht als 12 dreiwertige Bits, sondern in der
>> verallgemeinerten Form
>
> "dreiwertige Bits" ist ein Widerspruch in sich. Das Wort "Bit" ist
> zusammengezogen aus "binary digit" und das hat etwas mit zweiwertig zu
> tun (Erfindung der alten Römer).
>
> Wozu wurde wohl der Begriff "Symbol" in der Datentechnik erfunden?

Ich verstehe jetzt echt nicht warum Du nicht als "Labersack" gepostet 
hast, vielleicht um den eingetragenen User mit dem Namen nicht zu 
diskreditieren?
Hättest Du die bisherigen Postings durchgelesen wäre Dir vielleicht 
aufgegangen das an Deiner Interpretation was nicht stimmen kann. Du hast 
zwar Recht, aber Lateiner brauchen wir gerade nicht..

Gruß,

Holm

von Joachim S. (oyo)


Lesenswert?

Holm T. schrieb:
> Wenn Du sagst das die Steckdosen dieses Key-up Signal nicht brauchen,
> reicht mir das im Prinzip. Den anderen Kram sende ich ja soweit passend,
> nur klappert es halt noch nicht, die anderen Dosen gehen aber.
>
>
>
>
>                  A  B  C  D  E    x  y
> ---------------------------------------
> Switch D
> 0  0  1  1  0    0  0  0  1  0    1  1
> F  F  0  0  F    F  F  F  0  F    F  F
> 01 01 00 00 01   01 01 01 00 01   01 01
>  0101  0000    0101  0101  0001    0101
>     5     0       5     5     1       5 ON      50551500
>  0101  0000    0101  0101  0001    0000
>     5     0       5     5     1       0 OFF     50551000
> ---------------------------------------
>
> ..hier nochmal meine "Berechnungen" nach Deiner Idee...funktioniert aber
> auch noch nicht. Die letzten beiden Nullen haben wie schon erwähnt nix
> zu sagen.

Ich weiss nicht, ob es damit zu tun hat, aber: Ich merke peinlicherweise 
gerade, dass ich weiter oben Müll verzapft habe:
Wenn ein DIP-Schalter bei den AB440S-Steckdosen unten bzw. in der 
"Off"-Position steht, so wird dies durch ein "F"(loating)-Code-Bit 
repräsentiert,  wenn er oben bzw. in der "On"-Position steht, dann durch 
ein "0"-Code-Bit.

Ich gebe einfach mal ein Beispiel für eine Steckdose, die ich eben 
gerade erfolgreich live ausprobiert habe:

DIP-Schalter auf Rückseite ("u" für "unten"/"off", "o" für "oben"/"on")
  1 2 3 4 5 A B C D E
  u o u o u o o u o u
  -------------------
  F 0 F 0 F 0 0 F 0 F

zum Einschalten:
  F 0 F 0 F 0 0 F 0 F [0,1,F] [1,F] (eingeschaltet wird immer, wenn das 
letzte "Code-Bit" NICHT 0 ist)
als 24 Bit:
  01000100010000010001xxx1

zum Ausschalten:
  F 0 F 0 F 0 0 F 0 F [0,1,F] [0] (ausgeschaltet wird immer, wenn das 
das letzte "Code-Bit" 0 ist)
als 24 Bit:
  01000100010000010001xxx0

Als Basis-Taktzeit verwende ich üblicherweise 360µs; sprich: ein 
"F"-Code-Bit wird bei mir bspw. repräsentiert durch 360µs "high", 
gefolgt von 1080µs "low", gefolgt von 1080µs "high" gefolgt von 360µs 
"low".
Ach ja, und vor bzw. direkt nach jeder Wiederholung kommt natürlich das 
übliche "Sync-Bit", also (bei mir) 360µs "high", gefolgt von 11160µs 
"low".

Ich benutze meist zur Sicherheit 10 Wiederholungen, aber im Grunde ist 
das unnötig viel.

von Holm T. (Gast)


Angehängte Dateien:

Lesenswert?

Das Problem ist wohl simpel das Timing.

Ich habe im Gegensatz zum Original einen Systemtakt von 14,7456Mhz statt
16Mhz. m Original wird die Timer ISR jede Millisekunde aufgerufen, das 
war bei mir viel zu lang.
Ich rufe die Timer ISR jetzt mit 14.7456/256 = 17.3611µs auf und teile 
nochmal in Software durch 10.
Damit, und mit der von Dir Joachim vorgeschlagenen Sequenz mit 2x0 oder 
2x11 hinten dran schalten dann auch endlich die ELRO Steckdosen UND die 
Everflourish EWM200R. Die Sender beider Systeme sollten eigentlich mit 
der selben Taktfrequenz arbeiten, die Oszillator-Rs sind einheitlich 
3,3MOhm, im Empfänger ist dem nicht so, IMHO hat die EWM200R 820K wie im 
Datenblatt vorgeschalgen, aber die ELRO 980K (das habe ich parallel zu 
den Pins gemessen, weiß nicht wo der R ist..).
Den Sender der Everflourish kann ich nicht mehr testen, der war nämlich 
die Ursache das die Dosen übrig waren..SC2272 defekt.

Ich mußte ich beim Timing einen Kompromiss zwischen beiden Systemen 
finden, der Teilerfaktor 10 hat sich als der beste herausgestellt.

Hier nochmal der Zahlenhaufen für die ELRO und fürs Protokoll die 
funktionierende C-Quelle als Anhang.

Gruß,

Holm
Edit: Mist.
Das linke code.txt war noch im Editbuffer und nicht auf der Pladde und 
ist flacsh. Ich werde mal den Beitrag melden und bitte hiermit einen 
Admin das falsche File links zu löschen...

PS: Mein Sohn war gerade hier, er hätte im WZ fern gesehen und die 
Glotze wäre plötzlich aus gegangen...soon Mist aber auch.. das sind gut 
20 Meter bis dahin...

von Andreas S. (igel1)


Lesenswert?

Hallo Tobi D.,

vorab: ich habe mir nur grob Deinen Eingangspost durchgelesen (für den 
Rest bin ich heute leider zu müde / zu faul).

Mir scheint, Du hast dasselbe Problem wie ich es vor knapp 4 Jahren 
hatte: ich habe seinerzeit versucht mit einem RFM12B den Code meiner 
Funksteckdosen mitzuschneiden, um ihn analysieren und dann selber 
ausstrahlen zu können.

Auch ich brachte den mitgeschnittenen Code nicht mit den Codes auf der 
Börke-Seite übereinander.

Hat mich seinerzeit viel Zeit gekostet, die Ursache herauszufinden:
Es ist der RFM12B, der ASK-codierte Signale nicht sauber demoduliert,
weil er eigentlich für FSK-Demodulation ausgelegt ist:
Beitrag "Re: RFM12 schaltet Funksteckdose (nicht)"

Diese Erkenntnis im Kopf hatte ich dann letztendlich Erfolg und konnte
meine Steckdosen schalten.

Viele Grüße

Igel1


PS:  och Mist - jetzt sehe ich erst, dass der Eingangsthread von 2015 
ist ...   Egal - vielleicht nutzt mein Beitrag ja doch irgendwem 
irgendwann irgendwie und irgendwo.

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.