mikrocontroller.net

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


Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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;IND...

und einen Digitalpoti DS 1267-100

http://www.reichelt.de/?;ACTION=7;LA=28;OPEN=0;IND...

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

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: greg (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lehrmann Michael (ubimbo)
Datum:

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

Nein.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Bin mir zwar nicht sicher, aber ich glaube...

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

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: R. Max (rmax)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: R. Max (rmax)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: R. Max (rmax)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steffen schrieb:
> seriell
> durchgeschliffen

Hoffentlich nicht! Durchgeschleift war sicher gemeint.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.