version 0.0 15/10/2021
rev 11/12/2022.
TFT LCD Ecran (Graphique + Tactile)
en mode SERIE ..Uart
Test
Ecran LCD TFT OPEN-SMART 2,4P, 320x240, Tactile, liaison
SERIE SANS MCU ! (15/10/2021)
Test
avec Script Terminal PC VBRAY: liaison directe interface
CH340G USB/TTL <---> Ecran LCD serie
Lecture
et affichage image BMP (sur carte SD) (22/10/2021)
Test
avec MCU 16F1847 et carte SD 8Go (MikroC pro 7.60) (11/12/2022)
Test
Ecran LCD TFT OPEN-SMART 2,4P, 320x240 , liaison SERIE (sans
MCU !)
15/10/2021
lien
Web de documenation sur ce LCD, TRES COMPLET ..
* commandé en Octobre 2021, sur AliVavite
pour 7.76€ + Port = 11,36€
document original fournisseur : OPEN-SMART
Serial TFT User manual v1.0.pdf
document web allégé : LCD_Serie.html
Il s'agit d'une carte d'extension LCD TFT de 2.4 pouces
utilisant une interface UART série standard
et elle a une bonne compatibilité. Il intègre un
support de carte TF, un circuit de conversion de niveau,
et le développement secondaire est moins difficile.
-Compatibilité: compatible avec MCU 3.3V / 5V,
compatible pour Arduino.
-Fonctions intégrées: seulement quelques commandes sont
nécessaires pour afficher les images dans la carte TF,
afficher les caractères, les chiffres, les graphiques.
-Tension de fonctionnement: 4.5V - 5.5V (régulateur LDO
intégré de 3.3v), si court le pad VCC à 3V3,
vous pouvez utiliser 3.1-3.4V.
-Courant de fonctionnement: 90mA(MAX)
-Débit baud du port série: 9600 (par défaut), peut
utiliser la commande pour le modifier pour qu'il soit à
d'autres valeurs: 19200, 38400, 57600, 115200
-Format de communication série: 8N1
-Vous pouvez déboguer le module avec le module USB vers
TTL, tel que le module FT232RL, CH340G.
-MCU de la série ATmega328 intégré
-Résolution: 240X320;
-Taille d'affichage: 2.4 pouces;
-Tension de fonctionnement: 5V;
===============================================================
Le 1er TEST SANS MCU ! :
Hardware :
Uniquement avec connections du LCD à l'interface CH340G via 4 fils "dupont F-F" ,
* Attention : croiser TX et RX !
Des la mise sous tension , (LCD alimenté via le +5V USB du module CH340G)
Affichage sur l'écran , en Blanc (voir photo) :
OPEN -SMART
TFF-LCD
Driver IC is : 9320
Firmware version is v10
Chip: ILI9325
2.4 inch
Touch screen
Controlled via serial (USART/UART)
nota : dans la doc nommée au dessus, il est question du terminal SSCOM32 Serial Tool for Serial TFT
qui est sensé proposer aussi ,des touches de fonctions pour envoi de séquences en Hexa, mais AUCUN lien trouvé la dessus!
* J'ai donc essayé avec Terminal YAT ..==> BAD ... apparament on ne peut pas envoyer un format Hexadecimal sur les "Predefined commandes "
seulement en tapant une commande dans le champ Send Texte (avec option Hexadeci)
* puis avec le Terminal VBRAY ,qui ,lui, ACCEPTE un format d'envoi Hexadecimal
avec un caractere d'entete $
2em Test :
Envoi de commandes au LCD via touches de fonctions terminal VBRAY
Configuration de quelques Macro (touches de fonction):
fichier de configuration de ces touches : Open_Smart_LCD_Serial_.tmf
Résultats :Le Reset efface l'ecran .. mais la partie Presentation se réaffiche d'office
Preselection de la couleur Rouge
envoi du message Hello
envoi valeur 16 bits 01FFh (non signée 511
envoi valeur 16 bits FFEFh ( signée -16
envoi valeur 16 bits FF00h ( signée -256)
Le + de cet ecran , est les faibles ressources MCU necessaires à son usage
Il pourrait servir d'écran Distant avec un simple HC05 connecté dessus ..
fichier de config des touches Terminal VBRAY : Open_Smart_LCD_Serial_2021-1018.tmf
contenu :
3em Test avec envoi de SCRIPT VBRAY
langage script = mini Pascal
Le Programme : Cdes_Serial_LCD_Open_Smart_2021-1017.tsc
La fenetre Debug du terminal Vbray , permet de suivre le deroulement du script
Reset
Clear
Couleur=Rouge
Print Hello
New Line
Couleur=Jaune $FF$20
New Line
Paulfjujo ..10 chars!
New Line
Print 12345
New Line
Couleur=Bleu Cyan $07$FF
Print 6789z
Fast V x=120 y=0-> 240 Line Jaune
Fast H Line x->0-320 y=120 Cyan
Rectangle jaune
Cercle Rouge dia 100
Cercle blanc dia 16
Couleur=Vert $07$E0
Set cursor
Print ABCDE at x=160,y=64
Set cursor
Diagonale 0,0 320,240
ce qui donne visuellement:
* attention à la fonction print array : inclure la taille du string à afficher + 2
exemple
writeln('Paulfjujo ..9 chars!');
ComSendmacro('$7E$0B$11$50$61$75$6C$46$6A$75$6A$6F$EF'); Delay(100);
ComSendchr(13);ComSendchr(10);
0x0B=11
Application MikroC avec PIC 16F1847
Montage Hardware :
Software :
résumé Open_Smart_LCD_serial_2021.xls
#define LCD_W 320
#define LCD_H 240
#define Center_X "$A0$00" // 160
#define center_Y "$00$78" // 120
Les fonctions :
void LCD_HELLO(void);
void LCD_PAULFJUJO(void);
void LCD_REDCOLOR(void);
void LCD_RECTANGLE_(void);
void LCD_CIRCLE(void) ;
void LCD_RESET(void);
void LCD_CLEAR(void);
void LCD_NL(void) ;
les premiers tests sont faits avec des commandes DIRECTES prédéfinies en Flash Rom
ex:
const unsigned char RESET[]={0x7E,0x02,0x05,0xEF};
const unsigned char CLEAR[]={0x7E,0x04,0x20,0x00,0x00,0xEF};
const unsigned char RECTANGLE_[]={0x7E,0x0C,0x25,0x00,0x10,0x00,0x10,0x01,0x30,0x00,0x80,0xFF,0xF8,0xEF};
const unsigned char CIRCLE[]={ 0x7E,0x0A,0x27,0x00,0xA0,0x00,0x78,0x00,0x64,0xF8,0x01,0xEF };
const unsigned char HELLO[]={0x7E,0x07,0x11,0x48,0x65,0x6C,0x6C,0x6F,0xEF };
Commandes en Hexadecimal avec le Byte de départ = 0x7E , et le Byte de fin 0xEF
..à ne pas confondre avec commandes en Ascii "0x7E3"!
exemple d'envoi message HELLO
void LCD_HELLO()
{ int i=0;
k=sizeof(HELLO);
for (i=0;i<k;i++) UART1_Write(HELLO[i]);
Delay_ms(100);
}
Les fonctions avec paramétrables :
void LCD_Set_Text_Color (char coul) ;
void LCD_Set_Curseur(int x, int y) ; // at x,y
void LCD_Rectangle(Word x,Word y,Word Largeur,Word Hauteur,Word Coul);
void LCD_Cercle(Word x,Word y,Word Rayon,Word Coul) ;
void LCD_Set_Char_Size(unsigned char size);
void LCD_Print_Text( char * T) ;
3 tailles de charactere
1 -> 53 chars / ligne
2 -> 17 chars par ligne
3 -> 10 chars par ligne
Cas particulier : l'ecriture de Texte sur l'écran
je me suis servi de la liaison UART TX dédoublé vers un terminal YAT (via interface CH340G)
pour vérifier le codage envoyé au LCD
il faut inserer ,dans la commande ,le nombre Nb de caracteres à Ecrire. + le caratere de fin !
soit Nb+2
exemple : envoi de FANTASPIC
le 2em byte = 0x0B= longueur du texte + 2 !
la longueur totale de commande ne peut pas depasser 64 bytes , donc Longueur max de texte = 60 chars
Dans ce test j'ai désarmeé l' interrupt UART RX , car le renvoi d'echo perturbe le LCD , qui croit recevoir une commande !
pour verifier le retour du LCD vers le PIC, via un terminal, il vaut mieux avoir un autre PORT UART independant
Je ne teste donc AUCUN retour du LCD..
Nota :
j'ai pu tester l'affichage d'images BMP via l' appli "showBMP.ino" sur un Arduino Mini pro Atmeg328 "The Simple" ..et une carte microSD 8Go
pin Vcc de l'arduino : mesuré 4,86V.
affichage OK de "Minions" et "Spiderman" .. puis une demi_heure plus tard , je reteste apres avoir rajouté un autre BMP sur la carte SD.
.. PLUS RIEN !???
..meme en rechargeant le programme .., meme en re initialisant (Formatant) la carte SD et rechargeant les fichiers originaux BMP
la carte microSD est pourtant toujours OK avec ses fichier BMP...
Nota: Mon modele d'écran ne fonctionne pas en dessous de 4,0V
l'écran fonctionne encore avec l'appli MikroC ..
La suite ,ci dessous avec appli MikroC
Lecture fichiers BMP sur carte Micro SD
LCD avec micro Card SD 8GO formatée FAT 32bits (chunk 2.048K)
images dispo :
001.BMP (minions) 120x160 x 16millions coul 57Ko
002.bmp Spiderman 120x160 57ko
004.bmp Banquise 320x240 226ko
LTC.bmp LTC286 ray tracing 320x240 226ko
PCXT.bmp PC+ecran+clavier+lampe raytracing 320x240 226ko
Affichage en fonction du mode Rotation :
240*320, par defaut si le parametre Rotation= 0
ou alors 320x240 si Rotation=1
image 320x240
320x240
definition de l'image en DIRECT:
const char BMP001[]={ 0x7E,0x05,0x30,0x30,0x30,0x31,0xEF};
La definition de la commande d'envoi vers le LCD pour l'afficher
void LCD_BMP001()
{
int i=0;
for (i=0;i<sizeof(BMP001);i++) UART1_Write(BMP001[i]);
Delay100();
}
usage de cette fonction dans le main program
LCD_BMP001();
Nota : prevoir un delai de 2" pour image de 160x120 et jusqu'à 4 Sec. pour l'affichage complet d'une image 320x240
vu qu'on utilise pas de Tampon RAM dans le PIC pour cela .. lecture directe carte SD en interne dans le LCD
Application MicroC 7.60 pro :
rev 11/12/2022
16F1847_Smart_Serial_LCD_OLED_tactile_2_4p_2022-12.zip
Projet : 16F1847_test_LCD_Open_Smart_Serial_2022-12.mcppi
Source : _16F1847_Test_LCD_Open_Smart_Serial_2022_1211.c
Chargeur :16F1847_test_LCD_Open_Smart_Serial_2021-10.hex
version avec chargement de 3 images BMP:
pictures_BMP.zip
Chargeur : 16F1847_test_LCD_Open_Smart_Serial_2022-12.hex
Ressources utilisée coté PIC
video :
Test_LCD_Open_Smart_Serial_2021-1021.webm
pas de bol, j'ai pas l'option Touch Screen sur ce smart LCD
Mais fort heureusement j'ai aussi celui là :
TouchScreen_LCD_240x320_coul_ILI9341_18Fxxkxx