Archives du mot-clé : 16f628

Platine électronique UART – I2C

 … Retour à la présentation du projet

Cet article présente le schéma électronique détaillé de la platine UART <=> I2C.

Ce schéma pourra servir à ceux qui souhaitent réaliser et mettre en œuvre cette platine pour PIC16 basée sur un pic16f628a dont le programme est disponible dans l’espace de téléchargement.

 

Figure 1-1 – Schéma détaillé de la Platine

 

Schéma électronique détaillé de la Platine pour PIC16

Sur le schéma électronique représenté ci-contre et réalisé avec le logiciel KiCad vous noterez :

1. L’universalité de la platine dans la mesure où d’autres périphériques I2C peuvent y être adjoints pourvu qu’il n’y ait pas de collision de définition des adresses de ces périphériques.

2. L’interface UART en +5 Volts sans adaptateur RS-232 inutile dans le cas d’une utilisation d’un Câble USB/Série ou de la Passerelle USB/série BOB-FT232R proposée par la revue Elektor.

3. La mise à disposition d’un connecteur ICSP™ avec les 3 signaux MCLR/, PGC et PGD permettant de programmer le PIC in-situ.

4. La présence d’un unique bouton SWITCH, hormis celui du RESET de la platine et de 3 Leds permettant de suivre l’évolution du programme comme suit et détaillée dans le source du programme s’exécutant dans le PIC16 :

  1. Led Verte clignotant à 2 Hz – 80% éteinte indiquant que le PIC16 est prêt à recevoir et à traiter une commande ou clignotant à 2 Hz – 20% éteinte indiquant qu’une commande est en cours de traitement.
  2. Led Orange indiquant que le périphérique I2C présente une donnée lue par le PIC16.
  3. Led Rouge fixe indiquant une erreur effaçable par le bouton SWITCH ou clignotant à 1 Hz – 50% éteinte indiquant une erreur fatale. Le code de l’erreur est présenté au prochain RESET de la platine.

 … Retour à la présentation du projet

Instructions PIC16 (Enhanced Mid-Range)

Les instructions propres à la famille 8-bit PIC® Microcontrollers /  Enhanced Mid-Range sont décrites dans le Tableau 1 dans lequel il est indiqué, lorsque cela est applicable, l’équivalent avec les instructions de la famille 8-bit PIC® Microcontrollers / Mid-range ainsi que la description et des notes relatives à cette instruction.

Cet article s’adresse à ceux qui souhaitent migrer vers cette famille car elle apporte beaucoup d’améliorations en terme de souplesse et de performance comme :

  • Une optimisation du code facilitant tout compilateur C et donc un humain qui écrit en assembleur.
  • Une sauvegarde automatique des registres fondamentaux lors d’une interruption matérielle et leur  restauration tout aussi automatique à l’exécution de l’instruction RETFIE. De plus, 16 niveaux sont autorisés dans la pile d’appel de sous-routines (au lieu de 8 pour la famille Mid-Range) associés à une détection Overflow et Underflow.
  • Une gestion « linéaire » lors de la recopie de données au moyen des 2 registres FSR0 et FSR1 (File Select Registers).

 

Notice

On regrettera simplement l’absence d’une instruction de comparaison sans affecter le registre W qui oblige à une gymnastique d’écriture du code comme décrite dans l’article Opérations arithmétiques des PIC16.

En savoir plus »

Programmateur PIC24 (Commandes UART)

… Retour à la Présentation

Cet article décrit les échanges UART pour piloter les signaux et les opérations élémentaires du protocole In-Circuit Serial Programming™ (ICSP™) permettant de programmer un PIC24 à partir d’un ordinateur PC ou d’un terminal série.

Important!

Toutes les commandes sont composées des caractères hexadécimaux codés en  « ASCII imprimable  » [0-9A-F] avec aucun time-out sur l’attente de chaque caractère. De plus, le caractère SPACE (0x20) est accepté et ignoré ainsi que les 2 caractères terminaux Carriage Return (0x0D) et Line Feed (0x0A). Ces 3 caractères servant à la mise en forme dans le cas d’une utilisation avec un simple terminal série ou avec les 2 commandes cat et  echo d’un terminal console sous Linux comme expliqué au § 1c – Caractéristiques de la liaison UART.

Notice

Les caractères SPACE indiqués dans les réponses ne sont pas réellement émis et permettent uniquement de séparer les champs afin de faciliter la lecture. Quant aux caractères SPACE indiqués dans les commandes, ceux-ci sont optionnels et participent également à la facilité de la description.

En savoir plus »

Articles plus anciens «