Freescale 68HC08

Les Freescale 68HC08 sont des microcontrôleurs de la gamme 8 bits fabriqués par Freescale sur base du cœur CPU08, dérivé du dérivé du CPU du Motorola 6800.



Catégories :

Microcontrôleur - Microprocesseur

Recherche sur Google Images :


Source image : fr.wikipedia.org
Cette image est un résultat de recherche de Google Image. Elle est peut-être réduite par rapport à l'originale et/ou protégée par des droits d'auteur.

Page(s) en rapport avec ce sujet :

  • la famille Freescale 68HC08 ; la famille Freescale 68HC12 ;... A titre d'exemple, il n'a pas de bus mémoire externe (qui permettrait d'accéder.... Les instructions font 16 bits, suivis par (au maximum) deux words de 16- bit.... (source : php.iai.heig-vd)

Les Freescale 68HC08 sont des microcontrôleurs de la gamme 8 bits fabriqués par Freescale[1] (auparavant Motorola) sur base du cœur CPU08[2], dérivé du dérivé du CPU du Motorola 6800.

Ils ont été conçus comme les successeurs perfectionnés des microcontrôleurs 6805 et 68HC05[3], pendant que les 68HC12 succédaient aux 68HC11.

Comparé au 68HC05

Comme améliorations comparé aux microcontrôleurs 68HC05, on peut citer :

Ils sont optimisés pour le codage en langage C.

Appellations et familles

À leur sortie fin des années 90, les micro-contrôleurs à base de CPU08 ont été identifiés de la manière suivante (exemple)  :

MC68 HC 908 GP 32 CP, qui se décompose en :

Les lettres qui suivent indiquent le type de boitier (CP = DIL) et la gamme de température opérationnelle.

Les appellations ont changé quand ces composants sont devenus RoHS en 2006 : Le «MC68HC908» a été remplacé par «MC908». Ainsi, le MC68HC908GP32 est devenu MC908GP32. À l'exception d'une famille (AP, les MC908 sont fabriqués en procédé HC MOS de 0, 5 micron.

En 2004, est apparue la nouvelle génération des MC908 : les MC9S08. Ceux-ci sont fabriquées en procédé HC MOS 0, 25 microns, possèdent des périphériques perfectionnés, ont quelques modes d'adressage et instructions supplémentaires et sont (trois fois) plus rapides que les MC908[4]. Un micro contrôleur actuel se dénomme par exemple MC9S08QG8CPE. Ils sont aussi optimisés du point de vue consommation et possèdent différents modes d'arrêt qui placent le contrôleur dans différents états de très basse consommation.

Il existe de nombreuses familles, différant par le nombre et la nature des périphériques. Généralement :

Architecture et caractéristiques

Instructions et modes d'adressage

Les instructions CPU08 sont codées sur 1, 2 ou 3 octets, dépendant du mode d'adressage. Elles s'exécutent en 1 à 11 cycles d'horloge, 3 à 4 en moyenne. Ce sont des instructions CISC, qui sont en fait équivalentes à plusieurs instructions RISC. A titre d'exemple, une seule instruction CBEQ X+, LOOP :

Le CPU08 met en œuvre plusieurs modes d'adressage de base différents :

inhérent (ou implicite ou absolu)  : L'opérande est implicite, par exemple : CLRA (Clear A), MUL (Multiply). Ces instructions sont généralement codées sur un seul octet.

immédiat : La valeur de l'opérande est contenue dans l'instruction. Par exemple : LDA #10 (Charge A ou LoaD A) avec la valeur 10.

direct : Ce mode d'adressage permet d'adresser les 256 premiers octets de la mémoire (de 0x00 à 0xFF, zone aussi nommée «page zéro»). Il optimise les instructions étant donné que l'adresse de cette zone est représentée par un seul octet, ce qui diminué la taille de l'instruction et la vitesse d'exécution de celle-ci. À remarquer que les ports d'entrée-sortie sont mappés dans cette zone. Par exemple : LDA 00 (charge A avec le contenu de l'adresse 00 (en général le port A) ).

étendu : Ce mode permet d'adresser toute la mémoire avec une adresse sur 16 bits.

relatif : Ce mode d'adressage ajoute un opérande de 8 bits signé (de +127 à - 127) au compteur ordinal (PC). Ce mode d'adressage est utilisé essentiellement pour les instructions de branchement, et surtout pour les boucles. Par exemple : DBNZA LOOP (Decrement and Branch if Not Zero ou décrémente l'accumulateur A, et branche à l'étiquette LOOP si A est différent de 0).

indexé sans déplacement, avec déplacement de 8 bits, avec déplacement de 16 bits, avec post-incrément, avec post-incrément et déplacement sur 8 bits. L'adresse est contenue dans le registre d'index (H :X). Un déplacement de 8 ou 16 bits peut lui être ajouté et il peut être incrémenté après l'opération. Les modes d'adressage post-incrémentés sont utilisés seulement avec les instructions DBNZ (Decrement and Branch if Not Zero) et CBEQ (Compare and Branch in EQual). Ils permettent de réaliser des contrôles de boucles spécifiquement efficaces.

indexé sur le pointeur de pile, avec déplacement de 8 bits et avec déplacement de 16 bits. L'adressage relatif sur le pointeur de pile est spécifiquement utile pour le code écrit en C : Les variables locales et les paramètres des fonctions sont adressées assez au pointeur de pile, ce qui sert à libérer l'espace mémoire à la sortie de la fonction.

de mémoire à mémoire. Certaines opérations ne nécessitent pas le transfert via l'accumulateur. Par exemple : MOV #55, 00 (place la valeur 55 à l'adresse mémoire 00 (le PORT A) ).

Environnement de développement

L'environnement de développement proposé par Freescale se nomme CodeWarrior[5]. Il comprend :

Le module "Processor Expert" de UNIS[6] inclus dans CodeWarrior configure graphiquement les périphériques et génère le code C correspondant. CodeWarrior est gratuit dans sa version proposée en «Special Edition» jusqu'à 32 Ko de code objet en C. L'assembleur est infini.

Programmation et débogage

Les MC68HC908 se programmaient/déboguaient via une liaison série mobilisant 3 à 4 pattes du contrôleur. Un programme spécifique (appelé «moniteur») intégré en ROM permettait la communication. L'interface PC - cible nommée «MON08» se fondait le plus souvent sur le port série. L'entrée en mode «moniteur» était déclenchée par l'application d'une haute tension (7, 5 à 9 V) sur la patte d'interruption externe à la mise sous tension.

Les MC9S08 ont hérité du module de débogage intégré des 68H12 et ColdFire, le BDM (Background Debug Module). La programmation/debug s'effectue via une seule patte du contrôleur et par USB du côté PC. L'interface cible – PC ou sonde est nommée «pod BDM»

Le module BDM intégré aux contrôleurs MC9S08 permet un débogage «In Circuit» en temps réel non intrusif, ne mobilisant pas de ressources du uC avec des points d'arrêt conditionnels mais aussi des possibilités de traçage du bus. Il permet d'éviter dans une certaine mesure l'utilisation d'un émulateur. La sonde BDM s'adapte automatiquement à la tension ainsi qu'à la fréquence de la cible.

Freescale soutient la réalisation de sondes BDM «Open Source» sous licence GPL dont le code et le hardware sont ouverts[7].

Évolutions

La famille S08 a amené à des évolutions :

À noter aussi que Freescale produit des puces RF 2, 4 GHz (pour protocole Zigbee) intégrant un microcontrôleur MC9S08 (exemple) .

Notes et références

  1. Microcontrôleurs 8 bits Freescale
  2. CPU08 Reference Manual
  3. Note d'application Freescale HC05 to HC08 optimizationAN1218
  4. MC68HC08 to HCS08 transition AN2717
  5. CodeWarrior for Microcontrollers
  6. Processor Expert
  7. Le projet Open Source BDM
  8. Microcontrôleurs Flexis

Recherche sur Amazone (livres) :




Ce texte est issu de l'encyclopédie Wikipedia. Vous pouvez consulter sa version originale dans cette encyclopédie à l'adresse http://fr.wikipedia.org/wiki/Freescale_68HC08.
Voir la liste des contributeurs.
La version présentée ici à été extraite depuis cette source le 07/04/2010.
Ce texte est disponible sous les termes de la licence de documentation libre GNU (GFDL).
La liste des définitions proposées en tête de page est une sélection parmi les résultats obtenus à l'aide de la commande "define:" de Google.
Cette page fait partie du projet Wikibis.
Accueil Recherche Aller au contenuDébut page
ContactContact ImprimerImprimer liens d'évitement et raccourcis clavierAccessibilité
Aller au menu