SHT21 am BeagleBone Black

Gast #4758734
Lesenswert?

Hallo,

ich habe ergooglelt, dass es für einen SHT21 Luftfeuchtigkeitssensor für 
Linux einen Kernel-Driver geben soll. Kann mir jemand erklären was das 
genau bedeutet und wie ich den Sensor dann auslesen kann? Wie kann ich 
erkennen, ob mein Linux den Treiber schon im Bauch hat? Ich möchte ihn 
an mein BeagleBoneBlack anklemmen und möglichst einfach auslesen.

Maik
#4758753
Lesenswert?

Hier findest Du den Treiber:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/hwmon/sht21.c

Wenn er in Deinem Kernel einkompiliert ist, heißt er "sht21". Also 
einfach mal "modprobe sht21" probieren. Wenn er was von "Module sht21 
not found" schreibt, dann ist der Treiber für Deinen Kernel noch nicht 
kompiliert.

Dann schau bei der Anleitung Deiner Distribution wie man einen eigenen 
Kernel kompiliert.
Gast #4763976
Lesenswert?

Ich hab jetzt einen SHT21 am BBB angeschlossen.

Wenn ich "i2cdetect -y 1" eingebe, bekomme ich aber den folgenden 
Fehler:

Error: Can't use SMBus Quick Write command on this bus

Wenn ich "i2cdetect -F 1" eingebe, kann ich sehen das "SMBus Quick 
Command " nicht implementiert ist. Kann ich das irgendwo einschalten? 
Wenn ja wo?

Functionalities implemented by /dev/i2c-1:
I2C                              yes
SMBus Quick Command              no
SMBus Send Byte                  yes
SMBus Receive Byte               yes
SMBus Write Byte                 yes
SMBus Read Byte                  yes
SMBus Write Word                 yes
SMBus Read Word                  yes
SMBus Process Call               yes
SMBus Block Write                yes
SMBus Block Read                 no
SMBus Block Process Call         no
SMBus PEC                        yes
I2C Block Write                  yes
I2C Block Read                   yes

Gruß
Maik
Gast #4764345
Lesenswert?

Ja, aber der echo Befehl kommt mit einem Fehler zurück.
Es gibt im i2c-1 auch keinen Ordner new_device.
Laut Pinbelegung des BBB ist es der I2C-1. Wobei der 1er Bus an 2 
unterschiedlichen Portpins vorhanden ist.

Hat jemand noch irgendwelche Tipps zum debugging?
Gast #4764867
Lesenswert?

sudo echo sht21 0x40 > /sys/class/i2c-adapter/i2c-1/new_device

kommt mit "Permission denied" zurück.

Es gibt den Ordner auch nicht unter:

/sys/class/i2c-adapter/i2c-1/

Dort sind nur folgendes:

0-0024  0-0034  0-0050  0-0070  delete_device  device  i2c-dev  name 
new_device  power  subsystem  uevent
Gast #4765965
Lesenswert?

"lsmod" zeigt den sht21 nach dem ich "modprobe sht21" eingegeben habe 
an.

In einem anderen Forum habe ich noch herausgefunden, das man "i2cdetect 
-r 1" (1 für I2C-1) eingeben sollte. Dann kann ich den Bus auch scannen. 
Der Sensor wird aber nicht gefunden :-(

Dann geht die Suche also weiter...
#4766000
Lesenswert?

Maik schrieb:
> In einem anderen Forum habe ich noch herausgefunden, das man "i2cdetect
> -r 1" (1 für I2C-1) eingeben sollte. Dann kann ich den Bus auch scannen.
> Der Sensor wird aber nicht gefunden :-(

Pullups hast Du am Bus dran? Wieviel Ohm?

100nF direkt an der Versorgung des SHT21 vorhanden?

Wenn es das nicht ist, dann schau Dir mal die Flanken am Bus mit dem 
Oszi an während Du das i2cdetect laufen lässt. Sind die sauber?
Gast #4766661
Lesenswert?

Pulups sind mit 2K2 vorhanden.

100nF Pufferkonni vorhanden.

Flanken kann ich keine sehen! Es kommen keine Signale!

Ich sehe im BBB nur i2c-0 und i2c-1.

ich kann an keinem Pin der i2c Busse irgend etwas messen. Im Ruhezustand 
liegen 3,3V an. (wg. der Pulups)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren