Communication SPI entre PIC18F45K22 et Ecran tactile Demmel
Répondre à la discussion
Affichage des résultats 1 à 16 sur 16

Communication SPI entre PIC18F45K22 et Ecran tactile Demmel



  1. #1
    denver60

    Communication SPI entre PIC18F45K22 et Ecran tactile Demmel


    ------

    Bonjour à tous !

    Je viens de faire l'acquisition d'un écran tactile Demmel DPP-CT6448 et je souhaiterais le faire communiquer avec un PIC18F45K22. Ceci ayant pour but d'avoir un écran de pilotage de mon système (Envoie Ordre de marche et d'arrêt, affichage de mesures...). Et je m'interroge sur une fonction du compilateur C18 : putsSPI1.

    J'aimerais savoir sous quel format sont transmises les données via cette fonction (ASCII hex ?) ? Car apparemment, cette fonction permet d'envoyer une chaîne de caractères enregistrée au préalable dans un tableau.

    Par avance, je vous remercie pour vos futures réponses qui me seront d'une aide extrêmement précieuse.

    A bientôt.

    -----

  2. #2
    RISC

    Re : Communication SPI entre PIC18F45K22 et Ecran tactile Demmel

    Salut,

    Je pense que la réponse à ta question se trouve dans le manuel des librairies périphériques : c:\Program Files (x86)\Microchip\mplabc18\v3.42 \doc\PIC18F Peripheral Library Help Document.chm

    a+

  3. #3
    denver60

    Re : Communication SPI entre PIC18F45K22 et Ecran tactile Demmel

    @RISC : j'aurais bien aimé trouver ces informations dans ce document, car j'avais déjà regardé. Mais avec le doute je suis retourné voir, et voici ce que j'y trouve :

    Nom : spi.jpg
Affichages : 121
Taille : 235,8 Ko

    Rien d'intéressant quoi ...

  4. #4
    RISC

    Re : Communication SPI entre PIC18F45K22 et Ecran tactile Demmel

    Salut,

    Il sufft de déclarer une chaine dans un tableau.

    a+

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

    Re : Communication SPI entre PIC18F45K22 et Ecran tactile Demmel

    @RISC : oui j'ai bien compris qu'il faut déclarer une chaîne de caractères dans un tableau, mais sous quel format ces caractères sont-il envoyés ? ASCII ?

  7. #6
    RISC

    Re : Communication SPI entre PIC18F45K22 et Ecran tactile Demmel

    Salut,

    Les chaines de caractères sont généralement envoyées en ASCII.
    Le plus simple c'est d'essayer ;=) Il n'y a pas de raison d'envoyer dans un autre format

    a+

  8. #7
    VIIV

    Re : Communication SPI entre PIC18F45K22 et Ecran tactile Demmel

    C18 Doc

    Oui les caractères sont encodés en ASCII. Donc si tu envois un 'A' c'est comme si tu envoyais une valeur 65.

  9. #8
    denver60

    Re : Communication SPI entre PIC18F45K22 et Ecran tactile Demmel

    Merci pour ces précisions.

    Mais n'est-ce pas trop contraignant en terme de programmation que de n'avoir seulement que 2 possibilités d'envoi (envoi d'un byte ou envoi d'une chaine de caractères) ??

    Car pour ma part pour piloter l'affichage de mes valeurs de mesures (qui sont toutes en 16bits), je vais devoir faire une conversion de mon unsigned int en ASCII. De plus la trame, pour être comprise par l'écran, doit être de la forme : AAh 05h tc t0h t1h t2h t3h....

    Avec : - AAh 05h : commande d'envoi de donner vers l'écran
    - tc : le nombre de bytes à envoyer
    - t0h t1h t2h ... : les data.

  10. #9
    vinowan

    Re : Communication SPI entre PIC18F45K22 et Ecran tactile Demmel

    bonjour,

    vive le code ascii
    le gros avantage à envoyer les byte codé en ascii, c'est pour le débogage, tu peux directement visualiser les valeurs de la trame sans passer d'office par la calculette hex -> décimale.

    je suis aussi très intéressé par le demmel, j'ai déjà utilisé un afficheur de ce type de Eltronic Assembly :
    http://www.lcd-module.com/products/ediptft.html

    facile d'utilisation mais pas de carte sd, demmel ne l'avait pas encore intégrer au moment de mon choix, c'est pourquoi je me permet de te demander ton avis sur l'afficheur intelligent de demmel, facile à utiliser, doc compréhensible, aide technique, prix ?

    en plus la taille d’écran est plus importante ce qui serait très intéressant pour mes prochain projet.

    merci d'avance a+.
    Dernière modification par vinowan ; 02/08/2012 à 09h26. Motif: correction erreur de frappe

  11. #10
    denver60

    Re : Communication SPI entre PIC18F45K22 et Ecran tactile Demmel

    @vinowan : bonjour vinowan et merci pour ta contribution sur ce topic. Concernant l'écran tactile Demmel DPP-CT6448, je peux te donner un avis mais qui est un avis de débutant. Et je n'ai pas réellement de recul sur le sujet puisque c'est le premier écran tactile que j'utilise. Concrètement, et pour le peu que je me suis servis pour le moment, je trouve que cet écran est assez simple d'utilisation puisque tu peux t'appuyer sur une documentation compréhensible tant sur la partie programmation de l'écran que sur la partie hardware. De plus, un logiciel gratuit te permet de le programmer et de faire des essais d'affichage et d'exécution des macros. Pour le prix et pour plus d'informations, consulte cette page. C'est ici que je l'ai trouvé au prix le plus bas. Et pour en finir, l'affichage est de très bonne qualité. J'espère que cela pourra t'aider .

  12. #11
    denver60

    Re : Communication SPI entre PIC18F45K22 et Ecran tactile Demmel

    Bon je vais avoir besoin d'aide, car ma communication SPI ne veut définitivement pas fonctionner .

    Voici le code du PIC :

    Code:
    #include <p18f45k22.h>
    #include <spi.h>
    
    #define USE_OR_MASKS    // Permet l'utilisation des OU ("|") pour les variables de config du CAN
    
    
    /*              Configuration du PIC                */
    #pragma config WDTEN = OFF 		// Watch Dog Timer disabled
    #pragma config FOSC = INTIO67 		// Internal Oscillator Block, RA6 & RA7 enabled
    #pragma config DEBUG = ON 		// Background Debug enabled
    #pragma config LVP = OFF 		// Low Voltage Programming disabled
    #pragma config MCLRE = INTMCLR 		// RE3 enabled, MCLR disabled
    
    /*              Déclaration des variables           */
    unsigned char SPI_Send[8] = "DT -Hi-" ;     // DT = Afficher texte ; Permet d'afficher à l'écran -Hi-
    unsigned char status = 0x00 ;
    
    /* Déclarations des arguments de configuration de la COM SPI */
    unsigned char sync_mode = 0x00, bus_mode = 0x00, smp_phase = 0x00 ;
    
    void main(void)
    {
        /* Initialisation des registres */
        OSCCON = 0x62 ;     //Oscillateur à 8Mhz (TCy = 1/(8MHz/4))
        RCON = 0x5D ;	//Configuration RESET PIC à la mise sous tension
        PORTC = 0x00 ;      //Initialisation du Port C
        TRISC = 0x10 ;      //RC2 = Buzzer
        ANSELC = 0x00 ;
    
        TRISA = 0x00 ;
        TRISB = 0x00 ;
        TRISD = 0x00 ;
        PORTA = 0x00 ;
        PORTB = 0x00 ;
        PORTD = 0x00 ;
    
        CloseSPI1() ;
    
        /* Configuration SPI MASTER */
        sync_mode = SPI_FOSC_4 ;                        //F_SPI = FOSC/4 
        bus_mode = MODE_01 ;                            //Mode 01 = CKP=0 & CKE=0
        smp_phase = SMPMID ;                            //Data sampled at the middle
        OpenSPI1(sync_mode, bus_mode, smp_phase) ;
    
        WriteSPI1(0xAA) ;       //<CID>
        WriteSPI1(0x05) ;       //Block write = demande d'écriture de données
        WriteSPI1(0x08);        //Nombres de Byte à transmettre
    
        putsSPI1(SPI_Send) ;    //Envoie de la chaine de caractères
    
        WriteSPI1(0xAA);        //<CID>
        WriteSPI1(0x04) ;       //Block read = demande de lecture de données
        WriteSPI1(0x01) ;       //Nombres de Bytes à lire
    
        if (0x06 == ReadSPI1()) status = 1 ;    //ACK=0x06 
        else status = 0 ;
    
        while(1) ;                   //Fin de transmission
    }
    Ce programme est censé venir inscrire sur l'écran la chaine de caractères : "-Hi-". Mais à première vu cela ne fonctionne pas. Au niveau hardware : SCK = RC3, SDI = RC4, SDO = RC5 pour le PIC ; et pour la liaison du PIC vers l'écran RC3 -> SCK, RC4 -> MISO, RC5 -> MOSI, SSEL -> GND.

    Et voici ma config côté écran :

    Nom : com_spi.jpg
Affichages : 95
Taille : 145,6 Ko

    Si quelqu'un pouvait m'apporter de l'aide ça serait sympa, car là je suis sec...

    Par avance merci...

  13. #12
    denver60

    Re : Communication SPI entre PIC18F45K22 et Ecran tactile Demmel

    Quelqu'un serait-il susceptible de m'aider pour ce problème de communication SPI svp ?

  14. #13
    RISC

    Re : Communication SPI entre PIC18F45K22 et Ecran tactile Demmel

    Salut,

    Pourquoi n'expliques-tu pas clairement comment est généré le code pour piloter ton afficheur.
    Quel est le nom du logiciel que tu utilises ???
    Quel est son role ?
    De quel fabricant ?
    Comment ce logiciel sait pour quel micro générer le code ?

    a+

  15. #14
    denver60

    Re : Communication SPI entre PIC18F45K22 et Ecran tactile Demmel

    @RISC : Désolé d'avoir été si peu précis dans mon précédent post. Donc je vais essayer de répondre à l'ensemble de tes questions

    Quel est le nom du logiciel que tu utilises ???
    Alors pour mon projet je souhaite avoir une IHM. Cette dernière sera créée grâce à un écran tactile Demmel DPP-CT6448.

    Quel est son role ?
    De quel fabricant ?
    Pour une simplicité d'utilisation plus poussée, Demmel a développé un logiciel freeware nommé iLCD Manager XE, permettant : la configuration (communication, I/O etc...), gestion de l'affichage des icônes etc via des macros. Ces macros sont réalisables avec plus de 150 commandes différentes que l'on peut trouver dans ce document.

    Comment ce logiciel sait pour quel micro générer le code ?
    En fait, pour ce que j'ai compris. Il suffit de paramétré l'écran avec la communication que l'on souhaite utiliser, et ensuite c'est le micro qui gère la communication. Le micro commence ses trames SPI par des valeurs hexadécimales qui correspondent soit à une commande d'écriture ou de lecture du buffer de l'écran. Et suivent ensuite les données lues ou écrites selon le sens de communication.

    Mais en fait je ne suis pas un expert dans la communication SPI. C'est la première fois que j'utilise cette communication et c'est pour ça que je ne suis même pas sûr que la structure (si je peux appeler ça comme cela) soit la bonne. Si la configuration du SPI du micro correspond bien à la configuration SPI de l'écran (cf post#11). C'est pourquoi je me tourne vers vous en espérant pouvoir être guidé. Pour moi la configuration du PIC et écran correspondent. Mais peut-être y-a-t-il quelque qui m'échappe.

    Par avance merci de votre aide.

  16. #15
    denver60

    Re : Communication SPI entre PIC18F45K22 et Ecran tactile Demmel

    Toujours personne pour me conseiller ou me guider ?

  17. #16
    denver60

    Re : Communication SPI entre PIC18F45K22 et Ecran tactile Demmel

    Quelqu'un sait-il s'il est possible d'inclure des valeurs hexadécimales dans un string lors d'un envoi avec la fonction putsSPI() ?

    Par avance merci de votre réponse !

Discussions similaires

  1. Communication entre micro-contrôleur et écran tactile
    Par denver60 dans le forum Électronique
    Réponses: 7
    Dernier message: 01/03/2013, 21h54
  2. Communication SPI entre PIC et autre circuit
    Par number8one dans le forum Électronique
    Réponses: 6
    Dernier message: 14/01/2010, 13h06
  3. Réponses: 3
    Dernier message: 30/05/2008, 10h48
  4. cherche code pour communication SPI entre deux PICs...
    Par invite8f8ffe44 dans le forum Électronique
    Réponses: 1
    Dernier message: 24/04/2008, 19h12
  5. Probléme entre Automate Twido et écran tactile
    Par inviteafc715b6 dans le forum Électronique
    Réponses: 1
    Dernier message: 28/08/2007, 13h05
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...