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 ---
- 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 ---
Modérateur : mazertoc
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Bonjour,
Le contrôleur est forcé en mode 8 bit parallèle 8080, avec ses commandes classiques /LCD_WR, /LCR_RD et le chip selekt /LCD_CS. Certaines pins sont partagées avec le tactile.
Avec Arduino, contrairement à MikroC, les sources des bibliothèques sont fournies, donc chacun y trouvera son compte. Ceux qui veulent l'utiliser en mode Shadok, le feront, et ceux qui comme moi, coincent sur un sujet particulier iront voir dans les sources comment font d'autres, merci à eux.
C'est un confort qui n'existait pas avant, pourquoi s'en priver aujourd'hui. Ce que je voulais dire, c'est que en chargeant la bibliothèque Mcufriend, en 10 minutes, on a le type de contrôleur, et un lcd qui marche (ou pas parce que j'ai eu des déboires avaec un lcd Ebay, mais c'est rare). Et pas besoin d'être un expert en AVR, ou en langage C-- Arduino
Après on est libre de repartir de zéro, et faire sa propre bibliothèque, d'autant plus si on change de cpu.
D'ailleurs mettons ça en pratique tout de suite.
La bibliothèque Mcufriend préconise pour le ILI9342 (MCUFRIEND_kbv.cpp cité plus haut)
Liste des commandes, suivies du nombres d'arguments, et des datas associées
Les commandes 0xE0 et 0xE01, c'est la correction gamma, on peut sans passer dans un premier temps.
Il n'y a plus qu'à essayer, mais est-ce bien un ILI9342 ? :)
Le contrôleur est forcé en mode 8 bit parallèle 8080, avec ses commandes classiques /LCD_WR, /LCR_RD et le chip selekt /LCD_CS. Certaines pins sont partagées avec le tactile.
Avec Arduino, contrairement à MikroC, les sources des bibliothèques sont fournies, donc chacun y trouvera son compte. Ceux qui veulent l'utiliser en mode Shadok, le feront, et ceux qui comme moi, coincent sur un sujet particulier iront voir dans les sources comment font d'autres, merci à eux.
C'est un confort qui n'existait pas avant, pourquoi s'en priver aujourd'hui. Ce que je voulais dire, c'est que en chargeant la bibliothèque Mcufriend, en 10 minutes, on a le type de contrôleur, et un lcd qui marche (ou pas parce que j'ai eu des déboires avaec un lcd Ebay, mais c'est rare). Et pas besoin d'être un expert en AVR, ou en langage C-- Arduino
Après on est libre de repartir de zéro, et faire sa propre bibliothèque, d'autant plus si on change de cpu.
D'ailleurs mettons ça en pratique tout de suite.
La bibliothèque Mcufriend préconise pour le ILI9342 (MCUFRIEND_kbv.cpp cité plus haut)
Liste des commandes, suivies du nombres d'arguments, et des datas associées
Les commandes 0xE0 et 0xE01, c'est la correction gamma, on peut sans passer dans un premier temps.
Code : Tout sélectionner
0xB9, 3, 0xFF, 0x93, 0x42,
0xC0, 2, 0x1D, 0x0A,
0xC1, 1, 0x01,
0xC5, 2, 0x2C, 0x2C,
0xC7, 1, 0xC6,
0xB8, 1, 0x09,
0xE0, 15, 0x0F, 0x26, 0x21, 0x07, 0x0A, 0x03, 0x4E, 0x62, 0x3E, 0x0B, 0x11, 0x00, 0x08, 0x02, 0x00,
0xE1, 15, 0x00, 0x19, 0x1E, 0x03, 0x0E, 0x03, 0x30, 0x23, 0x41, 0x03, 0x0B, 0x07, 0x2F, 0x36, 0x0F,
0x01, 0, //Soft Reset
TFTLCD_DELAY8, 150, //tempo de 150ms ??? .kbv will power up with ONLY reset, sleep out, display on
0x28, 0, //Display Off
0x3A, 1, 0x55, //Pixel read=565, write=565.
0x11, 0, //Sleep Out
TFTLCD_DELAY8, 150,
0x29, 0, //Display On
Il n'y a plus qu'à essayer, mais est-ce bien un ILI9342 ? :)
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Bonjour satinas, JMarc, et tous le monde,
__________________________________________________________________________________________________________________
**************************************** Traduction de la page 10 ******************************************
__________________________________________________________________________________________________________________
Description de la fonction de bloc
Interface système MPU
ILI9342 fournit quatre types d'interface système MPU avec une interface parallèle série 8080/6800 et une ligne 3/4-line
interface série.
La sélection des interfaces données est effectuée par des broches IM [3: 0] externes et affichées ci-dessous.
Dans l'interface parallèle de la série 8080/6800, les puces de données DB [7: 0] accèdent aux registres.
Parallel RGB Interface
ILI9342 prend également en charge l'interface RVB pour afficher une image animée.
Lorsque l'interface RGB est sélectionnée, l'opération d'affichage est synchronisée avec des signaux externes, VSYNC, HSYNC et DOTCLK
et l'affichage d'entrée des données sont écrites en synchronisation avec ces signaux en fonction de la polarité du signal de validation (DE).
Graphic RAM (GRAM)
GRAM est une RAM graphique pour stocker les données d'affichage.
La taille GRAM est de 172,800 octets avec 18 bits par pixel pour une affichage graphique maximum 320(RGB) x240 points
Circuit de génération de tension de niveaux de gris
Le circuit générateur de tension de niveaux de gris génère une tension de transmission du cristal liquide, qui correspond à l'échelle de gris
niveau réglé dans le registre de correction gamma. ILI9342 peut afficher au maximum 262.144 couleurs
__________________________________________________________________________________________________________________
**************************************** Traduction de la page 11 ******************************************
__________________________________________________________________________________________________________________
Circuit d'alimentation électrique
Le circuit d'alimentation du lecteur LCD génère les niveaux de tension comme VREG1OUT, VGH, VGL et VCOM pour
piloter le panneau LCD TFT.
Contrôleur de temporisation
Le régulateur de synchronisation génère tous les signaux de synchronisation pour l'affichage et l'accès GRAM.
Oscillateur
ILI9342 intègre un circuit d'oscillateur RC et produit une fréquence de sortie stable pour l'opération.
Circuit de pilote de panneau
Le circuit du pilote d'affichage à cristaux liquides se compose d'un pilote de source de sortie 960 (S1 ~ S960), et d'un pilote de porte de
240 sorties (G1 ~ G240) et le signal VCOM.
__________________________________________________________________________________________________________________
**************************************** Traduction de la page 10 ******************************************
__________________________________________________________________________________________________________________
Description de la fonction de bloc
Interface système MPU
ILI9342 fournit quatre types d'interface système MPU avec une interface parallèle série 8080/6800 et une ligne 3/4-line
interface série.
La sélection des interfaces données est effectuée par des broches IM [3: 0] externes et affichées ci-dessous.
Dans l'interface parallèle de la série 8080/6800, les puces de données DB [7: 0] accèdent aux registres.
Parallel RGB Interface
ILI9342 prend également en charge l'interface RVB pour afficher une image animée.
Lorsque l'interface RGB est sélectionnée, l'opération d'affichage est synchronisée avec des signaux externes, VSYNC, HSYNC et DOTCLK
et l'affichage d'entrée des données sont écrites en synchronisation avec ces signaux en fonction de la polarité du signal de validation (DE).
Graphic RAM (GRAM)
GRAM est une RAM graphique pour stocker les données d'affichage.
La taille GRAM est de 172,800 octets avec 18 bits par pixel pour une affichage graphique maximum 320(RGB) x240 points
Circuit de génération de tension de niveaux de gris
Le circuit générateur de tension de niveaux de gris génère une tension de transmission du cristal liquide, qui correspond à l'échelle de gris
niveau réglé dans le registre de correction gamma. ILI9342 peut afficher au maximum 262.144 couleurs
__________________________________________________________________________________________________________________
**************************************** Traduction de la page 11 ******************************************
__________________________________________________________________________________________________________________
Circuit d'alimentation électrique
Le circuit d'alimentation du lecteur LCD génère les niveaux de tension comme VREG1OUT, VGH, VGL et VCOM pour
piloter le panneau LCD TFT.
Contrôleur de temporisation
Le régulateur de synchronisation génère tous les signaux de synchronisation pour l'affichage et l'accès GRAM.
Oscillateur
ILI9342 intègre un circuit d'oscillateur RC et produit une fréquence de sortie stable pour l'opération.
Circuit de pilote de panneau
Le circuit du pilote d'affichage à cristaux liquides se compose d'un pilote de source de sortie 960 (S1 ~ S960), et d'un pilote de porte de
240 sorties (G1 ~ G240) et le signal VCOM.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Temps-x le dim. 8 oct. 2017 16:54, modifié 18 fois.
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Effectivement, Les IM0 à IM3 sélectionnent l'interface. Ce sont des pins du chip ILI93xx et elles sont câblées en dur dans le lcd.
Pour le soft, il faut partir de la bibliothèque Mcufriend, car c'est un lcd Mcufriend. Par contre, cette bibliothèque peut piloter des tas de contrôleurs, et donc il faut essayer de le trouver, tout en supposant à la lecture du net, que c'est un ILI9342. Mais rien n'empêche de tester d'autres bouts de programmes.
Pour le soft, il faut partir de la bibliothèque Mcufriend, car c'est un lcd Mcufriend. Par contre, cette bibliothèque peut piloter des tas de contrôleurs, et donc il faut essayer de le trouver, tout en supposant à la lecture du net, que c'est un ILI9342. Mais rien n'empêche de tester d'autres bouts de programmes.
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Bien sur que l'on peu tester d'autre bout de programme, du moment que cela nous renseigne sur le fonctionnalité de notre LCD.
Je traduit les pages et je les mets sur le forum, ça servira à d'autre, enfin les plus importante.
Je traduit les pages et je les mets sur le forum, ça servira à d'autre, enfin les plus importante.
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
J'espère que je suis pas trop brutal dans mes propos ...
Non pas du tous, et c'est très bien de mon faire par, du moment quand reste correct pas de soucis avec moi, je suis très flexible, mais
extrêmement têtu, qualité ou défaut, je sais pas, parfois c'est un défaut, parfois une qualité pour arrivé à quelque chose.
Si je comprends pas je fais pas, alors pour toi du moment que sa fonction tes contents, et ben pas moi, si j'ai rien compris je suis pas content.
De toutes façon traduire quelque pages, c'est bénéfique pour tous le monde, parce que on peu on discuté autour de celle là.
Je trouve sympa , d'on discuter courtoisement.
Bon, et ce que la banque ta accordé ton prèt ?
Modifié en dernier par Temps-x le dim. 8 oct. 2017 13:44, modifié 1 fois.
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
moment que sa fonction tes contents
Le fait de faire ses propres bibliothèques, et c'est mon cas, c'est forcément chercher à comprendre, mais dans le cas précis, on a peu de doc, et on est obligé de prendre le problème à l'envers. L'objectif est que cela fonctionne quel que soit le moyen employé, ensuite on prend sont temps et son pied à décomposer et comprendre, car on a une vue d'ensemble.
Eh oui quand je vois la difficulté que j'ai à vous faire admettre mes certitudes à peu-près certaines. Ces lcds j'en bouffe depuis 10 ans. D'ailleurs je suis passé des lcd 16 bits sur gros pic, aus lcd 8 bits et spi en raison du manque certain de pins sur Arduino et Esp (sauf bricolage de type immeuble à étages).
Pour le prêt ça vaut le coup, car Je n'ai qu'un lcd 8 bits, qui date de 2 ans 1/2, il en a vu, mais il est toujours là, et ça serait bien de lui trouver une petit frère. D'ailleurs je l'avais commandé à Banggood, avec la Uno, donc début d'aventure Arduino, et en fait sur la photo c'est le même, donc chez Banggood ç'est plus sérieux et constant.
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Bonjour a tous et a toutes
Bon..., non je n'ai pas sombré dans l’alcoolisme, je persévère toujours
J'ai rajouté une transmission uart histoire de savoir ou je suis dans le programme, c'est mieux que les leds
toujours pareil, j'ai encore vérifié les branchements
Bon..., non je n'ai pas sombré dans l’alcoolisme, je persévère toujours
J'ai rajouté une transmission uart histoire de savoir ou je suis dans le programme, c'est mieux que les leds
Code : Tout sélectionner
;*****************************************************************
bsf LCD_CS
bsf LCD_WR
bsf LCD_RD
bsf LCD_RST
Tempo_10ms .20
bcf LCD_RST
Tempo_10ms .1
bsf LCD_RST
Tempo_10ms .20
movlw D'216'
movwf c1 ; boucle pour write graphic in ram
movlw D'4'
movwf c2
movlw D'110'
movwf c01
bcf LCD_CS
movlw 0x01
rcall Envoi_cmd
MESSAGE "R","e","s","e","t"," ","O","K"," "," "
movlw 0xB0
rcall Envoi_cmd
movlw b'11000000'
rcall Envoi_data
movlw 0x3A ; colmod
rcall Envoi_cmd
movlw 0x55 ; 16 bits/pixel 65K couleurs rgb 565 '1010101'
rcall Envoi_data
movlw 0x20 ; inverse vidéo off
rcall Envoi_cmd
movlw 0x11 ; sleep out
rcall Envoi_cmd
movlw 0x29 ; ecran on
rcall Envoi_cmd
MESSAGE "E","c","r","a","n"," ","O","N"," "," "
movlw 0x13 ; normal display on
rcall Envoi_cmd
movlw 0x36 ; Memory access control
rcall Envoi_cmd
movlw 0x88 ; set orientation '10001000'
rcall Envoi_data
bsf LCD_CS
Tempo_10ms .20
; 0xB9, 3, 0xFF, 0x93, 0x42,
movlw 0xB9 ; Backlight control 2
rcall Envoi_cmd
movlw 0xFF ;
rcall Envoi_data
movlw 0x93 ;
rcall Envoi_data
movlw 0x42 ;
rcall Envoi_data
MESSAGE "B","9"," "," "," "," "," "," "," "," "
; 0xC0, 2, 0x1D, 0x0A,
movlw 0xC0 ; Power control 1
rcall Envoi_cmd
movlw 0x1D ;
rcall Envoi_data
movlw 0x0A ;
rcall Envoi_data
MESSAGE "C","0"," "," "," "," "," "," "," "," "
; 0xC1, 1, 0x01,
movlw 0xC1 ; Power control 2
rcall Envoi_cmd
movlw 0x01 ;
rcall Envoi_data
MESSAGE "C","1"," "," "," "," "," "," "," "," "
; 0xC5, 2, 0x2C, 0x2C,
movlw 0xC5 ; VCOM control 1
rcall Envoi_cmd
movlw 0x2C ;
rcall Envoi_data
movlw 0x2C ;
rcall Envoi_data
MESSAGE "C","5"," "," "," "," "," "," "," "," "
; 0xC7, 1, 0xC6,
movlw 0xC7 ;VCOM control 2
rcall Envoi_cmd
movlw 0xC6 ;
rcall Envoi_data
MESSAGE "C","7"," "," "," "," "," "," "," "," "
; 0xB8, 1, 0x09,
movlw 0xB8 ; Backlight control 1
rcall Envoi_cmd
movlw 0x09 ;
rcall Envoi_data
MESSAGE "B","8"," "," "," "," "," "," "," "," "
;********************************************************************
movlw 0x36 ; Memory access control
rcall Envoi_cmd
movlw 0x88 ; set orientation '10001000'
rcall Envoi_data
; bcf LCD_CS
Tempo_10ms .10
; bsf LCD_CS
movlw 0x2A ; set colonne adress
rcall Envoi_cmd
movlw 0x00
rcall Envoi_data
movlw D'10'
rcall Envoi_data
movlw 0x00
rcall Envoi_data
movlw D'10'
rcall Envoi_data
movlw 0x2B ; set page
rcall Envoi_cmd
movlw 0x00
rcall Envoi_data
movlw D'20'
rcall Envoi_data
movlw 0x00
rcall Envoi_data
movlw D'20'
rcall Envoi_data
movlw 0x2C ; write graphic in ram
rcall Envoi_cmd
boucle2
movlw 0xF8 ; 1 pixel rouge
rcall Envoi_data
movlw 0x0F
rcall Envoi_data
decfsz c01,f
bra boucle2
; bcf LCD_CS
Tempo_10ms .10
; bsf LCD_CS
movlw 0x2A ; set colonne adress
rcall Envoi_cmd
movlw 0x00
rcall Envoi_data
movlw D'20'
rcall Envoi_data
movlw 0x00
rcall Envoi_data
movlw D'40'
rcall Envoi_data
movlw 0x2B ; page adress
rcall Envoi_cmd
movlw 0x00
rcall Envoi_data
movlw D'30'
rcall Envoi_data
movlw 0x00
rcall Envoi_data
movlw D'70'
rcall Envoi_data
movlw 0x2C ; write graphic in ram
rcall Envoi_cmd
boucle
movlw 0xF8 ; 1 pixel rouge
rcall Envoi_data
movlw 0xF0
rcall Envoi_data
decfsz c1,f
bra boucle
decfsz c2,f
bra saut
bra boucle_fin
saut
movlw D'215'
movwf c1
bra boucle
boucle_fin
bcf LCD_CS
Tempo_10ms .100
bsf LCD_CS
movlw 0x00
rcall Envoi_cmd
bcf LCD_CS
Tempo_10ms .100
movlw 0x28 ; ecran off
rcall Envoi_cmd
Tempo_10ms .200
movlw 0x29 ; ecran on
rcall Envoi_cmd
Tempo_10ms .200
;0xE0, 15, 0x0F, 0x26, 0x21, 0x07, 0x0A, 0x03, 0x4E, 0x62, 0x3E, 0x0B, 0x11, 0x00, 0x08, 0x02, 0x00,
movlw 0xE0 ; Positive gama correction
rcall Envoi_cmd
movlw 0x0F
rcall Envoi_data
movlw 0x26
rcall Envoi_data
movlw 0x21
rcall Envoi_data
movlw 0x07
rcall Envoi_data
movlw 0x0A
rcall Envoi_data
movlw 0x03
rcall Envoi_data
movlw 0x4E
rcall Envoi_data
movlw 0x62
rcall Envoi_data
movlw 0x3E
rcall Envoi_data
movlw 0x0B
rcall Envoi_data
movlw 0x11
rcall Envoi_data
movlw 0x00
rcall Envoi_data
movlw 0x08
rcall Envoi_data
movlw 0x02
rcall Envoi_data
movlw 0x00
rcall Envoi_data
;0xE1, 15, 0x00, 0x19, 0x1E, 0x03, 0x0E, 0x03, 0x30, 0x23, 0x41, 0x03, 0x0B, 0x07, 0x2F, 0x36, 0x0F,
movlw 0xE1 ; Negative gama correction
rcall Envoi_cmd
movlw 0x00
rcall Envoi_data
movlw 0x19
rcall Envoi_data
movlw 0x1E
rcall Envoi_data
movlw 0x03
rcall Envoi_data
movlw 0x0E
rcall Envoi_data
movlw 0x03
rcall Envoi_data
movlw 0x30
rcall Envoi_data
movlw 0x23
rcall Envoi_data
movlw 0x41
rcall Envoi_data
movlw 0x03
rcall Envoi_data
movlw 0x0B
rcall Envoi_data
movlw 0x07
rcall Envoi_data
movlw 0x2F
rcall Envoi_data
movlw 0x36
rcall Envoi_data
movlw 0x0F
rcall Envoi_data
altern
bcf LCD_CS
movlw 0x28 ; ecran off
rcall Envoi_cmd
movlw 0x00
rcall Envoi_cmd
MESSAGE "E","c","r","a","n"," ","O","F","F"," "
bsf LCD_CS
Tempo_10ms .100
bcf LCD_CS
movlw 0x29 ; ecran on '00101001'
rcall Envoi_cmd
movlw 0x00
rcall Envoi_cmd
bsf LCD_CS
MESSAGE "E","c","r","a","n"," ","O","N"," "," "
Tempo_10ms .100
bsf LATA,1
bcf LCD_RD
Tempo_10ms .100
bsf LCD_RD
bcf LATA,1
Tempo_10ms .100
bra altern
Envoi_cmd
bcf LCD_RS
nop
movwf LATD
nop
bcf LCD_WR
nop
nop
nop
nop
bsf LCD_WR
nop
bsf LCD_RS
clrf LATD
nop
nop
return
Envoi_data
movwf LATD
nop
bcf LCD_WR
nop
nop
nop
nop
bsf LCD_WR
nop
clrf LATD
nop
nop
return toujours pareil, j'ai encore vérifié les branchements
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
-
Jérémy

Administrateur du site- Messages : 2750
- Âge : 46
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Si je peux me permettre JMArc , reste aux plus simple, le led c'est très bien.
Tu te rajoutes des difficultés je trouve, avec un UART, en sachant pas si il fonctionne bien !
Fait ta routine d'initialisation, a la fin tu fais clignoter une led trois fois par exemple.
Si à la fin de l'initialisation tu n'as pas un écran noir avec un pixel d'allumé, c'est pas bon.
Courage les gars, j'ai été dans la même panade que vous, mais a force de tester j’ai carrément créma les branchements.
Tu te rajoutes des difficultés je trouve, avec un UART, en sachant pas si il fonctionne bien !
Fait ta routine d'initialisation, a la fin tu fais clignoter une led trois fois par exemple.
Si à la fin de l'initialisation tu n'as pas un écran noir avec un pixel d'allumé, c'est pas bon.
Courage les gars, j'ai été dans la même panade que vous, mais a force de tester j’ai carrément créma les branchements.
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Tu as tendance à cumuler les essais dans ton programme. Un seul à la fois, c'est mieux.
Dans le cas McuFriend, après le reset, il faut commencer par 0xB9 et terminer par 0x29 en respectant l'ordre des commandes, ensuite cs low, 200ms, et un test d'écriture ou display on/off au choix.
Garde le moral, au pire ton programme sera fin prêt quand on recevra le 2ème lcd :)
Dans le cas McuFriend, après le reset, il faut commencer par 0xB9 et terminer par 0x29 en respectant l'ordre des commandes, ensuite cs low, 200ms, et un test d'écriture ou display on/off au choix.
Garde le moral, au pire ton programme sera fin prêt quand on recevra le 2ème lcd :)
Modifié en dernier par satinas le dim. 8 oct. 2017 19:33, modifié 1 fois.
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 27 invités


