Forum: Mikrocontroller und Digitale Elektronik SPI mit I2C vernbinden


von Gast (Gast)


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ß

von was-willst-du (Gast)


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.

von Gast (Gast)


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.

von was-willst-du (Gast)


Lesenswert?

Und wie ist die Frage oder Aufgabenstellung?

von Gast (Gast)


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 
:-)

von was-willst-du (Gast)


Lesenswert?

- Du willst keine Software-SPI-Lösung ?

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

Oder was?

von Gast (Gast)


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.

von Fabian (Gast)


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

von Peter (Gast)


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.

von Gast (Gast)


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.

von Peter (Gast)


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.

von Gast (Gast)


Lesenswert?

Muss da mal nachlesen ....
ist ein win CE System mit arm .....

von Dieter Werner (Gast)


Lesenswert?

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

von Mike (Gast)


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

von Mike (Gast)


Angehängte Dateien:

Lesenswert?

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

Gruss
Mike

von Oliver D. (unixconf)


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

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.