I²C Verständnisproblem

Gast #2020335
Lesenswert?
• ▲
▼
Hallo,

ich möchte zwei IC-Bausteine mit einem ATMEGA16 ansteuern, und zwar 
einen

7-Segementtreiber SAA1064

http://www.reichelt.de/?;ACTION=7;LA=28;OPEN=0;INDEX=0;FILENAME=A200%252FSAA1064%2523PHI.pdf;SID=31SuQsK6wQAR8AAGUYu-47cd4ee9c77fe6661b0ff366cc2903f3e

und einen Digitalpoti DS 1267-100

http://www.reichelt.de/?;ACTION=7;LA=28;OPEN=0;INDEX=0;FILENAME=A200%252FDS1267%2523DAL.pdf;SID=31SuQsK6wQAR8AAGUYu-47cd4ee9c77fe6661b0ff366cc2903f3e

Da ich die I²C Schnittstelle noch nie benutzt habe, bin ich mir nicht 
sicher, wie ich das ganze verdrahten soll.
Der Segmenttreiber verwendet die I²C-Schnittstelle. Bei dem Digitalpoti 
steht, dass es ein 3-wire serial interface ist.
Das ist doch ebenfalls I²C, oder nicht?

Laut ATMEGA Datenblatt muss ich doch nur beide Bausteine parallel an den 
SDA und SDC Pin hängen?
Woher weiß ich, was für ne Adresse das Digitalpoti hat?
Brauch ich eventuell den Cascadepin des Digitalpotis?

Gruß Steffen
Gast #2020344
Lesenswert?
• ▲
▼
Bin mir zwar nicht sicher, aber ich glaube dass I²C quasi ein 3-wire 
Übertragung ist INKL. Protokol, also Start, Stop-Bedingungen etc. U.A. 
auch Adresse. Also könnte es sein, dass der keine Adresse hat sondern 
sozusagen alles gleich für sich sieht.
Gast #2020441
Lesenswert?
• ▲
▼
Ok, danke mal soweit.
Kann ich beide Sachen also nicht gleichzeitig mit nem ATMEGA verwenden?
Wenn doch, wie muss ich das anstöpseln?

Wie ich das sehe, kann ich den Segmenttreiber auf alle Fälle an SDA und 
SCL hängen?
#2020451
Lesenswert?
• ▲
▼
Steffen schrieb:

> Kann ich beide Sachen also nicht gleichzeitig mit nem ATMEGA verwenden?

Doch, kannst Du, denn der hat getrennte Pins für I²C und SPI.

> Wenn doch, wie muss ich das anstöpseln?

I²C kommt an die Pins PC1 (SDA) und PC0 (SCL), SPI an PB5..PB7 (MOSI, 
MISO und SCK). Zusätzlich brauchst Du für SPI pro angeschlossenem Slave 
noch einen weiteren frei wählbaren Pin als Chip-Select.

Außerdem lassen sich beide Protokolle auch komplett in Software auf 
beliebigen Portpins realisieren.
Gast #2020517
Lesenswert?
• ▲
▼
Ah ok. Langsam ergibt das einen Sinn. :)
Am MISO und MOSI Pin hängt aufgrund meiner Vorgabe schon ein MCP2510 CAN 
IC.

Womit ich allerdings noch nicht klarkomme sind die Pinbezeichnungen des 
Digitalpotis.
Das einzige was klar ist, dass CLK auf PB7 (SCK) muss.
Ist der RST Pin der Chipselectpin, den du erwähnt hast?
Kommt DQ an MOSI und C_Out an MISO?

Der CAN-Controller ist folgendermaßen angeklemmt:

SI (Data input pin for SPI interface) hängt an MOSI (PB5)
SO (Data output pin for SPI interface) hängt an MISO (PB6)
SCK (Clock input pin for SPI interface) hängt an SCK (PB7)
CS (Chip select input pin for SPI interface) hängt an SS (PB4)

Ist der Controller als Slave konfiguriert?

Sorry für die grundlegenden Fragen, aber ich durchschau das noch nicht 
ganz.
#2020580
Lesenswert?
• ▲
▼
Steffen schrieb:

> Am MISO und MOSI Pin hängt aufgrund meiner Vorgabe schon ein MCP2510 CAN
> IC.

Der spricht auch SPI, von daher solltest Du den Poti problemlos parallel 
betreiben können.

> Das einzige was klar ist, dass CLK auf PB7 (SCK) muss.
> Ist der RST Pin der Chipselectpin, den du erwähnt hast?

Ja, sieht so aus.

> Kommt DQ an MOSI

Ja.

> und C_Out an MISO?

Ja, die Verbindung brauchst Du aber nur, wenn Du die Poti-Einstellung 
auch auslesen willst. Zum reinen Schreiben reicht die Verbindung MOSI - 
DQ.

> Der CAN-Controller ist folgendermaßen angeklemmt:
>
> SI (Data input pin for SPI interface) hängt an MOSI (PB5)
> SO (Data output pin for SPI interface) hängt an MISO (PB6)
> SCK (Clock input pin for SPI interface) hängt an SCK (PB7)
> CS (Chip select input pin for SPI interface) hängt an SS (PB4)

Sollte soweit passen, jetzt brauchst Du für das Poti nur noch einen 
weiteren Pin am AVR als Chip-Select. Dabei beachten, daß der 
CAN-Controller mit Low, der Poti aber mit High aktiviert wird.

> Ist der Controller als Slave konfiguriert?

Peripheriebausteine sind eigentlich immer Slaves.
Gast #2020630
Lesenswert?
• ▲
▼
Ahh, alles klar.
Dann wird praktisch jeder SPI-Baustein an MOSI für Schreibvorgänge und 
evtl. an MISO für Lesevorgänge angeschlossen und lediglich die 
jeweiligen Chipselect-Pins bestimmen, welcher Baustein gerade 
beschrieben/ausgelesen wird.

Kann man das so sagen, dass der Chipselect-Pin praktisch das Pendant zur 
Adressierung beim I²C ist?


Vielen Dank, vorallem R. Max, hat mir sehr geholfen!
Gast #2020757
Lesenswert?
• ▲
▼
Ich dachte auch zuerst, dass das Ganze so funktioniert, also seriell 
durchgeschliffen, bis die Diskussion hier angefangen hat.
Gut zu wissen, dass es so auch geht.

Nochmals danke an die Helfenden.

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