Forum: Mikrocontroller und Digitale Elektronik ARM LPC Dev Kit von Steinert


von Bernd N. (Gast)


Lesenswert?

Hallo zusammen,

ich bin auf der Suche nach jemanden der ein solches Testboard...

http://www.steitec.net/ARM-Boards/

besitzt und schon einmal mit den Codebeispielen gearbeitet hat.

Frage1: Es scheint so zu sein das die Codebeispiele (Keil) zum GLCD 
allesamt das Display spiegelverkehrt ansteuern. Ich habe mich noch nicht 
in den Code reingearbeitet, wenn jemand das Problem kennt dann wäre es 
wirklich nett sich dazu auszutauschen.

Frage2: Welche Entwicklungsumgebung verwendet Ihr ? Ich bin auf der 
Suche nach einer freien Umgebung (ohne Code limit).

von Honk (Gast)


Lesenswert?

CoCenter bzw. CoIDE, es gibt sooo viele auf ARM-GCC Basis

von murks (Gast)


Lesenswert?

Willkommen im Club. Hast du inzwischen etwas herausgefunden?

von murks (Gast)


Lesenswert?

Achso und ich verwende atollic True Studio light...... ist frei, hat 
eine Breakepointbegrenzung und kann nur C, kein C++ für MC, das wars an 
Begrenzungen glaube ich.

von murks (Gast)


Lesenswert?


von Halunke (Gast)


Lesenswert?

murks schrieb:
> das wars an Begrenzungen glaube ich.
It now has a 32kB limit on executable output ...
Fang gleich mit Coocox an...

von murks (Gast)


Lesenswert?

So ... falls es noch interessieren sollte....
in der Datei: "et_stm32f_arm_kit_lcd.c" befindet sich die Zeile: 
"LCD_WriteReg(R96,  0x2700); /* Gate Scan Line */".

Diese verweist auf den driver output control (0x60). Im zugehörigen 
Datenblatt steht dort:
"GS: Shift direction of the gate driver output selection. When
GS=“0”, gate driver shift from G1 to G320. When GS = “1”, gate driver 
shift from G320 to G1."

Sprich du änderst einfach die Zeile:
LCD_WriteReg(R96,  0x2700);
in
LCD_WriteReg(R96,  0xA700);


Damit stimmt wieder alles. Ich weiß das hier sieht gerade etwas kaotisch 
aus,  habs leider gerade eilig... vllt findet sich ja jemand der es noch 
mal schöner schreiben kann ;-P

von murks (Gast)


Lesenswert?

@Halunke
solang sie es nicht geändert haben... NÖ... keine Begrenzung. Und sogar 
kommerziell freigegeben. Damals hat Coocox meine J-Tag´s nicht 
akzeptiert. Aber es ist auch gut. Am ende sieht alles irgenwie aus wie 
Eclipse (ok basiert ja auch alles darauf ;-P)... nur dass ich damals zu 
blöd war das selbst zusammenzufriemeln mit yagarto oder wie auch immer 
geschrieben.... und wohl noch immer bin....

von Halunke (Gast)


Lesenswert?

murks schrieb:
> @Halunke
> solang sie es nicht geändert haben... NÖ.
sorry, wenn ich Tomaten auf den Augen habe:
http://embeddedinfo.org/st-microelectronics/tutorials/installing-atollic-truestudio-for-stmicroelectronics-stm32-lite.html

von murks (Gast)


Lesenswert?

Ja sry, wie ich schon geschrieben hatte, wenn sie es nicht geaendert 
haben :-P

"It now has a 32kB limit on executable output files."


Du hast ja recht... und ich noch die alte Version.

von erhardd (Gast)


Lesenswert?

... ja, die

murks schrieb:
> "It now has a 32kB limit on executable output files."

Atollic-Leute wollen mit allen Mitteln den Kaufpreis für ihren 
Altersruhesitz,
 (siehe Logo ! ), reinbekommen...

von erhardd (Gast)


Angehängte Dateien:

Lesenswert?

... für Windows geh mal auf google-suche
   eclipse-cpp-indigo-SR2-incubation-win32

für Linux lies mal (s.o.)...

Ich nutze meist PN2 mit make code-sourcery;(Windows);

von murks (Gast)


Lesenswert?

Hey danke für das Tutorial.

Ergänzend zu meinem gestrigen Hinweis wegen der gespiegelten Ausgabe. 
Die ursprüngliche Frage war ja auf einen LPC bezogen. Das ganze sollte 
sich von einem STM ja nicht großartig unterscheiden. Allerdings 
funktioniert das nur beim Beispiel "Easy Touch". Bei mindestens einem 
weiteren Beispiel ändert sich dadurch nichts. Scheinbar ist dort das 
Programm noch an anderen Stellen auf die Revision C ausgelegt. Eventuell 
kennt jemand eine Quelle von der man die Beispiele für die REV B 
bekommen kann. Da Streitec ja so "freundlich" war die Revision B zu 
schicken, aber nur Programme für die Revision C. Zumindest was den STM 
Controller anbelangt.

von erhardd (Gast)


Lesenswert?

...ich habe das ET-TFT240320TP-3.2 REV.B ,ebenfalls von Steitec;
ist aber in Wirklichkeit schon Rev.C --> war auch irgendwo angemerkt 
(kleingedruckt oder chin.?!?);

Sicherheitshalber hab ich nochmal nachgeschaut>:
 wr_cmd(0x60);         // Set the number of lines to scan.
                                //wr_dat(0x2700);  Rev. B


  /*New Initial For ET-TFT240320TP-3.2 REV.C */  wr_dat(0xA700); 
- ist von 
hier:http://www.mikrocontroller.net/attachment/141827/Blinky.zip

Da es bei mir so funktionierte, wird's wohl stimmen...

von murks (Gast)


Lesenswert?

wow einen stm32F4xx  ich hab noch das F107VC Modell. Bei mir steht halt 
auf dem Display groß REV. B stehen. Die beispielprojekte habe ich von 
der CD die dem Board beigelegt wurde. Dort gibt es aber nur für die REV. 
B Beispiele. Die CD zum Display (habs getrennt gekauft) behinhaltet zum 
STM32 garnichts und selbst dort sind die Beispiele abgelegt unter 
RevC/RevB/... Was jetzt nicht gerade für die Firma spricht. Auf der 
Internetseite von www.etteam.com bin ich auch nicht auf Hilfe gestoßen 
(kann an meinen mangelnden Thaikenntnissen liegen^^). Aber wenn dir 
weiter Downloads bekannt sind dann bin ich dankbar. Momentan geh ich 
erstmal das funktionierende Beispielprogramm im Debug durch und schau 
mir dazu mal das Datenblatt an. Das geht, ist aber dank des meiner 
Meinung nach recht knapp gehaltenen Datenblatts (bin Anfänger) nicht 
überall sofort zu deuten.

Ich hoffe ich hab jetzt nicht komplett an deinem Beitrag vorbei 
geantwortet.

von erhardd (Gast)


Lesenswert?

...nö;

von Bernd N. (Gast)


Lesenswert?

Die Beispiele sind von Keil und bei Bedarf kann ich die REV C hier 
hochladen.

von murks (Gast)


Lesenswert?

Nein die habe ich ja soweit ich weiß, eben halt nur die Rev.B 
Hardware^^.

Aber eventuell würde ich noch ein paar Fragen posten, sobald ich hier 
alles durch habe... vielleicht hast du ja  ein paar Antworten.

Momentan stößt mir z.B. das hier auf:
LCD_WriteReg(0xE5, 0x8000); /* Set the internal vcore voltage */

Im Manual kann ich dazu nichts finden, oder habs jetzt doch mehrfach 
überlesen. (ich schreib lieber nicht weiter um mich nicht noch mer zu 
blamieren^^)

von erhardd (Gast)


Lesenswert?

driverCode = rd_reg(0x00);

  if (driverCode == 0x47) {             // LCD with HX8347-D LCD 
Controller
    Himax = 1;                          // Set Himax LCD controller flag
    // Driving ability settings 
----------------------------------------------
    wr_reg(0xEA, 0x00);                 // Power control internal used 
(1)
    wr_reg(0xEB, 0x20);                 // Power control internal used 
(2)
    wr_reg(0xEC, 0x0C);                 // Source control internal used 
(1)
    wr_reg(0xED, 0xC7);                 // Source control internal used 
(2)
    wr_reg(0xE8, 0x38);                 // Source output period Normal 
mode
    wr_reg(0xE9, 0x10);                 // Source output period Idle 
mode
    wr_reg(0xF1, 0x01);                 // RGB 18-bit interface ;0x0110
    wr_reg(0xF2, 0x10);

... hast Du etwa dieses Display???
Auch im Keil-Code finde ich Register 0xE5 nicht;

Wenn Du schon "Blinky.zip" entpackt hast --> 16bitIF_STM32F4xx.c ab 
Zeile 588
Himax = 0; ff
ist die .ini- Routine für das ILI-Display;
-ist zwar wr_cmd/wr_dat für FSMC, aber das kann man fix anpassen...

von erhardd (Gast)


Lesenswert?

...MCBSTM32C low level Graphic LCD (320x240 pixels) functions
Ich hab's gefunden.
Du hast entweder dieses Board, -oder Du benutzt die .ini(GLCD.c) für 
dieses
Board.  Offenbar ist dies nicht das von Dir nachgekaufte ILI-Display;

von erhardd (Gast)


Angehängte Dateien:

Lesenswert?

...für Dich zutreffend wäre "STM3220G-EVAL
und daraus GLCD_16bitIF_STM32F2xx.c (ab HIMEX = 0)
Ich hab's mal für Dich gepackt und angehängt(hoffe, Andreas ist nicht 
allzu böse)...

von erhardd (Gast)


Lesenswert?

...noch ein Hinweis:
Du wirst Dich entscheiden müssen, ob Du weiterhin SPI-Mode oder 16-bit 
Interface haben möchtest;
danach sind auch Brücken/Jumper am Display selbst zu beschalten(nicht 
vergessen!);
Wenn Du, wie ich annehme, SPI nutzen willst, musst Du write in 
Write_Command und Write_Data trennen. (unterscheiden sich nur durch 
setzen/nicht setzen der CD-Leitung;
LCD_WriteReg muss aus 2 Teilen bestehen:
-einmal write_cmd und dann write_Data(Bezeichnung kann anders sein)...

von murks (Gast)


Lesenswert?

Also bei mir steht hier auf dem Display "ET-TFT240320TP-3.2 REV. B" das 
ganze läuft hier aber über den "SPFD5408A", viel mehr kann ich dort 
nicht entnehmen. Das sollte bei dir ja nicht anders sein. Mit welchem 
Controller steuerst du das ganze jetzt eigentlich an?

von murks (Gast)


Lesenswert?

Ich denke auf meinem Board ist SPI vorgegeben (laut Schaltplan). So habe 
ich es auch jetzt eingestellt. Für alle anderen Modi müsste ich wohl 
noch mal einen Adapter bauen.

von erhardd (Gast)


Lesenswert?

...ich habe das ET-TFT240320TP REV.B , das eigentlich aber REV.C ist 
(wird bei Dir auch so sein);
Es nennt sich ILI9325-Display (mit SPFD5408A-Controller);
Datasheet: ILI9325 has four kinds of system interfaces which are 
i80-system MPU interface (8-/9-/16-/18-bit bus width),
VSYNC interface (system interface + VSYNC, internal clock, DB[17:0]), 
serial data transfer interface (SPI)
and RGB 6-/16-/18-bit interface (DOTCLK, VSYNC, HSYNC, ENABLE, 
DB[17:0]).
Angesteuert habe ich dieses LCD bereits mit ATmega 644 , ATmega 128, 
LPC1768,LPC2148 und eben mit dem STM32F407 und 417.
Sowohl in SPI-Mode als auch  in 8-bit und 16-bit IF mit bit-banding , 
aber auch mit FSMC.
Ich gehe immernoch davon aus, daß Du das MCBSTM32C oder ein ähnliches 
Board hast(bin kein Hellseher);
Da genügt es, die init-Routinen zu übernehmen.
Geht auch mit SPI, -von welchem Board auch immer...

von murks (Gast)


Lesenswert?

Nein sry ich habe das "ARM STM32F Cortex M3 Board".
http://www.steitec.net/ARM-Boards/ARM-STM32F-Cortex-M3-Board.html
Das Display habe ich seperat gekauft (ist auf der Seite unten verlinkt).
Ich dachte bis jetzt ich hätte das erwähnt, war aber wohl in einem 
anderen Thread. Laut dem Datenblatt habe ich ein kwh032gm02-f05 und 
darauf muss ich mich wohl verlassen, da das Display ja nicht beschriftet 
ist und ich nicht weiß wie ich die Informationen sonst auslesen sollte. 
Da das Display "angeklebt" ist kann ich ich mir die Bedruckung nicht 
ansehen ohne es zu zerstören.

von erhardd (Gast)


Lesenswert?

...das ist ja ein sehr gutes Board;
'TFT 240x320 Touch 3.2' hat den ILI9320, bzw. wird als solcher 
angesprochen;
- nun lädst Du mdk450.exe(googlen) und setup;
in dem Ordner 'Keil' findest Du ARM\Boards\ST ;
STM3210C-EVAL entspricht wohl am ehesten deinem Board. Schau Dir auch 
den Schaltplan deines Bords an.(unter Downloads Steitec-Seite)
-die GLCD.c ist für die Ansteuerung deines Displ. über SPI;

dort wird : >wr_reg(0x60, 0x2700) angegeben;
Musste bei Bedarf ändern(s.o.);
-auch wenn Du Keil nicht verwenden willst, -eine Hilfe ist es allemal...

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.