Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Master/Slave Kategorie: I²C-Bus (von André H. - 21.08.2003 11:26)
Als Antwort auf Master/Slave von womisa - 21.08.2003 9:50

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.


Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: Master/Slave (von womisa - 21.08.2003 11:55)
    Re: Master/Slave (von André H. - 24.08.2003 10:48)