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
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.
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.
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 ?
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.
mitlesa schrieb: > Wir auch nicht, denn du hast ja nicht mal einen Controller > angegeben der das machen soll. PIC32MZ
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.
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
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, ...
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 ??
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.
mitlesa schrieb: > Das wäre erschrecken hemdsärmelig .... Ja, danke. War ja nur so geschrieben, ob mein Verständnis richtig ist....
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.