Probleme: CC1101 (Pollin) und Raspberry B bzw. Pi2

Hallo,

nachdem ich sorgfältig die Forumdiskussionen verfolgt habe war ein CC1101 von Pollin fällig. Dieser sollte zusammen mit einem Raspberry B bzw. Pi2
funktionieren==> klappt leider nicht.
Unternommene Schritte:
[ul]Habe das fertige Raspian Image von Homegar für den Raspi B verwendet.
Zuerst mußte die Firmware (Linux?) von Raspberry B downgegraded werden, da sich sonst das SPI Kernelmodul nicht laden lies.
homegear -r läßt sich jetzt starten aber ein Pairing klappt nicht.
Im homegear.log steht auch nichts…(Update): Mit dem Loglevel 10 sehe ich jetzt kurz (beim Start des Homgear Initscripts) einen Empfang/Senden auf CC1101 dann aber nichts mehr.
[/ul]
Kann man irgendwie testen ob über SPI etwas “reinkommt”?
Muß man noch die GPIO mittels gpio einstellen?

Danke

Anbei noch die Ausgabe von “gpio readall”

+-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+ | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | | | 3.3v | | | 1 || 2 | | | 5v | | | | 2 | 8 | SDA.1 | IN | 1 | 3 || 4 | | | 5V | | | | 3 | 9 | SCL.1 | IN | 1 | 5 || 6 | | | 0v | | | | 4 | 7 | GPIO. 7 | IN | 0 | 7 || 8 | 1 | ALT0 | TxD | 15 | 14 | | | | 0v | | | 9 || 10 | 1 | ALT0 | RxD | 16 | 15 | | 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 1 | IN | GPIO. 1 | 1 | 18 | | 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | | | 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 0 | IN | GPIO. 4 | 4 | 23 | | | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 | | 10 | 12 | MOSI | ALT0 | 0 | 19 || 20 | | | 0v | | | | 9 | 13 | MISO | ALT0 | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 | | 11 | 14 | SCLK | ALT0 | 0 | 23 || 24 | 1 | ALT0 | CE0 | 10 | 8 | | | | 0v | | | 25 || 26 | 1 | ALT0 | CE1 | 11 | 7 | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | 28 | 17 | GPIO.17 | IN | 0 | 51 || 52 | 0 | IN | GPIO.18 | 18 | 29 | | 30 | 19 | GPIO.19 | IN | 0 | 53 || 54 | 0 | IN | GPIO.20 | 20 | 31 | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM | +-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+

…und ein Ausschnitt von homegar.log.
02/05/15 21:06:04.483 Loading devices…
02/05/15 21:06:04.483 Module HomeMatic BidCoS: Loading HomeMatic BidCoS device 1
02/05/15 21:06:04.485 Module HomeMatic BidCoS: Loading HomeMatic BidCoS device 2
02/05/15 21:06:04.488 Module Miscellaneous: Loading Miscellaneous device 3
02/05/15 21:06:04.489 Start listening for packets…
02/05/15 21:06:04.489 Debug: GPIO path for GPIO with index 1 and device cc1100 set to “/sys/class/gpio/gpio25”.
02/05/15 21:06:04.513 Module HomeMatic BidCoS: TI CC110X “My-CC1101”: Debug: Sending: 30
02/05/15 21:06:04.513 Module HomeMatic BidCoS: TI CC110X “My-CC1101”: Debug: Received: 0F
02/05/15 21:06:04.533 Module HomeMatic BidCoS: TI CC110X “My-CC1101”: Debug: Sending: 005B
02/05/15 21:06:04.533 Module HomeMatic BidCoS: TI CC110X “My-CC1101”: Debug: Received: 0F0F
02/05/15 21:06:04.533 Module HomeMatic BidCoS: TI CC110X “My-CC1101”: Debug: Sending: 8000

Hallo Steve,

Hmm, komisch, da muss ich noch einmal schauen. Eigentlich habe ich eine “Device Tree Binary” erstellt, damit das SPI-Modul beim Start geladen wird - das muss ich wohl noch einmal testen.

Ja, mit Hilfe des Homegear-Logs. Anders wird’s schwierig. Ich weiß nicht, ob es ein Standard-Testtool gibt (screen geht nicht). Das Log zeigt aber eindeutig, dass SPI-Kommunikation stattfindet und funktioniert. Unten siehst du:

0x30 => Reset
0x005B => Setze Register 0 auf 5B: Daraus schließe ich, dass du interruptPin auf “0” gestellt hast - korrekt, da GDO0 verwendet wird.
0x8000 => Lese Register 0x00: Rückgabe wäre interessant, wird aber vermutlich 0x005B sein, da die Rückgabe zuvor korrekt “0x0F” war.

Also kann das Problem noch an den GPIOs liegen.

Nein, das macht Homegear für dich. Wichtig ist, dass du das Init-Script zum Starten verwendest.

Schau mal, ob du ankommende Pakete im Homegear-Log siehst. Als Beispiel steht da etwas wie:

02/06/15 11:12:08.621 HomeMatic BidCoS packet received (My-CUL, RSSI: 0x3A): 0E7A82021DFC761D8D31010100003A
02/06/15 11:12:10.482 HomeMatic BidCoS packet received (My-CUL, RSSI: 0x27): 0FD98610234FC30000000AB0CE086400
02/06/15 11:12:11.166 HomeMatic BidCoS packet received (My-CUL, RSSI: 0x44): 0B74A2581D90B21D9F6900B3
02/06/15 11:12:11.296 HomeMatic BidCoS packet received (My-CUL, RSSI: 0x50): 0E7482021D9F691D90B201018C003B
02/06/15 11:12:12.073 HomeMatic BidCoS packet received (My-CUL, RSSI: 0x4A): 0B92A2581D8D131D7C0F0200
02/06/15 11:12:12.210 HomeMatic BidCoS packet received (My-CUL, RSSI: 0x49): 0E9282021D7C0F1D8D130101000031
02/06/15 11:12:13.207 HomeMatic BidCoS packet received (My-CUL, RSSI: 0x56): 0B48A2581D919D1DFC6F0200
02/06/15 11:12:13.339 HomeMatic BidCoS packet received (My-CUL, RSSI: 0x55): 0E4882021DFC6F1D919D010100004D

Falls nein, stimmt etwas mit den GPIOs nicht. An welchen GPIO hast du GDO0 angeschlossen (stell wirklich sicher, dass die Nummer korrekt ist)? Poste diese und den CC1100-Abschnitt deiner physicalinterfaces.conf.

Liebe Grüße

Sathya

Hallo Sathya,

erstmal danke für die schnelle Antwort uuuuuuuunnd es funktioniert mit Deiner Hilfe!
:slight_smile:

Fehler:
Die Anschlussbelegung war vom Banana Pi und ich dachte man kann es 1:1 auf den Raspberry übernehmen.

Lösung:
Ich habe “gpio1 = 18” gesetzt (statt 25) und schon geht’s. Habe schon mit einem Homematic verbunden.

         ID │ Name                      │  Address │ Serial Number │ Type │ Type String               │ Firmware │ Config Pending │ Unreach
────────────┼───────────────────────────┼──────────┼───────────────┼──────┼───────────────────────────┼──────────┼
            │                           │          │               │      │                           │          │                │        
          1 │                           │   1CDD59 │    JEQ0256969 │ 0034 │               HM-PBI-4-FM │      1.3 │             No │      No
────────────┴───────────────────────────┴──────────┴───────────────┴──────┴───────────────────────────┴──────────┴

Danke

BTW, läuft auf einem Raspberry Pi2 und CC1101 von Pollin.

Steve

Ich habe mir jetzt auch mal einen Pi 2 bestellt, um den Device Tree Blob zu testen :wink:. Wenn du magst, kannst du einmal testen, ob es hiermit funktioniert:

#!/bin/bash
rm -f /tmp/enable-i2c-spi-overlay.dts
rm -f /boot/overlays/enable-i2c-spi-overlay.dtb
echo "// Enable the i2c-1, spidev-0 & spidev-1 devices
/dts-v1/;
/plugin/;

/ {
   compatible = \"brcm,bcm2708,bcm2836\";

   fragment@0 {
      target = <&i2c0>;
      __overlay__ {
         status = \"okay\";
      };
   };

   fragment@1 {
      target = <&i2c1>;
      __overlay__ {
         status = \"okay\";
      };
   };

   fragment@2 {
      target = <&spi0>;
      __overlay__ {
         status = \"okay\";
      };
   };
};
" > /tmp/enable-i2c-spi-overlay.dts
dtc -@ -I dts -O dtb -o /boot/overlays/enable-i2c-spi-overlay.dtb /tmp/enable-i2c-spi-overlay.dts
rm -f /tmp/enable-i2c-spi-overlay.dts

Dieses Skript in z. B. “CreateDTB.sh” packen und ausführen. Anschließend sollte SPI mit dem neuen Kernel funktionieren.

Liebe Grüße

Sathya

Hi Sathya,

danke für den Hinweis…nachdem ich dieses “kleine” Hindernis (alte Firmware mußte eingespielt werden) mit dem fertigen SD Card Image auf einem normalen Raspberry hatte, habe ich beim Pi2 dann ein normales OS Image hergenommen und dann darüber die Homegear deb Pakete installiert. Geht auch prima. Mache ich auch gerade beim Docker Image.

Dein Script werde ich gerne testen…sobald ich mit Docker fertig bin.
cu

Steve