Forum: Mikrocontroller und Digitale Elektronik STM32F407 DISCOVERY mit EVE3 50GTPC von MatrixOrbital


von Flo (fragesteller1133)


Angehängte Dateien:

Lesenswert?

Hallo,

ich bin aktuell am Programmieren eines STM32F407 DISCOVERY. An diesem 
soll das 5 Zoll große Display EVE3 von MatrixOrbital mit kapazitivem 
Touchscreen und 800x480 Pixeln angeschlossen werden.

Das Display und der Mikrocontroller kommunizieren über den SPI2 und 
einer Taktfrequenz von ca. 2 MHz.
Die Initialisierung des Codes wurde nach ProgrammingGuide durchgeführt. 
Dort funktionieren auch alle Lese- und Schreibzugriffe, danach zeigt mir 
das Display oftmals viele bunte Striche auf weißem Hintergrund oder nur 
einen weißen Hintergrund. Leider werden Befehle die ich in die 
Displayliste schreibe ignoriert (siehe erste Displayliste in der 
Displayinitialisierung).
Ich hab ebenfalls probiert die bereitgestellt Beispielbibliothek zu 
verwenden und ebenfalls das bekannte Testprogramm für die MatrixOrbital 
Displays versucht auszuprobieren. Leider ohne Erfolg

Da ich selber nicht weiterkomme und ich bald ein Ergebnis brauche, hoffe 
ich, dass mir hier jemand helfen kann.

Programmiert wird das Ganze in der CubeIDE.
Angehängt hab ich das Datenblatt und den ProgrammingGuide des verbauten 
Controllers, mein C-Source-File und die Projektdatei.

Grüße

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Flo schrieb:
> Da ich selber nicht weiterkomme
Bist du sicher, dass deine Hardware funktioniert? Wie sehen die 
SPI-Signale an Display und µC aus? Welche Messmittel hast du? 
Digital-Oszi? Logic-Analyzer?

> Angehängt hab ich
Häng doch noch ein Foto vom realen Aufbau an.

von Flo (fragesteller1133)



Lesenswert?

Als Messmittel verwende ich ein PC-Oszilloskop (Hantek6022BE) mit zwei 
Kanälen an denen jeweils ein 10:1 Tastkopf angeschlossen ist. Das 
Display wird aktuell über ein Labornetzteil mit Spannung versorgt. Fotos 
vom realen Aufbau sowie die SPI-Signale bei einem einfachen 
Schreibbefehl (wr8(REG_RAM + REG_ROTATE, 0x55)) auf MOSI und Lesebefehl 
(rd8(RAM_REG + REG_ID)) MISO habe ich angehängt.

Beide sind innerhalb der while-Schleife in main und nach der 
Displayinitialisierung durchgeführt worden.

von Harry L. (mysth)


Lesenswert?

Flo schrieb:
> mein C-Source-File und die Projektdatei.

Soll das ein Witz sein?
Ich sehe da keine einzige Zeile selbst-verfassten Code und statt dessen 
nur von CubeMX generierte Initialisierung.

Soo einfach ist es nun auch nicht...

von Flo (fragesteller1133)


Angehängte Dateien:

Lesenswert?

Entschuldigen Sie vielmals. Beim hochladen der Datei muss mir ein Fehler 
unterlaufen sein. Nun habe ich die wirkliche Source-Datei angehängt.

von J. S. (jojos)


Lesenswert?

Du machst ein SSDisable, aber der DMA kann ja noch laufen. Besser den 
DMA complete abwarten und dann weitermachen. Bzw die Daten in eine Queue 
packen, sonst geht ja der DMA Vorteil verloren wenn es doch blockiert.

von Harry L. (mysth)


Lesenswert?

Als blutiger Anfänger würde ich zunächst einen weiten Bogen um das Thema 
DMA machen, und das zuerst mal mit den blocking-Funktionen zum Laufen 
bringen.
Das Optimieren kommt erst deutlich später...

von Flo (fragesteller1133)


Angehängte Dateien:

Lesenswert?

Vielen Dank für die zahlreichen Antworten. Ich hab nun den DMA 
rausgeworfen und das Display schaltet sich zuverlässig ein und zeigt 
einen weißen Bildschirm. Wenn die Displaylist_Befehle funktionieren 
sollte das Display mit dem Befehl CLEAR_COLO_RGB(0,0,0) doch eigentlich 
schwarz sein? Die entsprechenden SPI_Commands hab ich überprüft und 
diese sind korrekt.

Damit der Code leichter zu verstehen ist habe ich diesen in Bezug auf 
Displaylist_Befehle an den ProgrammingGuide angepasst und ihn hier 
wieder mit angehängt.
Ich bin um jeden Vorschlag froh.
Vielen Dank schon mal.

von Paul B. (paule201)


Lesenswert?

Ich würde das Rad nicht neu erfinden sondern auf bewährtes 
zurückgreifen:
https://www.mikrocontroller.net/articles/FT8xx_Library
https://github.com/RudolphRiedel/FT800-FT813

Es gibt auch einen Thread dazu hier im Forum und Rudolph ist hier aktiv, 
falls mal fragen zur Lib aufkommen.

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
Noch kein Account? Hier anmelden.