Question

Quelle famille devrais-je commencer à apprendre? (Jamais aucune programmation sur microcontrôleur)

Était-ce utile?

La solution

Aujourd'hui, AVR et PIC sont probablement les microcontrôleurs les plus répandus parmi les amateurs. Tous deux proposent une très large gamme de variantes d’appareils et peuvent être utilisés pour obtenir des résultats similaires.

Pour un débutant, je suggérerais AVR pour diverses raisons:

  • La famille AVR (minuscule, méga) est cohérente et facile à comprendre. L'architecture est puissante et moderne, et convient particulièrement aux compilateurs C. Bien entendu, les AVR peuvent également être programmés en montage.

  • En raison de son architecture compatible C, de nombreux compilateurs C de qualité sont disponibles, à la fois commerciaux et gratuits. L'omniprésent GCC est porté sur AVR et s'appelle avr-gcc .

  • Pour commencer, tout ce dont vous avez besoin, c'est d'une poignée de composants de base, de la puce AVR et d'un planche à pain . Même le câble de programmation entre PC et AVR peut être construit essentiellement gratuitement (ce que l’on appelle un wiggler). Cependant, plusieurs kits de développement commercial sont disponibles, notamment le STK500 . Un kit de développement commercial est un moyen plus coûteux de démarrer, mais ne nécessite pratiquement aucune connaissance préalable de l'électronique. Certains kits de développement contiennent par exemple des écrans LCD , ce qui permet de réaliser facilement des tâches intéressantes.

  • La communauté d'amateurs est très riche.

Le PIC est connu pour son architecture particulière. Beaucoup aiment le PIC pour cela, certains le détestent. AVR est plus simple et ne semble pas causer autant d'opinions extrêmes et polaires.

AVR et PIC sont utilisés dans de nombreuses applications commerciales sérieuses. Cependant, ils ne sont pas les seules options bien sûr. Mon microcontrôleur personnel préféré pour les loisirs et le travail commercial est la famille C8051 de Silicon Laboratories, notamment C8051 F530 . Il existe un excellent compilateur et assembleur C gratuit pour la famille C8051 appelé SDCC .

Résumé: Il existe de nombreuses options, mais ne laissez pas cela vous submerger. Choisissez-en un et commencez à apprendre avec. Les microcontrôleurs sont vraiment étonnamment faciles à maîtriser une fois que vous décidez simplement de commencer!

Autres conseils

Mon patron a appris les bases de l’utilisation d’AVR en une semaine sans expérience préalable.

Je suggérerais AVR. PIC a surpassé de loin PIC en tant que plate-forme de choix pour les microcontrôleurs pour les projets amateurs. En particulier, considérons la plate-forme Arduino (et autres * duino), qui fournit un AVR haut de gamme dans un format facile à interfacer et populaire.

Je préfère de loin l’AVR au PIC, dont je trouve l’architecture un peu compliquée. C’est peut-être juste moi, et cela ne vous dérangera pas si vous pouvez écrire dans une langue de haut niveau, très probablement (un dialecte de) C.

Puisque vous êtes nouveau dans le domaine des microcontrôleurs, je suppose que les performances ne seront pas un problème. Par conséquent, je rechercherais plutôt la disponibilité des outils de développement: cartes de prototypage, IDE et outils de simulation / débogage. Personnellement, j'ai beaucoup aimé AVR Studio (l'environnement de développement libre d'Atmel).

Jason mentionne le MSP430 de la TI, qui est un excellent contrôleur, en particulier si vous utilisez des applications à très basse consommation. Mais je ne le recommanderais pas à un débutant, car la configuration est un peu lourde. (Je me souviens que la description de l'oscillateur couvrait plus de 20 pages dans le manuel d'utilisation.)

Certaines personnes ont commenté l’architecture étrange (et peu conviviale) du micro PIC. C’est le cas des plus petits PIC, mais les puces 16 bits (PIC24F, dsPIC30, etc.) ont une architecture très claire qui fonctionne très bien avec C.

La ligne PIC24F peut attribuer des broches à des fonctions (minuteries, A / N, entrées / sorties série) à la volée, ce qui simplifie un peu la conception. L’environnement MPLAB pour le débogage et le développement est plutôt agréable.

J'ai fait de la programmation PIC - principalement parce que j'aimais l'idée que la puce ne coûtait qu'un dollar ou deux. Cependant, pour un débutant, l'optimisation prématurée consiste à prendre une décision uniquement en fonction du prix.

La programmation en assembleur est une expérience. Vous devez en principe connaître 100 concepts avant de pouvoir faire clignoter une LED. (Minuteur de surveillance, broches de réinitialisation, compteurs / débordements 8 bits, boucles de retard, hexadécimales, binaires, masquage de bits, interruptions, demandes de service d'interruption, ports d'E / S, etc.) à la machine - mais être capable de coder quelque chose en C cachera une partie de cette complexité et vous permettra de vous concentrer sur les résultats. Pour cette raison, je dirais aller avec l'AVR. (Et je crois que les prix sont maintenant plus proches des PIC.)

Aussi: si vous souhaitez faire avancer les choses (et que cela ne vous dérange pas de dépenser environ 30 $), consultez la page arduino . Un type qui les vendait dans mon magasin d'électronique local disait qu'il en vendait beaucoup à des étudiants en art. (Il utilise l'EDI du projet Processing et compile le code avec avr-gcc.)

Mise à jour: commentaire corrigé selon lequel Arduino exécute du code interprété. Également mis à jour le prix approximatif Arduino.

Je ne comprends pas ce qu'est le gros problème avec Arduino, cela gâchera vos chances de toujours comprendre ce qui se passe réellement. Je programme régulièrement avec des AVR et des PIC, en gros, il n'y a pas beaucoup de différence, je ne vois pas ce que c'est que tout le monde. Cependant, pour un débutant, rester à l’écart d’arduino, c’est peut-être simple, mais c’est le piège qui ne vous donne aucune idée de l’architecture matérielle et vous ne savez pas ce qui se passe dans les coulisses, ce que les débutants doivent apprendre à être un programmeur efficace. Quand j’étais débutant, j’ai débuté avec un programmeur USBasp de type ATmega32, 20 $, AVR Studio (Free) et AVRDude (livré avec WinAVR) et suivais les didacticiels d’introduction dans AVR Freaks. C'est tout ce dont vous avez besoin, c'est fait !!!

P.S. Si vous voulez vraiment apprendre à programmer des micros et avoir le temps de connaître l'assembleur de votre micro, vous serez 20 fois plus programmeur C que quelqu'un qui a commencé à utiliser arduino.

Mon vote va au PIC pour la grande variété de périphériques disponibles. Mais je dois dire que lorsque j'ai commencé à utiliser les PIC, ce n'était presque rien d'autre. Peut-être que maintenant les choses ont changé.

Je vote pour le MSP430 de TI. séries. J'ai beaucoup utilisé les PIC (également un peu les puces Atmel) et de loin le plus important pour moi est un bon IDE de débogage. TI a fait du bon travail à cet égard et son compilateur C ++ fonctionne très bien. Vous pouvez commencer avec une carte eval pour moins de 100 $, y compris un débogueur IDE + USB. Les CIP ont mieux & amp; périphériques matériels plus divers, mais MPLAB est une merde et le seul IDE C ++ pour PIC est celui par IAR qui est plutôt cher. (plus de 2 000 $)

J'ai / nous avons choisi le protocole PIC principalement parce qu’il existe davantage de périphériques pour le même prix. Et plus important encore, vous ne pouvez même pas trouver des AVR comparables. J'ai néanmoins choisi l'une des versions gratuites existantes (démarré avec PIC18, migré vers dspic33)

L'IDE est gratuit, le compilateur (C) est gratuit dans la version étudiant (qui désactive l'optimisation après le premier mois). Les programmeurs débutants sont également relativement bon marché. Si vous avez des tas d'interruptions, de compteurs et de minuteries, vous n'aurez probablement pas besoin d'optimisation. Un programmeur directement de Microchip coûte 30 $.

Notez que les remarques ci-dessus sur la prise en charge d’AVR par rapport au développement HLL sont légèrement dépassées, à moins que vous ne choisissiez les anciennes architectures telles que PIC12 et 16.

On programme généralement les architectures PIC18 (8 bits) plus modernes et 16 bits (24F, 30F et dspic33 qui sont basées sur le même noyau principal) en C. Les 16-bitters utilisent même GCC. Il y a aussi des 32-bitters basés sur MIPS, mais ils rivalisent davantage avec ARM dans la scène du traitement audio / vidéo. Curieusement, les modernes sont souvent moins chers que les anciens. Ils sont probablement produits dans un processus plus moderne qui offre des rendements plus élevés.

Autre remarque: pendant ce temps, Microchip / PIC a acheté Atmel / AVR, mais je suppose que cela n’affectera pas beaucoup les gammes de produits pendant les premières années.

Je suis vraiment impatient de découvrir le 16-amers compatible Ethernet 60MIPs qui sera commercialisé cet été (pour autant que le prix de la rue soit juste au-dessus de 10 EUR)

Si vous voulez juste savoir ce qu'est la programmation MCU, commencer par Arduino est une bonne idée. C’est bon marché, avec un IDE convivial pour les novices (basé sur le langage de programmation, qui a une syntaxe similaire à C).

Mais cela ne répond pas à votre question, bien que Arduino soit basé sur AVR, vous ne pouvez pas avoir l’impression qu’il existe un MCU AVR derrière cet IDE moderne. :)

J'ai eu beaucoup plus de succès avec PIC alors que je venais juste de commencer. J'ai essayé d'obtenir un simple kit de démarrage d'Arduino et je ne pouvais tout simplement pas obtenir un bon kit de base sans dépenser plus de 100 à 200 Nickel et réduire l'intensité de la configuration. Vous avez obtenu un excellent petit kit de démarrage de PIC pour environ 40 $ et vous y trouverez tout: IDE, programmateur, carte de démarrage avec circuit intégré pour les démonstrations et les tutoriels. Un achat. En outre, l'environnement PIC était très facile à configurer et à utiliser. Je jouais avec dans moins d’une heure.

Ma première expérience avec les microcontrôleurs a été avec un OOPic-R . Cela m'a permis de faire des expériences robotiques simples sans trop m'inquiéter du code. Le flux de programmation orienté objet rend tout le travail rapide et est facile à programmer.

Récemment, j'ai essayé une autre variété de PIC, le PICAXE . L'interface de programmation incluse est un jeu d'enfant à utiliser. De plus, pour l’interface physique du PICAXE, vous n’avez besoin que d’un port RS-232 pour le programmer et de deux broches sur la puce (nul besoin de changer de niveau). J'ai intégré le PICAXE dans de très petits conteneurs (puces CMS et DIP disponibles) et cela a très bien fonctionné.

Je n'ai aucune expérience de la programmation de microcontrôleurs en assemblage. Si vous voulez essayer cela, l'AVR pourrait être plus approprié en raison de sa plus grande communauté d'utilisateurs.

Autant que je sache, le moyen le moins coûteux de programmer un AVR à l'aide des outils ATMEL est le logiciel ATMEL AVR ISP mkII à 35 $. Vous pouvez trouver des programmeurs tiers pour 10-15 $.

Je choisirais en fonction de la disponibilité d'un compilateur croisé en C. Dans le passé, cela ferait le choix à AVR. Je ne suis pas sûr du statut actuel.

J'ai programmé un PIC dans l'assembleur, et ce n'était pas très amusant. C est beaucoup plus agréable à bien des égards.

L’une des meilleures fonctionnalités d’AVR est la communauté présente sur les forums sur www.avrfreaks.net. Vous recevez un groupe d'ingénieurs en électronique expérimentés, prêts à aider les débutants à démarrer.

Je dirais que je trouve le microcontrôleur 8051 le plus simple et qu'Atmel a mis au point des microcontrôleurs dotés de nombreuses fonctions intégrées ... mais les gens utilisent encore de préférence les AVR ... 8051 famille (si trouvé à l'aise) sinon le AVR est ...

J'aime AVR. il est facile à programmer et les ressources disponibles. il y a peu de communautés comme Arduino travaille avec elle.

Quelques discussions supplémentaires sur la supériorité d’AVR, sur l’autre débordement de pile: http://embeddedgurus.com/stack-overflow/2009/04 / pic-stack-overflow /

  

La popularité des PIC 8 bits me déconcerte. C’est une architecture horrible & # 8211;   la pile d'appels limitée n'est que la première chose horrible. Jeter dans le   besoin de pagination et d'opérations bancaires avec le vecteur d'interruption unique   et vous avez un cauchemar d'un modèle de programmation. Ce serait une chose   si c’était la norme pour les périphériques 8 bits & # 8211; mais ce n’est pas le cas. L'AVR   l’architecture éloigne le PIC, tandis que les HC05 / HC08 sont également   rues devant le PIC. Étant donné le choix, je pense que je prendrais même un   8051 sur le PIC. Je ne vois aucun avantage de coût, d’emballage   avantages (Atmel vient de publier un AVR SOT23-6 qui est essentiellement   d’instructions compatibles avec leurs appareils les plus volumineux) ou périphérique   définir des avantages. En bref, je ne l’ai pas! Incidemment, ce n’est pas une & # 8217; t   inculpation de Microchip & # 8211; ils sont une grande entreprise et j'aime vraiment un   beaucoup de leurs autres produits, leur site Web, support technique, etc.   (C’est peut-être pourquoi le PIC est si largement utilisé?)

J'ai commencé avec un Motorola M68HC11, c'était assez simple. Je pense que vous obtiendrez la même expérience avec tous les contrôleurs 8 bits.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top