Vor TCA9548A kein Slave möglich ?

Gast #7096843
Lesenswert?

Moin,

Verwende den TCA9548a i2c Multiplexer um mehrere DHT12 Sensoren 
auszulesen, das klappt auch wunderbar.
Der Multiplexer sitzt an ca 20m Leitung mit dem P82B96 als Line-Buffer 
vor und hinter der Leitung.

Nun möchte ich noch uA einen weiteren Slave, in diesem Fall den BH1750 
Helligkeitssensor verwenden, ich möchte mit diesem keinen Kanal am 
Multiplexer nutzen und habe ihn VOR dem TCA9548a an den Bus gehängt.

Dort wird er auch erkannt, liefert aber nur Unsinn.
Der TCA9548a und die DHT12 funktioneren weiterhin zuverlässig.

Sobald ich den TCA9548a vom Bus nehme funktioniert der BH1750 wieder.

Habe mit der Datenrate und den Pullups schon experimentiert, ohne 
Erfolg.
Im Datenblatt zum TCA9548a steht nix dazu ob er irgendwie den Bus derart 
beeinflusst, eingentlich ist er ja auch nur einer von "vielen" Slaves.
Moderator (Firma: Titel) Persönliche Seite #7096867
Lesenswert?

Carsten schrieb:
> Habe ... schon experimentiert
Hast du auch einfach mal mit einem Oszi gemessen?
Nur damit kannst du die Signalqualität wirklich beurteilen und klären, 
ob du im Bereich dessen liegst, was das Datenblatt fordert. Allein mit 
herumfrickeln, probieren und experimentieren wird das nichts 
Zuverlässiges.
Gast #7097007
Lesenswert?

Vorher bekomme ich einen Helligkeitswert der entsprechend der Auflösung 
und Tageszeit fünfstellig ist und um ein paar digits schwankt.

Hinterher bekomme ich Einen Wert der um 8400 liegt und unregelmäßig bei 
0,33,31 liegt.

Das beginnt sobald ich den TCA9548a an den bus lege.
Leider sind diese "shields" auch immer mit Beschaltung versehen die 
nicht immer gut dokumentiert ist, daher immer die Gefahr daß bereits 
Pullups etc dort vorhanden sind zb
Gast #7097010
Lesenswert?

Lothar M. schrieb:
> Hast du auch einfach mal mit einem Oszi gemessen?
> Nur damit kannst du die Signalqualität wirklich beurteilen und klären,
> ob du im Bereich dessen liegst, was das Datenblatt fordert. Allein mit
> herumfrickeln, probieren und experimentieren wird das nichts
> Zuverlässiges.

Mein Zweistrahloszi von Philips ist leider nicht in der Lage die 
Datenströme im Stillstand zu zeigen, und ich möchte es ungern raus in 
den Geräteschuppen schleppen.
Moderator (Firma: Titel) Persönliche Seite #7097194
Lesenswert?

Carsten schrieb:
> Mein Zweistrahloszi von Philips ist leider nicht in der Lage die
> Datenströme im Stillstand zu zeigen
Zur Beurteilung der Flanken und der Pegel reicht auch die dynamische 
Darstellung völlig aus.

Carsten schrieb:
> und ich möchte es ungern raus in den Geräteschuppen schleppen.
Wickle die Leitung auf. Mit 30cm Durchmesser sind das gerade mal 20 
Windungen. Passt locker auf den Schreibtisch.
Gast #7097444
Lesenswert?

Dennoch: Wenn Du den Berg nicht zum Propheten bekommst, muss der faule 
Sack halt zum Berg laufen, d.h. Du Dein Kabel mit dem ganzen Gelumpe 
dran zum Oszilloskop bewegen. Nur mit dem Oszilloskop kannst Du sehen, 
wie das I2C-Signal tatsächlich aussieht.

Alles andere ist blindes Herumgerate à la "Der Fehler liegt in Zeile 
42".
#7097455
Lesenswert?

Carsten schrieb:
> Der Multiplexer sitzt an ca 20m Leitung mit dem P82B96 als Line-Buffer
> vor und hinter der Leitung.

Gut für das lange Kabel, evt. schlecht für den BH1750? Der Buffer ist 
genauso verdächtig wie der Multiplexer. In dem Datenblatt heißt es
1
Bidirectional I2C signals do not have a direction control pin so,
2
instead, slightly different logic low-voltage levels are used at
3
Sx/Sy to avoid latching of this buffer. A standard I2C low applied
4
at the Rx/Ry of a P82B96 is propagated to Sx/Sy as a buffered low
5
with a slightly higher voltage level.
6

7
In any design, the Sx pins of different devices should never be
8
linked, because the resulting system would be very susceptible to
9
induced noise and would not support all I2C operating modes.

Meinen die jetzt (nur) mehrere P82B96 in parallel oder gilt das für 
beliebige I2C-Bausteine? Evt. ist der BH1750 auch besonders 
anspruchsvoll.

Kannst du vielleicht einen Versuch ohne die Buffer machen? Schön 
langsam, damit das lange Kabel nicht stört; notfalls mit 1k5 Pull-Up. 
Oder mit dem BH1750 hinter den Buffern, parallel zum Multiplexer?
#7098489
Lesenswert?

BINGO! Der BH1750 läuft mit typisch 3V und die I2C Pegel sind auch 
darauf bezogen! Also braucht er Pegelwandler auf 5V zum I2C Bus am 
P82B96!

Korrektur! Das könnte eher schwierig werden! Den die normalen 
Pegelwandler für I2C können den Trick des 0,9V LOW vom P82B96 nicht 
filtern! Dieses hohe LOW, welcher nur normale 5V I2C Devices als solches 
SICHER erkennen, kommt auch durch die Pegelwandler durch und wird dann 
NICHT als SICHERES LOW vom BH1750 erkannt! Das wird eng. Da muss eine 
andere Lösung her.

https://www.mikrocontroller.net/attachment/176906/notes_82b96.pdf
https://www.alldatasheet.com/view.jsp?Searchword=AN460

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