MC9S08 à partir de zéro - Tout pour le débutant > Découverte + Ma première application de A à Z - Articles et téléchargements
MC9S08 à partir de zéro - Tout pour le débutant > Découverte + Ma première application de A à Z - Articles et téléchargements
Pseudo Pass se souvenir de moi     Créer un compte
ARTICLES et TELECHARGEMENTS ~ FORUMS ~ LIENS  
 
             
 
proposer
 
   
             
 
Catégories
 
   
             
 
Recherche
 
   
 

MC9S08 à partir de zéro

Publié par Anonymes le 12/11/2005 (41483 lectures)

Le MC9S08 à partir de zéro

Pourquoi les MC9S08 ?

Les MC9S08 sont des microcontrôleurs modernes (>2004), performants et de bas coût; faciles à mettre en œuvre aussi bien par l'amateur que par le professionnel, une gamme en pleine expansion (le dernier de la famille, au moment où ces lignes sont écrites, possède un cycle d'instruction cadencé à 25 Mhz (horloge à 50 MHz) , 128Ko de flash soutenus par 8Ko de RAM.
Ces microcontrôleurs sont les très performants et très réussis descendants des 68HC11 et des 68HC05. L'assembleur MC9S08 est d'ailleurs compatible à 100% avec celui du 68HC05, tout en étant très largement optimisé pour la programmation en C. Son assembleur de type "CISC" est également très agréable et facile à programmer.

Les microcontrôleurs MSC9S08 existent en boitier commençant par les 8 pins QFN (5x5mm) jusque au QFP 80 en passant par les DIP 8 et 20 pins. Même CPU, pas besoin de changer de jeu d'instruction suivant le boitier/la gamme? (**IPC**)

Les MC9S08 constituent également la deuxième génération des MC908 (MC68HC908). Plus de trois fois plus rapides, des périphériques améliorés, moins chers, et programmation/debug In-Circuit par BDM sur un seul fil.

Ces périphériques appris, la transition vers les 32 bits FLEXIS se fera sans effort et sans matériel de debug/programmation supplémentaire.

L'environnement de développement (IDE) est gratuit et particulièrement performant.

 

Que faut-il pour commencer?

Essentiellement 3 choses :

  • Le logiciel PC: compilateur C-assembleur/ programmateur/simulateur/debugger aussi appelé IDE
  • Le(s) microcontrôleur(s)
  • le matériel programmateur/debugger


Pas trop envie de câbler l'électronique, un budget de 50 à 100 euros et vous cherchez une solution « clé en main »? Allez directement au paragraphe « Acheter une carte démo ».

Dans le cas contraire, la suite décrit comment procéder, étape par étape :

Il faut tout d'abord se connecter sur le site du fabricant, Freescale ( www.freescale.com) , où il faudra procéder à deux opérations : télécharger l'environnement de développement PC (IDE) et commander des échantillons gratuits.

L'environnement de développement (IDE)


Il s'agit de « CodeWarrior for Microcontrolleurs » , en version 6.0 à l'heure où ces lignes sont écrites. Il se trouve ici :

http://www.freescale.com/webapp/sps/s ... &tab=Design_Tools_Tab

 



Bien choisir la version « Special Edition ». En fait, c'est (quasi) la même que la version professionnelle payante, avec les mêmes optimisations, sauf que le code (objet) est limité à 32K (ce qui est énorme pour des réalisations courantes) et illimitée dans le temps. La version « Evaluation Version » est illimitée en taille de code, mais limitée dans le temps (quelques mois). Attention également, le téléchargement fait 370Mo, et donc prend un certain temps. En cliquant sur « download », cela mènera au menu de téléchargement. Il faudra cependant au préalable s'inscrire (créer un « login ») ceci étant parfaitement gratuit et n'engageant strictement à rien. Ceci permet également de commander directement du matériel chez Freescale, de demander des échantillons gratuits, de participer aux forums, ainsi que de télécharger des applications spécifiques (« reference design », USB, TCP/IP, ..)

Les échantillons gratuits


Après avoir tapé le nom du microcontrôleur souhaité dans le champ de recherche "Enter Part Number" , ou s'y être rendu via les menus du site freescale, on se retrouve sur la fiche d'un composant. Pour le débutant, il est conseillé de choisir le MC9S08QG8, disponible en bôitier DIP 16, ou le MC9S08SH8 en DIP 20. Cette page en donne les caractéristiques :


 

Un clic sur l'onglet Buy/Parametrics donne accès au menu où il y a moyen de demander les échantillons. En cliquant sur « sample », le menu de commande apparaîtra.

Si vous souhaitez réaliser votre BDM (programmateur/debugger- voir ci après) vous-même, demandez également un « sample » du microcontrôleur suivant : MC9S08JS16 en boitier SOIC, vous pourrez réaliser un USBDM qui permettra de programmet les S08, S12 et CF V1.
Après demande, vous recevrez dans les heures qui suivent, un email de confirmation de la commande d'échantillons de Freescale.

Le débugger/programmateur.

Pas de bricolages, type programmateur (je-programme-et-puis-j-oublie) bon marché ne fonctionnant qu'une fois sur 2 et utilisant un port série ou parallèle, dont les PC portables ne sont d'ailleurs plus équipés.

Le débugger/programmateur USB pour les MC9S08 se nomme BDM. Couplé avec CodeWarrior, il constitue une chaine particulièrement performante et facile d'emploi de Programmation/debug in circuit. Un debugger est il nécessaire ? Définitivement oui. Le microcontrôleur est déjà soudé dans le montage final. Vous mettez au point le programme avec l'IDE, puis vous lancez le debugger in-circuit. Le programme peut s'effectuer pas par pas (ou ligne par ligne) en C. Des points d'arrêts bien placés permettront d'examiner/modifier le résultat d'un calcul, l'état des ports,les registres, la mémoire, ... Un bug?, la ligne est modifiée, et on relance le debugger (ceci quasi aussi rapidement que le temps de lire cette phrase)... pour aller un peu plus loin dans le projet de programme.


Bref, pour se procurer un BDM, 4 solutions :

1 - En acheter un tout fait. Il n'y a pas 36 fabricants (que je connaisse); c'est soit PEmicro ou SofTec :

Le BDM PEmicro Multilink USB-ML-12 reste assez abordable tout en étant un outil professionnel.

http://www.pemicro.com/products/produ ... Details.cfm?product_id=33 :


Coût : environ 100 euros

2 - La solution « Open Source BDM ». Sur le forum Freescale, un BDM à réaliser soi même, « Open Source » est décrit, c'est l'OSBDM :

http://forums.freescale.com/freescale ... d=OSBDM08&thread.id=2

L'OSBDM est supporté en natif comme "connection" par CodeWarrior (à partir de la version 5.1)
Des réalisations à faire soi même sont décrites sur ce site :

http://www.68hc08.net/modules/publisher/item.php?itemid=106 :

Ou celui de Jean : http://www.68hc08.net/modules/publisher/item.php?itemid=142 , peut être plus facile à réaliser car le microcontrôleur est en en boitier SOIC (mais PCB double face)

Coût : De moins de 10 euros (si l'on commande le MC908JB16 en sample) à 15 euros environ.

Update juillet 2010 : Les OSBDM à base de 68HC908JB16 deviennent obsolètes. Ils commencent à être remplacés par :
- soit par la nouvelle version de l'OSBDM à base de MC9S08JM60, appelé OSBDM-JM60. Cet OSDBM, dans sa version complète (et complexe) programme TOUS les µC Freescale : (R)S08, S12, CF-V1, CF-V234, DSP56800E

- Soit par une réalisation faite par un particulier, "PGO" sur le forum freescale  , c'est l'USBDM , particulièrement bien aboutit.
Il en existe plusieurs versions, dont certaines particulièrement simples à partir de MC9S08JS16.
par exemple , une réalisation très esthétique  Les fichiers Eagle (schéma et PCB de cette réalisation sont fournis.

De plus, ces nouvelles versions OSBDM ou USBDM, programment/debuggent les S08, S12 et ColdFire V1

Bref, les réalisation d'O(U)SBDM commencent à fleurir sur le net: Profitez-en

3 - Acheter un O(U)SDBM tout fait : C'est possible chez Witztronics par exemple;

Coût : environ 30 euros

http://witztronics.com/product_info.p ... h=2_18&products_id=31


Un fabricant français en propose à 30 euros : http://www.flashgenie.net/USBDM.html

 




Il y a également aussi des réalisations en vente sur Ebay, regarder.

Quelle la différence entre les OSDBM et les BDM « pros » ? : Essentiellement, l'OSBDM ne permet pas de trimmer automatiquement l'horloge interne des microcontrôleurs (mais c'est faisable manuellement),Sinon, il n'y a pas de différence visible de vitesse, les fonctionnalités sont identiques. De même que les BDM pros, l'OSBDM permet de programmer TOUS les microcontroleurs de la famille MC9S08, ainsi que les S12 et CFV1.

4- Acheter une carte « DEMO » :

L'idéal pour ceux qui ne veulent pas trop (ou n'osent pas) bidouiller l'électronique. Ces cartes « démo » comprennent :

  • un microcontrôleur (sur support)
  • Un BDM (type PE ML12)
  • différents « accesoires » : quelques leds, boutons, interface série, potentiomètre (entrée analogique), accéléromètre (AW60), bargraph (AW60)...

Un CD avec CodeWarrior et des exemples est également fourni. Avant de procéder à l'achat, il est possible de télécharger tous les documents (users guide, schematics, ..) du site de Freescale, pour voir de quoi il s'agit.

Tous les ports du microcontrôleur sont accessibles, il est donc très aisé d'y connecter des extensions (LCD2X16 par exemple). Les cartes "DEMO" sont alimentées par l'USB ou par une alimentation extérieure.

Si l'on enlève le microcontrôleur présent sur la carte, elle peut alors servir de debugger/programmateur pour un autre microcontrôleur externe.

Update juillet 2010 : Attention, récemment, FSL a rendu cette manipulation moins simple. Il faut un peu bidouiller dans les dll's, voir le post : http://forums.freescale.com/t5/8-Bit- ... full-Multilink/td-p/39273


Par exemple :

La carte de démo MC9SQG8 (référence : DEMO9S08QG8)

http://fr.farnell.com/jsp/search/productdetail.jsp?sku=1106182

http://www.freescale.com/webapp/sps/s ... e=DEMO9S08QG8&fsrch=1


La carte de démo AW60 (DEMO9S08AW60E) est plus complète et met en oeuvre le haut de la gamme 9S08: le MC9S08AW60. A remarquer le support ZIF pour QFP64

http://www.freescale.com/webapp/sps/s ... DEMO9S08AW60E&fsrch=1

http://fr.farnell.com/jsp/Semiconduct ... ayProduct.jsp?sku=1191217

 

Ces cartes sont en vente chez farnell (http://fr.farnell.com), chez digikey (http://fr.digikey.com) ou directement du site de freescale (http://www.freescale.com)

Coût : de 50 à 100 euros

Et le Spyder ?

Freescale vend des BDM sous forme de clé USB, qui comportent aussi un MC9S08QG4. C'est un BDM complet, avec toutes les fonctionnalités; le schéma du Spyder est fort proche d'un OSBDM. Cependant, pour des raisons à mon avis commerciales et purement logicielles (du côté PC), à l'heure actuelle, il ne programme/debugge que des MC9S08 type KA, QG, QD. A déconseiller donc si vous envisagez plus tard d'utiliser des modèles plus puissants de la famille 9S08.


Un livre de référence

Un livre de référence est paru très récemment sur les 9S08. Tout y est expliqué en détail, y compris une introduction (suffisante) au code C, et à l'utilisation de CodeWarrior. L'intimité des 9s08 y est dévoilée.


 

 

Ce livre (400 pages), est en vente sur Amazon.com . Il coûte 25 eur port compris (29USD+10USD de port).

Le site de l'auteur http://www.sctec.com.br/content/view/107/31/ permet de télécharger les exemples (par dizaines) :

Du clignotement de LED, l'utilisation des modes "low power" en passant par des applications robotiques (commandes de servo) et par des applications sur LCD jusqu'à la génération de sons audio.


La table des matières est particulièrement impressionnante : http://www.sctec.com.br/index.php?opt ... &task=view&id=109

L'ayant personnellement acheté , je le recommande vivement.

Conclusion


Voilà, pour un budget de 15 euros (OSDBM fabrication maison) ou 30 euros (OSBDM acheté) ou 50 à 100 euros (BDM Multilink ou carte de développement), il est possible de se procurer microcontrôleur, programmateur/debugger (BDM), et l'IDE (CodeWarrior), nécessaire pour découvrir les MC9S08, en ASM ou en C, avec ou sans fer à souder.



Le haut du bas :

Le QG8, particulièrement performant pour un prix super compressé (2 à 3 euros) , « tourne » sous un RTOS préemptif libre, gratuit, et particulièrement génial : HELIUM (http://helium.sourceforge.net) , voir l'article de ce site « RTOS sur MC9S08 ».

Le bas du haut :

Le nouveau « Flexis » (série MCF51QExx) possède un coeur 32 bits ColdFire V1, avec les mêmes périphériques que les S08... Même IDE Code Warrior, même facilité de debug, mise au point de programmes. Un facteur 10 sur la vitesse de traitement des données, soit l'équivalent d'un S08 à 250 Mhz... Les applis écrites en C pour MC9S08 se transposent en 3 clics de souris vers le Flexis MCF51QE.
Les Flexis des séries MCF51QE et MCF51JM sont également programmables/debuggables avec l'O(U)SBDM.

Voici la carte "démo" actuellement vendue pour moins de 99 euros : DEMOQE128

http://www.freescale.com/webapp/sps/s ... ode=DEMOQE128&fsrch=1

http://fr.farnell.com/jsp/Semiconduct ... 732&_requestid=121246

A ce sujet, voir l'article d'Yvan :http://www.68hc08.net/modules/smartsection/item.php?itemid=126
L'avenir est en marche.

thierry



Tags: Débutant   S08   USBDM   appli-de-A-a-Z  


Article précédent Article suivant
Article précédent Première étape : Faire clignoter une led en ASSEMBLEUR Débuter avec les Kinetis KL2 (ou KL0) Article suivant
Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.
Auteur Commentaire en débat
Powered by XOOPS© The XOOPS Project
Contacter les administrateurs

MC9S08 à partir de zéro - Tout pour le débutant > Découverte + Ma première application de A à Z - Articles et téléchargements