Forum: Mikrocontroller und Digitale Elektronik I²C Verständnisproblem


von Steffen (Gast)


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

von ich (Gast)


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.

von greg (Gast)


Lesenswert?

I2C bezeichnet man auch als "two wire interface". Eine Leitung für 
Daten, eine für Clock. Das "three wire interface" gilt i.A. als 
Inbegriff für SPI, ist also nicht zu I2C kompatibel.

von Lehrmann M. (ubimbo)


Lesenswert?

Steffen schrieb:
> Das ist doch ebenfalls I²C, oder nicht?

Nein.

von Peter (Gast)


Lesenswert?

>Bin mir zwar nicht sicher, aber ich glaube...

Dan gib doch einfach keine Antwort statt eirgendwelchen Mist zu 
erzählen!

von Steffen (Gast)


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?

von R. M. (rmax)


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.

von Steffen (Gast)


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.

von R. M. (rmax)


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.

von Steffen (Gast)


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!

von Karl H. (kbuchegg)


Lesenswert?

Steffen schrieb:

> Kann man das so sagen, dass der Chipselect-Pin

Chip  -    IC, Baustein, was auch immer
Select -   Auswahl

ganz genau. Chipselect wählt hardwaremässig einen aus mehreren 
prinzipiell parallel geschalteten Bausteinen aus und teilt ihm mit: Du 
bist gemeint.

von R. M. (rmax)


Lesenswert?

Steffen schrieb:

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

Ja, wobei man Chips wie Deinen Poti auch hintereinander schalten kann 
(Datenausgang vom einen auf den Eingang vom nächsten), so daß man für 
mehrere ICs nur einen CS-Pin braucht.

von Steffen (Gast)


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.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Steffen schrieb:
> seriell
> durchgeschliffen

Hoffentlich nicht! Durchgeschleift war sicher gemeint.

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.