Hallo, da hat sich hier ein interessantes Problem ergeben. Mit einem STM32F205 (LQFP64) steuere ich per SPI1 ein 240x240 LCD an und lese eine kleine Tastenmatrix (3x3) ein. Die Zeilen werden eingelesen und die Spalten per Opendrain auf LOW gelegt. Das funktioniert wunderbar und ich hab mir eine kleine GUI geschrieben. Als das fertig war wollt ich per SPI2 einen ADC einlesen. Aber halt, auf einmal reagieren die Tasten von Spalte 1 und 2 gleich?! Ich dacht der SPI stört rein, daher die Pullups der Matrix auf 1k verstärkt, Fehler bleibt. SPI2 GPIO und Bitbang GPIO kommen sich nicht in die Quere. Ich kann die GPIO des SPI initialisieren und es geht noch. Erst wenn CPE im SPI2 CR1 gesetzt wird gehts kaputt (der SPI2 bekommt sein RCC Takt). Eine CLK Störug kanns nicht sein, ich starte zur Fehlerfindung noch keine Datenübertragung. Wenn ich die GPIO nicht initialisiere und den SPI2 aktiviere dann gehts auch noch. Die Bits der GPIO Register werden nicht verändert laut Debugview. An den verwendeten Pins für die Tastenmatrix kommt auch kein SPI2 alternativ raus. Aber mit dem GPIO muss es was zu tun haben, erst wenn der SPI2 aktiviert ist greift er ja auf die AlternateFunction zu. Was isn da los? Hat wer ne Idee? Pinbelegungen: PortA 6 - Zeile 2 (hier wäre SPI 1 MISO eine AF) PortB 0 - Spalte 0 PortB 1 - Spalte 1 PortB 2 - Spalte 2 PortB 10 - SCK PortC 0 - nCS PortC 2 - MISO PortC 3 - MOSI PortC 4 - Zeile 0 PortC 5 - Zeile 1
Zeichne bitte einen Schaltplan, zeichne die Messpunkte ein. Zeige deine Messergebnisse. Ich erwarte beschriftete Diagramme vom Logic Analyzer zu sehen, wo du die fehlerhaften Stellen markierst. Ach, noch was: Der Quelltext könnte eine Rolle spielen.
Das wär jetz etwas viel Aufwand ;) Fehler gefunden: Halbwegs niederohmige Verbindung zwischen PB10 und PB2 (die liegen nebeneinander). Der Pieper piepte nicht, aber Ohmmeter sagt 500R. Damit hat nach CLK LOW (CPE Bit) die Spalte 2 immer mit detektiert. (manchmal hilfts eben drüber zu schreiben) Da war noch etwas Dreck zwischen den Pins, konnt ich rauskratzen, jetzt gehts.
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.