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
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.
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.
>Bin mir zwar nicht sicher, aber ich glaube...
Dan gib doch einfach keine Antwort statt eirgendwelchen Mist zu
erzählen!
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?
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.
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.
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.
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!
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.