Forum: Mikrocontroller und Digitale Elektronik Mehrere Kanäle aktivieren beim I2C-Bus


von Mutluit M. (mutluit)


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

: Bearbeitet durch User
von Datenblatt Leser (Gast)


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.

von Mutluit M. (mutluit)


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.

von Datenblatt Leser (Gast)


Lesenswert?

Mutluit M. schrieb:
> Wenn ich am PgmEnde den AOUT nicht explizit deaktiviere dann leuchtet
> die LED weiter.

Ja ... wenn ich den Wasserhahn nicht zudrehe läuft bei mir
das Wasser auch weiter.

von Peter D. (peda)


Lesenswert?

Mutluit M. schrieb:
> Daher nahm ich an, dass der DAC-Part evtl. weiter arbeitet.

Ein DAC gibt einfach die eingestellte Spannung solange aus, bis ein 
anderer Wert gesetzt wird. Was anderes wäre völlig nutzlos.

von Mutluit M. (mutluit)


Lesenswert?

Peter D. schrieb:
> Mutluit M. schrieb:
>> Daher nahm ich an, dass der DAC-Part evtl. weiter arbeitet.
>
> Ein DAC gibt einfach die eingestellte Spannung solange aus, bis ein
> anderer Wert gesetzt wird. Was anderes wäre völlig nutzlos.

Ja, macht Sinn, ist logisch, sehe ich jetzt auch ein :-) Danke.

von spess53 (Gast)


Lesenswert?

Hi

>Ja, macht Sinn, ist logisch, sehe ich jetzt auch ein

Ein Blick ins Datenblatt, Kapitel '8.3 D/A conversion', hätte auch 
gelangt.

MfG Spess

von Mutluit M. (mutluit)


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

von spess53 (Gast)


Lesenswert?

Hi

>Btw, weisst du zufällig wie man in Linux den I2C-Speed ändert?

Was ist Linux?

MfG Spess

von Mutluit M. (mutluit)


Lesenswert?

spess53 schrieb:
>
>>Btw, weisst du zufällig wie man in Linux den I2C-Speed ändert?
>
> Was ist Linux?

Wurde schon im 1. Posting erklärt worum es hier geht.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.