Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Mise en oeuvre d'un LCD



  1. #1
    davidif

    Mise en oeuvre d'un LCD


    ------

    Bonjour, je suis en train de mettre en oeuvre un lcd 128/64 : référence EA DOGM128-6
    Pour ça je me suis procuré le retro-éclairage https://fr.rs-online.com/web/p/retro...8699/?sra=pstk
    et le lcd : https://fr.rs-online.com/web/p/affic...8670/?sra=pstk

    j'ai donc implémenté mon interface SPI de mon pic32mx796f512l via mplabx et harmony
    j'ai à priori réussi à initialisé car des pixels viennent s'afficher en désordre et j'essai maintenant de l'éclaircir mais n'y arrive pas pour le moment.

    pour tout ça je me base sur les codes sur ce site : https://www.lcd-module.com/support/a...tion-note.html

    mais en fait je me pose une question sur la présence de traînés noir que j'avais depuis le début avant même de les mettre sous tension et pensais qu'à l'initialisation ils disparaîtrons mais c'est toujours présent ... à l'init les pixels apparaissent mais je perçois toujours en transparence ces trainés.

    Est-ce quelque qui doit disparaître, par le biais de commande selon vous ou ils sont foutu ?

    Merci de vos conseils.

    -----

  2. Publicité
  3. #2
    nornand

    Re : Mise en oeuvre d'un LCD

    Bsr hors tension , aucun pixel ne doit apparaître .

  4. #3
    jiherve

    Re : Mise en oeuvre d'un LCD

    bonsoir
    et bien sur toute la tripaille annexe(condos) a été cablée ou fait elle partie du backlight?
    Cet afficheur ne fonctionne pas à poil!
    j'en utilise mais avec un Propeller Parallax.
    JR
    l'électronique c'est pas du vaudou!

  5. #4
    davidif

    Re : Mise en oeuvre d'un LCD

    Citation Envoyé par jiherve Voir le message
    bonsoir
    et bien sur toute la tripaille annexe(condos) a été cablée ou fait elle partie du backlight?
    Cet afficheur ne fonctionne pas à poil!
    j'en utilise mais avec un Propeller Parallax.
    JR
    Oui, biensure
    Schéma classic, que j'ai repris de la doc

    Nom : elec_aff.jpg
Affichages : 65
Taille : 104,8 Ko

    Pour les trainés, je pense avoir fait ça comme un boeuf et avoir oublié de retirer toutes les protections plastic présent sur les 2 côtés de l'afficheur, également présent sur le rétro-éclairage.
    Je l'ai retiré sur le dessus mais j'ai pas fait gaffe pour les autres .... je sais (: j'entend déjà les retours qui seront légitimes (: ...
    Je suis donc bon pour racheter tout au moins le LCD que j'ai du mal à récupérer ... en attendant je continu mes tests avec le deuxième restant que je démonterai une fois mes achats reçu.

    Biensure, c'est la première fois que je met en oeuvre ce genre de lcd graphique, j'ai déjà utilisé des lcd mais du 2x16 alpha-numérique donc moins compliqué à implémenter, enfin pour moi (:

    pour le moment j'ai généré mon code SPI puis l'initialisation :

    Code:
    void write_data(char i)
    {
    char myBuffer[8]={i}, state = 0;
    DRV_SPI_BUFFER_HANDLE bufferHandle;
    
                    switch ( state )
                        {
                        case 0:
                            //bufferHandle = DRV_SPI_BufferAddWrite( handle, myBuffer, 10, NULL, NULL );
                            
                            SS1Off();
                             bufferHandle =DRV_SPI0_BufferAddWrite (&myBuffer,1 , NULL, NULL ); 
                            SS1On();
                            
                            if(bufferHandle != DRV_SPI_BUFFER_HANDLE_INVALID )
                             {
                                state++;
                             }
                        break;
                        
                        case 1:
                        
                            if(DRV_SPI_BufferStatus(bufferHandle) == DRV_SPI_BUFFER_EVENT_COMPLETE)
                            {
                            state=0;
                            
                            // All transmitter data has been sent successfully.
                            }
    
                        break;
                        
                        }
    
    }
    les codes à envoyer

    Code:
    #define DISPOFF      0xAE
    #define DISPON       0xAF   //Display on
    #define DISPSTART    0x40  //Display start line 0
    #define PAGEADR      0xB0 //Page 0 einstellen
    #define COLADRL      0x00
    #define COLADRH      0x10 //High-Nible der Spaltenadresse
    #define ADCNORMAL    0xA0  //Low-Nible der Spaltenadresse
    #define ADCREVERSE   0xA1
    #define COMNORMAL    0xC0
    #define COMREVERSE   0xC8
    #define DISPNORMAL   0xA6
    #define DISPREVERSE  0xA7
    #define LCDBIAS9     0xA2
    #define LCDBIAS7     0xA3
    #define RESET        0xE2
    #define SETPOWERCTRL 0x28
    #define REGRESISTOR  0x20
    #define SETCONTRAST  0x81
    #define SETCONTRAST1  0x16
    #define STATINDMODE  0xAC
    #define BOOSTERRATIO 0xF8  //Set internal Booster to 4x
    #define BOOSTER      0x2F  // Booster, Regulator and Follower On
    #define CONTRAST     0x27  //Contrast set

    code initialisation, qui à priori à l'aire de fonctionner pour m'avoir inscrit des pixels aléatoirement positionnés

    Code:
    void init_LCD128()
    {
        
                
                LCD_RSTOn(); //RESET-pin must be set to high (as along as the pin RESET is low, nothing works).
                
                //SS1Off();// CS-pin must be set to low (It can be written to the display, display input buffer is cleared).
                LCD_A0Off(); //A0-pin  must be set to low (The display is prepared to receive command data).
                
                write_data(DISPSTART);// 40 display start line
                write_data(ADCREVERSE);//Send hex A1 to the display: ADC reverse, 6 o'clock viewing direction
                write_data(COMNORMAL);//Send hex C0 to the display: COM0 ? COM63 in normal scan mode
                write_data(DISPNORMAL);//Send hex A6 to the display: Display normal, not mirrored
                write_data(LCDBIAS9);//Send hex A2 to the display: Set bias 1/9 (Duty 1/65)
                write_data(BOOSTER);//Send hex 2F to the display: Booster, regulator and follower on
                write_data(BOOSTERRATIO);//Send hex F8 to the display: Set internal booster to 4x
                write_data(COLADRL);//Send hex 00 to the display: Set internal booster to 4x
                write_data(CONTRAST);//Send hex 27 to the display: Contrast set
                write_data(SETCONTRAST);//Send hex 81 to the display: Contrast set
                write_data(SETCONTRAST1);//Send hex 16 to the display: Contrast set
                write_data(STATINDMODE);//Send hex AC to the display: No indicator
                write_data(COLADRL);//Send hex 00 to the display: No indicator
                write_data(DISPON);//Send hex AF to the display: No indicator
                
                //SS1On();//End of Initialization set the CS-pin to high again
                LCD_A0On();
        
    }
    et là j'essai de faire un clear qui pour le moment ne fonctionne pas

    Code:
    void clear_lcd ()
    {
        
        uint16_t i;
        //uint8_t pixel;
        uint8_t colonne;
        
        colonne=0;
        
        send_data(PAGEADR); // 0xB0 page 0 
        
        while(colonne < 8)
        {    
            send_data(PAGEADR+colonne);
            
    
                for(i=0;i++;i=127)
                 {
                     send_data(0);   
    
                 }
            
        colonne++;    
        }
        
        send_data(PAGEADR);
        //send_data(SETCONTRAST1);
        //send_data(COLADRL);
        LCD_A0Off();
        write_data(SETCONTRAST1);
        write_data(0);
        LCD_A0On();
        
        
        send_data(DISPSTART);
    }
    Merci

  6. A voir en vidéo sur Futura
  7. #5
    davidif

    Re : Mise en oeuvre d'un LCD

    Ha oui, j'ai également vérifié les tensions détaillés également pour chaque pin de 21 à 40 et elle sont tous plutôt bonnes, sauf en 31(cap3p) ou j'ai du 10.85 au lieu de 4.8v.
    Aussi du 3.13 pour du A0, RST, CS1B.

  8. #6
    davidif

    Re : Mise en oeuvre d'un LCD

    après l'initialisation

    Nom : 20201117_161901.jpg
Affichages : 52
Taille : 55,5 Ko

    Mais je n'arrive pas à effacer les pixels avec ma fonction clear_lcd

    Code:
    void clear_lcd ()
    {
        
        uint16_t i;
        //uint8_t pixel;
        uint8_t page;
        
        page=0;
        
        //send_data(PAGEADR); // 0xB0 page 0 
    
        //send_data(0);
        
        while(page < 9)
        {  
            
        send_command(PAGEADR);
        //pixel=0;
    
                for(i=0;i<128;i++)
                 {  
                     //send_data(PAGEADR+i);   
                     send_data(0); 
                 }
            
        page++;    
        }
        
        send_command(PAGEADR);
        
        //LCD_A0Off();
        send_command(COLADRH);
        send_command(0);
        //LCD_A0On();
        send_command(DISPSTART);
    }
    en m'inspirant du raisonnement allemand sur les site constructeur : https://www.lcd-module.com/support/a...tion-note.html
    http://www.lcd-module.de/deu/disk/de...0DOGM128-6.doc

    s'il vous plait, auriez vous une suggestion , merci pour votre aide

  9. Publicité
  10. #7
    davidif

    Re : Mise en oeuvre d'un LCD

    Bon bah problème résolu,

  11. #8
    jiherve

    Re : Mise en oeuvre d'un LCD

    bonsoir,
    peut on en savoir plus?
    JR
    l'électronique c'est pas du vaudou!

Discussions similaires

  1. Mise en oeuvre polybutène
    Par dav_planche dans le forum Chimie
    Réponses: 5
    Dernier message: 15/10/2014, 14h25
  2. Mise en oeuvre d'un bus CAN
    Par Toxew dans le forum Électronique
    Réponses: 2
    Dernier message: 07/01/2013, 15h06
  3. mise en oeuvre d'un accéléromètre
    Par bouly94 dans le forum Électronique
    Réponses: 16
    Dernier message: 15/04/2009, 13h56
  4. Mise en oeuvre de ma VMC DF
    Par Armor dans le forum Habitat bioclimatique, isolation et chauffage
    Réponses: 0
    Dernier message: 18/02/2009, 23h01
  5. mise en oeuvre bus PCI
    Par Le pingouin dans le forum Électronique
    Réponses: 1
    Dernier message: 16/02/2009, 22h16
Découvrez nos comparatifs produits sur l'informatique et les technologies.