J'ai de l'expérience en assemblage et en programmation C pour les microcontrôleurs, mais je ne connais pas bien les différentes familles de MCU et de DSP proposées par les sociétés actuelles. (par exemple: Texas Instruments, Atmel, Renesas)
J'aimerais savoir quels sont les bons microcontrôleurs / DSP et ce que c'est que de développer avec eux. Veuillez résumer votre compréhension des différentes familles de MCU / DSP, une famille par réponse.
Il serait également très intéressant que vous décriviez quelles sont les applications principales de ce (s) microcontrôleur (s) s'il vous plaît.
(Ceci est un "wiki de communauté", ainsi toute personne avec une réputation supérieure à 100 peut affiner et améliorer ses réponses)
microcontroller
development
design
dsp
Edward
la source
la source
Réponses:
ARM est la norme industrielle pour les contrôleurs 32 bits, bien que le PIC32 présente quelques fonctionnalités intéressantes. Ils sont assez faciles à utiliser. J'aime les puces NXP LPC2000 et LPC1000 ARM, mais la nouvelle puce Energy Micro ARM Cortex-M3 est très intéressante en raison de sa très faible consommation électrique - aussi bonne que la MSP430 [Youtube]. Le support est très variable, les puces NXP ont le groupe LPC2000 que je dirige, ce que les gens semblent aimer - nous avons plus de 8 000 membres!
la source
Atmel AVR , peut-être dans un Arduino : Je ne suis pas d'accord avec Leon et je dirais que la ligne AVR d'Atmel est une excellente famille pour commencer. C'est assez diversifié, allant d'ATtiny à l'ATmega en passant par le Dragon (avec lequel je n'ai pas travaillé). Je dirais que l'AVR32 et Xmega sont des familles différentes.
AVRfreaks est l’un des meilleurs forums électroniques sur le Web (bientôt surpassé par Chiphacker :), la communauté Arduino existe aussi, elle est destinée aux amateurs. Arduino est idéal pour l’apprentissage du matériel des microcontrôleurs, bien que cela ne vous aide pas à programmer (le PO a déclaré connaître ASM et C).
La suite WinAVR est simple comme bonjour par rapport aux autres chaînes d'outils. Il suffit de télécharger, appuyez plusieurs fois sur Suivant, entrez un code et appuyez sur F5. Cela ne devient pas plus facile que cela. Bien sûr, l'éditeur AVR Studio ne possède pas toutes les fonctionnalités qu'il devrait posséder, mais de nombreux IDE de fournisseurs ne sont ni meilleurs ni pires (* toux * MPLAB * toux *).
Je ne suis pas sûr de la livraison, mais je dirais que le SOT23 à 6 broches ATtiny est une puce de niche et que la version SO8 ou DIP est très disponible. Sur une note connexe, ils font également un excellent travail en les recherchant à la fois dans des packages DIP (pour le prototypage) et compacts SMT.
la source
Série TI MSP430
Matériel
La variété de périphériques matériels n’est pas aussi flexible que celle des PIC de Microchip, mais la prise en charge des outils de débogage logiciel est bien meilleure que celle des composants de Microchip. TI a récemment publié sa nouvelle version de Code Composer pour les microcontrôleurs MSP430 et les DSP TMS320F28xx, qui utilise Eclipse. Le support de débogage est excellent.
C’est aussi très facile d’installer les registres de contrôle, beaucoup plus facile que les DSP 28xx.
Le MSP430 peut être excellent pour les applications gourmandes en temps car il y aura normalement plus de registres de capture / comparaison disponibles à l’utilisation. Cela peut grandement simplifier les systèmes dans lesquels vous devez gérer de nombreux périphériques nécessitant beaucoup de temps.
Développement
Vous pouvez acheter un système de développement à 150 USD (il existe une variante moins chère de MSP430 sur clé USB à 20 USD, mais elle est un peu contraignante), et vous obtenez un véritable système de prototypage matériel + débogueur. Vous pouvez également vous procurer le nouveau tableau de bord TI, livré avec 2 puces et au prix de 4,30 USD.
la source
Puce PIC 16F / 18F
Marché cible
Microprocesseurs 8 bits peu coûteux. La 16F est l’une des premières lignes de processeurs de Microchip et ne se prête pas particulièrement à la programmation en C / C ++ pour les raisons suivantes:
La série 18F est plus récente et doit être envisagée si vous pouvez vous le permettre pour votre projet. Il est similaire dans le marché cible, le jeu de périphériques, les packages de circuits intégrés, les outils de développement et le prix de la série 16F. Le noyau 18F a été conçu pour être plus sensible au C et au C ++, en raison de:
Logiciel
Très facile à programmer, vous pouvez écrire en utilisant son jeu de 30 instructions de montage ou utiliser un compilateur C . Il s’agit de MCU 8 bits. Par conséquent, si vous souhaitez utiliser des valeurs supérieures à 255, vous devrez rechercher / écrire vous-même le code d’addition / soustraction / multiplication / division de 2 octets. Sa RAM a 4 "banques", donc si vous écrivez en assembleur, vous devez continuer à basculer pour accéder aux variables stockées dans des banques autres que la banque actuelle.
Matériel
Ces MCU fonctionnent assez lentement, avec une vitesse typique de 4 MIPS et une vitesse maximale de 20 MIPS. Certaines fonctionnalités matérielles intégrées fonctionnent correctement si elles sont configurées correctement, telles que le CAN, le port série, le port parallèle, le bus CAN, le bus I2C, le bus SPI, la comparaison de tension, l'EEPROM et, bien sûr, les ports tout usage .
Documentation
Outils de développement
Microchip dispose d'un nouvel outil, le VDI, qui facilite la configuration des diverses fonctionnalités matérielles de la MCU, qui génère un code assembleur ou C. Mieux que de verser sur les feuilles de données.
Microchip propose son IDE MPLAB depuis de nombreuses années et, même si le programme s’améliorait lentement, comparé aux outils de développement pour PC (Visual C ++, Eclipse / NetBeans pour Java / etc), l’interface utilisateur est très médiocre et le logiciel est toujours particulièrement bogué. Il ne prend pas non plus en charge le C ++, malgré le fait que la différence entre le C et la plupart des fonctionnalités du C ++ (à l’exception de l’allocation de mémoire dynamique, des fonctions virtuelles et de quelques autres fonctionnalités) est très faible et que le C ++ encourage la modularité de la programmation. Il existe des fournisseurs tiers IDE, en particulier IAR, mais ils sont chers. (Hi-Tech a récemment été acheté par Microchip.)
Le débogage en circuit est proposé en partie par l’interface ICD de Microchip, une interface série à 2 broches accessible via les adaptateurs de débogage ICD2 , ICD3 , REAL ICE , PICkit2 / 3, etc. Assurez-vous que la pièce choisie les fonctionnalités ICD! Les fonctionnalités de débogage sont quelque peu limitatives et ont "skid" où vous définissez un point d'arrêt sur une instruction et le programme arrête quelques instructions plus tard. Cependant, la CIM est meilleure que rien.
Soutien
la source
Blackfin de Analog Devices La famille Blackfin est un microcontrôleur DSP / hybride doté d’un cœur RISC puissant et prenant en charge les instructions de traitement vidéo / signal. Certaines instructions supportent SIMD.
Matériel
Il a un noyau RISC. Les vitesses vont de 200 MHz à un cœur à 600 MHz à deux cœurs. Il est doté de plusieurs périphériques: MAC, UARTS, SPI, contrôleur Ethernet 10/100, contrôleurs CAN, temporisateurs avec PWM, temporisateur de surveillance, horloge temps réel et contrôleur de mémoire synchrone et asynchrone sans colle. Il dispose d'une gestion dynamique de l'alimentation, qui ferme automatiquement les parties du processeur qui ne sont pas utilisées.
Développement
Les deux principaux outils de développement sont VisualDSP ++ d'AD et la chaîne d'outils GNU. Il existe également un SDK avec beaucoup de code et de notes d'application. Le code SDK sert de cadre ou de bon exemple de code. Plusieurs systèmes d'exploitation, y compris uCLinux, seront exécutés. Il existe un certain nombre de cartes d'évaluation disponibles. Les manuels sont indispensables.
Prix actuellement de 2 $ par quantité de 1000 unités.
la source
L' hélice Parallax est un microcontrôleur 8-core oddbird (huit « COGS » plus un hub) qui peut faire des choses très intéressantes / impressionnants y compris la production vidéo SD / VGA.
Il possède son propre environnement de développement, notamment un langage appelé SPIN. Assembly (PASM) est naturellement disponible.
Il existe un soutien considérable de la part de la communauté et des projets visibles utilisant la puce.
Il n'y a pas beaucoup de modèles, mais la puce semble être le résultat d'une conception très soignée et d'un long développement effectué par des personnes extrêmement talentueuses et compétentes. Il peut être disponible pour environ 8 $.
Le matériel de programmation (intégré au système) est apparemment constitué d’un port série de niveau TTL et d’une ligne de réinitialisation. Il existe un dongle appelé Prop Plug disponible.
http://parallax.com
http://en.wikipedia.org/wiki/Parallax_Propeller
la source
Que diriez-vous du STM32 , une autre famille de mcu basée sur Cortex-M3?
C'est bon marché de commencer depuis que j'ai trouvé de bonnes choses chez Olimex.
Ensuite, j'utilise gcc en tant que compilateur et OpenOCD pour contrôler le jtag.
la source
dsPIC33F et PIC24 : Microchip possède une famille de microcontrôleurs 16 bits, 40 MIPS appelée dsPIC33F, qui associent leur jeu d'instructions PIC24F et leurs périphériques avec des fonctionnalités DSP, telles que deux accumulateurs 40 bits avec options d'arrondi et de saturation; cycle unique multiplier et accumuler; et des décalages allant jusqu'à ± 16 bits pour des données allant jusqu'à 40 bits. Les prix sont bas (aussi bas que 2 $ en volume). Ce que j’aime dans les microcontrôleurs Microchip, c’est que bon nombre de leurs périphériques sont disponibles en paquets DIP, ce qui est idéal pour la prise en charge de la panique. J'ai utilisé l'un de ceux-ci dans un projet où je devais décoder les signaux DTMF; il était plus rentable qu'une solution matérielle de décodeur DTMF dédiée. Un PIC24 est utilisé dans l'incroyable uWatch, "La montre de calculatrice scientifique RPN / algébrique programmable la plus puissante (et la seule!) Au monde".
la source
Cypress PSoC1 (CY8C29466) possède un simple cœur de processeur à 8 bits entouré de blocs numériques et analogiques de type FPGA.
Il possède à la fois des entrées et des sorties analogiques. De nombreux projets nécessitant un ensemble de composants externes avec n'importe quel autre microcontrôleur - amplificateurs opérationnels, PGA, etc. - peuvent être réalisés avec une seule puce PSoC. Beaucoup de souris informatiques utilisent un PSoC1. Par exemple, il peut décoder les tonalités DTMF entrant dans une broche d’entrée et générer directement des signaux analogiques DTMF indépendants sur deux broches de sortie - vrai analogique, pas PWM.
Les blocs numériques et analogiques peuvent être configurés pour faire les choses de manière totalement indépendante du cœur - et donc avec un temps de réponse fixe garanti, même si la CPU est occupée à gérer une interruption pendant ce temps.
Assez faible puissance. Livré dans les packages DIP et SMT.
Le cœur 8 bits, 24 MHz est à peu près équivalent au noyau PIC16F, à la commutation de banque décalée et à toutes les autres choses. Des compilateurs C propriétaires sont disponibles, mais il est peu probable que GCC soit porté sur l'un ou l'autre.
Le projet "Gainer.cc" programme les systèmes basés sur PSoC1 en utilisant le traitement sur un câble USB, très similaire au projet "Arduino".
Le forum http://www.psocdeveloper.com/ est sympathique. Il existe quelques utilitaires disponibles pour le développement sur Linux: http://m8cutils.sourceforge.net/ .
la source
Les micros Freescale HCS08 sont des concurrents directs des PIC10-18 et des AVR, généralement de faible coût mais avec néanmoins un ensemble de périphériques assez riche. Leur bibliothèque de notes d'applications et de documents de référence est assez bonne.
Leur IDE CodeWarrior (compilateur gratuit pour un code allant jusqu’à 32 000 codes) inclut quelques bibliothèques utiles «Initialisation de périphérique» pour une approche basée sur l’interface graphique permettant de renverser des bits, ainsi qu’un «Processor Expert» plus avancé pouvant générer des pilotes de niveau supérieur pour les périphériques. Vous n'êtes pas obligé d'utiliser l'un ou l'autre, et pouvez simplement tout faire en code C si vous le souhaitez.
la source
Série de DSP TI TMS320F28xx .
Marché cible
Commande de moteur et convertisseurs de puissance à commande numérique: ils disposent de périphériques PWM très flexibles et de convertisseurs ADC rapides.
Matériel
Ces DSP présentent deux inconvénients majeurs:
Outils de développement
Débogage en temps réel via le port JTAG, à l'aide de Code Composer v4 (basé sur Eclipse !!!).
Pris en charge par MatLAB simulink pour la génération automatique de code (aucune expérience en programmation requise)
Les DSP de TI coûtaient très cher à prototyper, car il vous fallait un module de débogage en temps réel de 1 500 dollars (adaptateur JTAG), mais le prix de ce module a été considérablement réduit (il en existe un économique pour 150 à 200 dollars) et ils vendent des adaptateurs JTAG intégrés.
la source
XMOS fabrique une gamme de puces de traitement parallèle 32 bits très puissantes (1600 MIPS à partir de quatre cœurs avec 32 threads matériels). Ils sont assez rapides pour utiliser des logiciels USB et Ethernet à haute vitesse. Leurs outils sont très bons, les frites sont superbes, leur prix est raisonnable (elles commencent à 7,50 $) et les personnes qui y travaillent sont très serviables. Ils ont deux très bons forums de soutien; l'un est géré par la société, l'autre est indépendant.
la source
Je vais devoir voter pour le PSoC3 de Cypress. J'utilise des PIC depuis une dizaine d'années (PIC16, PIC18, dsPIC et PIC32). Ils me rendent assez fou avec leur configuration périphérique irritante et leur recherche constante dans la fiche technique pour trouver le bit qui doit être effacé pour que certaines broches fonctionnent.
D'autre part, l'expérience que j'ai eu jusqu'à présent avec les PSoC3 a été un délice. Plus important encore, la configuration des périphériques numériques et analogiques est une joie totale. Les ports série, les horloges, les interruptions, les pilotes, les comparateurs ADC et DAC peuvent tous être câblés sur une feuille schématique et fonctionnent parfaitement.
Par exemple, vous pouvez câbler votre PWM pour déclencher l’échantillonnage de l’ADC au milieu d’une impulsion, ce qui rend la mesure du courant du moteur plus précise. Essayez de faire cela sur un PIC.
Vous voulez 5 PWM, 5 décodeurs en quadrature, un ADC, un port SPI et un générateur CRC sur la même puce? Tu l'as eu. Vous souhaitez configurer le CAN pour échantillonner séquentiellement le courant dans chaque moteur au centre de l'impulsion? Tu l'as eu. De plus, vous pouvez connecter toutes ces entrées et sorties à presque toutes les broches de votre choix.
Ah oui, ET, s'il n'y a pas de périphérique disponible dans la bibliothèque, vous pouvez écrire le vôtre dans verilog!
la source
Cypress PSoC5 possède un ARM Cortex M3 32 bits entouré de blocs numériques et analogiques de type FPGA.
Résolution analogique 20 bits ADC et DAC.
Les blocs numériques et analogiques peuvent être configurés pour faire les choses de manière totalement indépendante du cœur - et donc avec un temps de réponse fixe garanti, même si la CPU est occupée à gérer une interruption pendant ce temps.
Assez faible puissance.
Le coeur ARM Cortex-M3 32 bits et 80 MHz équivaut à peu près à ...
Le forum http://www.psocdeveloper.com/ est sympathique.
la source
Le support d'Atmel pour l'AVR n'est pas très bon et leurs outils matériels sont un peu floconneux. Les puces sont sympas, cependant, et le forum AVR Freaks est très bon. Ils ont de graves problèmes de livraison avec leurs puces plus récentes telles que la XMega et les puces Tiny à 6 broches.
la source
Zilog possède également des microcontrôleurs. Personnellement, je n'ai pas essayé de programmer la gamme de puces Z8 Encore , mais ils envoient des échantillons. Ils ont beaucoup de puces différentes allant de 1 Ko à 16 Ko (peut-être plus) avec des périphériques tels que UART, ADC, I2C , SPI, etc.
À mon avis, ce n’est pas un très bon microcontrôleur amateur.
la source
J'ai utilisé plusieurs familles de processeurs. Le principal problème pour apprendre un nouveau processeur est d'apprendre à coder des centaines de registres de configuration de registres périphériques. Ce sera le processus qui prend le plus de temps lorsque vous passez d'une famille à une autre. le code principal de l’application étant écrit en c, peu importe la famille que nous utilisons, j’aimerais qu’une norme soit élaborée pour les registres périphériques. Si quelqu'un est au courant d'un développement dans cette direction, veuillez le partager.
la source
J'utilise PIC, ARM, MSP430, AVR et quelques autres.
Microchip dispose d'un excellent support et de bons outils matériels et logiciels, le débogage est particulièrement facile et rapide. L'architecture 8 bits est un peu datée. Leurs nouvelles puces 16 bits sont excellentes. Ils sont le leader du marché des MCU 8 bits.
la source