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).
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.
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
@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....
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.
... 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...
... 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);
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.
...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...
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.
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^^)
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...
...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;
...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)...
...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)...
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?
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.
...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...
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.
...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...