Hi Marc,
Nein dann bringt es wohl nichts. Die Wahrscheinlichkeit dass alle drei kaputt sind geht wohl gegen Null, überhaupt ist die Rückläuferquote sehr, sehr gering. Ich glaube dieses Jahr war wohl noch kein defektes SRF08 dabei.ich glaube nicht das das Modul wirklich kaputt ist, denn ich habe ingesamt drei Stück. Und alle drei verhalten sich ähnlich, wobei ich immer nur mit einem arbeite, habe aber mal an einem anderen ausprobiert ob es sich ähnlich verhält. Falls du es denoch haben möchtest schicke ich es dir gerne zu.
Aber dennoch muss eine Lösung her.
Das geht schon, wenn das Modul den Bus (irgendeine Leitung) dauerhaft auf Low zieht. Der I2C Bus funktioniert ja so, dass alle Busteilnehmer den Bus auf Masse ziehen können. Irgendwo im System (zumeist beim Busmaster) gibt es PullUp-Widerstände, die den H-Pegel liefern.Dann habe ich meinen Code so abgeändert das ich an jeder nur erdenklichen Stelle den Busstatus abfrage, wobei dann rausgekommen ist das wenn ich die zweite Messung starten möchte das nachdem Startsignal der Busstatus mir ein "Arbitration lost" meldet was wohl daher rührt das der Bus beim senden des Startsignals nicht frei ist. Jetz ist die Frage ob ich einfach nur sc*** Code gebaut habe oder ob der Bus nicht freigegeben wird weil das US-Modul abgestürtz ist (wenn das überhaupt geht).
Eigentlich ist solch eine Konstruktion sehr schnell zum Laufen zu bewegen, mal abgesehen davon, dass es softwareseitig auf manchen Controllern etwas schwierig zu implementieren ist. Das scheint aber bei dir gar nicht der Fall zu sein, da der Controller ja eine hardwareseitige I2C-Unterstützung bietet.
Aber ich habe im Moment echt keine Ahnung, was hier schiefläuft.
Gibt es vielleicht doch einen Adresskonflikt durch den EEPROM oder die RTC? Das würde aber die anderen Phänomene nicht erklären.
Vielleicht kannst du auch einen Elektroniker mal zu Rate ziehen, in das hier geschriebene einweihen und mal auf die Schaltung gucken lassen.
Viel Erfolg und
Viele Grüße
Jörg
Lesezeichen