Il existe de nombreuses plates-formes MCU et une fois que quelqu'un s'y est habitué, il est généralement peu disposé à passer à une autre plate-forme.
Ma question est la suivante: si on commençait à utiliser un MCU pour des tâches d'usage général aujourd'hui, comment procéder pour en choisir un? Quels sont les points de vente uniques des différentes plates-formes?
Réponses:
Un an plus tard, j'ai donné une conférence sur le choix des microcontrôleurs (cela a pris environ une heure et demie). Le public était constitué de programmeurs et de concepteurs de logiciels de haut niveau. La majorité du public n'avait pas d'expérience préalable en μC, le reste n'a joué qu'avec Arduino. Le nombre de personnes dans l'auditoire était d'environ 30 personnes. Il s'agissait donc d'une multidiffusion, par opposition à une clinique individuelle.
La diapositive clé dans la conversation était la suivante:
ps
Je devrais définir le champ d’application de ma réponse. Je vois cette question de sélection de plate-forme à travers deux types de lentilles. Le premier est un prototypeur. Le second est un développeur d’équipements professionnels avec des prix de vente de l’ordre de 3 000 dollars et des quantités exprimées en centaines de dollars par an. L’objectif amateur n’est pas loin non plus. Dans ces cas, le coût différentiel du microcontrôleur est faible, comparé au coût de développement, ou au coût de l'équipement professionnel dans lequel le microcontrôleur va.
Il y a bien sûr une perspective très différente de la production de masse. Lorsque quelqu'un choisit un microcontrôleur pour un appareil bon marché qui sera produit en grande quantité (les jouets grand public en sont un bon exemple), il sera motivé par le coût du matériel. Une économie modeste sur le coût du matériel multiplié par un volume de production important (en centaines de milliers ou plus) peut justifier la peine d'utiliser un environnement de développement difficile à manier et un microcontrôleur à prix avantageux doté d'un support médiocre.
la source
Comme cette question n’a pas encore produit la comparaison de plate-forme que j’espérais, j’ai moi-même tenté d’en créer une en étudiant la littérature ainsi que les autres réponses. Peut-être que cela pourra aider quelqu'un d'autre à l'avenir.
S'il vous plaît laissez-moi savoir s'il y a des erreurs ou s'il y a des informations que je peux ajouter.
Comparaison de plate-forme
Notes concernant la comparaison:
PIC:
AVR:
Bras Cortex-M:
PSoc: (extrait de la réponse de Rocketmagnet)
Hélice: (d'après la réponse de Rocketmagnet)
Comparaison par application
USB:
"Légende" pour la liste ci-dessous:
Propriétés de l'appareil le moins cher: (en ordre de prix approximatif)
Ethernet:
la source
Votre choix de MCU dépend beaucoup du type de projet sur lequel vous allez travailler. Fabriquez-vous des appareils simples, tels que des feux de vélo clignotants? Développez-vous des prototypes de robots complexes devant traiter de nombreux périphériques et capteurs bizarres?
Je travaille surtout sur ce dernier. Le principal problème pour moi est d’essayer de trouver des microcontrôleurs dotés du jeu de périphériques que je veux. C'est très difficile car nos exigences ne semblent pas être courantes. Nous voulons des fonctionnalités telles que 5 canaux PWM, 5 décodeurs Quadrature, 2 ports SPI non standard et un UART avec entrée / sortie inversée.
Les seuls microcontrôleurs que j'ai vus qui peuvent gérer facilement ce type d'exigences sont le PSoC et l'hélice.
L’hélice est constituée de huit MCU 32 bits dans une seule puce. Si vous voulez un type de périphérique, vous devez simplement programmer l’un des MCU pour effectuer ce travail. Ainsi, vous pouvez avoir ce que vous voulez.
Les PSoC sont disponibles en deux versions, 3 et 5. Le 3 est un noyau 8051 et le 5 est un cortex M3 ARM. La puce contient également des blocs analogiques et numériques reconfigurables qui peuvent être transformés en une vaste gamme de périphériques: convertisseurs ADC, filtres, amplificateurs opérationnels, convertisseurs DAC, SPI, UART, décodeur en quadrature, générateur CRC, etc.
L'environnement de développement est fantastique. Vous avez l’édition habituelle du code source d’un IDE typique, mais vous avez aussi un éditeur de schémas. Vous pouvez littéralement câbler n'importe quel circuit numérique, en connectant les périphériques avec des grilles, des bascules, etc. Vous avez besoin de 5 PWM? Facile, il suffit de les insérer dans le schéma, de les câbler et de partir. Vous pouvez même écrire vos propres périphériques dans Verilog si vous voulez quelque chose qui n’est pas fourni. Une grande partie de votre application peut simplement être implémentée dans ce type de matériel.
L'avantage réel est que vous pouvez vous en tenir à une seule puce, sachant qu'elle peut traiter un grand nombre de projets que vous souhaitez réaliser à l'avenir. Ce que je trouvais ennuyeux avec les PIC était de fouiller en permanence dans des dizaines de dispositifs à la recherche de celui qui possédait le périphérique particulier dont j'avais besoin. Maintenant, je n'ai pas ce problème.
la source
Pour moi, l'exigence la plus importante était de savoir si le périphérique / l'IDE est bien pris en charge sur un PC non Windows (Linux). Il s'est avéré que pour moi, Atmel AVR avait un meilleur support (open source) que PIC.
la source
Utiliser plus d'une plateforme, c'est bien. Sélection du meilleur pour chaque travail et disponibilité du code et des exemples liés au travail.
La plupart d'entre eux ont de bons outils de développement, arduino a un studio visuel, pic a un excellent outil et d'autres aussi. Donc, pour moi, c’est avec quelle rapidité et quelle facilité je peux bien faire le travail, + combien de personnes travaillant en open source travaillent sur la même chose?
la source
Les microcontrôleurs sont un monde qui évolue rapidement, il existe de nombreux avantages à apprendre sur les puces "en" actuelles et le plus connu des IDE est d'obtenir l'aide de la communauté. En tant que PIC, je dirais que l'Aduino a probablement le meilleur IDE et les meilleures cartes de développement pour les débutants pour le moment et que vous pouvez ajouter beaucoup à une carte aduino de base sans toucher au fer à souder.
Toute personne utilisant un aduino pour la vie réelle voudra peut-être bientôt passer à autre chose, mais à ce moment-là, vous aurez appris beaucoup d’électronique numérique de base et un bon sous-ensemble de C pour utiliser facilement quelque chose de plus approprié.
Comme quelqu'un vous a dit que vous choisissiez la puce de votre projet, j'ai vu quelques projets utilisant des puces ARM comme simples capteurs de température ou convertisseurs AD, de la même manière que j'ai vu des aduinos et des PIC 16 poussés à leur limite pour générer un jeu Space Invaders, des FPGA sont galso reat et il est bon de comprendre le format HDL si vous vous engagez sérieusement dans la conception électronique .. mais malheureusement, il n’ya pas beaucoup de projets dans le monde réel où vous aurez besoin d’utiliser un logiciel. c’est là que l’uC 8 bits règne en maître
la source
Étant donné que bon nombre des réponses publiées concernent l'utilisation par les amateurs, voici diverses recommandations destinées uniquement aux développeurs professionnels.
Configuration minimale nue
Si la MCU ne remplit pas toutes ces conditions, elle ne doit pas être utilisée.
Panneaux d'avertissement - Matériel MCU
Ce sont des choses avec lesquelles il ne faut pas perdre de temps en 2019.
int
, ce qui entraîne à son tour tous les dangers cachés des promotions d’entiers en langage C.Panneaux d'avertissement - chaîne d'outil
la source
Si vous optez pour des tâches générales pouvant comporter des traitements analogiques et numériques, j'aurais préféré PSoC pour son IDE, son débogueur et son grand nombre de choses que vous pouvez faire avec ceux-ci.
J'ai utilisé PSoC3 au collège pour mes projets et c'est assez simple à maîtriser. La seule chose à faire est que si vous avez besoin de puces de performance, vous devrez quand même les acheter séparément. Il a assez de ports. Donc, si vous recherchez des puces de performance avec un kit de développement, préférez des composants séparés.
la source