Sur la base de mes exigences approximatives d'être dans la plage de 36 à 72 MHz, d'avoir 16 Ko + SRAM, 128 Ko + flash, étant programmable en C, j'ai décidé que pour mon application, je veux utiliser un MCU ARM Cortex M3.
La question est, quels critères les gens utilisent-ils pour choisir la version M3 à utiliser? Il existe de nombreux fournisseurs possibles tels que TI, ST, NXP, Freescale, etc., etc.
Un différenciateur principal de mon point de vue serait la facilité de programmation. Idéalement, je le teste sur une carte de développement / développement, suivie d'une implémentation dans mon propre PCB.
Réponses:
Je pense que @markt est certainement au bon endroit: Toolchain, périphériques, packages, devkits.
J'en ajouterai quelques-uns et en retirerai peut-être quelques-uns. La chaîne d'outils est certainement importante, mais GRATUITEMENT peut ou non l'être. Parfois, travailler sans véritable support peut être plus cher que vous ne le pensez, et l'utilisation d'un package commercial raisonnable peut en valoir la peine pour une situation donnée. Parfois, il est également important de réussir un audit de licence approfondi, et l'utilisation d'un outil gratuit avec une licence restrictive peut vous mordre plus tard.
Une bonne bibliothèque CMSIS pour supporter le microcontrôleur est un must pour moi. CMSIS - Cortex Microcontroller Software Interface Standard - arm.com/products/processors/cortex-m/… - est une couche d'abstraction matérielle pour les microcontrôleurs de la série Cortex-M. En théorie, si une bibliothèque est conforme à CMSIS, elle est indépendante du fournisseur et il est plus facile d'échanger différentes familles, et vous n'avez pas besoin de réapprendre un environnement à partir de zéro pour pouvoir utiliser la bibliothèque. L'un des aspects attrayants de l'environnement ARM Cortex est la possibilité de changer de plate-forme sans beaucoup de sueur. Si vous choisissez une plate-forme qui n'adhère pas à la structure CMSIS, vous ne pourrez peut-être pas vous déplacer aussi facilement.
Pour moi, des cartes de développement bon marché et pratiques sont un must, mais cela peut ou non être aussi important que d'autres choses (je pense que la série STM32 a des devboards incroyables). Si la famille a des cartes de développement très pratiques et bon marché, vous êtes plus susceptible de trouver de l'aide dans une base d'utilisateurs plus grande si vous en avez besoin. En outre, ces puces ont tendance à être dans des packages SMT. Lorsque vous faites sauter inévitablement une puce, ou un port sur une puce, ou un peu sur un port sur une puce, le remplacement de la puce est un PITA impliquant un remaniement SMD. Si vous pouvez acheter deux ou trois planches à 10 $ - 15 $ chacune et les remplacer au fur et à mesure que vous les cassez, vous ne PENSEZ PAS à faire cette retouche SMD!
Pensez "Extras". Vous pourriez avoir besoin de quelque chose au-delà de ce qui est considéré comme un "périphérique". Par exemple, vous avez peut-être de gros besoins en Bluetooth et vous pouvez choisir d'aller avec Nordic Semiconductor pour ce type de support. Vous pourriez envisager d'autres choses, comme la facilité de démarrage, etc.
Pensez à la documentation. J'ai été un peu moins impressionné par la difficulté de parcourir une partie de la documentation STM.
la source
Compte tenu de votre désir pour les conseils de développement, considérez ce qui est disponible là-bas.
Si vous venez d'une autre plateforme (PIC, Atmel, etc.), acceptez qu'il y aura une courbe d'apprentissage équitable dans de nombreux domaines dans le passage à ARM, mais cela en vaut vraiment la peine.
la source
Si vous n'avez pas de préférence marquée (par exemple, le prix, la taille, la puissance, ainsi que les autres produits répertoriés), je considérerais qui vous soutient. Si le fabricant ne répond pas à vos questions, cela pourrait être un problème. Ou ont-ils un distributeur local avec un FAE (Field Applciation Engineer) que vous pouvez demander? C'est particulièrement important pour les petites entreprises et les hobbists.
Certaines pièces peuvent ne pas être disponibles en petites quantités. Par exemple, ceux qui ont des DRAM dans le même package sont destinés aux gros acheteurs (> 10 000 unités).
la source
Probablement STM32L151VBT6 convient à vos besoins. Même nous l'avons utilisé dans notre entreprise, il a un coût modéré et bon en termes de consommation d'énergie. vous obtiendrez également la plupart des ressources de conception sur http://www.st.com .
Les principales caractéristiques du microcontrôleur STM32L151VB sont:
Plateforme ultra basse consommation Alimentation 1,65 V à 3,6 V
Plage de températures de -40 ° C à 85 ° C / 105 ° C
Mode veille 0,3 μA (3 broches de réveil)
0,9 μA en mode veille + RTC
Mode d'arrêt 0,57 μA (16 lignes de réveil)
Mode d'arrêt 1,2 μA + RTC
Mode de fonctionnement basse consommation 9 μA
Mode Run 214 μA / MHz
Fuite d'E / S ultra faible 10 nA
Temps de réveil <8 μs
Noyau: processeur 32 bits ARM®Cortex ™ -M3
De 32 kHz à 32 MHz max
33,3 pic DMIPS (Dhrystone 2.1)
Unité de protection de la mémoire
Réinitialisation et gestion des approvisionnements
BOR ultra-sûr et de faible puissance (réinitialisation de la panne) avec 5 seuils sélectionnables
POR / PDR à très faible puissance
Détecteur de tension programmable (PVD)
Sources d'horloge
Oscillateur à cristal de 1 à 24 MHz
Oscillateur 32 kHz pour RTC avec étalonnage
RC interne haute vitesse 16 MHz ajusté en usine (+/- 1%)
RC basse consommation interne 37 kHz
Faible puissance multispeed interne 65 kHz à 4,2 MHz
PLL pour horloge CPU et USB (48 MHz)
Chargeur de démarrage préprogrammé
USART pris en charge
Aide au développement
Débogage du câble série pris en charge
JTAG et trace pris en charge
Jusqu'à 83 E / S rapides (73 E / S 5 V tolérantes), toutes mappables sur 16 vecteurs d'interruption externes
Souvenirs:
Jusqu'à 128 Ko de Flash avec ECC
Jusqu'à 16 Ko de RAM
Jusqu'à 4 Ko de véritable EEPROM avec ECC
Registre de sauvegarde de 80 octets
Pilote LCD pour jusqu'à 8x40 segments
Soutenir l'ajustement du contraste
Prise en charge du mode clignotant
Convertisseur élévateur à bord
Périphériques analogiques riches (jusqu'à 1,8 V)
CAN 12 bits 1 Msps jusqu'à 24 canaux
Canaux DAC 2 12 bits avec tampons de sortie
2x comparateurs à très faible consommation (mode fenêtre et capacité de réveil)
Contrôleur DMA 7x canaux
Interface de communication 8x périphériques
1x USB 2.0 (PLL interne 48 MHz)
3x USART (ISO 7816, IrDA)
2x SPI 16 Mbits / s
2x I2C (SMBus / PMBus)
10x temporisateurs: 6x 16 bits avec jusqu'à 4 canaux IC / OC / PWM, 2x temporisateur de base 16 bits, 2x temporisateurs de surveillance (indépendants et fenêtre)
Jusqu'à 20 canaux de détection capacitifs prenant en charge l'unité de calcul CRC à touches tactiles, linéaires et rotatives, ID unique 96 bits
la source