Harald A. schrieb:
> Die Zeile dürfte die erste tatsächliche Kommunikation per I2C
> auslösen.
> Ich habe mich da kurz durchgehangelt, allerdings habe ich gerade keine
> IDE, mit der ich projektübergreifend suchen könnte. Daher kann ich nicht
> ganz sehen, wie z.B. das I2C-Acknowledge ausgewertet wird. Evtl. per
> Polling? Ich vermute, dass das ACK nicht kommt und die SW dann hängt und
> spektakulär aussteigt. So könnte es sein.
> Hast Du einen LogicAnalyzer, mit dem man mal schauen könnte, was da
> läuft? Oder ein Scope?
Ein I2C-Scanner liefert den Sensor unter 0x29, das ist schon mal anders
als in den Infos von Sparkfun angegeben. Die Adresse hab ich bei
"begin(0x29)" eingetragen (wird in der Lib auch als "address" weiter
gehandled), allerdings ändert das nix am Grundproblem. Aber das hier
klappt erstmal:
1 | VL53L5CX_i2c->writeSingleByte(0x7fff, 0x00);
|
2 | deviceId = VL53L5CX_i2c->readSingleByte(0x00);
|
3 | revisionId = VL53L5CX_i2c->readSingleByte(0x01);
|
4 | VL53L5CX_i2c->writeSingleByte(0x7fff, 0x02);
|
5 |
|
6 | Serial.println("addrs "+String(address));
|
7 | Serial.println("devID "+String(deviceId));
|
8 | Serial.println("revID "+String(revisionId));
|
erst bei "result = vl53l5cx_init(Dev);" knackt es.
Oszi habe ich, allerdings erst morgen im Büro ... Analyzer nicht.