AVR ou PIC pour commencer à programmer le microcontrôleur? [fermé]

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

34
demandé sur freespace 2008-09-26 19:00:20

20 réponses

AUJOURD'hui AVR et PIC sont probablement les microcontrôleurs les plus courants chez les amateurs. Les deux ont une très large gamme de variantes et les deux peuvent être utilisés pour obtenir des résultats similaires.

Pour un débutant, je suggère 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. Les avr peuvent bien sûr être programmés dans l'assemblage aussi.

  • En Raison de son architecture C-friendly, il existe des compilateurs C de qualité disponibles, à la fois commerciaux et gratuits. Le GCC omniprésent est porté vers AVR et appelé avr-gcc .

  • Pour commencer, tout ce dont vous avez vraiment besoin est une poignée de composants de base, la puce AVR elle-même et une planche à pain . Même le câble de programmation entre PC et AVR peut être construit essentiellement gratuitement (un soi-disant wiggler). Cependant, plusieurs kits de développement commercial sont disponibles, notamment celui D'Atmel STK500 . Un kit de développement commercial est un moyen plus coûteux pour commencer, mais ne nécessite pratiquement aucune connaissance préalable sur l'électronique. Certains kits de développement contiennent par exemple des écrans LCD Il est donc facile de faire des choses intéressantes.

  • Il a une riche amateur de la communauté.

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

Les deux 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 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 y a beaucoup d'options, mais ne laissez pas cela submerger vous. Il suffit de choisir un et commencer à apprendre avec elle. Les microcontrôleurs sont, vraiment, étonnamment faciles à maîtriser une fois que vous décidez juste d'y aller!

52
répondu smt 2008-10-02 20:53:00

Mon patron a repris les bases en utilisant AVR dans une semaine sans expérience préalable.

11
répondu J.J. 2008-09-26 15:03:07

Je suggère AVR. Il a largement dépassé PIC comme la plate-forme de microcontrôleur de choix pour les projets amateurs généraux. Plus particulièrement, considérons la plate-forme Arduino (et autre *duino), qui fournit un AVR haut de gamme dans un facteur de forme facile à interfacer et populaire.

8
répondu Sparr 2008-11-22 01:14:59

Je préfère beaucoup L'AVR à PIC, dont je trouve l'architecture un peu désordonnée. Cela 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 sur les microcontrôleurs, je présume que les performances ne seront pas le problème, donc je chercherais plutôt la disponibilité des outils de développement: cartes de prototypage, IDE et outils de simulation/débogage. Personnellement, J'ai aimé AVR Studio (environnement de développement gratuit D'Atmel) a beaucoup.

Jason mentionne le MSP430 du TI, qui est un excellent contrôleur en effet, surtout si vous êtes dans des applications de très faible puissance. Mais je ne le recommanderais pas pour un débutant, car la configuration est un peu lourde. (Je me souviens que la description de l'oscillateur couvert 20 + pages dans le manuel d'utilisation.)

6
répondu stevenvh 2009-02-13 21:21:02

Certaines personnes ont commenté l'architecture étrange (et hostile à C) du PIC micro. Cela est vrai pour les photos plus petites, mais les puces 16 bits (PIC24F, dsPIC30, etc) ont des architectures très claires qui fonctionnent très bien avec C.

La ligne PIC24F a la possibilité d'attribuer des broches aux fonctions (minuteries, A/D, E/S série) à la volée, ce qui facilite un peu la conception. L'environnement MPLAB pour le débogage et le développement est assez agréable.

6
répondu J. Peterson 2009-05-14 01:47:04

Je ne comprends pas quel est le gros problème avec arduino, cela ruinera vos chances de comprendre ce qui se passe réellement. Je programme régulièrement avec AVR et PIC, fondamentalement, il n'y a pas beaucoup de différence, Je ne peux pas voir de quoi il s'agit. Cependant, pour un débutant rester loin d'arduino, il peut être simple, mais c'est le piège, il ne vous donne aucun concept d'architecture matérielle, et aucune idée de ce qui se passe dans les coulisses, les débutants de choses doivent apprendre à être un efficace programmeur. Quand j'étais un débutant, j'ai commencé avec un ATmega32 un programmeur USBasp de 20$, AVR Studio (gratuit) et AVRDude (livré avec WinAVR) et suivi les tutoriels d'introduction dans AVR Freaks. C'est tout ce dont vous avez besoin, fait!!!

P.S. si vous voulez vraiment apprendre à programmer des micros et avoir le temps d'apprendre l'assembleur pour votre micro et vous serez 20 fois le programmeur C que quelqu'un qui a commencé à utiliser arduino.

6
répondu Troy 2010-10-26 05:44:12

Je vote pour la série MSP430 de TI. J'ai beaucoup utilisé les photos (aussi des puces Atmel un peu) et de loin la chose la plus importante pour moi est un bon IDE de débogage. TI a fait un très bon travail à ce sujet, et leur compilateur C++ fonctionne très bien. Vous pouvez y aller avec une carte eval pour moins de 100$, y compris un IDE + USB-debugger. Les photos ont de meilleurs et plus divers périphériques matériels, mais MPLAB est un morceau de merde et le seul IDE C++ pour les photos est un par IAR qui est plutôt cher. (plus de $ 2K)

5
répondu Jason S 2008-12-12 13:47:53

J'ai fait de la programmation PIC-surtout parce que j'aimais l'idée que la puce n'était qu'un dollar ou deux. Cependant, pour un débutant, prendre une décision uniquement sur le prix est une optimisation prématurée.

La programmation en assembleur est une expérience. Vous devez essentiellement en apprendre davantage sur les concepts 100 avant de pouvoir clignoter une LED. (Minuterie de chien de garde, broches de réinitialisation, compteurs/débordements 8 bits, boucles de retard, hex, binaire, bit-masking, interruptions, demandes de service d'interruption, ports D'E / S, etc.) C'est très éducatif-et un grand sentiment d'être si près de la machine - mais être capable de coder quelque chose en C cachera une partie de cette complexité afin que vous puissiez 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 photos.)

Aussi: si vous êtes intéressé à faire avancer les choses (et ne me dérange pas de dépenser ~ $ 30) consultez le arduino . Un type les vendait dans mon magasin d'électronique local disait qu'il en vendait des tonnes à des étudiants en art. (Il utilise L'IDE du projet de traitement et compile le code avec avr-gcc.)

Mise à jour: Correction d'un commentaire selon lequel Arduino exécute du code interprété. Également mis à jour le prix Arduino environ.

5
répondu Jason Moore 2010-02-18 20:58:22

Mon vote va à PIC pour L'extrême variété d'appareils disponibles. Mais je dois dire que quand j'ai commencé à utiliser des photos, elles n'étaient presque rien d'autre. Peut-être que maintenant les choses ont changé.

4
répondu Axeman 2008-09-26 15:04:52

J'ai / Nous avons choisi PIC surtout parce qu'il y a plus de matériel périphérique pour le même prix. Et plus important encore, vous ne pouvez même pas trouver des avr comparables. J'ai cependant choisi l'une des versions gratuites héritées (commencée avec PIC18, migrée vers dspic33)

L'IDE est libre, le compilateur (C) est libre dans la version student (qui désactive l'optimisation après le premier mois). Les programmeurs d'entrée de gamme sont assez bon marché aussi. Si vous avez des tas d'interruptions, compteurs et minuteries, il ya une chance vous n'aura pas besoin d'optimisation du tout. Un programmeur directement de Microchip coûte 30$.

Notez que les remarques ci-dessus sur AVR catering plus au développement HLL sont légèrement dépassées à moins que vous n'optiez vraiment pour les architectures héritées comme PIC12 et 16.

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

Une autre note: pendant ce temps, Microchip / PIC a acheté Atmel / AVR, mais je suppose que pour les premières années, cela n'affectera pas beaucoup les lignes de production.

Je suis vraiment impatient de la 60mips ethernet activé 16-bitter qui va être publié cet été (afaik streetprice juste au-dessus de 10 EUR)

4
répondu Marco van de Voort 2012-04-30 18:01:29

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

Mais cela n'a pas répondu à votre question, car bien Qu'Arduino soit basé sur AVR, vous ne pouvez pas sentir qu'il y a un MCU AVR derrière cet IDE moderne. :)

3
répondu rIPPER 2008-12-03 08:47:20

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

Récemment, j'ai essayé une autre variété de PIC, la saleté Pas Cher PICAXE . L'interface de programmation incluse est un jeu d'enfant avec lequel travailler. En outre, pour interfacer physiquement le PICAXE, vous avez seulement besoin d'un port RS-232 pour le programmer et deux broches sur la puce (pas besoin de faire le changement de niveau). J'ai intégré le PICAXE dans de très petits conteneurs (puces SMD et DIP disponibles) et cela a très bien fonctionné.

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

Pour autant que je sache, le moyen le moins cher de programmer un AVR en utilisant les outils D'ATMEL est L'Atmel AVR ISP MKII pour 35$. Vous pouvez trouver des programmeurs tiers pour 10-15$.

3
répondu JcMaco 2011-03-08 03:15:50

J'ai eu beaucoup plus de succès avec PIC alors que je commençais juste. J'ai essayé d'obtenir un kit de démarrage simple D'Arduino et je ne pouvais tout simplement pas obtenir un bon kit de base sans dépenser plus de 100-200 nickel et diming la configuration ensemble. Vous avez un excellent petit kit de démarrage de PIC pour environ 40 $ et il a tout: IDE, programmeur, carte de démarrage avec circuit intégré pour les démos et les tutoriels. Un seul achat. En outre, L'environnement PIC était très facile à installer et à travailler. Je jouais avec elle à moins d'une heure.

2
répondu PaulG 2009-04-06 16:14:16

Je ferais mon choix en fonction de la disponibilité d'un compilateur croisé C. Dans le passé, cela ferait D'AVR le choix. Je ne sais pas quel est le statut maintenant.

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

2
répondu Craig McQueen 2009-06-11 00:26:40
1
répondu plan9assembler 2008-12-04 21:27:49

L'une des meilleures fonctionnalités D'AVR est la communauté dans les forums à www.avrfreaks.net. vous obtenez un groupe d'ingénieurs en électronique expérimentés traîner, prêts à aider les débutants à aller de l'avant.

1
répondu markus_b 2009-05-03 13:33:03

Je dirais que je crée le microcontrôleur 8051 le plus facile et Atmel a mis au point des microcontrôleurs avec autant de fonctions intégrées .... mais encore les gens utilisent de préférence les AVR... ma main irait avec la famille 8051 (si elle est trouvée à l'aise ) sinon les AVR ...

1
répondu Dharavk 2009-07-30 15:40:37

J'adore AVR. il est facile de programmer et de ressources disponibles. il y a peu de communauté comme Arduino fonctionne avec elle.

1
répondu Shuvro 2010-04-19 21:51:25

Un peu plus de dicussion sur la supériorité de AVR, sur L'autre débordement de pile: http://embeddedgurus.com/stack-overflow/2009/04/pic-stack-overflow/

La popularité des photos 8 bits me déconcerte. C'est l'architecture est terrible – la pile d'appels limitée est juste la première chose terrible. Jeter l' besoin de pagination et de banque 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 8 périphériques bit-mais ce n'est pas le cas. L'AVR architecture souffle le PIC loin, tandis que le HC05 / HC08 sont également les rues à l'avance de la 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, emballage avantages (Atmel vient de sortir un SOT23 - 6 AVR qui est essentiellement jeu d'instructions compatibles avec leurs plus grands appareils) ou périphérique définir les avantages. En bref, je ne comprends pas! D'ailleurs, ce n'est pas un mise en accusation de Microchip - ils sont un grand entreprise et j'aime vraiment un beaucoup de leurs autres produits, leur site web, support technique et ainsi de suite (c'est peut-être pourquoi le PIC est si largement utilisé?)

0
répondu Gauthier 2014-11-18 08:18:49

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

-1
répondu Issac Kelly 2008-09-26 15:08:40