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 womisa - 21.08.2003 11:55)
Als Antwort auf Re: Master/Slave von André H. - 21.08.2003 11:26

Hallo André,

vielen Dank für die Beantwortung meiner Fragen. Darüber mu� ich nochmals
in einer stillen Stunde nachdenken. Ich bin der Meinung man mü�te mit
vertetbarem (Kosten)-Aufwand und einem geeigneten "controller" sowas bauen können.
Aber das sollte man nicht vertiefen, da ich zu wenig Hardwarewissen habe.

Noch ne Frage.: Gibt es Software/Hardware um einen I2C Bus an der Station 1
betreiben zu können?

GruÃ?
Achim

 
> 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.


    Antwort schreiben


Antworten:

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