Ich habe auch bisher ehrlich geantwortet. Ich hab dir doch nun schon zweimal den Sachverhalt versucht zu erklären, einmal per Mail und einmal oben. Du musst auch schon ein wenig beachten was ich schreibe, sonst nützt es wenig.Zitat von nerofighter
Zum dritten mal:
Natürlich nutzt der Baustein das Standard I2C Protokoll wie es definiert wurde. Aber das RN-Motor macht auch von diesem Clock-Stretching (so heißt es glaube genau) gebrauch. Das bedeutet es zieht die Clock Leitung manchmal etwas länger auf GND (bei manchen Befehlen über eine Millisekunde). Dadurch muss der Master kurz warten. Dies ist in der Fachliteratur zum I2C-Bus gut beschrieben und alle I2C-Routinen die sich wirklich 100% an den Standard halten werden damit keine Probleme haben.
Aber da früher nur wenige oder kaum I2C-Bausteine dieses Clock-Stretching benutzt haben, haben viele Programmierer recht schnell I2C-Routinen zusammengezimmert die diese Überwachung der Clock Leitung einfach weglassen. Dadurch funktioniert die Ansteuerung vieler I2C-Bausteine immer noch, aber eben nicht mehr alle können angesteuert werden (dazu gehört auch die momentane RN-Motor Firmware).
Bei neuen Compilern wie Bascom ist das schon länger berücksichtigt. Ob das z.B. auch in GCC schon der Fall ist weiss ich nicht.
Also das müsste dein Programmierer der I2C-Routinen prüfen - vielen ist das Clock Stretching noch unbekannt. Am besten du erklärst es ihm.
Das wäre aber nur eine Annahme warum es bei dir noch Problemchen gibt. Natürlich ist durchaus auch denkbar das du noch irgendwo einen Schaltungsfehler drin hast oder einfach von der Syntax der Befehle was falsch machst. Das kann ich ohne Beispielprogramm nicht beurteilen. Ich kann dir nur sagen das es normalerweise sehr gut funktioniert.
Noch eins: DIe RS232 Schnittstelle ist bei diesem Baustein ja nur zur Ausgabe von kurzen Rückmeldungen vorgesehen. Du kannst mit dem Terminalprogramm keine Befehle übergeben!
Hoffe das hilft dir nun weiter.
Lesezeichen