Hallo,
ich arbeite momentan an einem Projekt, bei dem ich mich mit einem
Arduino in eine Kommunikation einmischen moechte. Es geht um einen
Mikrocontroller, welcher ein Display über SPI ansteuert. Ich kann ueber
den Arduino auf die Leitungen zugreifen und meine SPI Signale senden,
nur wenn ich dann die Original-Funktionen nutzen will, werden die,
solange der Arduino angeschlossen ist, gestört und funktionieren nicht
mehr. Mit einem Relais könnte ich das ganze leicht beheben, indem ich
dieses zwischen die Datenleitungen des Arduinos klemme. Da ich aber
keine Relais nutzen will, weiß ich gerade nicht weiter. Gibt es
Möglichkeiten Signale wie MOSI oder CLK zu schalten? Würde ein Analog
Switcher abhilfe schaffen? Vielleicht weiß ja jemand hier weiter, ich
freue mich über jede Hilfe!
Lg
Keno
Muss kein Analogscbalter sein – da du ohnehin digital unterwegs bist,
nimm doch einfach Logik Bausteine, z. B. And-Gatter oder Bustreiber mit
Tristate-Funktionalität, sofern benötigt.
Male bitte mal einen Schaltplan dessen, was du genau vor hast, und
welche Leitungen du wie schalten willst.
Keno S. schrieb:> nur wenn ich dann die Original-Funktionen nutzen will, werden die,> solange der Arduino angeschlossen ist, gestört und funktionieren nicht> mehr.
Dann machst Du was falsch.
Der Arduino muß einfach nur seine SPI-Pins auf Eingang schalten und
natürlich weiterhin versorgt werden.
Peter D. schrieb:> Keno S. schrieb:>> nur wenn ich dann die Original-Funktionen nutzen will, werden die,>> solange der Arduino angeschlossen ist, gestört und funktionieren nicht>> mehr.>> Dann machst Du was falsch.> Der Arduino muß einfach nur seine SPI-Pins auf Eingang schalten und> natürlich weiterhin versorgt werden.
Wie meinst du das? Ich habe mir das Clk Signal per Oszilloskop
angesehen, wobei man sieht, dass das Signal anstelle von 5-0V nur noch
von 5-4,8V geht (Zu beachten ist, dass die Ich SPI_Mode_3 nutze, also
Clk ist standard High). Gehe also davon aus, dass der Arduino durch
seinen Clk High Output das Clk Signal des anderen Microcontrollers „hoch
zieht“. Die SPI Pins aus Eingang setzen verstehe ich nicht ganz, wie ist
das realisierbar? Schon mal Danke für die Bemühungen!
Keno S. schrieb:> Die SPI Pins aus Eingang setzen verstehe ich nicht ganz
Was ist daran nicht zu verstehen?
Pins setzt man beim AVR auf Eingang, indem man die alternative Funktion
(SPI) disabled und das entsprechende Bit im DDRx-Register auf 0 setzt.
Also genau so, wie es im Datenblatt steht.
Horst G. schrieb:> Muss kein Analogscbalter sein – da du ohnehin digital unterwegs bist,> nimm doch einfach Logik Bausteine, z. B. And-Gatter oder Bustreiber mit> Tristate-Funktionalität, sofern benötigt.>> Male bitte mal einen Schaltplan dessen, was du genau vor hast, und> welche Leitungen du wie schalten willst.
Die Mosi und Clk Leitung des Mega's müssen geschaltet werden, da der
Mega sonst die Signale des anderen Mikrocontrollers stört. (Ich denke
mal durch einen inneren Pullup Widerstand?) Das ist auf jeden Fall mein
Ansatz. Schaltplan ist im Anhang, hier auch schon mal vielen Dank für
die Bemühungen!
Peter D. schrieb:> Keno S. schrieb:>> Die SPI Pins aus Eingang setzen verstehe ich nicht ganz>> Was ist daran nicht zu verstehen?> Pins setzt man beim AVR auf Eingang, indem man die alternative Funktion> (SPI) disabled und das entsprechende Bit im DDRx-Register auf 0 setzt.> Also genau so, wie es im Datenblatt steht.
Okay, also würde ich dann die SPI Kommunikation beenden, danach die SPI
Pins als Eingang setzen und wenn ich sie wieder benötige, die Pins
wieder als Ausgang definieren und die SPI Kommunikation wieder starten?