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ß
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.
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.
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 :-)
- Du willst keine Software-SPI-Lösung ? - Du willst, daß sich die I2C-Hardwarelösung wie SPI verhält ? Oder was?
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.
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
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.
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.
> 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.
Eine I2C Hardware zum "Mitlesen" von SPI Daten zu bewegen dürfte ziemlich schwierig sein, da die Startbedingung und somit der Trigger fehlt.
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
Wenn's eine Hardwarelösung sein soll, wäre vielleicht das hier hilfreich. Gruss Mike
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.