PIC18F2480 mit I2C-switch

OP #4119687
Lesenswert?

Hallo Gemeinde,

habe vor mit einem µC 2 Sensoren mit der gleichen Adresse auszulesen und 
benötige logischer Weise einen I2C-switch. Kann mir jemand einen switch 
empfehlen? Ich hätte den PCA9546A verwendet, hat vieleicht jemand ein 
Schaltungsbeispiel auf Lager? Und besteht die Möglichkeit den switch 
nicht über den µC umschalten zu lassen, sprich durch eine Art Tackt 
(Multivibrator an den Adresseingängen)?

Gruß, Simon
Gast #4120671
Lesenswert?

Simon Rdg schrieb:
> Ich hätte den PCA9546A verwendet, hat vieleicht jemand ein
> Schaltungsbeispiel auf Lager?

Die ergibt sich eigentlich recht klar aus dem Datenblatt,
Sensor 1 z.B. an SC0 und SD0 und Sensor 2 z.B. an SC1 und SD1.
Controller sinniger weise an SDA und SCL, Versorgung an VDD etc.
Im NXP-Datenblatt auf Seite 11 ist übrigens das von Dir gewünschte
Schaltungsbeispiel aufgezeichnet. Im TI-Datenblatt ists auf Seite 15.

> Und besteht die Möglichkeit den switch nicht über den µC
> umschalten zu lassen,

Noe, die Umschaltung zwischen erfolgt ja durch Beschreiben eines
internen Registers (Control register) - dürfte schwer werden, das
ohne Digitalbaustein zu erreichen. Obwohl, theoretisch kannst Du
Takt und Datenbits auch händisch mit Tastern reindrücken.

> sprich durch eine Art Tackt (Multivibrator an den Adresseingängen)?

Hmm, abgesehen davon, daß es der Chip übel nehmen wird, wenn man
im laufenden Betrieb an den Adresspins herum/takt/et:
Die Adresspins sind dazu da, damit man die Adresse des 9546er
abändern kann. Also jene, mit der er selbst angesprochen werden
kann. Mit der Umschaltung der Kanäle haben die gar nix zu tun.

> Kann mir jemand einen switch empfehlen?

LTC4312 vielleicht? Das ist ein 2-kanaliger I2C-MUX, bei dem die
Auswahl der Kanäle ganz einfach über zwei Pins erfolgt, braucht also
kein Schreiben in irgendwelche Register oder Ähnliches.

Was soll das Gannze denn überhaupt werden? Und wozu der PIC18
im Titel, wenn Du anscheinend doch keinen Controller nehmen willst?

> Gruß, Simon

LG, N0R
OP #4124532
Lesenswert?

Danke für die hilfreiche Antwort,

>Die Adresspins sind dazu da, damit man die Adresse des 9546er abändern kann.
>Also jene, mit der er selbst angesprochen werden kann.
>Mit der Umschaltung der Kanäle haben die gar nix zu tun.

das wusste ich nicht wie wechselt er denn zwischen den beiden Sensoren?

Ich Baue eine Steuerung in der die 2 Sensoren als Näherungsschalter 
fungieren sollen, den PIC brauche ich zum auslesen der Sensoren, da 
diese ohne I2C nicht funktionieren.

An den Ausgängen des PICs hängen verschiedene Leuchtmittel, geschalten 
über einen NPN.

Gruß Simon
#4124537
Lesenswert?

@ Simon Rdg (simonpunktcom)

>Ich Baue eine Steuerung in der die 2 Sensoren als Näherungsschalter
>fungieren sollen, den PIC brauche ich zum auslesen der Sensoren, da
>diese ohne I2C nicht funktionieren.

Und wo sit dann das Problem, wenn der PIC die Umschaltung macht?

>An den Ausgängen des PICs hängen verschiedene Leuchtmittel, geschalten
>über einen NPN.

Also Krümelkram. Man kann auch I2C relativ leicht rein in Software 
machen, dann braucht man gar keinen I2C Switch, sondern klemmt die 
beiden ICs an getrennte I2C Busse am PIC.
Gast #4128498
Lesenswert?

Simon Rdg schrieb:
>> Die Adresspins sind dazu da, damit man die Adresse des 9546er
>> abändern kann.Also jene, mit der er selbst angesprochen werden kann.
>> Mit der Umschaltung der Kanäle haben die gar nix zu tun.
> das wusste ich nicht wie wechselt er denn zwischen den beiden Sensoren?

Naja, so wie ich geschrieben habe:
>>> die Umschaltung zwischen erfolgt ja durch Beschreiben eines
>>> internen Registers

Du stellst praktisch "in Hardware" die Adresse des 9546ers mit den Pins
ein. Wenn du nur einen hast, dann kannst Du sie alle drei Pins auf
Ground legen, das enstpricht dann Hex-Adresse E0 (bzw. E1 zum 
Schreiben). Im NXP-Datenblatt ist das auf Seite 5 ganz anschaulich 
gezeigt. Dann beschreibst Du das Control-Register mit einem Byte, dessen 
4 letzte Bits definieren den Channel. Also wenn Bit Nummer 0 auf 1 
gesetzt wird, dann ist Channel Null 0 bzw der erste Kanal von den 4 
aktiv, Bit 1 setzt Channel 1, Bit 2 Channel 2 und Bit 3 Channel 3. Das 
steht im NXP-Datenblatt auf Seite 6, lesen musst Du es trotzdem selbst.

> Ich Baue eine Steuerung in der die 2 Sensoren als Näherungsschalter
> fungieren sollen, den PIC brauche ich zum auslesen der Sensoren, da
> diese ohne I2C nicht funktionieren.

Bist Du genau auf diese zwei exakt gleichen Sensoren angewiesen?
Um welche Sensoren handelt es sich denn? Es wäre ja auch möglich,
daß sich ähnlich dem PCA9546A die Sensoren ebenfalls mittels Pins
in ihrer Adresse ändern lassen, dann wäre das Switchen natürlich
hinfällig. Das Datenblatt des Sensors hast Du hoffentlich zumindest
überflogen, oder auch nicht?

> An den Ausgängen des PICs hängen verschiedene Leuchtmittel, geschalten
> über einen NPN.

Man könnte auch, wie schon von Falk vorgeschlagen, einfach zwischen
den Sensoren umschalten bzw. einfach den Sensor, den man grade nicht
braucht, vom Bus abklemmen. Ich bin mir grade nicht hundertprozentig
sicher, ob es genügen würde, den Sensor mittels Transistor einfach
von der Taktleitung abzuklemmen, und bin auch zu faul, mir das gerade
näher zu Gemüte zu führen, aber prinzipiell müsste das klappen. Dann
brächte man zwei Transisitoren. Ansonsten müsste es auch mit einem
passenden Analogschalter funktionieren. In der Edelversion von mir
aus noch mit einem Gatter bzw. Flip-Flop davor. Oder eben einen MUX
nehmen, wie oben angeboten, der macht das alles schon "halbautomagisch".

Die vorgeschlagene zusätzliche Software-I2C-Impelemntierung halte
ich persönlich eher für unnötigen Overkill, wenn ich ehrlich bin.
Besonders in diesem Fall, wo's anscheinend schon mit dem Lesen von
Datenblättern hapert, stelle ich es mir das eher schwierig vor.

> Gruß Simon

Gruß zurück und viel Erfolg,
Norbi
#4130117
Lesenswert?

Simon Rdg schrieb:
> Weil ich den nicht auf lager habe... ich habe lediglich den 18f2480...
> an den i2c bin ich angewiesen weil ich den sensor sfh7776 verwebde und
> dieser ohne i2c garnichts macht... :/

Ach herrje! Reíchelt verkauft Dir nichts? Der PIC18F25K22 (mit weniger 
Flash) steht mit 2.55€ im Katalog. Ich denke, daran soll es nicht 
liegen. Sonst bist Du in einem Monat noch nicht weiter.

fchk

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren