>> Technologie Électronique >  >> Téléphones >> Systèmes de conférence

Registre TRIS Microchip PIC : Contrôle Direction Données

Dans l'architecture des microcontrôleurs **PIC® de Microchip Technology** (familles PIC10/12/16/18/24/32), le **Registre TRIS** (Registre Tri-State) est le **Registre Direction Données** pour un port E/S. Il configure chaque broche comme **Entrée** ou **Sortie**.

Origine du Nom

TRIS = **TRI**-State (Entrée, Sortie Haut, Sortie Bas / Haute-Impédance). La broche peut être pilotée Haut, pilotée Bas, ou Haute-Impédance (Entrée).

Logique Bit à Bit (La Règle d'Or)

Valeur Bit TRISxDirection BrocheÉtat BrocheDriver SortieBuffer Entrée
1EntréeHaute-Z (Hi-Z)Désactivé (Off)Activé (Trigger Schmitt / TTL)
0SortiePiloté Haut / BasActivé (Push-Pull / Open-Drain*)Activé (Lit état broche)

*Open-Drain (registre ODCON) désactive P-FET ; nécessite pull-up externe.

Mnémotechnique : **« 1 = Entrée (I) », « 0 = Sortie (O) »**. Penser : **1** ressemble à **I** (Input). **0** ressemble à **O** (Output).

Correspondance Registres (Exemples)

  • PIC16F877A (Milieu gamme) : TRISA (5 bits), TRISB (8 bits), TRISC, TRISD, TRISE. Banque 1 (RP0=1).
  • PIC18F4550 (Haut gamme 8-bit) : TRISA–TRISE. Banque Accès (Banque 15 / BSR).
  • PIC24 / dsPIC33 (16-bit) : TRISA–TRISG. Espace SFR. Registres 16 bits.
  • PIC32 (MIPS32) : TRISA–TRISG. Mappés mémoire. **TRISxSET / TRISxCLR / TRISxINV** registres manipulation bit atomique.

Interaction Critique : LATx vs PORTx

  • Écriture Sortie : Écrire dans registre **LATx (Latch)**. Évite problèmes Lecture-Modification-Écriture (RMW) sur broches fortement chargées. LATBbits.LATB5 = 1;
  • Lecture Entrée : Lire registre **PORTx**. Échantillonne tension broche. if (PORTBbits.RB4) ...
  • Lecture Sortie : Lire **LATx** (valeur dernière écrite garantie). Lire PORTx lit *tension broche réelle* (peut différer par charge).

Séquence Configuration (Bonne Pratique)

// 1. Configurer Analogique/Numérique (ANSELx = 0 pour E/S numérique) ANSELB = 0x00;
// 2. Définir Niveaux Sortie Initiaux (LATx) *avant* de passer en sortie LATB = 0x00; // Tous bas initialement
// 3. Définir Direction Données (TRISx) TRISB = 0b00010000; // RB4 = Entrée (1), Autres = Sortie (0)
// 4. Activer Pull-ups Faibles (si nécessaire, pour entrées) WPUBbits.WPUB4 = 1; // Pull-up sur RB4
INTCON2bits.nRBPU = 0; // Activer Pull-ups PORTB globalement 

Substitutions Fonctions Spéciales

Modules périphériques (UART, SPI, I2C, PWM, ADC, Comparateur) **écrasent contrôle TRIS** quand activés.

  • UART TX → Force Sortie. RX → Force Entrée.
  • ADC → Force Entrée (Analogique), désactive buffer numérique (ANSEL=1).
  • Bit TRIS devient « sans importance » pour cette broche. Vérifier fiche technique « Diagramme Broches » / « Description E/S Broches ».

Pièges Courants

  • Oublié ANSEL : Broche défaut Entrée Analogique au POR. Lecture numérique retourne 0. TRIS=1 mais ANSEL=1 → Analogique. **Toujours effacer ANSEL en premier.**
  • RMW sur PORTx : PORTB |= 0x01; lit broche (peut être bas par charge), modifie, réécrit → efface autres sorties. **Utiliser LATx.**
  • Sélection Banque (PIC16) : TRIS en Banque 1. PORT en Banque 0. BANKSEL TRISB manquant → écrit dans mauvais registre (PORTB).

Le registre TRIS est le **gardien de la direction broches**. Maîtriser sa logique « 1=Entrée, 0=Sortie », son partenariat avec LATx/PORTx/ANSELx, et substitutions périphériques, et vous maîtrisez E/S PIC.

Systèmes de conférence