STM32F4 Discovery - SSD1963 TFT

OP (Firma: HEGRO GmbH) #4457511
Lesenswert?

Servus mal wieder!

Der STM ist mit dem SSD1963 verbunden, habe soeben versucht die ID 
auszulesen.

1. Wenn ich die ID auslese, spreche ich direkt das Register des SSD1963 
an? Ich beschreibe doch eine bestimmte Stelle im SSD-RAM, danach kann 
ich an anderer Stelle im RAM die Werte entnehmen. Mir fehlt hier das 
Verständnis.

2. Mit den Timings komme ich gar nicht zurecht. Habe in die ST-Sheets 
geschaut, um die benötigten Timings einzustellen, aber im SSD-Sheet 
stehen manche Werte nicht drin, bzw. heißen anders. Habe ein bisschen 
mit den Werten gespielt und es auch geschafft die ID auszulesen. 
Allerdings muss ich zwischen Registeraufruf und auslesen zwischen 5 - 10 
HCLK-Clocks warten, ansonsten kommt nur Quatsch raus.
Das sind meine Timings:
1
#define SSD1963_TIMING_ADDRESSHOLDTIME      1  // 1 - 15
2
#define SSD1963_TIMING_ADDRESSSETUPTIME      9  // 0 - 15
3
#define SSD1963_TIMING_BUSTURNAROUNDDURATION  0  // 0 - 15
4
#define SSD1963_TIMING_DATALATENCY        2  // 2 - 17 // Don't care?
5
#define SSD1963_TIMING_CLKDIVISION        2  // 2 - 16 // Don't care?
6
#define SSD1963_TIMING_DATASETUPTIME      7  // 1 - 255

Mit folgendem Code (Mainloop), kann ich die IDs (lcdidn)auslesen, je 
nach Timing, zündet beim letzten Byte allerdings die if-Bedingung.
1
  LCD_REG = 0xA1;
2
  for (int i = 0; i < 10; i++) {}
3
  lcdid = LCD_RAM;
4
  if (lcdid != 0x0001)
5
    er++;
6
  //for (int i = 0; i < 10; i++) {}
7
  lcdid1 = LCD_RAM;
8
  if (lcdid1 != 0x0057)
9
    er1++;
10
  //for (int i = 0; i < 10; i++) {}
11
  lcdid2 = LCD_RAM;
12
  if (lcdid2 != 0x0061)
13
    er2++;
14
  lcdid3 = LCD_RAM;
15
  //for (int i = 0; i < 10; i++) {}
16
  if (lcdid3 != 0x0001)
17
    er3++;
18
  //for (int i = 0; i < 10; i++) {}
19
  lcdid4 = LCD_RAM;
20
  if (lcdid4 != 0x00ff)
21
    er4++;

Habt ihr mir eine gute Lektüre zu diesem Thema, wenns geht, online? Ich 
denke es geht eher in Richtung SRAM als TFT? Wer Lust und Laune hat, 
darf mir das natürlich auch hier direkt im Forum erläutern, was mir 
natürlich lieber wäre :)


Vielen Dank euch!

Grüße
Reggie
Gast #4458165
Lesenswert?

Was soll Dein TFT überhaupt anzeigen?
Wenn Du mit 320x240 und wenigen (lesbaren) Farben auskommst, kann der 
F407/F427 das Display doch selber ansteuern. 
Beitrag "TFT-direct-drive, WQVGA-TFT an STM32F4"
Alternativ kann man den F429 einsetzen und mit einer FLUT arbeiten. Wenn 
höhere Auflösung bzw. mehr Farben benötigt werden, braucht der F429 noch 
externes RAM (512K, 10ns) oder auch SDRAM.

Das sieht auf den ersten Blick vielleicht etwas kompliziert aus, hat 
aber den großen Vorteil, daß der Bildspeicher im Adressraum des µC 
liegt, was schnellste Zugriffe erlaubt.
OP (Firma: HEGRO GmbH) #4458229
Lesenswert?

m.n. schrieb:
> Was soll Dein TFT überhaupt anzeigen?

Hauptsächlich Text, hohe Bildwiederholrate ist nicht nötig. Es soll über 
das TouchPanel auch Input entgegennehmen.

m.n. schrieb:
> Wenn Du mit 320x240 und wenigen (lesbaren) Farben auskommst, kann der
> F407/F427 das Display doch selber ansteuern.
> Beitrag "TFT-direct-drive, WQVGA-TFT an STM32F4"
> Alternativ kann man den F429 einsetzen und mit einer FLUT arbeiten. Wenn
> höhere Auflösung bzw. mehr Farben benötigt werden, braucht der F429 noch
> externes RAM (512K, 10ns) oder auch SDRAM.

Ich habe bewusst zu einem fertigen 800x480 TFT mit Controller und 
Speicher gegriffen, da ich diese Auflösung benötige. Den F429 und F746 
habe ich mir auch angeschaut, allerdings hätte der F429 keine Vorteile 
gebracht und beim F746 ist mir zu viel Peripherie auf dem Board.
Am liebsten wäre mir ein F7xxx-Board mit vielen IOs und nur der zum 
Start notwendigen Bestückung. Da bleibt dann aber nur die Lösung mit 
selber löten.

m.n. schrieb:
> Das sieht auf den ersten Blick vielleicht etwas kompliziert aus

Sieht es am Anfang immer für mich aus. Aber nachdem es läuft denke ich 
mir: "F***, das war alles?" :)

PS: Servus m.n. :)

PPS: Ach übrigens, das Display läuft jetzt, heute versuche ich mal Text 
anzeigen zu lassen :>

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren