[Programmation] Communication entre PIC 16F628A et PC à travers une liaison RS485
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Communication entre PIC 16F628A et PC à travers une liaison RS485



  1. #1
    hannouniabderrahmane

    Communication entre PIC 16F628A et PC à travers une liaison RS485


    ------

    Bonjour à tous,

    Je travaille sur un projet depuis presque un mois pour programmer un PIC 16F628A, et je dois dire que j'ai rencontré quelques difficultés durant ces deux dernières semaines.
    Mon objectif consiste à envoyer une trame via RS485 et par la suite je dois programmer mon PIC pour qu'il puisse comprendre cette trame et puis allumer une LED par exemple.
    J'ai essayé de voir quelques codes en mikroC et en CCS mais en vain. Je n'arrive toujours pas à trouver le code adéquat pour ma situation.
    J'ai besoin d'un exemple de programmes (en mikroC ou en CCS) contenant la liaison RS485 afin de mieux comprendre.

    Quelqu'un pourrai m'aider SVP?
    Merci d'avance.

    PS : Vous trouverez ci-joint une capture d'écran du schéma.Nom : RS485.JPG
Affichages : 370
Taille : 160,2 Ko

    -----

  2. #2
    antek

    Re : Communication entre PIC 16F628A et PC à travers une liaison RS485

    Citation Envoyé par hannouniabderrahmane Voir le message
    Mon objectif consiste à envoyer une trame via RS485 et par la suite je dois programmer mon PIC pour qu'il puisse comprendre cette trame . . .
    Depuis un PC ce sera plus simple en RS232.

  3. #3
    hannouniabderrahmane

    Re : Communication entre PIC 16F628A et PC à travers une liaison RS485

    Salut,

    Oui en effet, mais j'ai besoin de parcourir une longue distance d'où le choix du RS-485.

    Merci pour votre conseil en tout cas.

  4. #4
    invite03481543

    Re : Communication entre PIC 16F628A et PC à travers une liaison RS485

    Bonsoir,

    Je suppose que tu veux fonctionner en maitre/esclave.
    Il faut bien penser à gérer le RE/DE, sans quoi ça ne fonctionnera jamais, c'est une erreur classique.
    Mon conseil:
    Utilise un câble USB/RS485, qui te permettra de debugger et faire en sorte que ton noeud (là où il y a ton PIC) interagisse déjà bien avec, par exemple, Teraterm (gratuit à installer sur ton PC).
    http://fr.farnell.com/ftdi/usb-rs485...85620000197132
    Une fois fait tu sauras que ton traitement au niveau du PIC fonctionne et il te suffira de faire la même chose avec le noeud maitre.
    Ensuite tu pourras créer tes 2 modules PIC en RS485.

    Si tu veux de l'aide poste ton code C qui ne fonctionne pas, de préférence sous MikroC que je connais très bien.
    @+

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

    Re : Communication entre PIC 16F628A et PC à travers une liaison RS485

    Bonsoir,

    Merci pour votre réponse tout d'abord.
    J'ai essayé de calquer le code fournit par mikroC (communication entre deux PIC avec RS485) mais je sens qu'il manque un tas de choses.

    Voici le code :

    Code:
    sbit  rs485_rxtx_pin at RB3_bit;             // set transcieve pin
    sbit  rs485_rxtx_pin_direction at TRISB3_bit;   // set transcieve pin direction
    
    void main() {
    
      TRISB = 0xFF;
      TRISA = 0x00;
      PORTA = 0;
      OPTION_REG.B7=0;
      UART1_Init(9600);                  // initialize UART1 module
      Delay_ms(100);
      RS485Slave_Init(1);              // Intialize MCU as slave, address 160
    
    
      RCIE_bit = 1;                      // enable interrupt on UART1 receive
      TXIE_bit = 0;                      // disable interrupt on UART1 transmit
      PEIE_bit = 1;                      // enable peripheral interrupts
      GIE_bit = 1;                       // enable all interrupts
      
    
      while (1) {
        PORTA=1;
        if (UART1_data_ready()) {
    
          PortA = 0xFF;
          Delay_ms(1);
    
    
        }
      }
    }
    Dernière modification par Antoane ; 05/09/2017 à 21h21. Motif: Ajout balises code

  7. #6
    hannouniabderrahmane

    Re : Communication entre PIC 16F628A et PC à travers une liaison RS485

    Bonsoir,

    J'ai oublié de supprimer une ligne après la boucle While, donc voici le code rectifié :

    Code:
    sbit  rs485_rxtx_pin at RB3_bit;             // set transcieve pin
    sbit  rs485_rxtx_pin_direction at TRISB3_bit;   // set transcieve pin direction
    
    void main() {
    
      TRISB = 0xFF;
      TRISA = 0x00;
      PORTA = 0;
      OPTION_REG.B7=0;
      UART1_Init(9600);                  // initialize UART1 module
      Delay_ms(100);
      RS485Slave_Init(1);              // Intialize MCU as slave, address 160
    
    
      RCIE_bit = 1;                      // enable interrupt on UART1 receive
      TXIE_bit = 0;                      // disable interrupt on UART1 transmit
      PEIE_bit = 1;                      // enable peripheral interrupts
      GIE_bit = 1;                       // enable all interrupts
      
    
      while (1) {
    
        if (UART1_data_ready()) {
    
          PortA = 0xFF;
          Delay_ms(1);
    
    
        }
      }
    }
    Dernière modification par hannouniabderrahmane ; 05/09/2017 à 21h29.

Discussions similaires

  1. [Programmation] communication rs485 pic16f689
    Par maryemjaballah dans le forum Électronique
    Réponses: 3
    Dernier message: 13/05/2016, 23h17
  2. Communication entre un site web et une carte via RS485
    Par Clairetj dans le forum Électronique
    Réponses: 6
    Dernier message: 03/11/2013, 13h47
  3. Communication entre 2 applications en Java à travers Internet
    Par kilwa dans le forum Programmation et langages, Algorithmique
    Réponses: 10
    Dernier message: 04/10/2013, 10h23
  4. communication RS485 comment ça marche
    Par alainav1 dans le forum Électronique
    Réponses: 37
    Dernier message: 17/03/2013, 21h10
  5. Communication RS485 PC to PIC
    Par Electro_Max dans le forum Électronique
    Réponses: 9
    Dernier message: 14/12/2011, 17h24
Découvrez nos comparatifs produits sur l'informatique et les technologies.