Attention ! Fermeture imminente du forum d’Elektor (pour en savoir plus, cliquer ici). À partir du vendredi 15er mars il ne sera plus possible de s’identifier sur ce forum, mais son contenu restera disponible en lecture seule jusqu’à la fin du mois. Le 1er avril, il sera fermé définitivement.

Quel type de microcontrôleur

Lesquels choisir ? Comment les utiliser ?

Postby ymasquel » Fri Mar 23, 2012 12:00 am

Bonjour Guy,

Il n'y a pas de meilleur microcontrôleur que celui avec lequel on se sent à l'aise. Tous proposent actuellement des possibilités comparables et des performances honorables mais jamais comparables.

Puisque tu dis baragouiner le BASIC il est raisonnable de continuer dans cette voie, ce sera plus rapide pour aboutir à un résultat. La grande majorité des contrôleurs accepte ce langage avec il est vrai des optimisations plus ou moins réussies.

Si tu veux faire simple tu peux te limiter aux PIC et AVR pour lesquels il existe plusieurs BASIC, qui sont loin d'être limités et qui ont l'avantage de disposer d'une foule de pratiquants capables de t'apporter de l'aide. Un bon plan réside dans les outils de MIKROELEKTRONIKA qui dispose d'un environnement de développement et un BASIC similaires pour plusieurs marques de contrôleurs permettant de passer de l'un à l'autre sans avoir à réapprendre les variantes dans le langage. Chaque système de développement (platine électronique de prototypage) que propose ce fournisseur permet d'accéder à la quasi totalité des contrôleurs d'une gamme d'un fondeur (ex une platine pour les PIC 8 bits ou une platine pour les AVR) avec le programmateur/débogueur incorporé.

Ce n'est évidemment pas le seul et pas nécessairement la solution la moins chère mais c'est à étudier.

Amicalement, Yves.
Amicalement,
Yves.
ymasquel
Site Admin
 
Posts: 3392
Joined: Thu Jan 02, 2014 10:44 am
Location: Oise (60)

Postby obdh » Sat Mar 24, 2012 12:00 am

Bonjour,

je dirais processeur performant (ce n'est pas plus cher), et langage de référence, donc le C et pas le Basic. En PIC, passer directement au PIC32 et oublier tout le reste. Les outils sont gratuits, et les performances au rendez-vous. Sinon, il y a les ARM déjà cités.
Sur les processeurs performants, l'assembleur ne sert plus à grand chose, à part rendre le code illisible. Les compilateurs font nettement mieux dans la plupart des cas.
obdh
 
Posts: 487
Joined: Fri Jan 17, 2014 4:39 pm

Postby ymasquel » Sat Mar 24, 2012 12:00 am

Bonjour à tous,

Oui, la différence de prix entre des micro-contrôleurs 8 bits et leurs grands frères est faible.

Oui, les compilateurs ont maintenant des algorithmes d'optimisation très performants mais souvent limités dans le temps pour les compilateurs fournis gratuitement par les grands noms de ces produits et les versions payantes ne sont pas du domaine du petit amateur.

Non, le langage de référence n'est pas le C, il n'y a pas de langage de référence. Son écriture est parfois rebutante voire illisible par le débutant.

Non, commencer avec des contrôleurs de "catégorie élevée" n'est pas nécessairement un bon choix. On n'apprend rien lorsqu'on est submergé par la pléthore de "modules" intégrés dont on n'a pas souvent besoin. On se perd dans les descriptions avant de comprendre leur inutilité dans le projet auquel on s'est attelé.

Le cas de Guy est caractéristique. Il a besoin d'un certain nombre de fonctions dont une est altimétrique et l'autre "géographique".
Ces fonctions n'existent pas dans un micro-contrôleur mais les données nécessaires, fournies par des composants externes (pression atmosphérique, boussole ou GPS) par des moyens de communication simples et peu consommateurs (I²C, SPI, RS232, ...). La partie interface humain peut se résumer à une alarme sonore et un afficheur pas nécessairement graphique.

Les BASICs sont largement capables d'assurer la fiabilité de ces communications et un retraité qui a des notions de BASIC (comme Guy l'a précisé) n'a pas nécessairement envie de s'encombrer avec l'étude d'un nouveau langage.

Dans ce contexte je peux affirmer qu'il existe dans les catégories PIC MID RANGE et AVR MEGA les processeurs TRES largement capables de remplir les fonctions demandées.

Amicalement, Yves.
Amicalement,
Yves.
ymasquel
Site Admin
 
Posts: 3392
Joined: Thu Jan 02, 2014 10:44 am
Location: Oise (60)

Postby obdh » Sat Mar 24, 2012 12:00 am

Que l'on puisse le faire en basic et avec un processeur plus petit, c'est certain. Mais l'effort ne sera pas très différent en attaquant directement avec des solutions qui ne seront pas des handicaps plus tard. Un module qui n'est pas utilisé ne nécessite pas de le comprendre. Le C n'est pas particulièrement compliqué (du moins si on s'en tient aux bases), il faut surtout comprendre le fonctionnement d'un projet avec un certain nombre de fichiers. Quant à l'optimisation, elle n'est justement pas indispensable si le processeur est plus performant. Pour le fun et la taille microscopique, j'ai utilisé des PIC10 en assembleur puis en C, mais le confort d'un PIC32 est incomparable, et a fortement réduit l'intérêt des PIC24. Quant aux PIC18 et PIC16, la gestion des pages dégrade fortement les performances et ne facilite pas la tâche des compilateurs. Vu leur prix comparativement élevé, l'intérêt est très faible pour quelques pièces. Et le Basic ne m'a pas laissé des souvenirs impérissables, alors que le C permettra de passer plus facilement à d'autres langages si nécessaire, et ne sera jamais un frein.
Mais ce n'est que mon avis !
obdh
 
Posts: 487
Joined: Fri Jan 17, 2014 4:39 pm

Postby thm2 » Sat Mar 24, 2012 12:00 am

Bonjour,

Je ne vois pas ce qui permet de juger que l’application envisagée par Guy est si élémentaire que cela ; à lire son post précédent, on imagine que les tâches suivantes devront être effectuées :
-capture série et traitement des données (fort probablement avec fonctions trigonométriques)
-interface IHM : clavier (pour rentrer des coordonnés?), éventuellement écran (pas nécessairement graphique ?)
-commande altitude et cap via servo-moteurs ?
Je reste donc assez sceptique sur la possibilité de réaliser tout cela avec un µC 8 bits de base… ou alors il faudra utiliser un fameux chausse-pied. (Pour ma part, je commencerais directement avec un 32bits et FreeRTOS)
De plus, je ne suis pas d’accord avec la première affirmation concernant les compilateurs C ; c’est oublier GCC/GDB, que j’utilise personnellement et qui existe pour une large gamme de microcontrôleurs (AVR, ARM, Renesas, MSP430, …), parfaitement gratuit et illimité et à la pointe de la technologie.
Et l’utilisation de base du C n’est guère plus compliquée que celle du BASIC (pas besoin de connaitre les subtilités des pointeurs vers des tableaux de pointeurs sur les µC) , tenant également compte que les µC modernes, 8 bits compris, ont une architecture CPU optimisée pour le C et non pour le BASIC (mode d’adressage indexé sur le pointeur de pile par exemple).
Une facilité des µC freescale que j’ai conseillés est qu’il existe les « mêmes » modèles de µC en versions 8 et 32 bits (MC90S8 et ColdFire V1, série « flexis » : par exemple les références MC9S08QE128 et MCF51QE128). Périphériques identiques, il n’est pas nécessaire de modifier la moindre ligne de code pour passer de l’un à l’autre. Commencer par utiliser un simple 8 bits type 9S08 permet de faire un apprentissage avec hardware plus simple et/ou de tester des fonctions élémentaires pour passer, quand le besoin s’en fait sentir, à un µC 32 bits ColdFire d’une manière parfaitement transparente, tout l’acquis étant conservé.
Le livre de référence 9S08 : http://www.amazon.com/HCS08-Unleashed-Designers-Guide-Microcontrollers/dp/1419685929
thierry
thm2
 
Posts: 47
Joined: Mon Jan 20, 2014 7:53 am

Postby ymasquel » Sat Mar 24, 2012 12:00 am

Bonjour Guy,

Bon courage, les gourous du C ont parlé.
Pour ma part je suis probablement mal placé pour donner mon avis car je n'ai commencé professionnellement la pratique informatique que depuis un peu moins de 50 ans avec un assembleur suivi au fil des "évolutions" par des langages tels que COBOL, FORTRAN, PL1, TAL, Assembleurs divers et variés sur systèmes de gestion (SEA, IBM, TANDEM, DIGITAL, ...).
Parallèlement, pendant une bonne trentaine d'années avec FORTH, TURBO PASCAL, DELPHI, BASIC, C, C++, PHP et assembleur sur divers micro-ordinateurs dont le PC.
Enfin plus récemment J'ai pratiqué les assembleurs, BASICs, C, FORTH, PASCAL sur les micro-contrôleurs de 8 à 32 bits au gré de mes besoins personnels.

A l'heure du choix il faut aller au plus simple et au mieux adapté ce qui signifie que le plus puissant n'est pas nécessairement le plus efficace que ce soit pour le langage, encore que là il n'y a aucune puissance mais seulement de la logique qui parfois est plutôt floue, ou pour le contrôleur.

Amicalement, Yves.
Amicalement,
Yves.
ymasquel
Site Admin
 
Posts: 3392
Joined: Thu Jan 02, 2014 10:44 am
Location: Oise (60)

Postby obdh » Sun Mar 25, 2012 12:00 am

Pas nécessaire de passer en revue les familles de processeurs et les langages utilisés depuis aussi un certain nombre d'années. Mais beaucoup de tout ceci se justifiait à l'époque, en l'absence d'alternative, mais a beaucoup moins d'intérêt aujourd'hui. Je n'arrive pas à voir l'intérêt du Basic. Le C permet d'avoir accès à un nombre considérable de supports, cours, exemples, librairies, outils, et sera portable facilement sur différentes familles de processeurs. S'orienter sur le Basic parce que l'on a déjà écrit quelques lignes avec FOR ou GOTO est dommage.
De même, celui qui voudrait faire du FPGA ferait une erreur en partant sur une solution graphique (dessin des bascules, compteurs...) alors que le VHDL est bien plus puissant et souple. Mais cela passe souvent par un effort initial un peu plus important, largement compensé ensuite.
obdh
 
Posts: 487
Joined: Fri Jan 17, 2014 4:39 pm

Postby obdh » Sun Mar 25, 2012 12:00 am

Chez Freescale, il y a les microcontrôleurs Kinetis qui me semblent particulièrement intéressants.
Pour celui qui veut se lancer dans le C, le site du Zéro propose un cours en ligne et en version livre aussi, et qui malgré le ton "pour les nuls" qui peut devenir lassant, mérite le détour et montre que le langage, pour sa plus grande partie, n'est pas spécialement compliqué. La complexité réside plutôt dans la constitution d'un projet avec fichiers multiples, déclarations des librairies et appels des ressources spécifiques du processeur. C'est là où il est particulièrement important de pouvoir démarrer sur des projets exemples directement compilables et exécutables, qui vont permettre de découvrir progressivement les bonnes méthodes et façons de faire. Un kit d'évaluation peut donc être rassurant et permet d'éviter d'être confronté simultanément à tous les problèmes, hard et soft, quand on débute.
Le Basic, pourquoi pas, mais ça me semble une voie très étroite, qui nécessitera certainement autant d'efforts, et qui sera ensuite bien moins ouverte. Mais il ne faut pas se faire d'illusion, un projet, même de taille modeste, demande au départ un gros investissement en temps.
obdh
 
Posts: 487
Joined: Fri Jan 17, 2014 4:39 pm

Postby guy81 » Mon Mar 26, 2012 12:00 am

rebonjour! je viens de lire vos messages concernant vos "avis" sur
mon problème de choix d'un microcontroleur.
merci de vos reponses!
1- je prefère m'orienter vers le language C.
2- j'ai regardé le site de "bigonoff" :http://www.abcelectronique.com/bigonoff/loadpart1.php?par=43564.
quen pensez vous!!??. les pics 16 ou 32 bits doivent convenir pour mon projet!?. mais je vais regarder du coté de "freescale".
3- afin de ne pas vous faire perdre votre temps je vais vous indiquer
precisement ce que doit realiser le Uc dans mon projet .
Sous forme de piece jointe, dans les prochains jours, je preciserai
ce que j'attends exactement de mon "pilote automatique" et vous me direz ce qui vous semble convenir... vous verez que c'est loin
d'etre un pilote auto d'airbus!!! je nai pas besoin d'indicateur, ni de
clavier!!... le PA doit assurer des fonctions simples.
(maintient altitude et alerte altitude, maintient de cap)...mais tout ceci doit etre precisé dans la piece jointe...
je consacre mes loisirs à l'ULM... et a "fabriquer" des systemes" electroniques d'aide au pilotage.(principalement des alarmes pour la surveillance des moteurs Rotax) .
merci à obdh... que j'ai deja "vu" dans une conversation au sujet
d'oscilloscopes...
guy.'
guy81
 
Posts: 13
Joined: Mon Jan 20, 2014 8:01 am

Postby obdh » Mon Mar 26, 2012 12:00 am

J'avais regardé le site de Bigonoff il y a longtemps déjà. Son travail est remarquable, mais je ne suis pas certain que ce soit la meilleure approche pour un débutant, en particulier en raison de l'utilisation de l'assembleur et de petits processeurs.
Le site du Zéro est une très bonne introduction au C : http://www.siteduzero.com/tutoriel-3-14189-apprenez-a-programmer-en-c.html#part_14188
En complétant ponctuellement avec dautres sites sur quelques points particuliers, ce sera suffisant pour un bon bout de temps. Une carte d'évaluation pour le processeur choisi permettra de découvrir facilement la configuration du matériel.'
obdh
 
Posts: 487
Joined: Fri Jan 17, 2014 4:39 pm

PreviousNext

Return to Microcontrôleurs & microprocesseurs

Who is online

Users browsing this forum: No registered users and 1 guest