Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Achim, > > > kann mir jemand kurz erklären, warum z.B. die CC2-Station nur als Single-Master > > bzw. nicht als Slave angesprochen werden kann. Ist das ein Hardware oder Software > > Problem ? > > Die CC2 kann als I²C-Bus-Baustein überhauptnicht angesprochen werden. > Darum heißt es Single-Master (Master = CC2). > Das liegt daran, daß am C164CI keine Hardware für den I²C-Bus existiert, > sondern der Bus im OS an zwei I/Os (P3.8 & .9) emuliert wird. > Um die CC2 auch als I²C-Slave benutzen zu können, müsste man einige > Interruptgesteuerte Routinen schreiben, und ihr auch eine Adresse zuweisen. > Jedoch gibt es hier ein großes Problem. > Da die Standardgeschwindigkeit des Busses 100kHz beträgt (es gibt auch 400KHz & 1MHz), > wäre der C164CI als Slave sehr stark damit beschäftigt, während > eines Zugriffs die Daten zu empfangen. Auch, wenn dieser > nicht angesprochen wird. Es muß schließlich immer das erste Byte(Adresse) > nach einem I²C-Start analysiert werden, ob es sich um die Slaveadresse handelt. > Auch müssen die Start- und Stop-Bedingungen zuverlässig erkannt werden. > Bei einem Multi-Master-Bus, bei dem die anderen Master sehr viel senden, > wäre der C164CI teilw. stark belastet. > > Ich denke aber auch, daß das dem Entwickler des OS einfach zuviel Arbeit > war, etwas zu implementieren (und zwei Interruptsensible Ports zu opfern), > was nicht so oft benötigt wird. > Schließlich ist es nicht einfach, I²C-Slaveroutinen zu schreiben. > > > > Warum braucht man dazu den I2C-Koppler Baustein ? > > Den I²C-Koppler habe extra für die Fälle entwickelt, wenn man mehrere > Single-Master-Busse oder einen Single-Master-Bus mit einem Multi-Master-Bus > verbinden will. > Als Haupteinsatzweck habe ich die Verbindung mehrerer CC1-Units unterneinande > oder die Verbindung von CC1-Units mit der CC2 vorgesehen. > Um z.B. mehrerer CC2 miteinander zu verbinden, ist es vorteilhafter, > den CAN-Bus zu verwenden. > Allerdings muß ich wiederum sagen, daß die Ansteuerung des I²C-Kopplers > sehr einfach ist. Man kann diesen quasi wie eine serielle Schnittstelle benutzen. > (So sind auch die Treiber aufgebaut.) Man kann bis zu 15 I²C-Koppler an einen > I²C-Bus hängen, sofern man keine weiteren PCF8574 am Bus betreibt. > 16 Stück, wenn das interne LCD der Unit abgeschalten wird. Dann wird eine Adresse > des PCF8574A frei (116). > (Nebenbei bin ich gerade dabei, das OS so zu modifizieren, daß auf das interne > Display keine Systemmeldungen, wie Hostmode oder Running, mehr ausgegeben werden. > Dann ist ein PCF8574A an Addr. 116 uneingeschränkt nutzbar.) > > MfG André H.