2016-04-28 14 views
2

Ich habe eine RaspberryPi3 über den I2C-Bus an eine Adafruit MPL3115A2 angeschlossen. Ich habe heute die neueste Version von Raspbian Jessie heruntergeladen. Das einzige, was ich getan habe, istI2C funktioniert nicht in Raspbian

laufen

sudo rasp-config

den I2C-Bus ermöglichen dann einen Neustart und die i2ctools Installation mit

sudo apt-get install -y i2c-tools

Als ich

i2cdetect -y 1

laufen Ich sehe das Gerät auf Adresse 0x60, wo ich es erwarte.

0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --

Allerdings, wenn ich versuchen, das WHO_AM_I Register lesen mit

i2cget -y 1 0x60 0x0C b

oder

i2cget -y 1 0x60 0x0C c

ich 0x00 wenn ich 0xC4 erwarte. Das oben genannte mit `` sudo`` zu spielen, macht keinen Unterschied.

Wenn ich Raspbian herunterfahre, ziehen Sie die SD-Karte, legen Sie eine SD-Karte mit Windows IoT Core und starten. Ich habe kein Problem, 0xC4 aus dem WHO_AM_I-Register wie erwartet zu lesen. Folglich bin ich mir ziemlich sicher, dass das keine schlechte Hardware ist.

Ich habe das Web auf der Suche nach Hilfe (Vertrauen Sie mir, ich darf nicht mehr Links, um es zu beweisen). Ich habe mehrere vorgeschlagene Änderungen an /boot/config.sys versucht, einschließlich der Deaktivierung des Gerätebaums und der Einstellung der Baudrate, um mit dem übereinzustimmen, was wir von Windows IoT Core (400kHz, Raspbian scheinen einen Standardwert von 64kHz zu haben) mit einem Saleae Logic Analysator (kann Ihnen keinen Link geben, googlen Sie es). Der einzige Unterschied, den wir sehen können, ist, dass Raspbian eine diskrete Änderung vom Schreiben zum Lesen zeigt, die der Logikanalysator erkennen kann, während wir dies auf dem IoT Core nicht sehen. Wir sind festgefahren, jede Hilfe oder Ideen wäre großartig.

Edit: Ich würde ein Tag für raspbian-jessie hinzufügen, aber leider bin ich nicht seriös genug

einfach auf ein RaspberryPi2 mit der gleichen Version von jessie prüft (ein neues img auf einem frischen sdcard) und Der Fehler ist der gleiche, so scheint es, als wäre Raspbian Jessie hier die rauchende Waffe.

+0

hinzuzufügen, was die i2c Frequenz ist? – user3528438

+0

Verwenden Sie sudo, um die i2c-Befehle auszuführen? –

+0

'sudo' scheint keinen Unterschied zu machen.Die Saleae gaben an, dass die Standardfrequenz für Raspbian bei etwa 64 kHz lag, während IoT Core 400 kHz verwendete, aber die passende Frequenz half nicht. – LetTheBeatingBegin

Antwort

0

Wir stießen auf die in einem post vergrabene Antwort auf die Verwendung des Sensors mit Python. Es stellt sich heraus, dass der MPL3115A2 wiederholte Starttransaktionen erfordert, die standardmäßig auf Raspbian deaktiviert sind. Die Lösung ist die folgende Zeile am Ende Ihrer /etc/rc.local Datei kurz vor dem exit 0

echo -n 1 > /sys/module/i2c_bcm2708/parameters/combined