Exigences minimales du circuit ARM

13

J'ai fait quelques développements avec ATMega et je cherche à élargir mes horizons. J'ai quelques puces de la série Cortex M4 et je voudrais faire un ARM équivalent au Breadboarduino

Je prévois de graver ma propre planche ou d'utiliser une planche de dérivation pour l'ARM et la planche à pain le reste. Une référence ou un schéma des composants minimaux serait grandement apprécié.

Existe-t-il de bonnes ressources pour déterminer les composants minimum requis pour faire fonctionner et idéalement programmer une puce ARM?

MISE À JOUR:

Je suis ouvert à d'autres suggestions de matériel. Voici la puce avec laquelle j'essaie actuellement de travailler:

ZnArK
la source
7
Pouvez-vous nous dire quels appareils vous possédez? Un lien vers la fiche technique serait formidable.
stevenvh
J'espère que ce n'est pas le package WLCSP pour lequel vous voulez graver votre propre PCB: un BGA au pas de 0,4 mm! : - /
stevenvh
@stevenvh Je ne suis pas si courageux. Il s'agit du package LQFP 144
ZnArK
1
Vérifiez la série NXP LPC, ils (tous?) Ont un chargeur de démarrage série intégré. lpc21isp est un bon outil côté PC. LPC1114 est même disponible en DIP28! Le lpc1343 a un chargeur de démarrage usb (!) Intégré (qui sonne bien, mais est un peu lourd à utiliser IMO).
Wouter van Ooijen du
1
@Wouter - Oui, j'ai aussi découvert ce DIP (voir réponse). Le LPC1114 est le seul Cortex-quel que soit le fabricant répertorié sur Digikey disponible dans DIP.
stevenvh

Réponses:

9

Cela dépend vraiment des puces que vous utilisez - vous n'avez pas spécifié celle que vous avez reçue. En règle générale, vous auriez besoin d'au moins un cristal, des bouchons de découplage et une logique de réinitialisation. L'interface de programmation peut être une simple interface JTAG.

Mais tout cela doit être indiqué dans la fiche technique des puces.

Mise à jour (pour le STM32F407):

Regardez les pages suivantes dans la fiche technique

  • 23ff. pour les tensions nécessaires (1,8-3,6 V, vous avez donc besoin d'un régulateur), et comment utiliser le régulateur interne (en tirant la broche PDR_ON haut)
  • 69ff. pour les brochages
  • 69 + 74 pour le schéma d'alimentation (ce sont les pages les plus intéressantes car elles montrent les connexions d'alimentation et les condensateurs nécessaires)

Vous n'aurez pas besoin d'un circuit de réinitialisation (il est intégré - voir page 23) ou d'un oscillateur (l'oscillateur intégré à 16 MHz est sélectionné au démarrage, voir page 22). Donc, utiliser une carte de dérivation LQFP144 (comme celle de futurlec (voir en bas de la page) pourrait vraiment être suffisant.

Vous pouvez également consulter le schéma de la carte STM32F4DISCOVERY (voir son manuel d'utilisation , page 33. Ce que vous voyez là est le circuit de base - et il contient même les cristaux externes.

hli
la source
Merci pour votre contribution. Je pose cette question parce que la fiche technique est énorme et franchement je n'y comprends pas tout. Je sais que la vraie solution serait d'obtenir un diplôme d'EE, mais ma carrière actuelle et mes autres responsabilités n'en font pas une possibilité pour le moment. Existe-t-il des projets de matériel ouvert qui auraient un schéma de leur circuit ARM. Je suis convaincu que je pourrais choisir cela séparément et faire un projet utilisable.
ZnArK
1
La carte de démonstration STM liée ci-dessus est livrée avec le schéma, vous pouvez donc commencer par cela. Sinon, Olimex ouvre ses schémas, par exemple pour cette carte M4 .
hli
Je ne m'en rendais pas compte. Merci pour l'info. Très utile,
ZnArK
10

Voulez-vous vraiment effectuer cette opération pour un Cortex-M4? C'est un grand bond par rapport à AVR, et je ne vois pas comment vous utiliseriez toutes les fonctionnalités qu'il propose. Pour commencer, un Cortex-M4 est généralement livré dans un grand boîtier, généralement plus de 80 broches pour les pièces d'entrée de gamme, et 200+ n'est pas une exception, pensez QFP ou BGA. Allez-vous faire une carte de dérivation avec deux rangées de 40 broches sur la planche à pain?

Le Cortex-M4 est également conçu pour la haute vitesse: 120 MHz à 200+ MHz en général. OK, vous n'aurez peut-être pas besoin de concevoir votre PCB pour ces vitesses si vous utilisez une PLL sur puce. Mais qu'en est-il des périphériques, comme USB ou Ethernet?

Bien sûr, vous pouvez l'exécuter à des vitesses inférieures et laisser de côté la plupart des fonctionnalités sur puce, mais je me demande à quoi sert un Cortex-M4 pour commencer. Je pense qu'un Cortex-M3 ou même -M0 est plus approprié pour commencer. Je ne veux pas vous décourager, je veux rester réaliste.

Si vous ne voulez aller de l' avant avec le Cortex-M4 vous pouvez faire avec le matériel externe minimal. Le NXP LPC407x, par exemple, possède un oscillateur RC interne qui est l'oscillateur par défaut à la réinitialisation, vous n'avez donc même pas besoin d'un cristal. Un circuit de réinitialisation et un découplage adéquat de l'alimentation seront tout ce dont vous avez besoin pour le mettre en service.

Pour un Cortex-M0, le NXP LPC111x peut valoir le coup d'œil. Certes, il ne contient pas beaucoup de mémoire, mais il est disponible dans un package DIL-28 , ce qui est rare pour les ARM. Alternativement, vous pouvez utiliser une carte de développement comme le LPCXpresso ,

entrez la description de l'image ici

où la moitié droite est la carte d'application, qui peut être séparée de la liaison LPC. Comme vous pouvez le voir, il n'y a pratiquement pas de matériel externe requis pour l'application. Et si vous soudez un ensemble d'en-têtes, vous pouvez le brancher sur une planche à pain.

stevenvh
la source
Excellente rétroaction. Je ne suis pas déterminé à utiliser le Cortex-M4. J'examinerai les modèles M3 / M0. Je vais vérifier la puce et le package exacts que j'ai et mettre à jour la question.
ZnArK du
1
J'ai fait un saut de PIC18 à LPC2100 (c'était en 2008, maintenant ARM7 a été remplacé par Cortex-M3). C'était un grand saut dans les performances, mais ce n'était pas un grand saut dans la complexité matérielle au niveau de la carte.
Nick Alexeev
1
@Nick - J'ai également utilisé plusieurs pièces LPC2000, mais comme vous dites, elles sont remplacées par Cortex-M3. Cortex-M4 est une ligue différente.
stevenvh
8

Comme Steven le dit, c'est un grand pas en avant pour ARM à partir d'un micro 8 bits, alors attendez-vous à un peu d'apprentissage / temps passé sur le chemin.
Je n'irais pas non plus pour le M4 pour votre premier ARM, simplement parce qu'il n'est pas sorti trop longtemps et qu'il y a moins de support / d'informations là-bas. Je pense qu'un M3 ou M0 est un meilleur choix et qu'il y aura beaucoup à faire.

Vous pouvez certainement créer votre propre tableau, mais il serait peut-être préférable de prendre d'abord un tableau de développement petit / bon marché. En ce qui concerne le développement, il existe de nombreuses options, de gratuites (éclipse + GCC + OpenOCD) à coûteuses (Keil, Rowley, etc.) Personnellement, j'utilise l'IDE Raisonance Ride7 et les outils avec les ARM M3 / M4 de la série STM32, ce qui est un peu moins cher que Keil / Rowely mais assez bon.

Jetez un œil à l'une des simples cartes de développement de quelqu'un comme ST, Olimex, etc. Cette carte de développement a à peu près le schéma le plus simple que j'ai pu trouver, pour un STM32 Cortex-M3.

entrez la description de l'image ici

Oli Glaser
la source
Grande suggestion. J'ai un conseil de développement en cours (Stellaris Launchpad) Je prévois de me familiariser avec cela avant de créer mon propre conseil. J'ai également mis à jour mon article avec les informations sur le matériel.
ZnArK
Notez que les cartes coûtent environ 3 fois plus que l'offre de ST.
Chris Stratton du
Le plus récent tableau de bord de @ChrisStratton TI était disponible pour 5 $ expédiés . Il pourrait encore être disponible. Prix ​​difficile à battre.
ZnArK
@ChrisStratton - oui, je l'ai ajouté pour le schéma plutôt que pour le prix (je n'ai même pas vérifié). J'ai l'une des cartes découverte STM32F4, elles sont très bon marché, mais je pensais que cela pouvait confondre un peu les choses avec tout le reste et le programmeur STLink intégré sans connexion JTAG "standard". Pourtant, pour moins de 10 $ (ou quoi que ce soit maintenant), cela vaut probablement la peine d'en saisir un également (peut-être que la version M3 est meilleure comme mentionné)
Oli Glaser
Pour les projets intégrés simples, je trouve que le SWD à 4 broches est beaucoup plus pratique que jtag. Dans sa forme originale d'outil de verrouillage du fournisseur, ce n'est peut-être pas le cas, mais il existe maintenant des solutions ouvertes pour parler aux adaptateurs.
Chris Stratton
5

L' Arduino Due devrait sortir bientôt:

adruino due

Chip est un SAM3X8 Cortex-M3 d'Atmel. Cela peut valoir la peine d'attendre si vous connaissez déjà les cartes de style Arduino et la documentation de style Atmel. Et comme il sera open source pour répondre aux exigences Arduino, vous pouvez bien sûr le tester.

embedded.kyle
la source
Grande suggestion. Je savais que cela allait sortir mais je n'ai pas pensé à utiliser ce modèle aa. Grande suggestion.
ZnArK
4

Je vous recommande de vérifier que Mbed est un appareil cortex-m3 avec quelques beaux périphériques, nxp fournit un compilateur et de nombreuses bibliothèques et bibliothèques communautaires, un moyen très facile de le programmer et son déjà dans un package à utiliser sur une planche à pain. Je pense que ce serait le moyen le plus simple de passer d'AVR à ARM.

Kvegaoro
la source
2

De nombreuses pièces ST peuvent, du moins si elles n'utilisent pas d'émetteur-récepteur USB, fonctionner avec leur oscillateur interne haute vitesse.

Cela signifie essentiellement que votre "circuit" se compose de bouchons de dérivation et de quelques résistances sur des choses comme la réinitialisation et la terminaison sur l'interface SWD.

Les cartes d'évaluation 8-10 $ de ST programmeront les pièces que vous mettez sur votre propre carte via le bus SWD; il existe également des outils open source pour que vous puissiez placer l'opération de programmation directement dans votre Makefile.

Aller chercher quelque chose dans le 48 PQFP vous facilitera probablement la vie lors de votre première tentative de carte. Vous pouvez les assembler sans grossissement (ayez simplement une tresse fine disponible pour fixer le pont ou deux que vous créerez probablement de chaque côté), mais avoir une loupe disponible pour vérifier votre travail serait utile.

Chris Stratton
la source
1
8-10 $ ne sera pas Cortex-M4, je suppose. Pouvez-vous spécifier à quelles parties vous pensez? Aussi pour le package QFP-48? TIA
stevenvh
1
Cortex M3 ... ils ont tendance à faire chaque version dans plusieurs packages, dont le QFP-48 sera le plus facile à travailler à la main.
Chris Stratton