www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI mit I2C vernbinden


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
hab mal ne kleine Frage zum SPI- bzw. I2C-Bus.
Ist es möglich mit einem Microcontroller der I2C an Board hat, auf einer 
SPI-Schnittstelle mithören. Also einfach Clk und SDI mit dem I2C 
verbinden.

Funktioniert so was?

Gruß

Autor: was-willst-du (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Franzosen und Engländer verstehen sich in ihrer Muttersprache auch etwas 
schwer, will sagen sind einfach ganz verschiedene Protokolle.

SDA und SCL kannst Du bei den meisten Controllern auch als normale 
Portpins verwenden, Software dazu, fertig.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das meinte ich nicht.
Der SPI hat einen Clock und taktet 8 bzw. 16 Bit in den Eingangsbuffer 
eines SPI-Bausteins. Jetzt müssten diese  Bits paralle in den 
Eingangsbuffer meiner I2C Hardware getaktet werden. Das Protokoll sei 
mal da hingestellt.

Autor: was-willst-du (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wie ist die Frage oder Aufgabenstellung?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich will einfach das gleiche im Eingangsbuffer(i2C) stehen haben (Binär) 
was der SPI gesendet hat.

So kann ich diese SPI Daten dann per Software interpretieren und was tun 
:-)

Autor: was-willst-du (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
- Du willst keine Software-SPI-Lösung ?

- Du willst, daß sich die I2C-Hardwarelösung wie SPI verhält ?

Oder was?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der SPI-Bus besteht bereits. d.H. ein Microcontroller sendet Daten an 
einen SPI-Baustein.

Diese Daten möchte ich mit einem 2ten Microcontoller(PC) mithören.
Leider hat der keine SPI-Hardeware sondern nur I2C.
Ich würde das /CS des SPI als Trigger verwenden, um zu wissen das Daten 
auf dem SPI-Bus gesendet werden und ab wann sie gültig sind.

Was mir unklar ist, ob die I2C Hardware so verwendet werden kann.

Autor: Fabian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, oder toastest Du Brötchen mit deinem Mixer?
Für SPI brauchst Du i.d.R. keine spezielle Hardware, wenn Du einen 
Interrupt zur verfügung hast.
Das mithören erfolgt dann einfach über 2 bzw. 3 Port-Pins. Also vergiss 
I2C

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was mir unklar ist, ob die I2C Hardware so verwendet werden kann.

theoretisch könnte es gehen, aber es wird schwierig werden und mit viel 
fummelei verbunden. du müsstest irgendwie deine hardware dazu bewegen, 
die start/stop conditions, iic-adressbytes,clock-strecthing usw. zu 
ignorieren. am besten, du nimmst normale i/o-leitungen. lass es besser 
sein mit dem iic.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der Mixer so ähnlich aussehen würde wie der Toaster..........

Klar so würde ich es auch machen , falls man Zugriff auf Portpins und 
Interupts hat. Hab ich aber nicht.
Was ich habe ist eine I2C Hardware, doch leider kein Echtzeit Zugriff 
auf Portpins.

Darum diese Idee.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Was ich habe ist eine I2C Hardware, doch leider kein Echtzeit Zugriff
> auf Portpins.
was issn das für ne hardware? vielleicht kann man sie umkonfigurieren, 
also sda/scl als normale ports betreiben.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss da mal nachlesen ....
ist ein win CE System mit arm .....

Autor: Dieter Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine I2C Hardware zum "Mitlesen" von SPI Daten zu bewegen dürfte 
ziemlich schwierig sein, da die Startbedingung und somit der Trigger 
fehlt.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht könntest Du einen kleinen uC (z.B. 8 pin PIC oder Attiny) als 
SPI-I2C-Wandler programmieren. Auf der einen Seite SPI rein, auf der 
anderen I2C raus. Die Wandlung dann per Software vornehmen. Als 
Alternative könnte man eventuell auch auf Hardware, z.B: USART 
zurückgreifen.

Gruss
Mike

Autor: Mike (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wenn's eine Hardwarelösung sein soll, wäre vielleicht das hier 
hilfreich.

Gruss
Mike

Autor: Oliver Dippel (unixconf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man sollte auch noch beachten, das I2C meist nur bis 400Khz betrieben 
wird,
und der SPI-Bus mal leicht über 40Mhz hoch gehen kann.

Also sollte der Puffer im externen Interface groß genug sein.
In echter Echtzeit wird es aber wohl kaum möglich sein die Daten zu 
lesen,
ohne einen großteil zu verlieren!

DBD
 Olli

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.