CC1101 RPi SPI Adapter


#65

Ich habe mir mal den Spass gemacht, und das Modul aus dem ersten Beitrag nachgebaut. Im homegear.log finde ich keinen zugehörigen Fehler (“All physical interfaces are connected now.”), aber es lassen sich für MAX! keine Devices anlernen. Ich starte das im HomeMatic Manager, aber er findet keine Devices. Meine MAX! Config sieht so aus:

moduleEnabled = true

#######################################
########## TI CC1101 Module  ##########
#######################################

[TI CC1101 Module]
id = My-MAX-CC1101
default = true
deviceType = cc1100
device = /dev/spidev0.0
responseDelay = 100
interruptPin = 2
gpio1 = 25

Es kommt auch keine Fehlermeldung, wenn ich gpio1 auf 26 ändere, was aber falsch sein sollte. Fehler gibt es nur, wenn das Modul nicht angesteckt ist. Wie kann ich das am besten debuggen?


#66

Bei mir war das zu 99% ein defektes China-Modul.

Grundliegend brauchst du Debuglevel 5, dann siehst du ob der CC1101 überhaupt Nachrichten deiner Max!-Geräte empfängt. Einfach mal aufmachen und ein wenig warten oder an Gerät den Anlernmodus anschalten. Dann solltest du da was sehen.

Ich empfehle dir das Anlernen über die homegear Konsole zu machen, analog zu Homematic: https://doc.homegear.eu/data/homegear-homematicbidcos/adding_devices.html

Am besten machst du dir zwei Terminals auf, eins mit dem Log und eins mit der Konsole. Das Debuglevel kannst du auch zur Laufzeit mit dl 5 umstellen.


#67

Okay, mist, werde das mal prüfen. Mit dem Log meinst du die “homegear.log” in /var/log/homegear, oder? Da müssten dann auch Daten zu sehen sein, die das Ding empfängt?

Btw, ist das nicht merkwürdig, dass auch bei gpio1 = 26 kein Error fliegt? Das ist ja auf jeden Fall nicht korrekt.


#68

Genau.

“Jein”. Der GPIO wird nur zum Uumschalten der Senderichtung benötigt… also auch dann erst benutzt.


#69

Okay. Also ich sehe nichts auf der Konsole, was irgendwie dazu passen könnte. Bei den Errors habe ich nur:

11/03/16 17:16:51.035 Error in file PhysicalInterfaces/EventServer.cpp line 99 in function void IpCam::EventServer::setListenAddress(): No IP address could be found.
11/03/16 17:16:51.609 Module Beckhoff: Error in file Interfaces.cpp line 45 in function virtual void MyFamily::Interfaces::create(): The provided hostname is empty.
11/03/16 17:16:54.614 Warning: Unknown parameter property: label
11/03/16 17:16:54.795 Warning: variables with id "ZWaveVariables" does not exist.
11/03/16 17:16:54.822 RPC Server (Port 2001): Warning: SSL is not enabled for this RPC server. It is strongly recommended to disable all unencrypted RPC servers when the connected clien$
11/03/16 17:16:54.822 RPC Server (Port 2001): Warning: RPC server has no authorization enabled. Everybody on your local network can login into this installation. It is strongly recommen$

Hat meiner Ansicht nach alles damit nichts zutun, oder?
Wie hoch ist denn die Reichweite von diesen Dingern etwa? Eine Wand müsste gehen, oder? Direkt daneben geht’s aber auch nicht.


#70

Deinstallier bitte mal alle Module die du nicht benötigst.

dpkg -l | grep homegear
sudo apt remove homegear-beckhoff

etc…

Danach dann bitte mal homegear neu starten, debuglevel hochsetzen und das log prüfen.


#71

Hey @pmayer,

habe gerade das Modul von gestern verbaut und es arbeitet super!!! Danke dafür. Jetzt noch einige Hinweise, die ggf. helfen.

1.) Das Bild in der Beschreibung zeigt einen Raspberry Pi 2

2.) Wenn man wie ich DietPi als Distro nutzt, kann man SPI nicht so ohne weiteres einschalten. Hierzu muss man in der Datei /DietPi/config.txt ein bißchen editieren

nano /DietPi/config.txt

dtparam=spi=off auf on ändern

nach dem Speichern rebooten und mit

lsmod | grep spi

prüfen ob module geladen wurden

Ansonsten alles wie beschrieben.

Danke und Gruß
Thomas


#72

Die GPIO-Leiste ist ja gleich… oder warum hast du es erwähnt?


#73

Die Leiste ist beim Pi 1 kürzer, der CC1101 sitzt dann ganz am Ende.


#74

Ah, ja… das stimmt :slight_smile:


#75

Hallo,

sollte jemand Interesse an ein oder zwei dieser (unbestückten) Platinen haben, dann stecke ich die gern für 3€ bzw. beide für 4€ in einen Umschlag und lasse sie euch zukommen.


#76

So, wieder Bestand bei uns im Shop: CC1101 RaspberryPi SPI Modul


#77

Hallo @pmayer ,
ich habe mich wie angeboten an die im Faden vorgestellte Modulplatine angelehnt und diesen Entwurf zustande gebracht:


Die neue Platine soll mit einem LCD-Display (10.1inch HDMI LCD, 1024×600 von waveshare) zusammenwirken.

Auf der Rückseite des Displays ist eine Schnittstelle vorhanden, die offensichtlich parallel zur vorhandenen Raspberry-Schnittstelle existiert. Diese Schnittstelle könnte man durch einen SMD-Stiftsockel aktivieren. Bei der Schnittstelle auf meiner Platine musste natürlich die Pinbelegung gedreht werden, was auch der Grund dafür ist, dass eine neue Adapterplatine fällig wurde.

Mein Problem: ich bin nicht besonders fit auf dem Gebiet der Antennentechnik! Ich habe mir zwar die Anmerkungen von @malli , was Abstände und Leiterbahnbreiten angeht, durchgelesen. Bei der von Patrick entworfenen Platine sind im Bereich der Antennenleitung einige Durchkontaktierungen vorhanden, die so denke ich, nur in Bezug auf die “koaxiale Leitung für Arme” eine Relevanz haben könnten(?)

Aus meiner aktiven Zeit weiß ich um die gefürchteten Masseschleifen, die man sich schnell und gerne beim Leiterplattenlayout einhandelt. Zudem habe ich das chinesische Modul von CDSENET studiert, dabei ergibt sich, dass die Anschlüsse 8 und 10 (beide GND) sich diametral gegenüberliegen und wenn diese auf dem CDSENET-Modul miteinander verbunden sind, was stark anzunehmen ist, dann haben wir die besten Vorraussetzungen für eine Masseschleife.

Daher meine Frage: Die Durchkontaktierungen im Bereich der Antennenleitung haben welchen Sinn? Ich habe diese in meinem Entwurf ebenfalls vorgesehen, löschen kann sie ich immer noch :wink:


#78

@pmayer
Ich habe entsprechend meinen Überlegungen die Platine auf den letzten Stand gebracht. Kleine Überarbeitungen im Detail und als wichtigste Maßnahme, die Entkopplung des Antennen-GND vom Power-GND betrieben.


Ein Hintertürchen habe ich mir für den Fall offengelassen, dass die Maßnahme kontraproduktiv gewesen sein sollte, kann man über eine Lötbrücke, den Antennen-GND mit dem Power-GND kurzschließen.


#79

Super. Aber wie schon per Mail geschrieben kannst du mein bestehendes Modul ja auch über Kopf montieren sowie ich wieder welche habe, wo noch keine Buchsenleiste verlötet ist.

Nichtsdestotrotz ist dein Gedanke mit der Trennung der Ground-Plane vielleicht aber völlig richtig. Meldungen, dass es zu Störungen gekommen ist die sich eventuell auf eine Masseschleife zurückführen lassen, hatte ich bisher noch keine - genau genommen hatte ich noch keine einzige Meldung, dass das Modul nicht funktionieren würde :wink:

Vielleicht kann @malli dazu noch was sagen, dann lass ich die Trennung gerne in mein zukünftigen Layout einfließen.


#80

Danke für die Antwort. Aber dein Modul über Kopf montieren, das geht nicht, weil die Pin-Belegung auf dem HMI schon gespiegelt ist - leider. Aber so wie es jetzt läuft ist das schon OK.

Aus meiner schon lange zurückliegenden Zeit sind mir die Masseschleifen immer noch ein Begriff. Ich habe mir deswegen von TI das recht umfangreiche Datenblatt heruntergeladen und etwas studiert. Daher kam der Antrieb das Laypoz nochmals anzupassen, verkehrt dürfte es allemal nicht sein. Bei dem letzten Layout fehlt noch ein VIA für den GND-Anschluss 8 des CDSENET-Moduls.

Ich hab’ mal die Gerber-Dateien beigelegt, sind aber ohne Bestückungsdruck:
CC1101-HMI-SPI-Gerber-Files.zip (8,5 KB)


#81

Würde es für mein Modul für den “normalen” Anschluss ja sowieso noch mal separat übernehmen.


#82

Einen Sternpunkt für separate Power-Masse und Antennen-Masse ist ein nicht totzukriegendes Ammenmärchen (laut brain.exe), das seinen Ursprung wohl in der Röhrenzeit hat (laut einem TI-Ingenieur). Man nimmt eine Masse und der Strom sucht sich jeweils seinen Lieblingsweg zurück - bei DC den des geringsten (ohmschen) Widerstands, bei HF eng an die “Hin-Leitung” geschmiegt. Bei der “Hin-Leitung” legt man natürlich nach Bedarf getrenntes AVDD, DVDD und PVDD und routet DC/DC-Wandler usw. als möglichst kompakte Knäuel. Eine Masseschleife (Brummschleife) spielt bei zwei parallelen Audiokabeln eine Rolle oder bei Ethernetinstallationen - nicht auf Leiterplatten, da die parallelen Masseflächen eng (kapazitiv/induktiv?) aneinander gekoppelt sind. GND-Vias brauchst Du ganz dringend mindestens an den Übergängen der Antennenleitung zum Funkmodul oder der Antenne, weil sowohl die laterale Massefläche als auch die vergrabene Massefläche Teil des Wellenleiters sind (grounded coplanar waveguide, kann man super mit TX-Line ausrechnen), in einem guten Design zusätzlich einen Via curtain entlang der Antennenleitung und entlang des Platinenrandes (damit das E/H-Feld an der Oberfläche nicht das vergrabene “überholt” sowie gegen Harmonische im Zehngigahertz- oder Hundertgigahertzbereich) und außerdem ohne Thermals im HF-Teil (der Umweg des HF-Stromes ist freilich nur geing). Bei 12 Millimetern Antennenleitung ist alles nicht so kritisch, falls die Antennenleitung dann mal 40 oder 70 Ohm haben sollte.


#83

Hallo @malli,

vielen Dank für die nette Antwort. Bzgl der Ammenmärchen - ich bin schließlich ins Berufsleben eingetreten, da war der Siliziumtransistor gerade erfunden worden… Die Prägung von damals sitzt also heute noch drin, ein Nachteil ist aber nicht unbedingt - zumindest meine Meinung.

Ich fasse mal für mich zusammen: Via curtains sind beidseitig der Antennenleitung vorhanden, die Thermals bei den Antennen-GNDs lösche ich. Und das sollte es dann gewesen sein.


#84

So, nach 3 Tagen Ruhezeit habe ich die Platine noch einmal kontrolliert - keine Fehler gefunden.
Die gültige Version habe ich jetzt in Auftrag gegeben.