Forum: Mikrocontroller und Digitale Elektronik Fragen zu STM32F4 DISCOVERY TFT LCD Board


von Christian J. (Gast)


Lesenswert?

Hallo,

ich habe mir grad mal eben dieses Board besorgt als neues Spielzeug. Da 
mein Know How auf dem Gebiet fast 5 Jahre alt ist (also veraltet) möchte 
ich mal fragen welche IDE ich da nehmen soll? Es geht nur um 
Hobbyanwendungen und Interesse an der Architektur dieser CPU.

Generell kommt nichts in Frage, wo ich mich mit Makefiles und Startup 
Codes herumschlagen muss, weil ich davon a) nichts verstehe und b) es 
auch nie gebraucht habe sondern eine zu diesem Interface kompatible 
projektfähige IDE, die kostenfrei ist, auf GCC basiert und meinetwegen 
auch limitiert ist.

Meine damals 2008 gekaufte Rowley Crossworks hat diesen Chip leider 
nicht und auch deren GCC ist 6 Jahre alt, ein Update der IDE würde 250 
Euro kosten.

Hat jemand dieses Board und mal damit etwas herum gespielt? Gibt es dazu 
fertige Libs bzw eine HAL von ST?

Gruss,
Christian

von Dr. Sommer (Gast)


Lesenswert?

Weil diese Frage 3x täglich kommt, haben wir hier ein Wiki:

http://www.mikrocontroller.net/articles/STM32#Programmierung

Startupcode einbinden ist auch nicht so schwierig, und makefiles werden 
typischerweise automatisch generiert.

Christian J. schrieb:
> Hat jemand dieses Board und mal damit etwas herum gespielt?
Ja. Viele.
> Gibt es dazu
> fertige Libs bzw eine HAL von ST?
Hast du überhaupt mal auf die Produkt-Seite von ST zum uC geguckt? Da 
findest du die Antwort.

von Christian J. (Gast)


Lesenswert?

Dr. Sommer schrieb:

> Hast du überhaupt mal auf die Produkt-Seite von ST zum uC geguckt? Da
> findest du die Antwort.

Ja, danke für die Tips..... ich drucke grad noch das 1800 seitige
Handbuch aus. Dürfte für einen Sommer Lesestoff reichen :-) Frage
mich wann denen die Ideen ausgehen was sie noch da reinpacken können.
Cryptoprozessor... ächz.

von Düsendieb (Gast)


Lesenswert?

eine gute Quelle für Beispielprogramme,
Damit ist der Einstieg recht einfach

http://mikrocontroller.bplaced.net/wordpress/?page_id=6

von Christian J. (Gast)


Lesenswert?

Düsendieb schrieb:

> eine gute Quelle für Beispielprogramme,
> Damit ist der Einstieg recht einfach
>
> http://mikrocontroller.bplaced.net/wordpress/?page_id=6

Dank Dir. Board ist heute gekommen und bis auf die eingeflashten 
Blinki-Gyro-Progis geht noch nichts, nicht mal die IDE, die hoffentlich 
bei CooCox komplett unter Linux laufen wird. Muss mich damit erstmal 
zurecht finden, doch ne Nummer größer das Teil und rasent schnell im 
Vergleich zu allem was ich hier bisher habe.

von Düsendieb (Gast)


Lesenswert?


von Düsendieb (Gast)


Lesenswert?


von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Düsendieb schrieb:
> Wenn die LED blinken, brauchst du schnell ein TFT damit sich mehr tut.

Kann mir mal jemand erklären, warum man sich ans F4 Disco ein LCD hängen 
sollte, wenns das im F429 Disco schon alles fertig gibt mit 
Touchcontroller und so?
Ich habe beide Boards - wenn ich was mit LCD brauche, nehme ich das 
F429, wenns was mit Audio sein soll, das F4.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Matthias Sch. schrieb:
> Düsendieb schrieb:
>> Wenn die LED blinken, brauchst du schnell ein TFT damit sich mehr tut.
>
> Kann mir mal jemand erklären, warum man sich ans F4 Disco ein LCD hängen
> sollte, wenns das im F429 Disco schon alles fertig gibt mit
> Touchcontroller und so?
> Ich habe beide Boards - wenn ich was mit LCD brauche, nehme ich das
> F429, wenns was mit Audio sein soll, das F4.

Zumal die 429/439er-Reihe ja auch diesen feinen LTDC 
(LCD-TFT-Display-Controller) intus haben.

Ich habe das Winzdisplay vom STM32F429-Disco für unsere Zwecke direkt 
abgelötet und unsere eigenen 7"-TFTs über Adapter und die Leisten 
angehängt - läuft einwandfrei. Und ganz ohne externen Displaycontroller 
sind die Displaykosten unter 8 Euro.

Jetzt sind wir dabei, den externen RAM überflüssig zu machen. Das 
Prinzip ist dasselbe wie damals bei C64/C16 mit Rasterzeileninterrupt. 
Dann käme man problemlos mit dem internen Speicher für 24-Bit-RGB bei 
800x480 aus.
Mal schauen, ob das sauber funktioniert. Viel zu tun hat der 429 in der 
speziellen Anwendung sowieso nicht und man hätte eine Menge Pins frei.

Mein Tipp: für Displaysachen nur noch 429/439

: Bearbeitet durch Moderator
von Christian J. (Gast)


Lesenswert?

Hallo,

ich habe mal grundsätzliche Fragen zum STM32F4 LCD Display Board, was 
hier jetzt liegt und wo ich überlege, ob ich es noch doch verschenke 
oder für nen 10er verkaufe.

Der M4 ist für mich absolut neu. Kenne nur den ARM7TDMI und den konnte 
ich auch auf Registerebene recht gut programmieren ohne eine LIB 
dahinter. UART, Ints, SPI etc pp. Ok, das SD Interface war mir zu 
kompliziert, da habe ich die Chan Fat genommen und die disio aus dem 
Netz.

Beim M4 fehlt mir bisher jeder Plan :-( Wie setzt man bloss einen IO Pin 
auf 1 oder 0? Welche Pins hat welche Peripherie? Oder kann man das über 
eine Matrix beliebig schalten? Wozu braucht ein IO Pin einen Bustakt? 
Wie debugge ich den ohne JTAG Interface?

Ich habe bisher eine "Standard peripheral Linrary" für den M4 und eine 
CMSIS Library. Eine IDE habe ich noch nicht aufgesetzt, da es CooCox nur 
für für Windows gibt und ich das nicht habe.

Kann vielleicht mal jemand sagen, ob diese CPU nur mit Libs zu nutzen 
ist? Ob sie überhaupt für Hobbyzwecke taugt oder zu komplex ist um 
einfache Sachen zu machen? Es gibt hier zwar jede Menge Lesestoff aber 
so den Überblick habe ich noch nicht.

Gruss,
Christian

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Christian J. schrieb:
> Beim M4 fehlt mir bisher jeder Plan :-( Wie setzt man bloss einen IO Pin
> auf 1 oder 0?

Jeder Port hat ein BSRR Register, indem du bitweise Portpin setzen und 
löschen kannst. Das Register ist 32 bit breit für jeden 16bit Port, die 
oberen 16 bit sind zum Löschen, die unteren 16 zum Setzen des Portpins.
Da die Ports bei STM32 einige Features mehr haben als z.B. beim AVR, 
haben sie auch mehr Konfigurationsregister, die aber auch ohne Lib zu 
beherrschen wären.

Christian J. schrieb:
> Welche Pins hat welche Peripherie? Oder kann man das über
> eine Matrix beliebig schalten?

Die wesentlichen Dokumente sind das STM32F4 Reference Manual RM0090 für 
detaillierte Beschreibungen der Peripherie und dem Rest der Architektur.

Die genaue Pinzuordung und die alternativen Funktionen entnimmst du dann 
dem Manual zum STM32F407/405, abhängig vom Gehäuse.

von Christian J. (Gast)


Lesenswert?

Matthias Sch. schrieb:

> Da die Ports bei STM32 einige Features mehr haben als z.B. beim AVR,
> haben sie auch mehr Konfigurationsregister, die aber auch ohne Lib zu
> beherrschen wären.

Ist schon klar, nur ist es eine Sissiphusarbeit sich da Bit für Bit raus 
zu suchen und die X'e durch Ports zu ersetzen.

Ich schätze mal dass die BSRR Adresse dann BSRR-Offset (0x1c)+Base 
Adress die tatsächliche Adresse für jeden Port ist. Gleiches Schema für 
alle anderen Ports und Register. Man sucht sich in der stm32f429.h die 
passenden Sachen heraus.

#define GPIOA_BASE            (AHB1PERIPH_BASE + 0x0000)
#define GPIOB_BASE            (AHB1PERIPH_BASE + 0x0400)
#define GPIOC_BASE            (AHB1PERIPH_BASE + 0x0800)
#define GPIOD_BASE            (AHB1PERIPH_BASE + 0x0C00)
usw.

Hälst Du diesen Baustein für den Hobbybereich für geeignet? D.h. nicht 
nur Leds klickern sondern auch mal Berechnungen durchführen, GPS Daten 
auswerten, Messdaten anzeigen (sofern Libs für Sensoren vorhanden)

Wie machen es denn die meisten? Arbeiten die mit einer Library? So dass 
es sich darauf reduziert die passenden Schlüsselbegriffe heraus zu 
suchen und die Funktionen mit Parametern zu beladen.

Das Teilchen liegt jetzt hier, schon beeindruckend was das LCD so kann. 
Die Segger Lib für Windows zeichnen ist dabei.

PS: Habe nette Tutorials gefunden. NVIC hat es in sich, muss man sich 
wohl
wirklich erstmal erarbeiten wie der genau funktioniert.

http://stm32f4-discovery.com/2014/10/use-printf-output-stream-stm32f4/

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Christian J. schrieb:
> Wie machen es denn die meisten? Arbeiten die mit einer Library? So dass
> es sich darauf reduziert die passenden Schlüsselbegriffe heraus zu
> suchen und die Funktionen mit Parametern zu beladen.

Ich denke, viele werden noch das alte CMSIS nehmen, zumindest für die 
Initialisierung der Peripherie. Man kann dann immer noch auf Bitebene 
mit Ports spielen und zeitkritische Sachen zu Fuß erledigen.
Z.B. toggle die grüne LED:
1
GPIOG->ODR ^= GPIO_Pin13;
ist also auch nicht schwieriger als beim z.B. AVR.

Mittlerweile ist CubeF4 gross im Kommen, ich habs selber aber noch nicht 
verinnerlicht. Dazu muss ich auch das gesamte CooCox Setup verdrehen - 
früher oder später geht aber vermutlich kein Weg dran vorbei.

Ein guter Platz ist Uwes Site, der sich mit den Disco Boards intensiv 
beschäftigt und ne Menge schöner Sachen vorrätig hat:
http://mikrocontroller.bplaced.net/wordpress/

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