Forum: Mikrocontroller und Digitale Elektronik Display Chip ST7789V Library


von Dirk F. (dirkf)


Lesenswert?

Hallo zusammen,
ich möchte ein Display mit dem Grafikchip ST7789V  verwenden.
Kennt jemand hierfür eine Library im C-Code ?

Kenne bisher nur den FT800.
Sehe ich das richtig, dass ich bei dem o.g. Chip sogar die Fonts nicht 
dabei sind und selber definiert werden müssen ?

: Bearbeitet durch User
von library sucher (Gast)


Lesenswert?

Dirk F. schrieb:
> Kennt jemand hierfür eine Library im C-Code ?

Ja, ich.

Dirk F. schrieb:
> Kenne bisher nur den FT800.

Dann kennst du noch seeeeehr wenig.

Dirk F. schrieb:
> Sehe ich das richtig, dass ich bei dem o.g. Chip sogar die Fonts nicht
> dabei sind und selber definiert werden müssen ?

Das siehst du richtig. Im Datenblatt des ST7789V kommt das Wort
Font kein einziges Mal vor.

Wenn man nach ST7789V Datenblatt sucht dann findet man ein
Datenblatt des Chips.

Wenn man nach ST7789V Library sucht dann findet man Libraries
zur Verwendung des Chips.

von J. S. (jojos)


Lesenswert?

TFT_eSPI von Bodmer

von Dirk F. (dirkf)


Lesenswert?

J. S. schrieb:
> TFT_eSPI von Bodmer

Danke, werde mich da mal reindenken....

von 123 (Gast)


Lesenswert?

Das was du da hast ist der reine LCD Treiber IC. Der hat über so gefühlt 
zig tausende pins, und ist direkt auf dem LCD gebondet.

Ansprechen kann man den über MCU 8/16 bit interface, SPI mit 3 oder 4 
leitungen oder über RGB und noch gefühlt 20 andere. Welches Interface du 
jetzt genau hast, kann dir nur der Hersteller des LCD displays sagen, 
derjenige, der auch das Flachbandkabel an das glas drangeklebt hat.

Und Fonts kann der IC glaube ich nicht, ... du must da pixel für pixel 
selber setzen. und Initallisieren solltest du den LCD Treiber vorher 
auch nach forgabe des Herstellers, ... (irgendwie muss man dem IC ja 
sagen wie das glass jetzt genau aussieht und wie man da jetzt die farben 
richtig darstellt, sollte aber alles im Datenblatt zum LCD drinnen sein)

Der Linux Treiber für die 3 Draht SPI anbindung ist unter staging zu 
finden.

von Dirk F. (dirkf)


Angehängte Dateien:

Lesenswert?

123 schrieb:
> Ansprechen kann man den über MCU 8/16 bit interface, SPI mit 3 oder 4
> leitungen

Hallo, ja ich möchte SPI nutzen.
Es handelt sich um ein Display von Phoenix Contact für die ICS Baureihe 
Gehäuse.

Und ja, der Init-code steht zur Verfügung (s.Anlage).

Nur weiß ich nicht, wie das geht ?
1. Ein Byte Register senden
2. ein Byte Parameter senden
3. Ein Byte Register senden
4. ein Byte Parameter senden

u.s.w   ?

von mitlesa (Gast)


Lesenswert?

Dirk F. schrieb:
> Nur weiß ich nicht, wie das geht ?

Wir auch nicht, denn du hast ja nicht mal einen Controller
angegeben der das machen soll.

von Dirk F. (dirkf)


Lesenswert?

mitlesa schrieb:
> Wir auch nicht, denn du hast ja nicht mal einen Controller
> angegeben der das machen soll.

PIC32MZ

von mitlesa (Gast)


Lesenswert?

Dirk F. schrieb:
> Nur weiß ich nicht, wie das geht ?

Zunächst schreibst du eine Funktion die ein Byte über SPI sendet.
Dazu Makros, Funktionen oder Direktzugriffe die Chip Select und
RS-Signal (auch oft C/D genannt) richtig bedienen.

Wenn du das hast zeigst du uns das, dann reden wir weiter.

von Dirk F. (dirkf)


Lesenswert?

mitlesa schrieb:
> Zunächst schreibst du eine Funktion die ein Byte über SPI sendet.
> Dazu Makros, Funktionen oder Direktzugriffe die Chip Select und
> RS-Signal (auch oft C/D genannt) richtig bedienen.

Das ist kein Thema  >>>> Harmony3  macht das für mich

von mitlesa (Gast)


Lesenswert?

Dirk F. schrieb:
> Das ist kein Thema  >>>> Harmony3  macht das für mich

Ja, dann zeig uns das doch.

von 123 (Gast)


Lesenswert?

tja was du möchtest, das ist dem display egal, ...
da hat wer irgend etwas verkabelt, ... und das hast du dan zu nutzen.

ist vermutlich SPI 4 draht oder doch 3 Draht, ...

Bei 3 draht werden 9 bits verwendet, das 9te ist dann für register / 
parameter
bei 4 draht sind das nur 8 bit dafür übernimt die Register/parameter 
umschaltung eine leitung, ...

und versuch nicht erst die parameter die du da reinschreibst im 
datenblatt alle nachzulesen. es kann durchaus sein, das da der Asiate 
irgend welche parameter schreibt, die nicht im datenblatt dokumentiert 
sind. Das ist da so üblich, ...

Also entweder für Register den Leitung entsprechend setzen, das Byte 
über SPI rausschreiben, und für Parameter entsprechen die Leitung 
invertieren.

bei 9bit, das entsprechende bit entsprechend setzen, ...

von Dirk F. (dirkf)


Angehängte Dateien:

Lesenswert?

123 schrieb:
> Also entweder für Register den Leitung entsprechend setzen, das Byte
> über SPI rausschreiben, und für Parameter entsprechen die Leitung
> invertieren.

Hi 123,
das bedeutet folgende Reihenfolge zum Init:

0. Reset, delay 120 ms
1. RS (Pin 9) = 0
2. 0x36 schreiben (8 Bit)
3. RS (Pin 9) = 1
4. 0x00 schreiben (8 Bit)
5. RS (Pin 9) = 0
6. 0x3a schreiben (8 Bit)
7. RS (Pin 9) = 1
8. 0x05 schreiben (8 Bit) ........u.s.w  ??

von mitlesa (Gast)


Lesenswert?

Dirk F. schrieb:
> das bedeutet folgende Reihenfolge zum Init:

Das wäre erschrecken hemdsärmelig ....

Nein, man schreibt zwei Funktionen:
1
Write_Command (uint8_t val)
2
{
3
 // ... RS = 0
4
 // val schreiben
5
}
6
Write_Data (uint8_t val)
7
{
8
 // ... RS = 1
9
 // val schreiben
10
}
Diese ruft man wechselweise auf wie es deine Init-Tabelle
hergibt. Linke Spalte: Command, rechts Spalte: Data.

von Dirk F. (dirkf)


Lesenswert?

mitlesa schrieb:
> Das wäre erschrecken hemdsärmelig ....

Ja, danke. War ja nur so geschrieben, ob mein Verständnis richtig 
ist....

von Reinhard R. (reirawb)


Angehängte Dateien:

Lesenswert?

Hallo,

ich bin gerade dran an einem Display mit einem ST7793, allerdings mit 
8-Bit Parallelport, dieses hier:

https://de.aliexpress.com/item/32956967893.html?spm=a2g0o.order_list.order_list_main.29.768c5c5foVeM76&gatewayAdapt=glo2deu

Und ja, die verwendeten Schriftfonts mußt du selber in Software machen. 
Ich habe mir mit Hilfe des Datenblattes, der mit dem Display 
mitgelieferten Beispiele und viel try&error eine kleine Lib selber 
geschrieben mit den Sachen, die ich für mein Projekt brauche. Die Fonts 
habe ich von hier:

Beitrag "Re: LCD Schriftarten ( Fonts in veschiedenen Größen )"

Reinhard

von Dirk F. (dirkf)


Lesenswert?

Reinhard R. schrieb:
> Die Fonts habe ich von hier:

Danke Dir.

von Andreas S. (Gast)


Lesenswert?

Ich glaub er sucht für "Harmony3" eine passende Lib und versucht hier 
sein
Glück (https://microchipdeveloper.com/harmony3:harmony-libraries) weil
er es selbst nicht schafft/schaffen wird.
Warum fängt man auf diese Basis eigentlich mit einen Projekt an ?
Ich würde die Hardware nehmen die bekannt und gut dokumentiert ist
und die ich u.U. schon eingesetzt habe.
Alternativ kann man eine Arduino Lib nehmen z.B.:
https://github.com/deirvlon/ST7789v-Arduino
und schaut sich den Source Code genauer an und "saugt" sich dass
raus was man braucht.

von Dirk F. (dirkf)


Lesenswert?

Hallo Andreas,
ich meinte nur, dass Harmony3 mir die Lib für die SPI Kommunikation 
bereit stellt.
Microchip wird wohl keine LIB für Fremddisplays anbieten.

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.