Hallo zusammen,
ich habe auf meiner eigenen Karte wohl dummerweise für die SPI
Schnittstelle (MOSI mit MISO) und (MISO und MOSI) miteinander verbunden.
Ich verwende einen STM32 und wollte wissen, ob man per Software aus
einem MISO einen MOSI machen kann. Geht das denn noch überhaupt?
MfG
Da es nur einen einzigen möglichen STM32 mit SPI gibt, ist die Frage
nach einem Blick ins Datenblatt leicht zu beantworten.
Es gibt alternative Pins für die Funktionalität.
Aber diese beiden zu tauschen geht nicht.
ohne Gewähr
Bernd K. schrieb:> Das steht im Datenblatt!
Vielen Dank. Soweit war ich schon :D
Die Pins haben leider andere alternative Funktionen. SPI kann man wohl
nicht einfach so tauschen. Könnte man das denn nicht per Software
irgendwie ändern?
Lehrgeld. Leiterbahnen mit Cutter auftrennen und fädeln. Die Pins sind
in Hardware gegossen, da kannst du MOSI und MISO nicht mit Software
tauschen - es sei denn du programmierst dir eine Software SPI.
Das wäre ja schön, wenn es gehen würde.
Es bereitet immer eine ganz besondere Freude wenn man für einen
saublöden vertauschten Pin dann einen riesigen Software-Workaround
implementieren muss der dann mit ärgerlichen Einschränkungen einhergeht
die man an der Backe haben wird bis zum Ende der Produktlebenszeit oder
bis zum Eintritt des Rentenalters.
Ich würde zusehen daß eine neue Platine gemacht wird.
Bernd K. schrieb:> Ich würde zusehen daß eine neue Platine gemacht wird.
Naja, wenn man bei einem Prototypen das Problem hat, sollte das mit
einem Messer und Lackdreht schnell behoben werden können.
Vielen Dank für die Antworten.
Bevor ich das weiß cutte, probiere ich es mit der Soft-SPi Möglichkeit
aus. Das Durchtrennen von Leitungen mache ich ganz zum Schluss, falls es
per Software nicht geht.
MfG
Bimbo. schrieb:> Korrigiere den Fehler aber bereits jetzt im Layout, sonst machst du> den nochmal.
Ich habe ihn vorhin korrigiert.
fay of fortune schrieb:> Wie kam es dazu?
Sagen wir einfach Dummheit. Ich habe die beiden Blöcke im
Blockschaltplan falsch miteinander verbunden. Komischerweise waren NSS
und die CLK richtig. :/
Lee schrieb:> Bevor ich das weiß cutte, probiere ich es mit der Soft-SPi Möglichkeit> aus. Das Durchtrennen von Leitungen mache ich ganz zum Schluss, falls es> per Software nicht geht.
Zum lernen ganz OK. Aber wenn Du dafür bezahlt wirst oder wenn Du da
keine Feldforschung machen willst, nimm den SPI, den Du später nutzen
willst. Wenn der Chip seitliche Pins hat, einfach hochlöten. Notfalls an
der Gegenstelle, falls es sonst nicht geht.
Dem Produktmanager stolz den ersten Prototypen vorstellen. Vom kaputten
SPI nix erzählen, aber von dem zusätzlichen, tollen HW-Gimmick, das Dir
noch eingefallen ist.
Wenn der PM das dann noch einkippt und für den nächsten EVT unbedingt
haben will, korrigierst Du für die neue LP schnell noch den kaputten SPI
und keiner hat was gemerkt.
;-)
Gruß... Bert
Bimbo. schrieb:> Die Pins sind> in Hardware gegossen, da kannst du MOSI und MISO nicht mit Software> tauschen
Selbstverständlich ist das allerdings nicht -- vor allem bei UARTs kenne
ich Controller, wo man per Pin Multiplexing RX und TX vertauschen kann.
Sven B. schrieb:> Selbstverständlich ist das allerdings nicht -- vor allem bei UARTs kenne> ich Controller, wo man per Pin Multiplexing RX und TX vertauschen kann.
Das geht bei den neueren STMs, da hat ST wohl dazugelernt. Man muss aber
auch ehrlich sagen, dass bei UART die Gefahr doch schon größer ist RX
und TX mal zu vertauscht.
Mich rettete vor vielen Jahren ein Zufall vor dem besagten Problem. Ich
hatte glücklicherweise zwei 33 Ohm Serien Widerstände auf der LP. Es
ergab sich, daß beide Rs seitlich nebeneinander mit kreuzweise
angeordneten Leiterbahnen angeordnet waren. Beim Testen stellte sich
heraus, daß ich genau wie der TO die beiden Leiterbahnen vertauscht
hatte. Glücklicherweise brauchte ich nur beide Rs um 90 Grad verdrehen
und wieder auflöten um die beiden Anschlüsse zu vertauschen. Auch der
Abstand zueinander passte. Uff! schweiß wegwischen...
Guest schrieb:> Man muss aber auch ehrlich sagen, dass bei UART die Gefahr doch schon> größer ist RX und TX mal zu vertauscht.
Was ist bei RX und TX leichter zu vertauschen?
Wenn einem klar ist, des "RX" für Receiver (Empfänger) steht und "TX"
für Transmitter (Sender), kann doch nicht viel schief gehen - es sei
denn, es fehlt einem das grundlegende Verständnis dafür, wie zwischen
Sender und Empfänger Daten übertragen werden.
Gerhard O. schrieb:> Es> ergab sich, daß beide Rs seitlich nebeneinander mit kreuzweise> angeordneten Leiterbahnen angeordnet waren. Beim Testen stellte sich> heraus, daß ich genau wie der TO die beiden Leiterbahnen vertauscht> hatte. Glücklicherweise brauchte ich nur beide Rs um 90 Grad verdrehen> und wieder auflöten um die beiden Anschlüsse zu vertauschen.
Magst du mal eine Skizze machen? Ich kann mir das gerade gar nicht
vorstellen ...
Und wieder mal zeigt sich die Sinnhaftigkeit von "sinnlosen"
Längswiderständen an Ein/Ausgängen von Controllern und
anderen Chips. Sei es zum Umverdrahten der Signalrichtung
oder zum "Entklingeln" von Signalen.
Jens M. schrieb:> Muss das nicht so???> Falsch wäre MISO->MISO und MOSI->MOSI...
Bei SPI ist einer immer der Master und einer der Slave.
Master-In-Slave-Out muss mit dem gleichnamigen Anschluss der Gegenseite
verbunden werden, denn beim Master ist das ein Eingang und beim Slave
ist das ein Ausgang.
Das ist anders, als bei UART Tx->Tx.
my2ct schrieb:> Was ist bei RX und TX leichter zu vertauschen?>> Wenn einem klar ist, des "RX" für Receiver (Empfänger) steht und "TX"> für Transmitter (Sender), kann doch nicht viel schief gehen - es sei> denn, es fehlt einem das grundlegende Verständnis dafür, wie zwischen> Sender und Empfänger Daten übertragen werden.
Eben weil oft das Verständnis fehlt. Bei SPI verbindet man die
gleichnamigen Pins. Bei I2C ebenfalls. Und bei CAN kommt RX an RX und TX
an TX. Nur bei UART ist es eben nicht so, da ist es schnell mal passiert
das man es übersieht.
Guest schrieb:> Eben weil oft das Verständnis fehlt. Bei SPI verbindet man die> gleichnamigen Pins. Bei I2C ebenfalls.
Macht man bei RS232C und V24 auch!
Da wird ebenso Rx mit Rx verbunden und Tx mit Tx.
Arduino Fanboy D. schrieb:> Macht man bei RS232C und V24 auch!> Da wird ebenso Rx mit Rx verbunden und Tx mit Tx.
Das gilt für Modems, aber nicht für Verbindungen von Rechner zu Rechner.
Stefan ⛄ F. schrieb:> Das gilt für Modems, aber nicht für Verbindungen von Rechner zu Rechner.
Richtig, dafür gab es dann die bekannten Nullmodem-Kabel, wenn man zwei
PCs verbinden wollte.
Arduino Fanboy D. schrieb:> Macht man bei RS232C und V24 auch!> Da wird ebenso Rx mit Rx verbunden und Tx mit Tx.
Da wären wir dann jetzt wieder bei dem von mit angesprochenen fehlenden
Verständis, es ist eben nicht immer so.
q.e.d.