Hallo, bisher habe ich nur mit SPI (erste) Erfahrungen gesammelt. Jetzt die zwei für mich wichtigen Fragen: Könnte ich Sensoren die nur eine SPI Schnittstelle haben auch mit einem µC auslesen, der nur eine SSI-Schnittstelle hat? Könnte ich hier dann auch die Daten von mehrere Sensoren über eine SSI-Schnittstelle einlesen? Und jetzt noch meine dargelegte persönliche Verwirrung: Ich hab hier ein bisschen rumgeschaut und anders herum scheint es zu gehen (also Sensor mit SSI über SPI auslesen) Aber so ganz schlau werd ich ausdem SSI nicht. Der eine sagt SSI is ein abgespecktes SP der andere sagt SSI is ein abgespecktes I2C und wieder einer sagt: man kann mit SSI nur Datenempfangen, aber keine Daten senden (also keine Geräte konfigurieren) Letzteres hört sich sehr dubios an :]
Ah ich sehe grad im Datenblatt von dem Stellaris ARM Cortex M3, dass man die SSI-Schnittstelle für SPI verwenden kann. Insofern geht es wohl. Aber klappt das dann auch noch mit mehreren Sensoren (z.B. zwei Beschleunigungssensoren) über diese "SSI als SPI eingestellte"-Schnittstelle?
The SSI allows to connect up to 3 slaves to a common clock. Therefore, it is possible to attain values from multiple sensors. Timmo H. schrieb: > http://en.wikipedia.org/wiki/Synchronous_Serial_Interface Da steht nichts über SPI. Es beantwortet meine primären Fragen nicht. Die dortige Aussage "The SSI allows to connect up to 3 slaves to a common clock. Therefore, it is possible to attain values from multiple sensors." hilft mir nicht, da ich ja wenn dann drei SPI-Slaves anschließen will. Bei SPI kann man ja normalerweise beliebig viele Slaves an einen Bus hängen.
Hallo, es gibt ein paar identische Dinge zwischen SSI und SPI, weshalb sicherlich auch Verwirrung entsteht. Das ursprüngliche Protokoll ist eine synchrone unidirektionale Kommunikation. Somit etwas wie ein halbes SPI. SPI benötigt jedoch bei mehreren Sensoren (Slaves) ein ein-eindeutiges Selektierungssignal. Somit muß zu den Sensoren ein Chip-Select geführt werden, oder vor dem µC ein entsprechender Multiplexer aufgebaut werden. Welchen µC willst Du einsetzten ? Stellaris ARM Cortex M3 ?
rene p schrieb: > Ich hab hier ein bisschen rumgeschaut und anders herum scheint es zu > gehen (also Sensor mit SSI über SPI auslesen) Kommt auf die Datenbreite der SSI Schnittstelle an. SPI macht in der Regel 8, SSI bis zu 24 Bit. Man muss dann halt mehrmals einlesen. > Aber so ganz schlau werd ich ausdem SSI nicht. Prinzip ist simpel. Jeder clock toggle schiebt ein Bit aus dem SSI Gerät raus. Da das bei bei SPI genau so ist kann! man SSI über SPI empfangen. > Der eine sagt > SSI is ein abgespecktes SP Nein, es ist eine Schnittstelle die speziell für Drehgeber entwickelt wurde. > der andere sagt > SSI is ein abgespecktes I2C Der "andere" liegt falsch > > und wieder einer sagt: > man kann mit SSI nur Datenempfangen, aber keine Daten senden (also keine > Geräte konfigurieren) Richtig, one way
rene p schrieb: > Aber klappt das dann auch noch mit mehreren Sensoren (z.B. zwei > Beschleunigungssensoren) über diese "SSI als SPI > eingestellte"-Schnittstelle? SSI ist ein simples Schieberegister. Du kannst da nicht zwei Sensoren auf einen µC Eingang legen. rene p schrieb: > Die dortige Aussage "The SSI allows to connect up to 3 slaves to a > common clock. SSI Ausgang ist der slave, du bist immer master. Da steht nur das du 3 slaves mit einem clock versorgen kannst. > Therefore, it is possible to attain values from multiple > sensors." hilft mir nicht, da ich ja wenn dann drei SPI-Slaves > anschließen will. Wie jetzt? Da SSI immer slave ist bist du (SPI) immer master.
Sunny schrieb: > Welchen µC willst Du einsetzten ? Stellaris ARM Cortex M3 ? Jop genau - und wie gesagt: Bei dem Stellaris kann man anscheinend über ein Register die SSI als SPI Schnittstelle konfigurieren - oder zumindest als solche verwenden. Nur wäre es für mich halt echt wichtig, mehr als drei der SPI-Sensoren an einen der (nur) zwei vorhanden Busse anschließen zu können. Geht das ? ggggggGast schrieb: > Richtig, one way Ich denke es is nur nicht full duplex - aber sowie ich das Bild bei Wikipedia interpretiere, kann man da schon Daten schicken... ggggggGast schrieb: > Kommt auf die Datenbreite der SSI Schnittstelle an. SPI macht in der > Regel 8, SSI bis zu 24 Bit. Man muss dann halt mehrmals einlesen. Hm, mein ADU hier hat 32 bit und die Übertragung geht über ein 32-bit breites SPI-Register mit nem PIC. Beschleunigungssensoren haben meistens 16-bit. Deshalb gibt es bei dem PIC den 16-bit Modus. Also ich würde nicht sagen, des SPI in der Regel 8-bit macht :)
ggggggGast schrieb: > Wie jetzt? Da SSI immer slave ist bist du (SPI) immer master. wie jetzt ? :) SSI ist nicht immer Slave ? Hä? Hier liegt wohl ein Missverständnis vor. Nochmal: Ich hab ein SSI-Interface am µC. Damit möchte ich verschiedene Sensoren einlesen, die alle SPI haben. Und zwar mehr als drei. Mein Master sollte ja wohl auch mein µC sein. Sonst wird des glaub ich weng chaotisch.
Hallo, die typische Verwirrung über Master und Slave. Definieren wir einfach mal als Master, welcher den Takt ausgibt. Der Slave empfängt den Takt und schickt die Daten synchron raus. Aus diesem Bild ergibt sich quasi automatisch, das der µC der Master ist und die Sensoren die Slaves. Die Diskussion über 8Bit oder 32Bit SPI ist unnötig, da mehrere 8Bit SPI Transfers ja wieder ein entsprechendes Vielfaches an Bits ergibt. Viele SPI Komponenten können darüber hinaus überzählige Takte "übersehen". Wichtig ist das Chip Select. Nochmal die Frage, wie erzeugst Du Dein Chip Select ( oder Slave Select ) für die Sensoren ?
rene p schrieb: > SSI ist nicht immer Slave ? Hä? > Hier liegt wohl ein Missverständnis vor. Nochmal: > Ich hab ein SSI-Interface am µC. Damit möchte ich verschiedene Sensoren > einlesen, die alle SPI haben. Und zwar mehr als drei. Dann ist das ein anders SSI. Das aufgeführte ist eine Automatisierungsschnittstelle für Drehgeber. Dein SSI wird ein universelles serielles Interface sein (z.b. USART bei PIC) und hat mit dem Industrie SSI nichts zu tun.
Sunny schrieb: > Aus diesem Bild ergibt sich quasi > automatisch, das der µC der Master ist und die Sensoren die Slaves Genau. Sunny schrieb: > Nochmal die Frage, wie erzeugst Du Dein > Chip Select ( oder Slave Select ) für die Sensoren ? naja ich hätte halt gedacht, dass ich einfach pro Sensor jeweils einen der verfübaren GPIOs als Chip Select verwende. Naja und dann eben einen sternförmigen Aufbau (also alle SDOs von den Sensoren auf den SDI vom Master). Das sollte ja eigentlich kein Problem sein :] Was bringt eigentlich dieser kaskadierte Aufbau, bei dem jeweils der SDO von einem Slave mit dem SDI von einem weiteren Slave verbunden wird? Somit würden ja Messdaten erstmal in den SDI vom nächsten Sensor wandern. Und der würde doch dann die Daten als Konfigurationseinstellungen ansehen... ..aso, das ist nur für Speicherbausteine sinnvoll, um höhere Wortbreiten zu erzielen? Hm, auch dann kapier ich nicht, was da los is, aber is ja auch worscht :] ggggggGast schrieb: > Dann ist das ein anders SSI. Das aufgeführte ist eine > Automatisierungsschnittstelle für Drehgeber. Dein SSI wird ein > universelles serielles Interface sein (z.b. USART bei PIC) und hat mit > dem Industrie SSI nichts zu tun. Kann gut sein.
Hallo, ich habe gerade das gleiche Problem. Du kannst nur eine Encoder an einer SPI Schnittstelle anschließen. Doch mit einem Multipexer am MISO kannst du auch dieses Problem losen. Lies dir den AN http://www.posital.sg/sg/products/POSITAL/AbsoluteEncoders_Context/AbsoluteEncoders_Context_Technology_SSI_AppNote.pdf durch. Dort ist auch der Sourcecode für einen SPI mit ATmega. Hat mir auch geholfen!
Hubert Reiter schrieb: > Du kannst nur eine Encoder an einer > SPI Schnittstelle anschließen. Versteh ich nicht - ich will keinen Encoder sondern ICs mit digitalen Ausgängen anschließen (Druck, Beschleunigung, ADCs). Über logische Leitungen zu den einzelnen Devices kann man über Chip Select oder Slave Select (wie auch immer man es nenne mag) bestimmen, von wo gerade die Daten gelesen werden sollen (bzw. wohin Konfigurationseinstellungen gesendet werden sollen). Man benötigt somit für jedes Device noch einen GPIO vom µC. Sollte doch echt kein Problem sein :]
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.