Raspberry Pi: CSM

Aus FHEMWiki

Auf Grund der Tatsache, dass neben diversen GPIO, I2C und SPI Ports auch ein UART-Port vorhanden ist, lassen sich Raspberry Pi und das "CC1101 based UART" Modul (CSM von busware.de) perfekt auf kleinstem Raum kombinieren.

Hardware Setup

RaspberryPi CSM Wiring.png

Das CSM kann komplett vom Raspberry Pi mit Spannung (3V3) versorgt werden. Der 3V3-Pin des Moduls muss dazu mit dem 3V3-Pin des Raspberry Pi (P1-01) verbunden werden, das gleiche gilt für den Ground (P1-06). Als nächstes müssen nur die TXD- und RXD-Pins des Moduls mit den entsprechenden UART-Pins des Raspberry Pi verbunden werden (TXD [P1-08], RXD [P1-10]) - Wichtig: Hier muss die umgekehrte Reihenfolge beachtet werden, also TXD an RXD und RXD an TXD. Zum Schluss muss die Antenne an das Modul angeschlossen werden (ANT), hier funktioniert für den Anfang auch erstmal eine einfache Drahtantenne mit einer λ/4-Länge (ca. 86,25mm) ganz gut.

Software Setup

Nachdem das Modul mit dem Raspberry Pi verbunden worden ist, muss der UART-Port (/dev/ttyAMA0) softwareseitig freigeschaltet werden. Per Default ist dieser mit der seriellen Linux Konsole (Getty) verbunden und daher erstmal nicht in der Lage, mit dem CSM zu kommunizieren.

Dazu müssen sämtliche Getty-Referenzen zum UART-Port entfernt werden: Zum einen muss die Datei "/boot/cmdline.txt" bearbeitet werden und zum anderen die Datei "/etc/inittab":

sudo nano /boot/cmdline.txt
# Referenzen entfernen (durchgestrichen)
dwc_otg.lpm_enable=0 <strike>console=ttyAMA0,115200 kgdboc=ttyAMA0,115200</strike> console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
sudo nano /etc/inittab
# Getty-Referenz auskommentieren
#Spawn a getty on Raspberry Pi serial line
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
sudo reboot

Nach den Änderungen muss das System rebootet werden - Sobald er wieder hochgefahren ist, kann die generelle Kommunikation/Funktionsweise mit einem Terminal-Programm (z.B. minicom) getestet werden. Es ist zu beachten, dass die Baudrate des CSM-Moduls 38,4k beträgt:

sudo apt-get install minicom
minicom -b 38400 -o -D /dev/ttyAMA0
# Befehl "V" (get version) senden um eine ähnliche Antwort wie unten zu erhalten:
# "V 1.44 CSM8682

FHEM Konfiguration

Da das Modul auf der CUL-Firmware basiert, kann es in FHEM wie gewohnt hinzugefügt werden:

define CSM1 CUL /dev/ttyAMA0@38400 [Hauscode]

Getestet werden kann es dann mit z.B.: "get CSM1 version" oder "get CSM1 ccconf". Ansonsten kann es ganz normal wie ein CUL-Device gehandelt und genutzt werden.

Firmware-Update

Für ein Update der CSM-Firmware ist zu beachten, dass der Pin6 (PD3) auf Masse gelegt werden muss.

Externe Links