SIGNALDuino Empfänger Firm- und Hardware

Begonnen von Ralf9, 02 Oktober 2016, 22:59:51

Vorheriges Thema - Nächstes Thema

Ralf9

Bei den Befehlen für den CC1101 habe ich mich an die cul raw Befehle gehalten, dies ist für mich der quasi Standard
http://culfw.de/commandref.html
Ich würde die bestehenden Befehle nicht mehr ändern, dies ergibt nur eine Inkompatibilität zu älteren Versionen.

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Ralf9

Hallo Sidey,

Im CC1101 Datenblatt steht, daß der CC1101 im asynchronous serial mode jitter und glitches hat. Sind in der Signalduino Firmware bereits Routinen enthalten die dies berücksichtigen?

ZitatWhen using asynchronous serial mode make sure the interfacing MCU does proper oversampling and that it can handle the jitter on the data output line.
The MCU should tolerate a jitter of ±1/8 of a bit period as the data stream is time-discrete using 8 samples per bit.

In asynchronous serial mode there will be glitches of 37 - 38.5 ns duration (1/XOSC) occurring infrequently and with random periods.
A simple RC filter can be added to the data output line between CC1101 and the MCU to get rid of the 37 - 38.5 ns ns glitches if considered a problem.
The filter 3 dB cut-off frequency needs to be high enough so that the data is not filtered and at the same time low enough to remove the glitch.
As an example, for 2.4 kBaud data rate a 1 kohm resistor and 2.7 nF capacitor can be used. This gives a 3 dB cut-off frequency of 59 kHz.

Gruß Ralf

FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Sidey

#32
Jitter und glitches in der beschrieben Größenordnung sind kein Problem
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Sidey

Zitat von: Ralf9 am 18 Dezember 2016, 19:05:23
Bei den Befehlen für den CC1101 habe ich mich an die cul raw Befehle gehalten, dies ist für mich der quasi Standard
http://culfw.de/commandref.html
Ich würde die bestehenden Befehle nicht mehr ändern, dies ergibt nur eine Inkompatibilität zu älteren Versionen.

Ich habe noch mal darüber nachgedacht. Man müsste sich an die Befehle ja nur halten, wenn man eine Kompatibilität zur cul Hardware anstrebt.
Das machen wir aber nicht.
Es gibt auch bereits Überschneidungen der Befehle, da ich diese ja mal vom FHEMduino übernommen hatte.

Um das Kompatibilitätsproblem Firmware / Modul zu entschärfen, könnte man die alten Befehle erst dann entfernen, wenn die neuen etwas verbreitet sind.
Für mich ist das aber aktuell nichts dringendes und eher etwas für demnächst mal. Vielleicht fällt uns ja das ein oder andere auch noch dazu ein.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Sidey

Zitat von: Ralf9 am 18 Dezember 2016, 13:40:22
Hier ist eine erste Version der SIGNALDuino Firmware mit CC1101 unterstützung. Die Verkabelung des CC1101 ist wie beim Selbstbau cul

C<reg>
    <reg> is a (two digit) hex number: return the value of the cc1101 register. <reg>=99 dumps the first 48 registers.
    Example: C35 -> C35 = 0D
[/quote]

Hi Ralf, der C Befehl ist im Code nicht enthalten.

Ich habe mir jetzt auch einen Nano + cc1101 aufgebaut.
Die Pull-Up Wiederstände habe ich erst mal weggelassen.

Das mit den Registern versehe ich nicht. Keine Idee, was welches Register ist und bedeutet:
[code]
EEPROM 00 : 33 1D 0D 2E 2D 07 D3 91 3D 04 32 00 00 06 00 1


Auf jeden Fall habe ich zwei Dinge festgestellt

1. Sende ich 2x hintereinander z.B. WS34 dann hängt sich der Arduino auf. Ich nehme an er hängt an dem Aufruf wait_Miso(), welches leider unendlich läuft.

2. Ich habe keine Ahnung, ob was empfangen wird. Zu sehen ist jedenfalls noch nichts der Interrupt auf d2 reagiert also nicht.

3. In Setup musste ich das SPI Init etwas vorverlegen. Sonst hängt sich das System schon beim starten auf.

Was funktioniert denn bei dir aktuell schon?

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Ralf9

#35
Bei mir funktionieren alle Befehle die ich eingebaut habe. z.B.
C99
ccreg 00: 0D 2E 2D 07 D3 91 3D 04 32 00 00 06 00 10 B0 71  ccreg 10: 57 C4 30 23 B9 00 07 00 18 14 6C 07 00 90 87 6B  ccreg 20: F8 56 11 EF 2A 19 1F 41 00 59 7F 3F 88 31 0B
C35
C35 = 01
WS34
cmdStrobeReg 34
C35
C35 = 0D
MS;P1=547;P2=-9047;P3=-2097;P4=-4120;D=1213141414131313141313131413131313141314131314131313141414131313131414141413;CP=1;SP=2;O;


MIt C35 wird das MARCSTATE Register ausgelesen:
0x35 (0xF5): MARCSTATE – Main Radio Control State Machine State
01 - IDLE
0D - RX


Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Ralf9

#36
Zitat von: Sidey am 23 Dezember 2016, 00:55:40
1. Sende ich 2x hintereinander z.B. WS34 dann hängt sich der Arduino auf. Ich nehme an er hängt an dem Aufruf wait_Miso(), welches leider unendlich läuft.

Wenn bei Dir der MISO nicht auf low geht, dann stimmt was nicht
ZitatA command strobe may be followed byother SPI access without pulling CSn high.
However, if an SRES strobe is being issued, one will have to wait for SO to go low again
before the next header byte can be issuedshown in Figure 16. The command strobesexecuted immediately, with the exceptionthe SPWD, SWOR, and the SXOFF strobes, which are executed when CSn goes high.

Nachtrag:
10 4-wire Serial Configuration and Data Interface
ZitatWhen CSn is pulled low, the MCU must wait
until CC1101 SO pin goes low before starting transfer the header byte. This indicates the crystal is running. Unless the chip wasthe SLEEP or XOFF states, the SO pinalways go low immediately after taking CSn low.


Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Sidey



Zitat von: Ralf9 am 23 Dezember 2016, 09:28:25
Wenn bei Dir der MISO nicht auf low geht, dann stimmt was nicht
Nachtrag:
10 4-wire Serial Configuration and Data Interface

Gruß Ralf

Ja, prinzipiell habe ich mir das auch gedacht, aber keine Idee was es sein könnte. Beim Initialisieren scheint es ja auch zu klappen.

Die Endlosschleife ist halt nicht so gut.
Es gibt ja auch eine SPI Lib von Arduino. Ob die auch unendlich wartet weiss ich nicht.

Was die C Kommandos angeht, habe ich im Quellcode die Stelle nicht gefunden, an der die behandelt werden.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Ralf9

Zitat von: Sidey am 23 Dezember 2016, 09:50:45
Was die C Kommandos angeht, habe ich im Quellcode die Stelle nicht gefunden, an der die behandelt werden.

https://github.com/RFD-FHEM/SIGNALDuino/blob/dev-r33_cc1101/RF_Receiver/RF_Receiver.ino
Zeile 617

Mit den beiden Dateien in der Anlage funktioniert es bei mir
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Ralf9

Zitat von: Sidey am 23 Dezember 2016, 09:50:45
Ja, prinzipiell habe ich mir das auch gedacht, aber keine Idee was es sein könnte. Beim Initialisieren scheint es ja auch zu klappen.
Die Endlosschleife ist halt nicht so gut.

Es funktioniert wahrscheinlich auch ohne das wait_Miso
Das wait_Miso() habe ich aus der AskSin Library. In der a-culfw habe ich das wait_Miso nicht gefunden.

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Sidey

Ich hab da gestern noch eine Lib gefunden für den cc1101.  Irgendwie asksin auf Github suchen... Vielleicht nimmt man einfach die und gut ist?
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Ralf9

Die cc1101 Routinen habe ich größtenteils aus der askin lib.
Du kannst mal die a-culfw flashen um zu testen ob Deine Hardware funktioniert. Der Empfang wird mit X21 aktiviert.

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Sidey

#42
Hi Ralf,

ich habe das mit dem hängen Bleiben jetzt im Griff.
War doch eher ein Problem in der Reihenfolge der Pin Initialisierung...

Auf C99 kommt Folgendesm nachdem ich meinen Versuchsaufbau wieder repariert habe. Meine Tochter war da wohl dran und hat diesen optimiert:

ccreg 00: 29 2E 3F 07 D3 91 FF 04 45 00 00 0F 00 1E C4 EC  ccreg 10: 8C 22 02 22 F8 47 07 30 04 76 6C 03 40 91 87 6B  ccreg 20: F8 56 10 A9 0A 20 0D 41 00 59 7F 3F 88 31 0B




Wie setze ich jetzt aber die richtigen Werte und woher kenne ich die?

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Ralf9

#43
Es könnte auch ein Hardwareproblem sein. Hast Du die Verkabelung nochmals überprüft, insbesondere des Miso?
Funktioniert das wait_Miso jetzt?

Was ergibt ein C35?

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Sidey

Hi Ralf,

ja hab die Verkabelung korrigiert, jetzt geht es.
Nur wie setze ich jetzt die richtigen Register?
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker