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
Lee schrieb: > ob man per Software aus > einem MISO einen MOSI machen kann. Das steht im Datenblatt!
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?
Lee schrieb: > Könnte man das denn nicht per Software irgendwie ändern? STM Apprentice schrieb: > Ja, wenn du dir ein Soft-SPI schreibst.
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.
:
Bearbeitet durch User
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
Korrigiere den Fehler aber bereits jetzt im Layout, sonst machst du den nochmal.
Wie kam es dazu? EDA mit falsch bepinntem Bauteil in der Bibliothek?
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 ...
1 | MOSI-->---------------------+ +----------------> |
2 | | | |
3 | O O |
4 | |
5 | +----------------------> |
6 | O O |
7 | MISO-->---------------------------+ |
:
Bearbeitet durch User
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.
Danke, Matthias S.! Ich stand wohl auf dem Schlauch ...
Lee schrieb: > (MOSI mit MISO) und (MISO und MOSI) miteinander verbunden. Muss das nicht so??? Falsch wäre MISO->MISO und MOSI->MOSI...
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.
Um derlei Verwirrung zu umgehen, hatte ich in einer Schaltung mal folgendes gemacht. (siehe Bild) Ich brauchte nur TX.
:
Bearbeitet durch User
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.