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 ---
On parle des Pics, sans rapport avec le langage ou la programmation

Modérateur : Jérémy

Quelles sont les broches pour l'UART ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2112
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#1 Message par Jérémy » lun. 11 déc. 2017 13:57 lien vers la Data-Sheet : Cliquez ici

Bonjour à tous,

je suis en train de faire le schéma de la radiocommande pour mon robot !

Pour la partie radio j'ai choisis le PIC mis en lien au dessus : un PIC18F27K40

Ainsi je dispose de deux UARTs et du nombre de broches suffisantes pour tout brancher !!
En regardant la DS, je cherche a savoir quelles sont les broches utilisées pour la réception et l'émission UART ! mais ce n'est pas clairement indiqué.
les broches TX1 et Tx2 sont misent dans une ligne appelée OUT ! en lisant la description, il me semble comprendre que je peux affecter les TX1 et TX2 sur n'importe quelles broches numériques du PIC !

est-ce exact ?

Merci à vous
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Quelles sont les broches pour l'UART ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2112
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#2 Message par Jérémy » mar. 12 déc. 2017 08:43 lien vers la Data-Sheet : Cliquez ici

Bonjour,

Petite modification !! En fait le PIC choisi est trop petit en nombre de broches . Je pensais qu'avec 28 PIN je serais large et bien pas du tout . Je suis donc obligé de passer à plus gros.
Le 40 PIN en format DIP est trop gros ! J'ai donc choisis le 44 PIN en TQFP :shock: Si on m'avait dit un jour que je travaillerais avec une telle bête (PIC18F47K40) !

Néanmoins ma question est toujours d'actualité car c'est le même procédé . J'ia l'impression que je peux affecter mes broches de TX UART sur n'importe quel pins ?

PS: la DS est à jour
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Quelles sont les broches pour l'UART ?
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 1028
Âge : 67
Enregistré en : juillet 2015
Localisation : 01120
Contact :

#3 Message par paulfjujo » mar. 12 déc. 2017 10:47 lien vers la Data-Sheet : Cliquez ici

bonjour Jeremy,


Dans ces cas là, j'ai vu que MPLAB XPRESS peut etre tres utile pour la config des Pins ou config bits ..
n'en plaise à MikroC ..

Quelles sont les broches pour l'UART ?
satinas
Passioné
Passioné
Messages : 285
Enregistré en : novembre 2015

#4 Message par satinas » mar. 12 déc. 2017 12:05 lien vers la Data-Sheet : Cliquez ici

Bonjour à tous,

Microchip a ajouté aux pics la fonction PPS et ses registres, qui font la jonction entre les i/o des périphériques, et certaines pins PPS du chip. Cela simplifie le routage, mais ça complique la mise en oeuvre. Il y a des valeurs des registres PPS par défaut, je suppose pour les rendre compatibles avec les anciens pics qui n'ont pas le PPS. Il faut aussi programmer les registres TRIS en cohérence, bien que parfois pas indispensable. Pour configurer ça, on opère differement pour les inputs et outputs.

On peut avoir une pin reliée à plusieurs inputs de périphériques, donc pour chaque input de périphérique, on affecte une pic PPS du chip.
Exemple, pour rentrer rx/uart1 sur B3, voir datasheet pages 216/217
RX1PPSbits.RXPPS = 0x0B;

Par contre, on ne peut pas affecter une pin à plusieurs outputs de périphérique, sinon ça risque de fumer, donc on fait l'inverse, on affecte une seule output de périphérique à une pin PPS du chip.
Exemple, pour sortir tx/uart1 sur B4, voir datasheet page 218
RB4PPS = 0x09;

Le PPS est puissant, car on programme les affectations de pins au démarrage, mais on peut aussi les modifier à tout moment durant l'exécution. Il y a 2 niveaux de protection :
- un verrouillage de la config PPS, qu'il faut enlever à chaque modif de config PPS.
- un bit PPS1WAY dans la config hardware du pic, s'il est a 1 il n'autorise de programmer les PPS q'une seule fois au démarrage du pic.

Pour distribuer l'uart sur B3/B4 et empêcher toute modification des PPS durant l'exécution :
code au démarrage du pic :

Code : Tout sélectionner

config PPS1WAY = ON
TRISB = 0xef;

GIE = 0;                   // déverrouillage PPS
PPSLOCK = 0x55;
PPSLOCK = 0xAA;
PPSLOCKbits.PPSLOCKED = 0;

RX1PPSbits.RXPPS = 0x0b;   // rx <- B3
RB4PPS = 0x09;             // B4 <- tx

PPSLOCK = 0x55;            // verrouillage PPS
PPSLOCK = 0xAA;
PPSLOCKbits.PPSLOCKED = 1;

J'espère n'avoir rien oublié

Quelles sont les broches pour l'UART ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2112
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#5 Message par Jérémy » mar. 12 déc. 2017 12:24 lien vers la Data-Sheet : Cliquez ici

Merci à tous les deux pour vos réponses.

Aîe ça se complique pour moi cette histoire. Je n'ai pas le choix du PIC de toute façon, car je suis obligé d'avoir autant de Pins .
Je crois que c'est mon plus précis routage que j'ai eu a faire ! j’espère que je vais le réussir car c'est chaud quand même! Je suis parti du prioncipe que je pouvais affecté les broches a ma guise.
Le plus délicat je pense ce sera pour régler les TX des 2 UARTs , le reste c'est seulement des entrées numériques pour les BPs ou analogiques pour les potentiomètres des joysticks.

Je suis en train de finaliser mon typon !

test.png
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Quelles sont les broches pour l'UART ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2112
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#6 Message par Jérémy » mar. 12 déc. 2017 14:58 lien vers la Data-Sheet : Cliquez ici

D’après mon schéma il me faut le TX/UART1 sur RC6 et le TX/UART2 sur RB5. Pouvez vous me confirmer que c'est faisable ?
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Quelles sont les broches pour l'UART ?
satinas
Passioné
Passioné
Messages : 285
Enregistré en : novembre 2015

#7 Message par satinas » mar. 12 déc. 2017 16:01 lien vers la Data-Sheet : Cliquez ici

C'est possible pour les 18F27K40 et 18F47K40, voir page 218 datasheet

RC6PPS = 0x09; // C6 <- tx1
RB5PPS = 0x0b; // B5 <- tx2

et renseigner les registres ANSEL et TRIS en conséquence
Modifié en dernier par satinas le mar. 12 déc. 2017 16:36, modifié 1 fois.

Quelles sont les broches pour l'UART ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2112
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#8 Message par Jérémy » mar. 12 déc. 2017 16:07 lien vers la Data-Sheet : Cliquez ici

Vraiment sympa d'avoir un œil, car je n'étais pas sur de moi. Ca me rassure grandement, avant de me lancer dans le typon !

Merci !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Quelles sont les broches pour l'UART ?
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 1028
Âge : 67
Enregistré en : juillet 2015
Localisation : 01120
Contact :

#9 Message par paulfjujo » mar. 12 déc. 2017 17:30 lien vers la Data-Sheet : Cliquez ici

bonsoir,

:eek: il manquait la suite de mon precedent post

la vue ci dessous de MPLAB XPRESS MC C
En quelques click, choix des pins et la fonction, toute faite
void PIN_MANAGER_IOC(void)

Je me demande si je vais rester sur MikroC !
teste fait avecun choix ultra classique sur les autres PIC18 2 uarts
RC6 et RC7
RB6 et RB7

MPLAB_XPress_Uart1_2_18F47K40.jpg



Code : Tout sélectionner



/*
Company:    Microchip Technology Inc.
  File Name:    pin_manager.c
  Summary:
    This is the Pin Manager file generated using MPLAB(c) Code Configurator
  Description:
    This header file provides implementations for pin APIs for all pins selected in the GUI.
    Generation Information :
        Product Revision  :  MPLAB(c) Code Configurator - 4.15
        Device            :  PIC18F47K40
        Driver Version    :  1.02
    The generated drivers are tested against the following:
        Compiler          :  XC8 1.35
        MPLAB             :  MPLAB X 3.40
    Copyright (c) 2013 - 2015 released Microchip Technology Inc.  All rights reserved.
    */

void PIN_MANAGER_Initialize(void)
{
    /**
    LATx registers
    */
   
    LATE 
= 0x00;    
    LATD 
= 0x00;    
    LATA 
= 0x00;    
    LATB 
= 0x00;    
    LATC 
= 0x00;    

    
/**
    TRISx registers
    */
    
    TRISE 
= 0x07;
    TRISA = 0xFF;
    TRISB = 0xBF;
    TRISC = 0xBF;
    TRISD = 0xFF;

    /**
    ANSELx registers
    */
   
    ANSELC 
= 0x7F;
    ANSELB = 0x7F;
    ANSELD = 0xFF;
    ANSELE = 0x07;
    ANSELA = 0xFF;

    /**
    WPUx registers
    */
 
    WPUD 
= 0x00;
    WPUE = 0x00;
    WPUB = 0x00;
    WPUA = 0x00;
    WPUC = 0x00;

    /**
    ODx registers
    */
   
    ODCONE 
= 0x00;
    ODCONA = 0x00;
    ODCONB = 0x00;
    ODCONC = 0x00;
    ODCOND = 0x00;
        
    bool state 
= GIE;
    GIE = 0;
    PPSLOCK = 0x55;
    PPSLOCK = 0xAA;
    PPSLOCKbits.PPSLOCKED = 0x00; // unlock PPS

    RX1PPSbits.RXPPS = 0x17;   //RC7->EUSART1:RX1;
    RC6PPS = 0x09;   //RC6->EUSART1:TX1;
    RB6PPS = 0x0B;   //RB6->EUSART2:TX2;
    RX2PPSbits.RXPPS = 0x0F;   //RB7->EUSART2:RX2;

    PPSLOCK = 0x55;
    PPSLOCK = 0xAA;
    PPSLOCKbits.PPSLOCKED = 0x01; // lock PPS

    GIE = state;
}
       
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Quelles sont les broches pour l'UART ?
Jérémy
Administrateur du site
Administrateur du site
Messages : 2112
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#10 Message par Jérémy » mar. 12 déc. 2017 19:05 lien vers la Data-Sheet : Cliquez ici

Re,

Effectivement Paul cela à l'air vraiment intéressant !

Peux tu me confirmer tu rentre ton PIC, et tu sélectionnes ce que tu veux que soit chaque PINS et lui te sort le code de configuration ?

Si c'est ca, je vais le télécharger de suite... ca a l'air super pratique et je pense que cela doit éviter des nombreuses erreurs quand on 44 PINS à gérer. Ca fera un bon completement au logiciel, dela a passer à MPLABX j'ai encore du chemin a parcourir sur mikroC lol
C'est en faisant des erreurs, que l'on apprend le mieux !!!


Retourner vers « Généralités sur les PICs »

Qui est en ligne

Utilisateurs parcourant ce forum : Chrichri et 2 invités