Hallo Mac80
ich gebe folgendes zu bedenken. So lange die Base die Sensoren auslesen soll und keine M32 aufsitzt, müsste alles funktionieren wie geplant. Sobald aber die M32 aufsitzt muss die Base als Slave laufen. Liest die Base aber dabei Sensoren aus, würde sie als Master auf dem Bus agieren und es wäre ein Multimaster System bzw die Base müsste Master und Slave Mode können. Dagegen ist technisch so nichts einzuwenden, jedoch hat die CPU angeblich Hardwareseitig ein Problem bei der Erkennung von Buskollisionen
(http://www.robotroom.com/Atmel-AVR-T...r-Problem.html)
und obendrein funktioniert die Busarbitierung mit der RP6Lib Software so nicht und es gibt auch sonst noch ein paar Schwierigkeiten.
Allein ein System mit Base als "dummer" Slave, Slave-Sensoren und M32 als Master ist mit Boardmitteln denkbar aber leider relativ instabil. Mit der M128 lässt sich das entsprechend noch weiter spinnen - wobei die auch nur Funktionen vergleichbar mit der Feury Lib bietet und eher nicht Multimaster tauglich ist. (http://homepage.hispeed.ch/peterfleu...ware.html#libs)
Wenn Dich die Hintergründe interssieren:
https://www.roboternetz.de/community...-RP6Lib-Bugfix
Ich habe jedoch die Arbeit daran magels Interesse & Feedback eingestellt. Wenn weiterhin Interesse an einem Multimastersystem besteht, empfehle ich Dir die Libs vom Arduino Projekt, dort insbesondere wire.cpp und twi.c/.h.
Damit ist zumindest ein stabiler Multimasterslave Betrieb möglich.
Leider macht das Gefummel mit den Interrupts in der RP6 Lib ein stabilen Betrieb der Base Slave schwierig - eigentlich bräuchte man auf der Base ein stabiles Core System wenn man mit der M32 anfängt zu experimentieren. Ich habe diesbezüglich mal mit Nano OS (http://sourceforge.net/projects/nanoos/ und http://www.mikrocontroller.net/topic/190388) experimentiert, aber bin bisher nicht zu vorzeigbaren Ergebnissen gekommen. Leider konnte ich auch noch niemand dazu bewegen, das als Team gemeinsam anzugehen und um das allein zu machen issses mir zu Aufwendig. Das I2C aber allgemein beim RP6 problematisch ist, erfährst du schon wenn du hier nach I2C suchst. Echte Lösungen findet man aber kaum - nur Minimallkompromisse und Provisorien.
LG Rolf
Lesezeichen