Deux pic sur Bus CAN
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Deux pic sur Bus CAN



  1. #1
    grd666

    Deux pic sur Bus CAN


    ------

    Bonjour,
    j'aimerais savoir si pour relier deux pic sur un bus CAN les deux pics devait avoir la même fréquence d'horloge?
    Je les fait communiquer sur le bus Can au travers du MCP2551.
    L'un de ces pic est un 18f2480 dont je sais régler l'horloge sans problème. L'autre est un DSPIC30F4013 dont je n'ai trouver aucun schéma d'oscillateur dans la documentation faudra t il régler l'horloge également avec un quartz et deux condensateurs?

    Merci

    -----

  2. #2
    Jack
    Modérateur

    Re : Deux pic sur Bus CAN

    Les horloges de bus et des µcontrôleurs sont différentes. Il doit y avoir des registres pour définir l'horloge du bus CAN.
    Tu as déja bien regardé la doc?

    A+

  3. #3
    grd666

    Re : Deux pic sur Bus CAN

    Citation Envoyé par Jack Voir le message
    Les horloges de bus et des µcontrôleurs sont différentes. Il doit y avoir des registres pour définir l'horloge du bus CAN.
    Tu as déja bien regardé la doc?

    A+
    Bien j'ai beau regardé la doc je vois juste que dans mes deux pic cette formule revient:
    pour le 18f2480 Tq(µs)=(2*BRP+1))/Fosc(Mhz)
    pour le 30f4013 Tq(µs)=2(BRP<5:0>+1)/FCAN

    c'est cette période Tq que je vois regler des deux coté a la même vitesse donc? j'ai vu sur un exemple de programme il prenais 125kbits/s
    Et après sur le 30f4013 j'ai un tableau avec les différents mode horloge mais je vois pas comment régler la valeur de l'horloge au final
    p144 du pdf http://ww1.microchip.com/downloads/e...Doc/70138F.pdf

  4. #4
    Jack
    Modérateur

    Re : Deux pic sur Bus CAN

    pour le 30f4013 Tq(µs)=2(BRP<5:0>+1)/FCAN
    J'ai vu la même formule sur la doc du pic18.

    A l'aide des diviseurs, on peut avoir des fréquences d'horloge différentes.

    A+

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

    Re : Deux pic sur Bus CAN

    Bonjour,
    j'ai régler les vitesses Can de mes deux pic d'après moi mais j'ai un gros soucis. Je programme le pic18f pour qu'il m'envoie une trame apres appuis sur un bouton pousoir mais lorsque que je connecte l'ICD2 sur le DSPIC30f4013 après que l'ICD2 ai fait la mise a jour "downloading" pour ce dispic si j'appuie sur mon bouton pousoir mon 18f ne génère plus de trame. Je précise que ma trame se générais en mode programmable sans que l'ICD2 soit connecté à la carte et après coupure d'alimentation cela marchais aussi.
    Une explication?

  7. #6
    invite067d8d6c

    Re : Deux pic sur Bus CAN

    bonsoir,

    es-tu sur que ton PIC18 n'envoie pas de trame?? Ou c'est une supposition?

    sinon débranches le DSpic du bus CAN et regardes si tu as des informations à passer! Il se peut que le DSpic écroule ton bus --> donc plus rien ne passe!

    Autre chose as-tu un sniffer CAN?? C'est bien pratique et simple à faire! Je ne saurai trop te conseiller de jeter un oeil sur un schéma d'elektor (dsl pour la pub^^) qui s'appelle CAN Explorer (15€ en gros) Super pratique^^

  8. #7
    grd666

    Re : Deux pic sur Bus CAN

    bonjour,
    oui je suis sur le pic n'envoie pas de trame. L'oscillo ne peut pas me tromper je pense.
    Continue sur canl et canh et j'ai des trames si j'appuis sur le BP.

  9. #8
    invitef26bdcba

    Re : Deux pic sur Bus CAN

    Salut,

    Sur ce type de µC, l'interface CAN est très élaborée, et il n'est pas nécessaire de contrôler les lignes TX et RX.

    Le plus simple est d'utiliser les bits de contrôle du bus CAN afin d'allumer des leds, cela permet de tout voir sans utiliser d'artifice exotique.

    David.

  10. #9
    grd666

    Re : Deux pic sur Bus CAN

    Bonjour,
    effectivement j'ai abandonner les programmes trouver sur microchip et fait mon propre programme
    mais j'ai une erreur qui m'empeche d'avancer
    Code:
    /------interruption basse------//
    #pragma code VectorLow  = 0x18  //basse  priorité
    void InterruptVectorLow(void)
    {	if(RXB0CONbits.RXFUL=1)
    	{
    	recu[0]=RXBODO;
    	}	
    	while(RXB0CONbits.RXFUL!=0)
    	{
    	}
    }
    #pragma code
    je passe ma lecture can en interruption mais pour lui RXBODO est inconnu alors que le registre est bien visible sur mplab j'ai bien ajouté les bibliotheques
    #include <p18f2480.h>
    #include <stdlib.h>
    #include <stdio.h>
    et rajouter les fichiers .lib et .h du pic dans le projet mais rien n'y fait
    Merci si vous trouvez la reponse avant moi.

  11. #10
    invitef26bdcba

    Re : Deux pic sur Bus CAN

    Salut,

    Remplace la lettre "O" par le chiffre "0"...

    RXB0DO

    David.

  12. #11
    grd666

    Re : Deux pic sur Bus CAN

    Bonsoir,
    merci DavidDB j'avais copier coller mais ca n'était pas un 0 effectivement.
    Sinon j'ai mon dispic qui envois mais mon pic18f ne reçois pas j'aurais besoin d'aide au niveau des messages can sur pic18f je ne comprend pas tout a fait a quoi corresponde les SID et EID et les filtres .
    Mes deux code séparer fonctionne en loopback mais la communication entre les deux nan
    code30f
    Code:
     C1RXM0SID  = C1RXM1SID  = 0x1FFD; 
     C1RXM0EIDH = C1RXM1EIDH =  0x0FFF;
     C1RXM0EIDL = C1RXM1EIDL =  0xFC00; 
     C1RXF0SID = 0x0AA8;	//CAN1 Receive Acceptance Filter2 SID 		
       C1RXF2SID = 0x1555;   //CAN1 Receive Acceptance Filter2 SID
       C1RXF2EIDH = 0x0004;   //CAN1 Receive Acceptace  Filter2 Extended Identifier high byte
       C1RXF2EIDL = 0x8C00;	//CAN1 Receive Acceptance Filter2 Extended identifier low byte
    C1TX0CON = 0x0003;     // Low intermediate message Priority
       C1TX0SID = 0x50A8;     // SID 
       C1TX0EID = 0x0000;     // EID 
       C1TX0DLC = 0x01C0;
       C1TX1CON = 0x0002;             // Lowest message priority
       C1TX1SID = 0xA855;             // SID  
       C1TX1EID = 0x0004;             // EID                   
       C1TX1DLC = 0x8DA0;
    Coté 18f je ne sais pas comment identifier les messages envoyé par le 30f par rapport au code du 30f j'ai deja regarder des exemples mais aucun n'explique pourquoi il mettent ces codes(et j ai lut et relut les datasheet des deux pic).
    Merci de votre aide

Discussions similaires

  1. Pic 18F452 et Bus I2C : Aide à l'acquisition
    Par invite00780d1b dans le forum TPE / TIPE et autres travaux
    Réponses: 5
    Dernier message: 23/08/2010, 00h01
  2. Ajout d'une mémoire externe EEPROM 24LC256 (bus i2c) à un PIC 18F452
    Par invite8916ae1c dans le forum Électronique
    Réponses: 1
    Dernier message: 27/04/2009, 20h07
  3. Comment relier deux PIC
    Par invitee768a294 dans le forum Électronique
    Réponses: 8
    Dernier message: 18/03/2009, 19h02
  4. lecture d'information sur bus SPI avec PIC
    Par invite3b2b6fe2 dans le forum Électronique
    Réponses: 0
    Dernier message: 27/01/2009, 19h05
  5. Assembleur ( PIC ) : optimiser la gestion du bus Serial
    Par Toufinet dans le forum Électronique
    Réponses: 5
    Dernier message: 16/10/2007, 19h29
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...