Mehrere Kanäle aktivieren beim I2C-Bus

OP #5862465
Lesenswert?

Ich benutze die Linux-API für I2C (linux/i2c-dev.h, linux/i2c.h)
für den folgenden Slave-Device:
1
# i2cdetect -F 1
2
Functionalities implemented by /dev/i2c-1:
3
I2C                              yes
4
SMBus Quick Command              yes
5
SMBus Send Byte                  yes
6
SMBus Receive Byte               yes
7
SMBus Write Byte                 yes
8
SMBus Read Byte                  yes
9
SMBus Write Word                 yes
10
SMBus Read Word                  yes
11
SMBus Process Call               yes
12
SMBus Block Write                yes
13
SMBus Block Read                 no
14
SMBus Block Process Call         no
15
SMBus PEC                        yes
16
I2C Block Write                  yes
17
I2C Block Read                   yes

2 Fragen dazu:

1.) Ist es beim I2C-Bus möglich dass beim Slave-Device
mehrere Kanäle gleichzeitig aktiviert sein können,
z.B. bei einem 4-Kanal-ADC (z.B. PCF8591 ADC/DAC) welches via I2C 
kommunziert?

2.) Wie kann man beim o.g. Slave-Device bei Bedarf alle Kanäle
effektiv deaktivieren bzw. stoppen zwecks Stromsparen etc.?

Thx
Gast #5862568
Lesenswert?

Mutluit M. schrieb:
> Ist es beim I2C-Bus möglich dass beim Slave-Device
> mehrere Kanäle gleichzeitig aktiviert sein können,

Hat mit dem I2C Bus erst mal überhaupt nichts zu tun.

Mutluit M. schrieb:
> z.B. bei einem 4-Kanal-ADC (z.B. PCF8591 ADC/DAC)

Kann man im Datenblatt nachlesen: der Wandler läuft
nicht einfach dauernd so vor sich hin sondern wird durch
einen Lesen-Befehl für einen Kanal getriggert. Das
Ergebnis des getriggerten Wandlungs-Vorgang kann einen
Lese-Zyklus später ausgelesen werden.

Mutluit M. schrieb:
> Wie kann man beim o.g. Slave-Device bei Bedarf alle Kanäle
> effektiv deaktivieren bzw. stoppen zwecks Stromsparen etc.?

Wie gesagt und im Datenblatt beschrieben ist kein Kanal
"effektiv aktiv" da der Baustein ein "pasives" Teil ist
welches nur auf Anforderung arbeitet.
OP #5862623
Lesenswert?

Datenblatt Leser schrieb:
> Mutluit M. schrieb:
>> Ist es beim I2C-Bus möglich dass beim Slave-Device
>> mehrere Kanäle gleichzeitig aktiviert sein können,
>
> Hat mit dem I2C Bus erst mal überhaupt nichts zu tun.
>
> Mutluit M. schrieb:
>> z.B. bei einem 4-Kanal-ADC (z.B. PCF8591 ADC/DAC)
>
> Kann man im Datenblatt nachlesen: der Wandler läuft
> nicht einfach dauernd so vor sich hin sondern wird durch
> einen Lesen-Befehl für einen Kanal getriggert. Das
> Ergebnis des getriggerten Wandlungs-Vorgang kann einen
> Lese-Zyklus später ausgelesen werden.

Also, ich habe hier ein ADC/DAC-Modul (PCF8591 YL-40) mit einigen 
Sensoren drauf, u.a. eine LED die am AOUT hängt.
Wenn ich am PgmEnde den AOUT nicht explizit deaktiviere dann leuchtet 
die LED weiter.
Daher nahm ich an, dass der DAC-Part evtl. weiter arbeitet. Zugegeben, 
kam mir aber auch seltsam vor... :-)

Naja, ok, danke für deine Erläuterungen; es hilft mir schon weiter.
OP #5863648
Lesenswert?

spess53 schrieb:
>
>>Ja, macht Sinn, ist logisch, sehe ich jetzt auch ein
>
> Ein Blick ins Datenblatt, Kapitel '8.3 D/A conversion', hätte auch
> gelangt.

Das Datenblatt habe ich seit Tagen offen; muss das übersehen haben 
(hatte aber bis jetzt mehr mit dem ADC-Part zu kämpfen)... :-)


Btw, weisst du zufällig wie man in Linux den I2C-Speed ändert?
(gibt's ja 4 oder mehr Geschwindkeits-Modi beim I2C).

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