Eine andere Alternative ist: M128 I2C Bus deaktivieren, M256 als Master...
Verbindung zwischen M256 und M128 nur per UART und ein paar GPIOs für Interrupts...
Reduziert die Menge der Daten die erst per I2C zur M128 und dann per UART zur M256 gehen müssen da diese den Rest vom Bus
einfach selbst abfragt. Die M128 kümmert sich dann nur um die Sensoren die lokal angeschlossen sind. Das ist dann ähnlich
wie wenn man die M32 als I2C Slave benutzt, aber spart Bandbreite auf dem I2C Bus.


Bitte beachten, dass die M128 ein 14.7456 MHz Baudratenquarz verwendet, die M256 allerdings nicht (um die maximale Taktfrequenz zu erreichen).
Daher sind Baudraten bis 115k möglich, darüber wäre die Abweichung zu hoch. Sollte aber reichen.

Beim I2C Bus ist die Datenrate bei gleicher Bitrate geringer als beim UART, da ja noch Adressen und ggf. Registeradressen sowie ACK/NACK übertragen werden.
Kommt dann drauf an wieviele Daten man in einer Transaktion schreibt - also einmal die Adresse und Startregister übertragen und dann 255 Bytes übertragen ist deutlich schneller als wenn man jedes Byte in einer einzelnen Transaktion sendet.


(das läuft auf dem RP6 standardmäßig mit 100kHz),
Spricht aber nix dagegen das auf 400kHz zu erhöhen wenn mans braucht. Dann würde ich schätzen hat man bei typischer Verwendung eine ähnliche effektive Datenrate wie bei 115k - 230k UART.

MfG,
SlyD