Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

TFT 1.8'' en SPI avec ST7735
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#11 Message par satinas » sam. 6 févr. 2016 00:05

Salut,

J'ai ce modèle
http://www.ebay.fr/itm/1Pcs-1-8-inch-12 ... 2c8ec3d130

et il démarre avec ce code

Code : Tout sélectionner

#define MODE_SLEEP_OFF     0x11
#define DISPLAY_ON         0x29
#define SET_MA_CTL         0x36
#define SET_DISP_PX_FRM    0x3a
#define SET_PW_CTL1        0xc0
#define SET_PW_CTL2        0xc1
#define SET_PW_CTL3        0xc2
#define SET_PW_CTL4        0xc3
#define SET_PW_CTL5        0xc4
#define SET_VC_CTL1        0xc5

LcdCsOn();
SendCmd(SET_MA_CTL);       SendData(0x00);                     // set display ram scanning direction
SendCmd(SET_PW_CTL1);      SendDat3(0xa2, 0x02, 0x84);         // set power control params
SendCmd(SET_PW_CTL2);      SendData(0xc5);
SendCmd(SET_PW_CTL3);      SendDat2(0x0a, 0x00);
SendCmd(SET_PW_CTL4);      SendDat2(0x8a, 0x2a);
SendCmd(SET_PW_CTL5);      SendDat2(0x8a, 0xee);
SendCmd(SET_VC_CTL1);      SendData(0x0e);                     // set vcom control param
SendCmd(SET_DISP_PX_FRM);  SendData(0x05);                     // 16 bit/pixel, 64k colors
SendCmd(MODE_SLEEP_OFF);                                       // sleep off (+120ms)
SendCmd(DISPLAY_ON);       Wait1ms(10);                        // display on
LcdCsOff();

SendCmd est un envoi spi 8 bit avec la broche RS à 0
SendDatx est un ou des envois spi 8 bit avec la broche RS à 1

TFT 1.8'' en SPI avec ST7735
sylvain54
Avatar de l’utilisateur
Amateur
Amateur
Messages : 194
Âge : 51
Enregistré en : août 2015
Localisation : Dans l'est de la France

#12 Message par sylvain54 » sam. 6 févr. 2016 16:30

Bonjour Satinas,

Merci pour le bout de code. Tu as pris quoi comme PIC, tu le fais avec le SPI en hardware ou en software ?
As tu essayer de faire quelque chose avec, dessiner des rectangles, définir des zones, afficher du texte etc ?

++

TFT 1.8'' en SPI avec ST7735
sylvain54
Avatar de l’utilisateur
Amateur
Amateur
Messages : 194
Âge : 51
Enregistré en : août 2015
Localisation : Dans l'est de la France

#13 Message par sylvain54 » sam. 6 févr. 2016 18:28

Bon, pour le moment, il reste blanc :(
Si demain, c'est toujours pareil, j'essayerai vite fait avec une arduino. Il y a peut être une erreur sur le driver ?

++

TFT 1.8'' en SPI avec ST7735
Jérémy
Administrateur du site
Administrateur du site
Messages : 2723
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#14 Message par Jérémy » sam. 6 févr. 2016 18:43

Tiens ca me rappelle mes déboires ......
Si tu veux de l'aide il faut que nous montre le code et un schéma du montage et/ou photo , pour éviter de recherche une erreur dans le code si elle se trouve en HArd .

Au départ je te conseille d'essayer d’exécuter une fonction simple remplir l’écran d'une couleur facilement reconnaissable . Ainsi on s'assure de la bonne initialisation de celui ci , qui est à mon avis le plus dur
C'est en faisant des erreurs, que l'on apprend le mieux !!!

TFT 1.8'' en SPI avec ST7735
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#15 Message par satinas » sam. 6 févr. 2016 18:46

Oui je fais mes propres librairies, histoire de comprendre comment ça marche.
Le principe est le même que pour le ILI9341, on définit un rectangle horizontal, puis on envoie toutes les couleurs des points contenus dans ce rectangle.
C'est valable pour afficher un rectangle plein ou un point (rectangle de côtés 1). Pour les lignes horizontales ou verticales, c'est encore un rectangle dont un des côté est 1. Pour tous le reste, ligne oblique, cercle, ellipse, triangle, y a plus qu'à calculer les points et les afficher un par un.

Je le fais tourner sur pic32 et Arduino, tu as quel Arduino ?
Modifié en dernier par satinas le sam. 6 févr. 2016 19:06, modifié 3 fois.

TFT 1.8'' en SPI avec ST7735
sylvain54
Avatar de l’utilisateur
Amateur
Amateur
Messages : 194
Âge : 51
Enregistré en : août 2015
Localisation : Dans l'est de la France

#16 Message par sylvain54 » sam. 6 févr. 2016 18:52

Bon,

C'est bon, ça fonctionne.
Comme un imbécile j'avais mis le "data in" du TFT sur le "data in" du pic :mrgreen: Peut pas marcher comme ça :roll:
J'ai juste un petit problème de couleurs mais je pense qu'il faut que je modifie mon alimentation : 3 V pour le pic et 5V pour l'écran (ou alors j'ai un pont à réaliser sur le PCB du TFT (c'est prévu : Vin = 5v J1 Open et Vin = 3.3v j1 = short)).
Si mon problème de couleurs (elles ne sont pas intenses en 3.3v) est résolu, je ferai une petite vidéo demain et je fignolerai mon code source pour vous le proposer.

A ++
Modifié en dernier par sylvain54 le sam. 6 févr. 2016 22:43, modifié 1 fois.

TFT 1.8'' en SPI avec ST7735
sylvain54
Avatar de l’utilisateur
Amateur
Amateur
Messages : 194
Âge : 51
Enregistré en : août 2015
Localisation : Dans l'est de la France

#17 Message par sylvain54 » sam. 6 févr. 2016 18:54

Pour Arduino, j'ai du mega 2560 et du nano en 3.3 v et 5 v.

++

TFT 1.8'' en SPI avec ST7735
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#18 Message par satinas » sam. 6 févr. 2016 18:55

Si le rouge et le bleu sont inversés, il faut mettre à 1 le bit b3 du registre MADCTL
Modifié en dernier par satinas le sam. 6 févr. 2016 23:11, modifié 1 fois.

TFT 1.8'' en SPI avec ST7735
sylvain54
Avatar de l’utilisateur
Amateur
Amateur
Messages : 194
Âge : 51
Enregistré en : août 2015
Localisation : Dans l'est de la France

#19 Message par sylvain54 » sam. 6 févr. 2016 22:35

Merci pour l'info Satinas mais c'etait bien un problème avec mon alimentation. J'ai testé vite fait en alimentant le backlight en 5V et le Vcc, les couleurs sont parfaites. Par contre je laisse toute la logique en 3,3 v. Pour l'instant, j'ai testé avec un 18F4620 à 20 MHz. J'arrive à faire des cercles, arcs de cercles, rectangles, lignes, diagonales, changer la couleur de fond. Il me reste la fonction pour ecrire du texte à réaliser. Je compte séparer mes fonctions graphiques des fonctions liées au driver ST7735 en réalisant deux fichiers .h.
Pour y arriver, je suis parti du code source sur libstock pour du pic 24 et me suis également inspiré d'un exemple trouvé sur leur net pour mplab.
++ sylvain

TFT 1.8'' en SPI avec ST7735
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#20 Message par satinas » sam. 6 févr. 2016 23:14

A part la séquence d'initialisation, il n'y a pratiquement pas de différence entre le ILI9341, HX8347, ST7735. On peut facilement se faire une librairie commune.


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 45 invités