Menu English Ukrainian Russe Accueil

Bibliothèque technique gratuite pour les amateurs et les professionnels Bibliothèque technique gratuite


ENCYCLOPÉDIE DE LA RADIOÉLECTRONIQUE ET DU GÉNIE ÉLECTRIQUE
Bibliothèque gratuite / Schémas des appareils radio-électroniques et électriques

Microcontrôleur PIC16C84. Brève description. Encyclopédie de l'électronique radio et de l'électrotechnique

Bibliothèque technique gratuite

Encyclopédie de l'électronique radio et de l'électrotechnique / microcontrôleurs

Commentaires sur l'article Commentaires sur l'article

Cette description ne prétend pas être complète et contient un certain nombre d'erreurs et de fautes de frappe. Une documentation complète est disponible auprès des distributeurs Microchip dont les adresses sont indiquées en fin de fiche.

introduction

Le PIC16C84 appartient à la famille des microcontrôleurs CMOS. Il diffère en ce qu'il possède une EEPROM interne 1K x 14 bits pour les programmes, les données 8 bits et une EEPROM 64 octets de mémoire de données. Dans le même temps, ils se caractérisent par un faible coût et des performances élevées. Les utilisateurs qui connaissent la famille PIC16C5X peuvent voir une liste détaillée des différences entre les nouveaux contrôleurs et ceux produits précédemment. Toutes les instructions font un mot (14 bits de large) et s'exécutent en un cycle (400 ns à 10 MHz), à l'exception des instructions de saut, qui sont exécutées en deux cycles (800 ns). Le PIC16C84 a une interruption à quatre sources et une pile matérielle à huit niveaux.

Les périphériques comprennent un temporisateur/compteur 8 bits avec un prédiviseur programmable 8 bits (en fait un temporisateur 16 bits) et 13 lignes d'E/S bidirectionnelles. La capacité de charge élevée (dissipateur max 25mA, dissipateur max 20mA) des lignes d'E/S simplifie les pilotes externes et réduit ainsi le coût global du système. Le développement basé sur les contrôleurs PIC16C84 est pris en charge par l'assembleur, le simulateur logiciel, l'émulateur en circuit (Microchip uniquement) et le programmeur.

La série PIC16C84 convient à une large gamme d'applications allant des circuits de commande de moteurs électriques et automobiles à grande vitesse aux émetteurs-récepteurs à distance économiques, aux instruments indicateurs et aux processeurs de communication. La présence de ROM permet de régler les paramètres dans les programmes d'application (codes émetteurs, régimes moteur, fréquences récepteurs, etc.).

Les petites tailles de boîtier, à la fois conventionnelles et à montage en surface, rendent cette série de microcontrôleurs adaptée aux applications portables. Le prix bas, l'économie, la vitesse, la facilité d'utilisation et la flexibilité des E/S rendent le PIC16C84 attrayant même dans les domaines où les microcontrôleurs n'ont pas été utilisés auparavant. Par exemple, les minuteries, remplaçant la logique dure dans les grands systèmes, les coprocesseurs.

Il convient d'ajouter que le programmeur EEPROM intégré du PIC16C84 facilite la personnalisation du programme et des données pour des besoins spécifiques, même une fois l'assemblage et les tests terminés. Cette possibilité peut être utilisée à la fois pour la réplication et pour la saisie des données d'étalonnage après le test final.

Présentation des fonctionnalités

- seulement 35 commandes simples ;

- toutes les commandes sont exécutées en un cycle (400ns), sauf les commandes de transition -2 cycles ;

- fréquence de fonctionnement 0 Hz ... 10 MHz (cycle de commande min 400 ns)

- Commandes 14 bits ;

- données 8 bits ;

- 1024 x 14 mémoire programme reprogrammable électriquement sur puce (EEPROM) ;

- 36 x 8 registres à usage général ;

- 15 registres matériels spéciaux SFR ;

- Mémoire EEPROM 64 x 8 reprogrammable électriquement pour les données ;

- pile matérielle à huit niveaux ;

- adressage direct, indirect et relatif des données et commandes ;

- quatre sources d'interruption :

. entrée externe INT

. Débordement du temporisateur RTCC

. interruption sur changement de signaux sur les lignes du port B

. à la fin de l'écriture des données dans la mémoire EEPROM

Périphériques et E/S

- 13 lignes I/O avec réglages individuels ;

- Courant de puits/puits pour piloter les LED

. courant entrant max - 25 mA

. courant circulant max - 20 mA

- Temporisateur/compteur RTCC 8 bits avec prédiviseur programmable 8 bits ;

- réinitialisation automatique à la mise sous tension ;

- le temporisateur d'inclusion au reset ;

- minuterie de démarrage du générateur ;

- Minuterie Watchdog WDT avec son propre générateur intégré offrant une fiabilité accrue ;

- Bit de sécurité EEPROM pour protéger le code ;

- mode SLEEP économique ;

- bits sélectionnables par l'utilisateur pour définir le mode d'entraînement de l'oscillateur intégré :

- Générateur RC : RC

- résonateur à quartz conventionnel : XT

- résonateur à quartz haute fréquence : HS

- cristal basse fréquence économique : LP

- dispositif de programmation EEPROM intégré pour la mémoire de programme et de données ; seules deux pattes sont utilisées.

Technologie CMOS

- technologie CMOS EPROM économique à grande vitesse ;

- principe statique en architecture ;

- large gamme de tensions d'alimentation et de températures :

. commerciale : 2.0 ... 6.0 V, 0...+70C

. industriel : 2.0 ... 6.0 V, -40...+70С

. automobile : 2.0 ... 6.0 V, -40...+125С

- Faible consommation

. 3 mA typique pour 5V, 4MHz

. 50 µA typique pour 2V, 32kHz

. 26µA typique pour le mode SLEEP à 2V.

Schéma structurel PIC16C84

Microcontrôleur PIC16C84. Brève description

L'architecture est basée sur le concept de bus et de zones mémoire séparés pour les données et les commandes (architecture Harvard). Le bus de données et la mémoire de données (RAM) ont une largeur de 8 bits, et le bus de programme et la mémoire de programme (ROM) ont une largeur de 14 bits. Ce concept fournit un jeu d'instructions simple mais puissant conçu pour que les opérations sur les bits, les octets et les registres fonctionnent à grande vitesse et se chevauchent dans les temps de cycle d'extraction et d'exécution des instructions. La largeur de mémoire de programme de 14 bits permet d'extraire une instruction de 14 bits en un cycle. Le pipeline à deux étages permet la récupération et l'exécution simultanées d'une instruction. Toutes les instructions sont exécutées en un cycle, à l'exception des instructions de saut. Le PIC16C84 dispose d'une mémoire de programme de 1K x 14 située sur la puce. Le programme exécutable ne peut résider que dans la ROM intégrée.

Différences entre PIC16C84 et PIC16C5x

1. Longueur de commande augmentée à 14 bits. Cela vous permet d'organiser la ROM et la RAM avec une taille de page accrue : (2K octets au lieu de 512 octets), (128 octets au lieu de 32 octets), respectivement.

2. Le registre supérieur du compteur de programme (PCLATH) contrôle le changement de page dans la mémoire programme. Les bits de sélection de page PA2, PA1, PA0, qui servaient à cela dans le cristal PIC16C5X, sont retirés du registre STATUS.

3. La pagination de la mémoire et le registre STATUS ont été modifiés.

4. Ajout de quatre nouvelles commandes : RETURN, RETFIE, ADDLW, SUBLW. Les deux commandes TRIS et OPTION ne sont plus nécessaires, mais sont conservées pour une compatibilité logicielle avec le PIC16C5X.

5. Les registres OPTION et TRIS sont rendus adressables par numéro.

6. Ajout de la possibilité de travailler sur les interruptions. Vecteur=0004h.

7. Taille de la pile augmentée à huit niveaux.

8. L'adresse de réinitialisation à la mise sous tension a été remplacée par 0000h.

9. Cinq types différents de réinitialisations (sorties du mode SLEEP) sont reconnus. L'initialisation du registre a été modifiée. Ils sont réglés différemment selon le type de réinitialisation.

10. Ajout de la sortie du mode SLEEP via interruption.

11. Pour un démarrage plus fiable, les retards matériels suivants ont été ajoutés : temporisateur de démarrage (OST) et temporisateur de mise sous tension (PWRT). Ces minuteries peuvent être utilisées de manière sélective pour éviter des retards inutiles, à la fois lors de la mise sous tension et lors de la sortie du mode SLEEP.

12. Le port B a des charges actives et une interruption lorsque les signaux d'entrée changent.

13. La branche RTCC est alignée avec la branche bâbord (RA4).

14. L'adresse de registre 07h (port C) n'existe pas et n'est pas un registre à usage général.

15. Le registre FSR (f4), qui stocke le pointeur avec adressage indirect, est devenu large de huit bits.

16. Machine de programmation EEPROM intégrée mise en œuvre. L'utilisateur peut programmer le PIC16C84 en utilisant seulement cinq broches : Vdd, Vss, /MCLR/Vpp, RB6 (horloge), RB7 (entrée/sortie de données).

Passage de PIC16C5x à PIC16C84

Pour convertir le code écrit pour PIC16C5X en code pour PIC16C84, l'utilisateur doit effectuer les étapes suivantes :

1. Remplacer les opérations de sélection des pages de la mémoire programme (bits PA2, PA1, PA0) par des commandes CALL, GOTO.

2. Passez en revue toutes les opérations de saut calculées (écrire sur PC ou ajouter sur PC, etc.) et assurez-vous que les bits de page sont également définis correctement pour la nouvelle puce.

3. Éliminer le changement de page de mémoire de données. Redéfinissez les variables et réaffectez-leur de la mémoire.

4. Vérifiez l'entrée dans les registres STATUS, OPTION, FSR, car ils sont légèrement modifiés.

5. Modifiez le vecteur de réinitialisation à la mise sous tension sur 0000h.

6. Notez que l'adresse 07h est une adresse de mémoire de données inexistante.

Types et versions de boîtier

Désignations des emballages pour les cristaux PIC16C8x. Le type de boîtier est indiqué dans le Marquage lors de la commande des microcircuits. Les étuis sont livrés avec seulement 18 broches. PDIP - Boîtier en plastique uni à deux rangées. Utilisé pour les versions OTP EPROM des cristaux. SOIC - Petit boîtier de montage en surface DIP

Les conceptions de puces sont de trois types : commerciale, industrielle et automobile. Leur principale différence réside dans la plage de température et la tension de fonctionnement.

Exécution commerciale

Température de fonctionnement 0 ... +70 C

Tension de fonctionnement 3.0 ... 5.5 V

Version industrielle

Température de fonctionnement -40 .... +85 C

Tension de fonctionnement 3.0 ... 5.5 V

Modèle de véhicule

Température de fonctionnement -40 ... +125 C

Tension de fonctionnement 3.0 ... 5.5 V

Marquage lors de la commande

La désignation des microcircuits comprend les champs suivants :

<Numéro d'entreprise>-<Fréquence du générateur><Plage de température>/<Corps><Remarque>

<numéro d'entreprise peut être> : PIC16C84 - plage Vdd 4...6 V

PIC16LC84 Gamme Vdd 2...6 V

<Fréquence d'origine> : 04 ---> 4 mHz

10 ---> 10 mHz

La plage de température est de :

- de 0С à +70С

Je de -40С à +85С

E de -40С à +125С

Le corps est marqué :

P - DIP plastique régulier

SO-300 mil SOIC

EXEMPLES

PIC16C84-04/Pxxx 4 mHz, version commerciale en package PDIP, plage normale Vdd, masque ROM avec programme xxx

PIC16LC84-04I/SO 4 mHz, version industrielle, plage de puissance étendue, boîtier=SOIC

PIC16C84-10E/P version automobile, 10 mHz, PDIP, typ. aliments

Disposition des jambes

Pour la fonction des broches, voir "Désignations des broches" ou le schéma fonctionnel. Pour les types de boîtiers PDIP, etc., voir Boîtiers.

Microcontrôleur PIC16C84. Brève description

Le but des jambes

Désignations des jambes et leur objectif fonctionnel.

Microcontrôleur PIC16C84. Brève description

Valeurs maximales des paramètres électriques

Les paramètres en dehors de ces limites peuvent endommager la puce. Faire fonctionner le cristal à ses valeurs limites pendant une longue période affectera sa fiabilité.

Microcontrôleur PIC16C84. Brève description

Notes:

1. La dissipation de puissance totale ne doit pas dépasser 800 mW pour chaque boîtier. La puissance dissipée est calculée selon la formule suivante :

Pdis= Vdd(Idd - Somme(Ioh)) + Somme ((Vdd - Voh)Ioh) + Somme (Vol Iol)

2. La chute de la tension sur la broche /MCLR en dessous de Vss (masse) induira des courants élevés, supérieurs à 80 mA, et peut endommager cette ligne. Par conséquent, nous vous recommandons d'appliquer des signaux à la broche /MCLR via une résistance de terminaison de 50 à 100 ohms.

Vue d'ensemble des registres et de la RAM

La zone RAM est organisée en 128 x 8. Les cellules RAM peuvent être adressées directement ou indirectement via le registre de pointeur FSR (04h). Ceci s'applique également à l'EEPROM de la mémoire de données constantes.

Microcontrôleur PIC16C84. Brève description

Le registre d'état (03h) contient des bits de sélection de page qui permettent d'accéder à quatre pages de futures révisions de cette puce. Cependant, pour le PIC16C84, la mémoire de données n'existe que jusqu'à l'adresse 02Fh. Les 12 premières adresses sont utilisées pour placer des registres à usage spécial.

Les registres avec les adresses 0Ch-2Fh peuvent être utilisés comme registres à usage général, qui sont une RAM statique. Certains registres à usage spécial sont dupliqués sur les deux pages, et certains se trouvent séparément sur la page 1. Lorsque la page 1 est définie, l'accès aux adresses 8Ch-AFh adresse effectivement la page 0. Les registres peuvent être adressés directement ou indirectement. Dans les deux cas, jusqu'à 512 registres peuvent être adressés.

Adressage direct

Lorsque l'adressage direct à 9 bits est effectué, les 7 bits inférieurs sont pris comme adresse directe de l'opcode et les deux bits de pointeur de page (RP1, RP0) du registre d'état (03h).

Microcontrôleur PIC16C84. Brève description

adressage indirect

f4 - Pointeur d'adresse indirecte

Toute instruction qui utilise f0 (adresse 00) comme registre accède en fait à un pointeur qui est stocké dans le FSR (04h). La lecture indirecte de f0 se traduira par 00h. L'écriture dans le registre f0 ressemblera implicitement à Nop, mais les bits d'état peuvent être modifiés. L'adresse 9 bits requise est formée en combinant le contenu du registre FSR 8 bits et le bit IRP du registre d'état.

Microcontrôleur PIC16C84. Brève description

Notez que certains registres de fonctions spéciales se trouvent à la page 1. Pour les adresser, vous devez en outre définir le bit RP0 dans le registre d'état sur un.

Temporisateur/compteur RTCC

Le schéma fonctionnel de l'activation RTCC est illustré ci-dessous. Il contient l'élément "MUX" - il s'agit d'un interrupteur électronique.

Microcontrôleur PIC16C84. Brève description

Le mode temporisateur est sélectionné en réinitialisant le bit RTS dans le registre OPTION à zéro. En mode minuterie, RTCC sera incrémenté à partir de la source de fréquence INTERNE - à chaque cycle de commande (pas de prédiviseur).

Après avoir écrit des informations sur RTCC, il commencera à s'incrémenter après deux cycles d'instructions. Cela se produit avec toutes les instructions qui écrivent ou lisent-modifient-écrivent f1 (par exemple MOVF f1, CLRF f1). Ceci peut être évité en écrivant une valeur ajustée dans RTCC. Si RTCC doit être vérifié pour zéro sans arrêter le comptage, utilisez l'instruction MOVF f1,W.

Le mode compteur est sélectionné en mettant le bit RTS dans le registre OPTION à un. Dans ce mode, RTCC sera incrémenté par un front montant ou descendant sur la broche RA4/RTCC à partir d'événements EXT. La direction du front est déterminée par le bit de commande RTE dans le registre OPTION. Avec RTE=0, un front montant sera sélectionné. Le limiteur peut être utilisé avec le temporisateur RTCC ou Watchdog. L'option de connexion du diviseur est contrôlée par le bit PSA dans le registre OPTION. Avec PSA=0, le diviseur sera connecté au RTCC. Le contenu du diviseur n'est pas disponible pour le programme. Facteur de division - programmable. Une interruption RTCC est générée lorsque le temporisateur/compteur RTCC déborde lors du passage de FFH à 00h. Le bit de requête RTIF dans le registre INTCON<2> est alors activé. Cette interruption peut être masquée par le bit RTIE du registre INTCON<5>. Le bit de requête RTIF doit être effacé par le logiciel lors du traitement de l'interruption. Une interruption RTCC ne peut pas sortir le processeur de SLEEP car le temporisateur ne fonctionne pas dans ce mode.

Problèmes de minuterie

Des problèmes peuvent survenir lors du comptage de signaux externes. Ces signaux sont déclenchés par un signal d'horloge interne, voir le diagramme SYNC. Il y a un certain retard entre le front montant du signal d'entrée et le temps d'incrémentation RTCC. Le gate est fait après le limiteur. La sortie du limiteur est interrogée deux fois pendant chaque cycle de commande pour déterminer les fronts montants et descendants du signal d'entrée. Par conséquent, le signal Psout doit être haut et bas pendant au moins deux périodes d'horloge.

Lorsque le limiteur n'est pas utilisé, Psout répète le signal d'entrée, ses exigences sont donc les suivantes :

Trth= RTCC temps haut >= 2tosc+20ns

Trtl= temps bas RTCC >= 2tosc+20ns.

Lorsque le limiteur est utilisé, l'entrée RTCC est divisée par le nombre défini dans le compteur diviseur. Le signal après le limiteur est toujours symétrique.

Psout temps haut = Psout temps bas = NTrt/2,

où Trt est la période d'entrée RTCC,

N est la valeur du compteur diviseur (2,4...256).

Dans ce cas, les exigences pour le signal d'entrée peuvent être exprimées comme suit :

NTrt/2 >= 2tosc +20ns ou

Trt >= (4tosc + 40ns)/N.

Lorsqu'un limiteur est utilisé, les niveaux de signal bas et haut à son entrée doivent être d'au moins 10 ns. Ainsi, les exigences générales pour un signal externe lorsqu'un diviseur est connecté sont les suivantes :

Trt= période RTCC >= (4tosc + 40ns)/N

Trth = temps haut RTCC >= 10ns

Trtl = temps bas RTCC >= 10ns.

Étant donné que la sortie du limiteur est cadencée par l'horloge interne, il y a un léger retard entre le front montant de l'horloge externe et le temps d'incrément RTCC réel. Ce délai est compris entre 3tosc et 7tosc. Ainsi, la mesure de l'intervalle entre événements sera effectuée avec une précision de 4tosc (+-400ns à 10 MHz quartz).

Registre d'état

Le registre (f3) contient les drapeaux arithmétiques de l'ALU, l'état de réinitialisation du contrôleur et les bits de sélection de page pour la mémoire de données. (f3) est disponible pour n'importe quelle commande comme n'importe quel autre registre. Cependant, les bits TO et PD sont définis par le matériel et ne peuvent pas être écrits dans un état par le logiciel. Ceci doit être gardé à l'esprit lors de l'exécution d'une commande à l'aide du registre d'état. Par exemple, l'instruction CLRF f3 mettra tous les bits à 1 sauf les bits TO et PD, puis mettra le bit Z=3. Après l'exécution de cette commande, le registre d'état peut ne pas avoir une valeur nulle (à cause des bits TO et PD) f000=100??XNUMX. Par conséquent, il est recommandé d'utiliser uniquement les commandes de réglage de bit BCF, BSF, MOVWF pour modifier le registre d'état, qui ne modifient pas le reste des bits d'état. L'effet de toutes les commandes sur les bits d'état est visible dans la "Description des commandes".

Indicateurs d'état du logiciel

L'emplacement des drapeaux dans le registre d'état est le suivant :

Microcontrôleur PIC16C84. Brève description

Pour les commandes ADDWF et SUBWF. Ce bit est défini si l'opération sur le bit le plus significatif entraîne une retenue. La soustraction est effectuée en ajoutant le code supplémentaire du deuxième opérande. Lors de l'exécution d'instructions de décalage, ce bit est toujours chargé à partir du LSB ou du MSB de la source décalée.

Microcontrôleur PIC16C84. Brève description

Pour les commandes ADDWF et SUBWF. Ce bit est défini si l'opération sur le quatrième bit entraîne une retenue. Le mécanisme de réglage du bit de report décimal "DC" est le même, sauf que le report à partir du quatrième bit est surveillé.

Z - Indicateur de résultat zéro :

Défini si le résultat d'une opération arithmétique ou logique est zéro.

PD - Power Down (mode stockage de données) :

Mettre à "1" à la mise sous tension ou à la commande CLRWDT. Remise à "0" par la commande SLEEP.

À - Temps mort. Indicateur d'activation du temporisateur Watchdog :

Mettre à "1" à la mise sous tension et aux commandes CLRWDT, SLEEP. Remet à "0" lorsque le temporisateur WDT expire.

RP1, RP0 - Bits de sélection de page de mémoire de données pour l'adressage direct :

RP1,RP0 :

00=Page 0 (00h-7Fh)

01= Page 1 (80h-FFh)

10=Page 2 (100h-17Fh)

11= Page 3 (180h-1FFh)

Chaque page contient 128 octets. La puce PIC16C84 utilise uniquement RP0. Dans cette puce, RP1 peut être utilisé simplement comme bit de lecture/écriture à usage général. Cependant, il faut se rappeler que dans les développements ultérieurs, il sera utilisé.

IRP - Bit de sélection de page de mémoire de données pour l'adressage indirect :

IRP0 :

0= Pages 0,1 (00h-FFh)

1= Page 2,3 (100h-1FFh)

Ce bit dans le cristal PIC16C84 n'a pas de sens à utiliser. Par conséquent, il peut être utilisé comme bit de lecture/écriture à usage général. Cependant, nous devons nous rappeler que dans les développements ultérieurs, il sera utilisé.

Indicateurs d'état du matériel

Bits d'état matériel TO (Time Out) et PD (Power Down). L'état des bits du registre d'état "TO" et "PD" peut déterminer ce qui a causé le "Reset":

- par simple mise sous tension,

- activation du temporisateur chien de garde,

- sortie du mode veille suite au déclenchement du temporisateur chien de garde,

- par signal externe /MCLR.

Seuls les événements suivants peuvent affecter l'état de ces bits :

Microcontrôleur PIC16C84. Brève description

Remarque : Les bits TO et PD restent actifs jusqu'à ce que l'un des événements répertoriés dans le tableau se produise. "0" - Une impulsion de bas niveau à l'entrée du cristal /MCLR ne modifie pas l'état des bits TO et PD.

Organisation de la ROM intégrée

Le compteur de programme du PIC16C84 a une largeur de 13 bits et peut adresser 8Kx14 bits de mémoire de programme. Cependant, physiquement, il n'y a que 1Kx14 de mémoire sur la puce (adresses 0000h-03FFh). L'adressage d'adresses supérieures à 3FFh correspond en fait à l'adressage du même premier kilo-octet. Le vecteur de réinitialisation est situé à l'adresse 0000h, le vecteur d'interruption est situé à l'adresse 0004h.

L'EEPROM du PIC16C84 est conçue pour un nombre limité de cycles d'effacement/écriture. Pour écrire dans la mémoire de programme, le cristal doit être placé dans un mode spécial dans lequel la tension de programmation Vprg est appliquée à la broche /MCLR et l'alimentation Vdd doit être comprise entre 4.5 V et 5.5 V. Le PIC16C84 ne convient pas aux applications où le programme est fréquemment modifié. L'écriture dans la mémoire programme se fait petit à petit, séquentiellement en utilisant seulement deux broches.

Adressage PC et ROM

(f2). Compteur de programme

La largeur du compteur de programme est de 13 bits. L'octet de poids faible du compteur de programme (PCL) est en lecture/écriture et se trouve dans le registre 02h. L'octet de poids fort du compteur de programme (PCH) ne peut pas être lu ou écrit directement. L'octet de poids fort du compteur de programme peut être écrit via le registre PCLATH, dont l'adresse est 0Ah. Selon qu'une nouvelle valeur est chargée dans le compteur de programme pendant les instructions CALL, GOTO ou que l'octet de poids faible du compteur de programme (PCL) est en cours d'écriture, les bits de poids fort du compteur de programme sont chargés à partir de PCLATH de différentes manières, comme montré dans la figure.

Cas des commandes GOTO, CALL

Microcontrôleur PIC16C84. Brève description

Pile et retours des sous-programmes

Le cristal PIC16C84 possède une pile matérielle large de 13 bits à huit niveaux. La zone de pile n'appartient ni à la zone de programme ni à la zone de données et le pointeur de pile n'est pas accessible à l'utilisateur. La valeur actuelle du compteur de programme est poussée sur la pile lorsqu'une instruction CALL est exécutée ou qu'une interruption est traitée. Lorsqu'une instruction RETLW, RETFIE ou RETURN est exécutée à partir d'un sous-programme), le contenu de la pile est disséminé dans le compteur de programme. Le registre PCLATH (0Ah) n'est pas modifié par les opérations de pile.

Données en EEPROM

Mémoire de données EEPROM non volatile.

La mémoire de données EEPROM vous permet de lire et d'écrire un octet d'information. Lorsqu'un octet est écrit, la valeur précédente est automatiquement effacée et de nouvelles données sont écrites (effacement avant écriture). Toutes ces opérations sont effectuées par l'enregistreur EEPROM intégré. Le contenu de cette mémoire est conservé lorsque l'alimentation est coupée. Le cristal PIC16C84 dispose d'une mémoire de données EEPROM 64x8 bits qui permet l'écriture et la lecture pendant le fonctionnement normal (sur toute la plage de tension d'alimentation). Cette mémoire n'appartient pas à la zone de registre RAM. Il est accessible via deux registres : EEDATA <08h>, qui contient des données de huit bits pour la lecture/écriture, et EEADR <09h>, qui contient l'adresse de la cellule en cours d'accès. De plus, il existe deux registres de contrôle : EECON1 <88h> et EECON2 <89h>.

Lors de la lecture des données de la mémoire EEPROM, écrivez l'adresse souhaitée dans le registre EEADR, puis définissez le bit RD EECON1<0> sur un. Les données apparaîtront dans le prochain cycle de commande dans le registre EEDATA et pourront être lues. Les données du registre EEDATA sont verrouillées.

Lors de l'écriture dans la mémoire EEPROM, vous devez d'abord écrire l'adresse requise dans le registre EEADR et les données dans le registre EEDATA. Exécutez ensuite une séquence spéciale de commandes qui produit un enregistrement direct :

movlv 55h

movwf EECON2

movv AH

movwf EECON2

bsf EECON1,WR ; définir le bit WR, démarrer l'enregistrement

Pendant l'exécution de cette section du programme, toutes les interruptions doivent être désactivées afin d'exécuter avec précision le chronogramme. Temps d'enregistrement -

environ 10 ms. Le temps d'écriture réel varie en fonction de la tension, de la température et des propriétés individuelles du cristal. A la fin de l'écriture, le bit WR est automatiquement mis à zéro et l'indicateur d'achèvement d'écriture EEIF, qui est également une demande d'interruption, est mis à un.

Pour éviter les écritures accidentelles dans la mémoire de données, un bit WREN spécial est fourni dans le registre EECON1. Il est recommandé de laisser le bit WREN désactivé, sauf lorsque la mémoire de données doit être actualisée. De plus, les segments de code qui définissent le bit WREN et ceux qui effectuent l'écriture doivent être stockés à des adresses différentes pour éviter de les exécuter accidentellement lorsque le programme plante.

Gestion EEPROM

Registres de contrôle pour EEPROM

Microcontrôleur PIC16C84. Brève description

Registres EECON1 et EECON2

Le registre EECON1 (adresse 88h) est un registre de contrôle de cinq bits. Les cinq bits inférieurs sont physiquement présents, tandis que les trois bits supérieurs sont toujours lus comme "0".

Enregistrez l'adresse EECON1 88h

Réinitialiser à la mise sous tension - 0000X000

Microcontrôleur PIC16C84. Brève description

Les bits de contrôle RD et WR déclenchent respectivement des lectures et des écritures. Ils ne peuvent être définis que par programmation. Effacé par le matériel lorsque les opérations de lecture/écriture sont terminées. La désactivation de la réinitialisation logicielle du bit WR empêche l'écriture de se terminer prématurément.

RD - Bit de lecture.

RD =1 : Lance la lecture de la mémoire de données EEPROM. La lecture prend un cycle. Installé par logiciel. Réinitialiser par le matériel.

WR - Bit d'écriture.

WR =1 : Démarre l'écriture dans la mémoire de données EEPROM.

Installé par logiciel. Réinitialiser par le matériel.

WREN - Bit d'activation d'écriture EEPROM.

WREN = 1 : écriture activée.

WREN = 0 : écriture désactivée.

Après la mise sous tension, WREN est remis à zéro.

L'indicateur d'erreur WRERR est activé lorsque le processus d'écriture est interrompu par le signal de réinitialisation /MCLR ou le signal de réinitialisation du temporisateur WDT. Nous vous recommandons de vérifier cet indicateur WRERR et, si nécessaire, d'écraser les données dont les données et l'adresse sont stockées dans les registres EEDATA et EEADR.

WRERR - Indicateur d'erreur d'écriture.

WRERR = 1 : le drapeau est activé lorsqu'une opération d'écriture est abandonnée par le signal de réinitialisation /MCLR (en mode normal ou en mode SLEEP) ou par le signal de réinitialisation WDT en mode normal.

Le drapeau EEIF est défini lorsque l'automate embarqué termine l'écriture dans la mémoire de données. Il doit être réinitialisé par logiciel.

EEIF - Indicateur d'achèvement d'écriture.

EEIF = 1 : le drapeau est défini lorsque l'écriture est terminée. Le bit de validation d'interruption correspondant est EEIE dans le registre INTCON.

Organisation des interruptions

Les interruptions dans le PIC16C84 peuvent provenir de quatre sources :

- interruption externe de la broche RB0/INT,

- Interruption de débordement compteur/timer RTCC,

- interruption à la fin de l'écriture des données dans l'EEPROM

- interruption du changement des signaux sur les broches du port RB<7:4>.

Toutes les interruptions ont le même vecteur/adresse - 0004h. Cependant, dans le registre de contrôle d'interruption INTCON, il est écrit : - de quelle source la demande d'interruption a été reçue. Écrit par le bit-flag correspondant. Une telle interruption peut être masquée individuellement ou par un bit commun. La seule exception est l'interruption de fin d'écriture EEPROM. Ce drapeau est dans un autre registre EECON1.

Le bit GIE General Interrupt Enable/Disable (INTCON <7>) active (si=1) toutes les interruptions démasquées individuellement ou les désactive (si=0). Chaque interruption peut en outre être activée/désactivée en définissant/effaçant le bit correspondant dans le registre INTCON. Le bit GIE est mis à zéro lors de la réinitialisation. Lorsqu'une interruption est traitée, le bit GIE est mis à zéro pour désactiver d'autres interruptions, l'adresse de retour est poussée sur la pile et l'adresse 0004h est chargée dans le compteur de programme. Le temps de réponse d'interruption pour les événements externes, comme une interruption de la broche INT ou du port B, est d'environ cinq cycles. C'est un cycle de moins que pour les événements internes tels qu'une interruption de débordement du temporisateur RTCC. Le temps de réaction est toujours le même. Dans un gestionnaire d'interruptions, la source de l'interruption peut être déterminée par le bit correspondant dans le registre des drapeaux. Ce bit d'indicateur doit être réinitialisé par logiciel dans un sous-programme. Les drapeaux de demande d'interruption sont indépendants des bits de masque correspondants et du bit de masque général GIE.

L'instruction de retour d'interruption RETFIE termine la routine d'interruption et positionne le bit GIE pour activer à nouveau les interruptions.

Registre des requêtes et des masques

Registre de contrôle d'interruption et ses bits

Microcontrôleur PIC16C84. Brève description

Adresse : 0bh

Valeur au reset= 0000 000 ?

RBIF - Modifier l'indicateur d'interruption sur le port RB.

Le drapeau est activé lorsque le signal à l'entrée RB<7:4> change.

L'indicateur est réinitialisé par programmation.

INTF - Indicateur d'interruption INT.

Le drapeau est défini lorsque la broche INT reçoit un signal d'une source d'interruption externe. Réinitialisation par logiciel.

RTIF - Indicateur d'interruption de débordement RTCC.

Le drapeau est défini lorsque RTCC déborde.

L'indicateur est réinitialisé par programmation.

RBIE - Bit d'activation/désactivation d'interruption RBIF.

RBIE = 0 : désactiver l'interruption RBIE

RBIE = 1 : active l'interruption RBIE

INTE - Bit activer/désactiver l'interruption INT.

INTE = 0 : désactiver l'interruption INT

INTE = 1 : active l'interruption INT

Bit d'activation/désactivation d'interruption RTIE RTIF.

RTIE = 0 : désactiver l'interruption RTIE

RTIE = 1 : active l'interruption RTIE

EEIE - Bit d'activation/désactivation d'interruption d'écriture EEPROM.

EEIE = 0 : désactiver l'interruption EEIF

EEIE = 1 : active l'interruption EEIF

GIE Bit d'activation/désactivation de toutes les interruptions.

GIE = ​​​​0 : désactiver les interruptions

GIE = 1 : active les interruptions

Il se réinitialise automatiquement dans les circonstances suivantes :

- allumer.

- par signal externe /MCLR en fonctionnement normal.

- par signal externe /MCLR en mode SLEEP.

- à la fin de la temporisation WDT en fonctionnement normal.

- à la fin de la temporisation WDT en mode SLEEP.

Interruption externe

Une interruption externe sur la broche RB0/INT est déclenchée soit sur un front montant (si bit6 INTEDG=1 dans le registre OPTION) soit sur un front descendant (si INTEDG=0). Lorsqu'un front montant est détecté sur la broche INT, le bit de requête INTF est activé (INTCON <1>). Cette interruption peut être masquée en mettant le bit de commande INTE à zéro (INTCON <4>). Le bit de requête INTF doit être effacé par le programme d'interruption avant que l'interruption puisse être réactivée. Une interruption INT peut réveiller le processeur du mode SLEEP si le bit INTE était défini sur un avant d'entrer dans ce mode.

L'état du bit GIE détermine également si le processeur passera à la routine d'interruption après être sorti du mode SLEEP.

Interruption RTCC

Un débordement du compteur RTCC (FFh->00h) positionnera le bit de requête RTIF (INTCON<2>). Cette interruption peut être activée/désactivée en définissant/effaçant le bit de masque RTIE (INTCON<5>). La réinitialisation de la requête RTIF appartient au programme de traitement.

Interruption du port RB

Toute modification des signaux sur les quatre entrées du port RB<7:4> activera le bit RBIF (INTCON<0>). Cette interruption peut être activée/désactivée en définissant/effaçant le bit de masque RBIE (INTCON<3>). La réinitialisation de la requête RBIF dépend du programme de traitement.

Interruption EEPROM

L'indicateur de demande d'interruption de fin d'écriture EEPROM, EEIF (EECON1<4>), est défini lorsque l'écriture automatique des données dans l'EEPROM est terminée. Cette interruption peut être masquée en réinitialisant le bit EEIE (INTCON<6>). La réinitialisation de la demande EEIF incombe au gestionnaire.

Vue d'ensemble des registres/ports

Le cristal possède deux ports : un port RA 5 bits et un port RB 8 bits avec un réglage individuel bit par bit pour l'entrée ou la sortie.

Diagramme de ligne du port A

Le port A est un port large de 5 bits, correspondant aux broches de la puce RA<4:0>. Les lignes RA<3:0> sont bidirectionnelles et la ligne RA4 est une sortie à drain ouvert. L'adresse de registre du port A est 05h. Le registre de contrôle TRISA du port A est situé sur la première page des registres à l'adresse 85h. TRISA<4:0> est un registre large de 5 bits. Si un bit dans le registre de contrôle TRISA est mis à un, alors la ligne correspondante sera mise en entrée. Zéro commute la ligne en sortie et lui envoie simultanément le contenu du registre de verrouillage correspondant. Ci-dessous le schéma des ports RA0..RA3

Microcontrôleur PIC16C84. Brève description
Microcontrôleur PIC16C84. Brève description

Microcontrôleur PIC16C84. Brève description

Schéma de ligne du port B

Le port B est un port bidirectionnel, large de huit bits (adresse de registre 06h). Concernant le port B, le registre de contrôle TRISB est situé sur la première page des registres à l'adresse 86h. Si le bit de commande TRISB du registre est mis à un, alors la ligne correspondante sera mise en entrée. Zéro commute la ligne en sortie et lui envoie simultanément le contenu du registre de verrouillage correspondant. Chaque broche du port B a une petite charge résistive (environ 100µA) sur la ligne d'alimentation. Elle est automatiquement désactivée si cette broche est programmée comme sortie. De plus, le bit de commande RBPU OPTION<7> peut désactiver (RBPU=1) toutes les charges. Une réinitialisation à la mise sous tension éteint également toutes les charges.

Les quatre lignes du port B (RB<7:4>) ont la capacité de provoquer une interruption lorsque la valeur du signal change sur l'une d'elles. Si ces lignes sont configurées pour l'entrée, elles sont interrogées et verrouillées dans la boucle de lecture Q1. La nouvelle valeur du signal d'entrée est comparée à l'ancienne valeur dans chaque cycle d'instruction. Si la valeur du signal sur la jambe et dans la bascule ne correspond pas, un niveau haut est généré. Les sorties des détecteurs "mismatch" RB4, RB5, RB6, RB7 sont ORed et génèrent une interruption RBIF (stockée dans INTCON<0>). Toute ligne configurée en sortie ne participe pas à cette comparaison. Une interruption peut réveiller le cristal du mode SLEEP. Dans le gestionnaire d'interruptions, réinitialisez la demande d'interruption de l'une des manières suivantes :

1) Désactivez les interruptions en effaçant le bit RBIE INTCON<3>.

2) Lire le port B. Cela mettra fin à l'état de comparaison.

3) Effacer le bit RBIF INTCON<0>.

Les interruptions de non-concordance et les charges actives internes configurables par logiciel sur ces quatre lignes peuvent fournir une interface simple, telle qu'un clavier, avec un réveil par frappe à partir du mode VEILLE. Le segment RB0 est combiné avec l'entrée d'interruption externe INT.

Nom

Microcontrôleur PIC16C84. Brève description

Problèmes de ports

Problèmes lors de l'organisation des ports bidirectionnels

-Certaines commandes sont exécutées en interne en lecture + écriture. Par exemple, les instructions BCF et BSF lisent le port entier, modifient un bit et renvoient le résultat. C'est là que la prudence s'impose. Par exemple, l'instruction BSF pour le bit 5 du registre f6 (port B) lit d'abord les huit bits. Le bit 5 est alors manipulé et la nouvelle valeur de l'octet est écrite dans son intégralité dans les bascules de sortie. Si un autre bit du registre f6 utilise i comme E/S bidirectionnelle (disons le bit 0) et est actuellement défini comme entrée, l'entrée sur cette broche sera lue et réécrite dans le verrou de sortie de cette broche, écrasant son état précédent.

Tant que cette broche reste en mode d'entrée, aucun problème ne se pose. Cependant, si la ligne 0 passe ultérieurement en mode sortie, son état sera indéfini.

Les sources de courant externes ("montage ET", "montage OU") ne doivent pas "s'appuyer" sur la jambe fonctionnant en mode sortie. Les courants importants qui en résultent peuvent endommager le cristal.

Accès série aux ports d'E/S

L'écriture sur le port de sortie se produit à la fin du cycle de commande. Mais lors de la lecture, les données doivent être stables au début du cycle d'instruction. Soyez prudent avec les lectures qui suivent immédiatement les écritures sur le même port. Il faut ici tenir compte de l'inertie d'établissement de la tension aux bornes. Un délai logiciel peut être nécessaire pour permettre à la tension sur la broche (en fonction de la charge) de se stabiliser avant l'exécution de la prochaine commande de lecture.

Vue d'ensemble des commandes et des symboles

Chaque commande PIC16C84 est un mot de 14 bits, qui est divisé par sens en les parties suivantes : - 1. code opération, -2. un champ pour un ou plusieurs opérandes qui peuvent ou non participer à cette instruction. Le jeu d'instructions PIC16C84 comprend des instructions orientées octet, des instructions orientées bit, des opérations constantes et des instructions de transfert de contrôle.

Pour les commandes orientées octet, "f" désigne le registre sur lequel agir ; "d" - bit détermine où mettre le résultat. Si "d"=0 alors le résultat sera placé dans le registre W, avec "d"=1 le résultat sera placé dans le "f" mentionné dans la commande. Pour les instructions orientées bit, "b" indique le numéro du bit impliqué dans l'instruction, et "f" est le registre dans lequel se trouve ce bit.

Pour les commandes de transfert et les opérations constantes, "k" désigne une constante de huit ou onze bits.

Toutes les commandes sont exécutées dans un cycle de commande. Dans deux cas, l'exécution de l'instruction prend deux cycles d'instruction : -1. vérification de l'état et saut, -2.changer le compteur de programme en conséquence

exécution de la commande. Un cycle de commande se compose de quatre périodes du générateur. Ainsi, pour un oscillateur 4 MHz, le temps d'exécution du cycle de commande sera de 1 µs.

Commandes orientées octet

Microcontrôleur PIC16C84. Brève description

Commandes orientées bits

Microcontrôleur PIC16C84. Brève description

Les transitions

Microcontrôleur PIC16C84. Brève description

Remarques et explications

Remarque 1 : Les commandes TRIS et OPTION ont été placées dans la liste des commandes pour la compatibilité avec la famille PIC16C5X. Leur utilisation est déconseillée. Sur le PIC16C84, les registres TRIS et OPTION sont en lecture/écriture comme des registres numérotés réguliers. Soyez averti que ces commandes peuvent ne pas être prises en charge dans les développements futurs du PIC16CXX. Remarque 2 : lorsqu'un registre d'E/S est modifié, tel que MOVF 6,1, la valeur utilisée pour la modification est lue directement à partir des broches de la puce. Si la valeur de verrouillage de sortie pour une broche programmée pour la sortie est "1", mais que le signal externe sur cette broche est "0" en raison d'un "gonflement" à l'extérieur, alors "0" sera lu. Remarque 3 : Si l'opérande de cette instruction est le registre f1 (et d=1 si autorisé), alors le diviseur, s'il est connecté à RTCC, sera mis à zéro.

Conditions de réinitialisation

Dans le PIC16C84, il existe des différences entre les options de réinitialisation :

1) Réinitialisation à la mise sous tension.

2) Reset externe /MCLR en fonctionnement normal.

3) Reset externe /MCLR en mode SLEEP.

4) Remise à zéro à la fin de la temporisation WDT pendant le fonctionnement normal.

5) Remise à zéro à la fin de la temporisation WDT en mode SLEEP.

Certains des registres spéciaux ne sont pas initialisés lors de la réinitialisation. Ils ont un état aléatoire à la mise sous tension et ne changent pas avec d'autres types de réinitialisations. L'autre partie des registres spéciaux est initialisée à "l'état de réinitialisation" pour tous les types de réinitialisations, à l'exception de la réinitialisation à la fin de la temporisation WDT en mode SLEEP. C'est juste que cette réinitialisation est considérée comme un retard temporaire dans le fonctionnement normal. Il y a quelques autres exceptions. Le compteur de programme est toujours remis à zéro (0000h). Les bits d'état TO et PD sont activés ou désactivés en fonction de l'option de réinitialisation. Ces bits sont utilisés par le logiciel pour déterminer la nature de la réinitialisation. Leurs valeurs après réinitialisation sont données dans le tableau. L'état des registres après réinitialisation est présenté dans le tableau. Les notations y sont acceptées : i-ne change pas, x - inconnu, - non exécuté, lu comme `0`. ? - sera défini à la fin de l'écriture dans l'EEPROM

Microcontrôleur PIC16C84. Brève description

Algorithme de réinitialisation à la mise sous tension

Le cristal PIC16C84 possède un détecteur de mise sous tension intégré. La minuterie de démarrage commence à compter le délai après que la tension d'alimentation a franchi le niveau d'environ 1,2 à 1,8 volts. Après un délai d'environ 72ms, on considère que la tension a atteint sa valeur nominale et une autre demi-durée est entamée pour stabiliser l'oscillateur à quartz. Un bit de configuration programmable vous permet d'activer ou de désactiver le délai du temporisateur de démarrage intégré. Le temps de démarrage varie selon les instances de cristal, la puissance et la température. Voir les spécifications CC.

La minuterie de stabilisation du générateur compte 1024 impulsions du générateur qui a commencé à fonctionner. On pense que l'oscillateur à quartz est entré dans le mode pendant ce temps. Lors de l'utilisation de générateurs RC, l'exposition à la stabilisation n'est pas effectuée.

Le temporisateur externe de réinitialisation /MCLR est alors activé. Ceci est nécessaire dans les cas où il est nécessaire de lancer de manière synchrone plusieurs contrôleurs PIC via le signal /MCLR commun à tous. Si un tel signal n'est pas reçu, alors après le temps Tost, un signal de réinitialisation interne est généré et le contrôleur commence à exécuter le programme. Le temps Tost est programmé par les bits de configuration dans l'EEPROM. Il y a un problème ici où Vdd augmente trop lentement et tous les retards sont au démarrage, et la puissance n'a pas encore atteint sa valeur de santé minimale Vdd(min). Dans de tels cas, nous vous recommandons d'utiliser des chaînes RC externes pour réinitialiser sur /MCLR. Ci-dessous une chaîne

Microcontrôleur PIC16C84. Brève description

Ici, vous pouvez utiliser une diode pour décharger rapidement le condensateur lorsque l'alimentation est coupée. Une résistance R < 40 kΩ est recommandée, alors pas plus de 0,2 V ne tombera dessus. résistance de 100 ohms

Minuterie Watch Dog

Le temporisateur chien de garde est un générateur RC intégré complètement indépendant qui ne nécessite aucun circuit externe. Il fonctionnera même si l'oscillateur principal est arrêté, comme c'est le cas avec une instruction SLEEP. La minuterie génère un signal de réinitialisation. La génération de telles réinitialisations peut être désactivée en écrivant un zéro dans un bit de configuration WDTE spécial. Cette opération est réalisée au stade de la gravure des microcircuits.

Retard WDT

Le retard WDT nominal est de 18 ms (sans l'utilisation d'un diviseur). Cela dépend de la température, de la tension d'alimentation, des caractéristiques des types de microcircuits. Si des retards importants sont nécessaires, un diviseur intégré avec un rapport de division allant jusqu'à 1:128 peut être connecté au WDT ; qui est programmé en écrivant dans le registre OPTION. Des expositions jusqu'à 2.5 secondes peuvent être réalisées ici.

Les commandes "CLRWDT" et "SLEEP" réinitialisent le WDT et le diviseur s'il est connecté au WDT. Cela démarre le délai depuis le début et empêche la génération du signal de réinitialisation pendant un certain temps. Si le signal de réinitialisation du WDT se produit, le bit "TO" dans le registre d'état (f3) est réinitialisé en même temps. Dans les applications à bruit élevé, le contenu du registre OPTION est susceptible de tomber en panne. Par conséquent, le registre OPTION doit être mis à jour à intervalles réguliers.

Il convient de noter que la pire combinaison est : Vdd=min, température=max et facteur de division max - cela conduit au délai le plus long, il peut aller jusqu'à plusieurs secondes.

Types de générateur

Les cristaux PIC16C84 peuvent fonctionner avec quatre types d'oscillateurs intégrés. L'utilisateur peut programmer deux bits de configuration (FOSC1 et FOSC0) pour sélectionner l'un des quatre modes : RC, LP, XT, HS.

Les cristaux PIC16... peuvent également être cadencés à partir de sources externes. Un oscillateur construit sur des résonateurs à quartz ou céramique nécessite une période de stabilisation après la mise sous tension. Pour ce faire, le temporisateur de démarrage de l'oscillateur intégré maintient l'appareil dans l'état de réinitialisation pendant environ 18 ms après que le signal sur la broche de la puce /MCLR ait atteint un logique. Ainsi, une chaîne RC externe associée à /MCLR n'est pas nécessaire dans de nombreux cas.

Les générateurs intégrés fonctionnent à certaines valeurs nominales de la tension d'alimentation :

Microcontrôleur PIC16C84. Brève description

ATTENTION! À des fréquences inférieures à 500 kHz, l'oscillateur interne peut générer une impulsion harmonique défectueuse lors de la commutation du bit 0 du port A. Cela ne se produit pas lors de l'utilisation d'un oscillateur externe ou avec l'oscillateur RC intégré.

Générateur à quartz

Les PIC16C84-XT, -HS ou -LP nécessitent qu'un résonateur en cristal ou en céramique soit connecté aux broches OSC1 et OSC2.

Microcontrôleur PIC16C84. Brève description

Les marquages ​​sont les suivants : XT - oscillateur à cristal standard, HS - oscillateur à cristal haute fréquence, LP - oscillateur basse fréquence pour les applications économiques. La résistance Rs peut être nécessaire pour l'oscillateur "HS", en particulier en dessous de 20 MHz pour amortir les harmoniques. Il peut également être nécessaire en mode XT avec un résonateur AT strip-cut. Le choix des condensateurs pour un résonateur céramique.

Microcontrôleur PIC16C84. Brève description

Une capacité plus élevée augmentera la stabilité du générateur, mais augmentera également le temps de démarrage. Les valeurs sont données à titre indicatif. Dans les modes HS et XT, une résistance série Rs peut être nécessaire pour éviter les harmoniques.

générateur RC.

Lorsque la vitesse et la précision de la synchronisation ne sont pas requises, un cristal OTP tel que le PIC16C84-RC permet d'économiser de l'argent et implémente un simple oscillateur RC.

Microcontrôleur PIC16C84. Brève description

La fréquence est fonction de la tension d'alimentation, de la résistance Rext, du condensateur Cext et de la température. De plus, la fréquence de l'oscillateur variera légèrement d'un lot à l'autre. La fréquence de génération est affectée par la capacité intrinsèque du boîtier cristallin, son influence est perceptible pour les petites valeurs de Cext. La dérive des éléments R et C doit également être prise en compte. Pour les valeurs Rext inférieures à 2.2 kΩ, le générateur peut être instable ou ne pas démarrer. À des valeurs très élevées de Rext (par exemple 1 MΩ), le générateur devient sensible aux interférences, à l'humidité et aux fuites de courant de l'installation.

La valeur Rext recommandée est comprise entre 5 kΩ et 100 kΩ. Bien que l'oscillateur puisse fonctionner sans condensateur externe (Cext = 0), nous recommandons d'utiliser une capacité supérieure à 20 pF pour augmenter la stabilité. Avec peu ou pas de Cext, la fréquence de l'oscillateur dépend fortement des capacités de montage. L'étalement sera d'autant plus grand que la valeur de R est grande (et que la valeur de C est petite (puisque dans ce cas, l'effet du montage des capacités est plus prononcé).

La fréquence de l'oscillateur divisée par 4 est présente sur la broche OSC2/CLKOUT et peut être utilisée à des fins de test ou de synchronisation pour d'autres circuits.

excitation externe

Microcontrôleur PIC16C84. Brève description

Registre des OPTIONS

Le registre OPTION (adresse 81h) est disponible en lecture et en écriture et contient différents bits de contrôle qui déterminent la configuration du limiteur auquel il est connecté : à RTCC ou WDT, le signe du front de l'interruption externe INT et le signal externe pour RTCC, la connexion d'une charge active sur le port RB.

Enregistrez OPTION Adresse 81h

Valeur de mise sous tension = FFH

Microcontrôleur PIC16C84. Brève description

PSA - Bit reliant le diviseur à : 0 - RTCC

1-WDT

RTE - Front du signal RTCC externe :

0 - incrément du front montant sur la broche RTCC

1 - incrément de front négatif sur la broche RTCC

RTS - Source de signal pour RTCC

0 - signal du générateur interne

1 - Signal externe sur branche RTCC

INTEDG - Front de signal INT :

0 - interruption sur un front négatif sur la broche INT

1 - interruption du front positif sur la broche INT

/RBPU - Bit de connexion de charge active inversé au port B.

/RBPU = 0 : les charges actives seront connectées selon l'algorithme du port RB

/RBPU = 1 : les charges actives du port B sont toujours désactivées

Connexions du diviseur de fréquence

Le même compteur à huit bits peut être activé soit avant le RTCC, soit après le temporisateur Watchdog. Notez que le diviseur ne fonctionne qu'avec l'un de ces appareils. Nous le répétons, si le diviseur fonctionne avec RTCC, cela signifie qu'il ne fonctionne pas pour le moment avec la minuterie Watchdog et vice versa. Le schéma d'activation du compteur (voir RTCC:RTCC}. Les bits PSA et PS0-PS2 du registre OPTION déterminent avec quel appareil le diviseur fonctionne et le réglage du facteur de division. Lorsque le diviseur est connecté à RTCC, toutes les commandes qui écrivent sur RTCC ( ex., CLRF 16 MOVWF 1, BSF 1,x... etc.) réinitialisera le diviseur. Lorsqu'il est connecté au temporisateur Watchdog, le limiteur et le temporisateur Watchdog réinitialiseront la commande CLRWDT. contrôlable Ci-dessous un fragment du programme de passage de RTCC à WDT

1. MOVLW B`xx0x0xxx` ;sélectionner l'horloge interne et une nouvelle valeur pour le diviseur. Si la nouvelle valeur du diviseur ; est

2. OPTION ;`000` ou `001`, alors vous devez temporairement sélectionner ;une autre valeur de diviseur.

3. CLRF 1 ; réinitialiser RTCC et diviseur.

4. MOVLW B`xxxx1xxx` ;sélectionnez WDT sans modifier la valeur du diviseur.

5.OPTION

6. CLRWDT ; réinitialiser WDT et diviseur.

7. MOVLW B`xxxx1xxx` ;sélectionnez une nouvelle valeur pour le diviseur.

8.OPTION

Les éléments 1 et 2 ne sont requis que lorsqu'une source d'impulsions externe a été connectée au RTCC. Les items 7 et 8 sont requis lorsque le coefficient

la division doit être définie sur '000' ou '001'.

Commutation du répartiteur de WDT à RTCC

1. CLRWDT ; réinitialiser WDT et diviseur.

2. MOVLW B`xxxx0xxx` ;sélectionnez RTCC, nouvelle valeur pour le diviseur ;source du signal.

3. OPTION Ces programmes doivent être utilisés même si WDT est désactivé.

Mot de configuration

Le cristal PIC16C84 a cinq bits de configuration qui sont stockés dans l'EEPROM et sont définis pendant la phase de programmation de la puce. Ces bits peuvent être programmés (lu comme « 0 ») ou laissés non programmés (lu comme « 1 ») pour sélectionner l'option de configuration de périphérique appropriée. Ces bits sont situés en mémoire EEPROM à l'adresse 2007h. L'utilisateur doit se rappeler que cette adresse se trouve sous la zone de code et n'est pas disponible pour le programme. Cellule EEPROM de configuration.

Microcontrôleur PIC16C84. Brève description

CP - Bit de protection du code.

CP = 1 : code de sécurité désactivé

CP = 0 : code de sécurité activé

Les bits restants du mot ne sont pas utilisés et sont lus comme des uns.

étiquette individuelle

Le cristal PIC16C84 a quatre mots situés à (2000h-2003h) Ceux-ci sont utilisés pour stocker le code d'identification de l'utilisateur (ID), la somme de contrôle ou d'autres informations. Comme le mot de configuration, ils ne peuvent être lus ou écrits que par le programmeur. Il n'y a pas d'accès au programme pour eux. Si le cristal est protégé, il est conseillé à l'utilisateur d'utiliser uniquement les sept bits inférieurs de chaque ID de mot pour l'identification et d'écrire « 0 » au bit le plus significatif. Ensuite, le mot ID peut être lu même dans une version protégée.

Protection des programmes contre la lecture

Le code de programme qui est écrit sur la puce peut être protégé en lecture en mettant le bit de protection (CP) dans le mot de configuration à zéro. Le contenu du programme ne peut pas être lu de telle manière qu'il puisse être travaillé avec. De plus, lorsque le bit de protection est activé, il devient impossible de changer de programme. Il en va de même pour le contenu de la mémoire de données EEPROM.

Si la protection est activée, le bit CP ne peut être effacé qu'avec le contenu du cristal. La mémoire de programme EEPROM et la mémoire de données seront effacées en premier, et enfin le bit de protection du code CP.

Vérification d'un cristal avec protection installée. Lors de la lecture d'une puce protégée, la lecture de n'importe quelle adresse mémoire donnera un résultat similaire à 0000000XXXXXXX (binaire), où X est 0 ou 1. Pour vérifier l'intégrité de la mémoire dans une puce protégée, suivez les règles :

1) programmer et vérifier le fonctionnement d'un cristal de travail.

2) définir la protection du code programme et lire le contenu de la mémoire programme dans le fichier de référence.

3) Vérifier toute puce protégée en comparant sa mémoire programme avec le contenu de ce benchmark.

La mémoire de données EEPROM ne peut pas être vérifiée après la définition du bit de sécurité.

Mode basse consommation

Le mode SLEEP est entré par la commande SLEEP. Avec cette commande, si le WDT est activé, il est réinitialisé et démarre la synchronisation, le bit "PD" dans le registre d'état (f3) est réinitialisé, le bit "TO" est défini et l'oscillateur interne est désactivé. Les ports d'E/S conservent l'état qu'ils avaient avant d'entrer en mode SLEEP. Pour réduire la consommation de courant dans ce mode, les broches doivent être réglées de sorte qu'aucun courant ne circule entre le cristal et les circuits externes. Les broches d'entrée doivent être connectées à des résistances externes hautes ou basses pour éviter les courants de commutation provoqués par des entrées flottantes à haute résistance. Il en va de même pour le RTCC. La jambe /MCLR doit être alimentée par Vihmc.

La sortie du mode SLEEP s'effectue à la suite des événements suivants :

1. Réinitialisation externe - impulsion de niveau bas sur la broche /MCLR.

2. Réinitialiser lorsque WDT est déclenché (si activé)

3. Interruptions. (Interruption sur la broche INT, interruption sur le changement du port B, interruption à la fin de l'écriture des données EEPROM).

Le premier événement réinitialise l'ensemble de l'appareil. Les deux autres événements suggèrent que le programme continue de fonctionner. Le bit "PD" du registre d'état (f3), mis à XNUMX à la mise sous tension mais réinitialisé par la commande "SLEEP", permet de connaître l'état du processeur avant le "réveil" : soit le processeur était en le mode "SLEEP" (démarrage à chaud), ou il était juste hors tension (démarrage à froid). Le bit "TO" permet de déterminer ce qui a provoqué la sortie du mode SLEEP : soit un signal externe sur la broche /MCLR, soit le fonctionnement du WDT.

Pour qu'un appareil sorte du mode SLEEP via une interruption, l'interruption doit être activée en définissant le masque approprié dans le registre INTCON. A la sortie du mode SLEEP, le programme d'arrière-plan sera exécuté si le masque général désactive toutes les interruptions (GIE=0). Si GIE=1, alors la routine d'interruption sera exécutée.

Valeurs maximales des paramètres électriques

Les paramètres en dehors de ces limites peuvent endommager la puce. Faire fonctionner le cristal à ses valeurs limites pendant une longue période affectera sa fiabilité.

Microcontrôleur PIC16C84. Brève description

Notes:

1. La dissipation de puissance totale ne doit pas dépasser 800 mW pour chaque boîtier. La puissance dissipée est calculée selon la formule suivante :

Pdis= Vdd(Idd - Somme(Ioh)) + Somme ((Vdd - Voh)Ioh) + Somme (Vol Iol)

2. La chute de la tension sur la broche /MCLR en dessous de Vss (masse) induira des courants élevés, supérieurs à 80 mA, et peut endommager cette ligne. Par conséquent, nous vous recommandons d'appliquer des signaux à la broche /MCLR via une résistance de terminaison de 50 à 100 ohms.

Paramètres CC

Spécifications CC : PIC16C84-04, PIC16C84-10.

(Pour les performances commerciales, industrielles, automobiles).

MEMEC BALTIC Ltd. est membre de Memec International Components Group et de Raab Karcher Electronics Group. Ce groupe de distributeurs de composants électroniques est un leader dans la distribution des dernières technologies électroniques et des composants semi-conducteurs.

MEMEC BALTIC Ltd. représente le groupe de sociétés MEMEC et est le distributeur officiel de Microchip et Raychem en Russie, en Ukraine, en Biélorussie et dans les pays baltes.

MEMEC BALTIQUE Ltée.

Publication : N. Bolchakov, rf.atnn.ru

Voir d'autres articles section microcontrôleurs.

Lire et écrire utile commentaires sur cet article.

<< Retour

Dernières nouvelles de la science et de la technologie, nouvelle électronique :

Machine pour éclaircir les fleurs dans les jardins 02.05.2024

Dans l'agriculture moderne, les progrès technologiques se développent visant à accroître l'efficacité des processus d'entretien des plantes. La machine innovante d'éclaircissage des fleurs Florix a été présentée en Italie, conçue pour optimiser la phase de récolte. Cet outil est équipé de bras mobiles, lui permettant de s'adapter facilement aux besoins du jardin. L'opérateur peut régler la vitesse des fils fins en les contrôlant depuis la cabine du tracteur à l'aide d'un joystick. Cette approche augmente considérablement l'efficacité du processus d'éclaircissage des fleurs, offrant la possibilité d'un ajustement individuel aux conditions spécifiques du jardin, ainsi qu'à la variété et au type de fruits qui y sont cultivés. Après avoir testé la machine Florix pendant deux ans sur différents types de fruits, les résultats ont été très encourageants. Des agriculteurs comme Filiberto Montanari, qui utilise une machine Florix depuis plusieurs années, ont signalé une réduction significative du temps et du travail nécessaires pour éclaircir les fleurs. ...>>

Microscope infrarouge avancé 02.05.2024

Les microscopes jouent un rôle important dans la recherche scientifique, car ils permettent aux scientifiques d’explorer des structures et des processus invisibles à l’œil nu. Cependant, diverses méthodes de microscopie ont leurs limites, parmi lesquelles la limitation de la résolution lors de l’utilisation de la gamme infrarouge. Mais les dernières réalisations des chercheurs japonais de l'Université de Tokyo ouvrent de nouvelles perspectives pour l'étude du micromonde. Des scientifiques de l'Université de Tokyo ont dévoilé un nouveau microscope qui va révolutionner les capacités de la microscopie infrarouge. Cet instrument avancé vous permet de voir les structures internes des bactéries vivantes avec une clarté étonnante à l’échelle nanométrique. En général, les microscopes à infrarouge moyen sont limités par leur faible résolution, mais le dernier développement des chercheurs japonais surmonte ces limitations. Selon les scientifiques, le microscope développé permet de créer des images avec une résolution allant jusqu'à 120 nanomètres, soit 30 fois supérieure à la résolution des microscopes traditionnels. ...>>

Piège à air pour insectes 01.05.2024

L'agriculture est l'un des secteurs clés de l'économie et la lutte antiparasitaire fait partie intégrante de ce processus. Une équipe de scientifiques du Conseil indien de recherche agricole et de l'Institut central de recherche sur la pomme de terre (ICAR-CPRI), à Shimla, a mis au point une solution innovante à ce problème : un piège à air pour insectes alimenté par le vent. Cet appareil comble les lacunes des méthodes traditionnelles de lutte antiparasitaire en fournissant des données en temps réel sur la population d'insectes. Le piège est entièrement alimenté par l’énergie éolienne, ce qui en fait une solution respectueuse de l’environnement qui ne nécessite aucune énergie. Sa conception unique permet la surveillance des insectes nuisibles et utiles, fournissant ainsi un aperçu complet de la population dans n'importe quelle zone agricole. "En évaluant les ravageurs cibles au bon moment, nous pouvons prendre les mesures nécessaires pour lutter à la fois contre les ravageurs et les maladies", explique Kapil. ...>>

Nouvelles aléatoires de l'Archive

Découverte de l'objet le plus éloigné du système solaire 22.12.2018

Une équipe d'astronomes de la Carnegie Institution, de l'Université d'Hawaï et de la Northern Arizona University (États-Unis) a découvert le corps le plus éloigné jamais observé dans notre système solaire. Le corps est une planète naine, plus de 100 fois la distance entre la Terre et le Soleil, selon la Carnegie Institution.

L'objet a été nommé 2018 VG18 et surnommé "Farout" ("distant" - de l'anglais). Son "foyer" est situé à une distance du Soleil d'environ 120 unités astronomiques (UA, UA), d'où 1 UA. définie comme la distance entre la Terre et le Soleil. Le deuxième objet observable le plus éloigné du système solaire est la planète naine Eris : ses "coordonnées" sont 96 UA. En taille, il est considéré comme le deuxième après Pluton, qui, soit dit en passant, est situé à une distance d'environ 34 UA.

Maintenant, les scientifiques ne peuvent pas dire exactement sur quelle orbite 2018 VG18 se déplace. Il n'y a qu'une supposition : parce que la planète naine est si loin, elle tourne très lentement - et il faut probablement plus de 1000 ans pour accomplir une révolution autour du Soleil.

Les premières images de l'objet le plus éloigné du système solaire ont été prises le 10 novembre dernier par le télescope japonais Subaru de 8 mètres, situé au sommet du Mauna Kea à Hawaï. Farout a été vu pour la deuxième fois début décembre avec le télescope de Magellan à l'observatoire de Las Campanas (Chili).

2018 VG18 a été découvert lors de la recherche par des scientifiques d'objets extrêmement éloignés dans le système solaire - y compris "Planet X", parfois aussi appelé "Planet 9". En octobre, la même équipe de recherche a annoncé avoir trouvé un autre objet lointain du système solaire, 2015 TG387, surnommé "Goblin". Il a reçu ce surnom parce qu'il a été vu pour la première fois à Halloween. La distance du Soleil au Gobelin est d'environ 80 UA.

Autres nouvelles intéressantes :

▪ Début des livraisons d'échantillons de mémoire magnétorésistive ST-MRAM

▪ Capteurs de champ magnétique numériques de Texas Instruments

▪ Verre en aluminium résistant

▪ carpes musicales

▪ Le nouvel alliage n'est pas pire que le titane, mais moins cher

Fil d'actualité de la science et de la technologie, nouvelle électronique

 

Matériaux intéressants de la bibliothèque technique gratuite :

▪ rubrique du site Art vidéo. Sélection d'articles

▪ article d'Antoine de Rivarol. Aphorismes célèbres

▪ Comment le verre est-il soufflé ? Réponse détaillée

▪ chronométreur de l'article. Description de l'emploi

▪ article Soudage - au choix. Encyclopédie de l'électronique radio et de l'électrotechnique

▪ article Alimentation avancée sur la puce UCC28810 pour lampes LED. Encyclopédie de l'électronique radio et de l'électrotechnique

Laissez votre commentaire sur cet article :

Nom:


E-mail (facultatif) :


commenter:





Toutes les langues de cette page

Page principale | bibliothèque | Articles | Plan du site | Avis sur le site

www.diagramme.com.ua

www.diagramme.com.ua
2000-2024