CC1101 mit Odroid C1

Hallo,

ich versuche seit ein paar Tagen ein CC1101 über SPI an einem Odroid C1 ans laufen zu bringen.
Hat das schon mal jemand erfolgreich hingekriegt?

Scheinbar klappt bei mir die Kommunikation mit dem spidev nicht so wirklich. Den spi-Treiber habe ich mit modprobe spidev und modprobe spicc geladen. Ein Device /dev/spidev0.0 wurde dadurch auch angelegt. Die Berechtigungen habe ich dort mal auf 777 gesetzt.

Der CC1101 ist ein Modul aus China: aliexpress.com/snapshot/6685 … 9040802544
Angeschlossen ist das Teil so:

C1-Pin   (Funktion)	CC1101-Pin
17 	     (VCC 3.3V)	1
19	     (SI)		3
23	     (CLK)		4
21	     (SO)		5
22	     (GDO2)		6
24	     (CSN)		7
25	     (GND)		9

Die physicalinterfaces.conf sieht so aus:

[code][HomeMaticBidCoS]
deviceType = cc1100
device = /dev/spidev0.0
responseDelay = 100

“0”, falls GDO0 an den GPIO des Rasberry Pi angeschlossen ist oder “2” fü2

Nur einer der GDOs wird benöt, egal welcher

interruptPin = 2

GPIO-Pin auf dem Raspberry Pi, an den der GDO des Moduls angeschlossen ist.

gpio1 = 103[/code]

Der gpio auf 103 sollte passen, weil die Benennung beim C1 anders ist als beim Raspi. Zumindest interpretiere ich so die Ausgabe von gpio readall :

+------+-----+----------+------+- Model ODROID-C -+------+----------+-----+------+ | GPIO | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | GPIO | +------+-----+----------+------+---+----++----+---+------+----------+-----+------+ | | | 3.3v | | | 1 || 2 | | | 5v | | | | | | SDA.1 | ALT5 | 0 | 3 || 4 | | | 5V | | | | | | SCL.1 | ALT5 | 0 | 5 || 6 | | | 0v | | | | 83 | 7 | GPIO. 83 | IN | 1 | 7 || 8 | 0 | ALT5 | TxD1 | | | | | | 0v | | | 9 || 10 | 0 | ALT5 | RxD1 | | | | 88 | 0 | GPIO. 88 | IN | 1 | 11 || 12 | 1 | IN | GPIO. 87 | 1 | 87 | | 116 | 2 | GPIO.116 | IN | 1 | 13 || 14 | | | 0v | | | | 115 | 3 | GPIO.115 | IN | 0 | 15 || 16 | 1 | IN | GPIO.104 | 4 | 104 | | | | 3.3v | | | 17 || 18 | 1 | IN | GPIO.102 | 5 | 102 | | 107 | 12 | MOSI | IN | 1 | 19 || 20 | | | 0v | | | | 106 | 13 | MISO | IN | 1 | 21 || 22 | 1 | IN | GPIO.103 | 6 | 103 | | 105 | 14 | SCLK | IN | 1 | 23 || 24 | 1 | OUT | CE0 | 10 | 117 | | | | 0v | | | 25 || 26 | 1 | OUT | GPIO.118 | 11 | 118 | | | | SDA.2 | ALT5 | 0 | 27 || 28 | 0 | ALT5 | SCL.2 | | | | 101 | 21 | GPIO.101 | IN | 1 | 29 || 30 | | | 0v | | | | 100 | 22 | GPIO.100 | IN | 1 | 31 || 32 | 1 | IN | GPIO. 99 | 26 | 99 | | 108 | 23 | GPIO.108 | IN | 0 | 33 || 34 | | | 0v | | | | 97 | 24 | GPIO.97 | IN | 1 | 35 || 36 | 1 | IN | GPIO. 98 | 27 | 98 | | | | AIN.1 | ALT5 | 0 | 37 || 38 | 0 | ALT5 | 1v8 | | | | | | 0v | | | 39 || 40 | 0 | ALT5 | AIN.0 | | | +------+-----+----------+------+---+----++----+---+------+----------+-----+------+

Leider bekomme ich immer Registerfehler…
Das Logfile habe ich angehängt.

Über eine Anregung wie ich doch noch zum Ziel komme wäre ich wirklich Dankbar!
Wenn mir jemand sagt das es mit dem C1 gar nicht geht wäre das für mich auch eine akzeptable Lösung. Dann muss halt ein RPI2 her…

Viele Grüße
Der Adler
homegear.log (11.6 KB)

Hallo,

generell gibt es keinen Grund, warum es auf dem C1 nicht funktionieren sollte. Allgemein gibt es folgende Fehlermöglichkeiten:

[ul]
[li] CC1101-Modul ist defekt => ließe sich z. B. an einem Raspberry Pi prüfen[/li]
[li] SPI-Treiber funktioniert nicht => ebenfalls mit einem Raspberry Pi überprüfbar[/li]
[li] Falsch verkabelt oder Kabel defekt => Sieht soweit alles gut aus[/li]
[li] Falsche Konfiguration => Sieht ebenfalls gut aus[/li]
[li] Probleme mit dem GPIO => Dann funktioniert nur der Empfang nicht, Senden sollte aber klappen[/li][/ul]

Da sich die Register nicht schreiben lassen, ist der GPIO erst einmal egal. Auch hier kann es Probleme geben, wenn dieser z. B. nicht interruptfähig ist, aber das wirkt sich wie gesagt nur auf den Empfang aus. Von daher bleiben nur Punkt 1 bis 3. Die Verkabelung habe ich gerade überprüft - sieht gut aus. Wenn die gespostete Verkabelung also der realen Verkabelung entspricht und die Kabel/Kontakte in Ordnung sind, ist das ebenfalls nicht die Ursache für das Problem.
Also bleiben noch Punkt 1 und Punkt 2. Hättest du die Möglichkeit, das Modul an einem Raspberry Pi zu testen?

Viele Grüße

Sathya

Hallo!

Es scheint tatsächlich am Modul zu liegen. Ich hatte noch ein zweites. Das habe ich aus Verzweiflung gestern noch parallel an einem Raspi B (altes Modell) gebaut. Und, oh wunder, es geht sofort!
Heute habe ich dann die beiden Module getauscht.
Das Modul das ich vorher am C1 nicht zum senden bringen konnte, schreibt mir auf dem Raspi das Log mit CRC Fehlern voll, sendet aber auch nichts.
Das Modul das am Raspi funktioniert hat, funktioniert auch am C1. Zwar klappt es mit dem pairing noch nicht so wirklich, aber das ist eine andere Baustelle…

Vielen Dank für die Analyse und Hilfe!
Der Adler