Update ...
habe gestern mit mehreren Arduino(Nano) als I2C-Slave und einem Arduino(Nano) als I2C-Master verscheide Situationen durchgespielt,
um zu sehen wie sicher der I2C-BUS ist.
Dabei habe ich festgestellt, das ich was wichtiges übersehen habe, ein abgeschaltetes Modul zieht über die Schutzdioden des 329p den I2C-BUS (SDA/SCL) runter,
bedeutet ich muss diese PINs sowie die Not-AUS-Leitung beim deaktivieren des Modul von der BUS-Platine trennen, dazu werde ich die Level-Shift-Schaltung von NXP nehmen
die Gates der drei MOSFET (IRLML2402) werden dann mit über den BUS-Anschluss POWER(EN) im jeweiligem Modul mit geschaltet geschaltet.
Damit der Master handlungsfähig bleibt bekommt er einen Festen Platz auf der Bus-Platine, diese Slot kann über eine direkte Steuerleitung vom restlichen TWI-Bus getrennt werden,
die beiden "PCF-8574" sind da aber von nicht betroffen und bleiben mit dem Master direkt verbunden.
Sollte es zu einer Störung auf dem I2C-Bus kommen, wird über direkt gestaltete Leitung (NOT-AUS) alle Aktoren erst mal abgeschaltet,
dann kann der Master, das oder die störenden Module abschalten (neu-starten) ...
Auch musste ich festgestellten, das die Bascom Befehle ( I2creceive / I2csend ) mir mehrmals die Hauptschleife do / Loop zum stehen gebracht haben, ohne das eine Aktivität auf dem BUS vorlag ...
werde deswegen den I2C-Master ebenfalls direkt über die TWI-Register ansprechen, so wie ich es bei den TWI-Slave auch schon umgesetzt habe,
werde mich dabei an der hervorragenden Beschreibung TWI-Praxis orientieren.
So kann ich besser auf Fehler-Situationen reagieren und auch selber Timeouts festlegen ... Das Projekt mit den aufgeteilten Funktionen über Module, Fällt oder Steht mit der sicheren Kommunikation der Module ...
Lesezeichen