sur les AVR 8 bits en croissance, je ne sais pas où passer


8

J'utilise AVRS 8 bits depuis quelques années maintenant. Dernièrement, je me suis senti limité par les vitesses de transfert de données périphériques et les bibliothèques de niveau supérieur.

J'ai du mal à trouver / choisir une nouvelle gamme de microcontrôleurs à explorer. J'ai regardé

  • NXP - Impossible de trouver un programmeur
  • Freescale - Vous devez vous inscrire à l'IDE
  • AVR32 - Sélection de puces limitée sur digikey

Les puces NXP sont vraiment belles, mais comme pour tout ce qui n'est pas PIC / AVR / Ardiuno, la courbe d'apprentissage est assez raide.

Je me demandais si quelqu'un pouvait suggérer une gamme de microcontrôleurs répondant (par ordre d'importance) aux exigences suivantes

  1. Puces soudables à la main. (Je peux faire LQFP 100)
  2. 32 bits
  3. Hôte Linux
  4. Chaîne d'outils gratuite
  5. Bon / gratuit IDE
  6. <500 $ de coût de démarrage pour une programmation / débogage / compilation illimitée
  7. Peut soutenir
  8. Prise en charge Ethernet / USB

Je suis prêt à revoir Freescale et NXP, si quelqu'un peut me montrer que j'ai manqué des informations sur sa chaîne d'outils et ses programmeurs. Je suppose que vous pourriez dire que les AVR32 sont exactement ce que je recherche, mais je ne suis tout simplement pas satisfait de leur sélection de puces. Ils ont tous un nombre de broches plus élevé et un stock bas sur digikey.

Merci.


2
Quel est le problème avec l'inscription à l'IDE de Freescale?
stevenvh

5
Sauter à travers des cerceaux pour avoir le privilège d'utiliser les puces que vous avez achetées?
XTL

Ouais, eh bien, ils diront qu'ils ont besoin de savoir qui vous êtes pour fournir un meilleur service, lisez pour vendre leurs produits. Cela empire si vous devez vous inscrire juste pour télécharger une fiche technique (cela m'est arrivé plusieurs fois). La vie est difficile :-)
Steven

Devoir "s'inscrire" pour des choses en ligne, c'est sûrement une décision sans précédent. FWIW, leurs forums nécessitent également cet enregistrement, il est donc agréable d'être configuré pour cela également.
Nick T

1
@stevenvh, dans le cas de Wavecom, il était impossible de trouver quoi que ce soit (fiches techniques, messages de forum, documents, etc.) en utilisant un moteur de recherche car tout nécessitait une inscription. Le téléchargement de l'ancienne version de l'EDI est également pénible maintenant qu'ils ont été acquis.
Peter Gibson

Réponses:


4

Je recommanderais certainement NXP - une gamme de puces décente, de bons périphériques (UART avec baudgen flexible et FIFOS, SPI avec FIFO, etc.) une excellente documentation * et des options de programmation flexibles. Obtenez un débogueur JTAG / SWD (les pièces Cortex utilisent SWD - moins de broches que JTAG et peuvent faire des choses comme définir des points d'arrêt pendant l'exécution). J'utilise la version gratuite de kickstart du plan de travail intégré IAR - cela a une limite de code 32K, ce qui me convient, mais sachez que les mises à niveau de la taille du code sont coûteuses. Beaucoup de gens semblent faire OK avec GCC / winarm. Certaines pièces Cortex (par exemple LPC1343) peuvent charger le micrologiciel à partir d'une clé USB à l'aide du chargeur de démarrage intégré. La disponibilité des pièces est généralement bonne - je n'ai jamais eu de mal à trouver du stock. Il existe également de nombreux devboards / breakouts disponibles pour les pièces NXP.

  • la documentation dans les manuels d'utilisation est bonne, mais la plupart des choses sont mentionnées précisément une fois, il vaut donc la peine de lire l' intégralité de chaque section relative à chaque périphérique que vous utiliserez. Les manuels pour les parties ultérieures se sont améliorés en ce sens qu'au début de chaque section, ils vous indiquent quelques éléments critiques non évidents comme les horloges / broches activées documentées ailleurs qui sont nécessaires pour faire fonctionner ce périphérique

12

BRAS, BRAS, BRAS.

ARM concède sous licence leurs cœurs de processeur à de nombreuses entreprises. Cela signifie que vous trouverez de bons outils, un support et une documentation provenant de plusieurs sources.

PIC, AVR et MSP430 souffrent tous du problème d'être détenu à 100% par une seule entreprise.

Gardez à l'esprit avec les microcontrôleurs ARM qu'un Cortex-M3 de NXP va être plus proche d'un Cortex-M3 de ST ou Luminary qu'un ARM9 ou ARM7TDMI de NXP. Plus souvent qu'autrement, les compilateurs, débogueurs et programmeurs sont communs à tous les cœurs plutôt qu'aux fabricants.

Obtenir la chaîne d'outils Codesourcery GCC ARM et un dongle ARM JTAG bon marché vous permettra de faire du chemin.


1
dongle ARM JTAG pas cher == OpenOCD
Johan

@Johan Ou vous pouvez amadouer l'ATmega existant en un seul.
Maxthon Chan

5

J'irais pour NXP. En peu de temps, Cortex-M3 est devenu la norme pour les contrôleurs ARM (je suppose que par Freescale vous voulez dire Coldfire). Depuis ARM7TDMI NXP a également une tradition d'une vaste gamme d'appareils à choisir.
Quant à un programmeur pour NXP, IMO n'importe quel programmeur JTAG devrait faire le travail (CMIIW).

edit
Je lis actuellement sur mbed , qui semble être le moyen le plus simple de démarrer avec le NXP Cortex M3 (le contrôleur utilisé est le LPC1768). Vous programmez / compilez en ligne (donc Linux n'est pas un problème), et vous programmez via USB (le périphérique apparaît comme un périphérique de stockage de masse sur lequel vous pouvez copier votre programme compilé). Aucun programmeur requis. Les programmes écrits pour mbed doivent être directement portables sur LPC1768s sur d'autres cartes.


2

Essayez le PIC24 16 bits et les dsPIC. Beaucoup d'entre eux sont disponibles en DIL et fournissent jusqu'à 40 MIPS. Un logiciel de développement gratuit est disponible et le débogueur / programmeur PICkit 3 est assez bon marché à 50 $. La prochaine version de MPLAB prendra en charge Linux, une version bêta est disponible.


1

Je pensais que vous pourriez obtenir des outils gratuits en liberté pour les ARM. La programmation doit être réalisable à partir du chargeur de démarrage série ou (ouvert) JTAG. Il y a quelques puces et modules STM32 et NXP que j'ai examinés qui m'ont laissé cette impression.

Cela m'a également rappelé cette question .


1

Si vous voulez vraiment passer au 32 bits, essayez les PIC32. Haute disponibilité de Microchip. Pour le débogage Linux, MPLAB X est en version bêta 4 et prend en charge Linux, Windows et Mac OS X. Je pense que vous aurez également besoin d'un PICkit 3 ou d'un programmeur similaire pour 50-60 $.

Cependant, je serais plus orienté vers les dsPIC 16 bits et les PIC24 car ils sont beaucoup moins chers, peuvent être débogués avec un PICkit 2 et sont faciles à programmer. Ils sont également disponibles dans les packages DIP, bien que cela ne vous concerne pas (?) Je suis légèrement biaisé envers eux étant donné que je les utilise dans mon projet.


Il existe maintenant plus d'une douzaine de PIC32 disponibles dans un boîtier DIP à 28 broches, ce qui les rend idéales pour le prototypage. De plus, la nouvelle ligne PIC32MZ (uniquement disponible en SMD) possède jusqu'à 2 Mo de mémoire Flash, 512 Ko de RAM et prend en charge l'hôte CAN / Ethernet / USB 2.0.
tcrosley

1

Le seul processeur 32 bits actuellement fabriqué dans un boîtier DIP est l' hélice Parallax . (La même puce est également disponible dans des boîtiers QFP 44 broches et QFN 44 broches beaucoup plus petits, tous dotés de 32 broches d'E / S à usage général). Il existe également quelques outils de développement qui fonctionnent sous Linux .

Il répond donc facilement à vos 2 premiers critères et à la plupart (hélas, pas tous) de vos critères restants.


0

Jetez un œil à FEZ Domino . Il ne répond pas à toutes vos exigences mais offre beaucoup si vous n'avez pas besoin d'un contrôle de niveau le plus bas possible.


0

La série de puces Cypress PSoC possède une combinaison de fonctionnalités que je n'ai vues dans aucun autre circuit intégré.

La puce PSoC5 comprend un ARM Cortex M3 32 bits, mais pour autant que je sache, ils sont tous emballés dans quelque chose comme un TQFP100. Les séries de puces PSoC1 et PSoC3 incluent de nombreuses puces DIP, mais elles ont toutes un cœur 8 bits ou un autre.

En plus du CPU, la puce a également une interconnexion programmable quelque chose comme un petit FPGA, et quelques amplificateurs opérationnels analogiques sur puce.

http://www.psocdeveloper.com/


0

Les bras Atmel peuvent convenir, surtout

Puces soudables à la main. (Je peux faire LQFP 100)

Ils viennent en TQFP, et vous pouvez utiliser l'un des plus petits à 64 broches.

32 bits

Vérifier

Hôte Linux

Je développe exclusivement sous Linux

Chaîne d'outils gratuite

GCC ARM Toolchain, qui est plus facile à configurer maintenant avec des scripts de construction comme la chaîne d'outils Summon Arm.

Bon / gratuit IDE

Tu m'as là. Vraisemblablement, on pourrait configurer eclipse ou peut-être kdevelop pour faire le travail, mais je n'ai pas essayé. J'utilise vim et kate.

<500 $ de coût de démarrage pour une programmation / débogage / compilation illimitée

La programmation et la compilation vous coûteraient environ 100 $, peut-être, pour créer un prototype d'une carte minimale. Les puces sont livrées avec un chargeur de démarrage intégré en ROM qui vous permet de programmer la puce. Vous n'avez pas besoin d'un débogueur pour le programmer. Vous pouvez obtenir le segger de marque Atmel (et verrouillé) pour environ 100 $. Si vous pouvez vous le permettre, je vous suggère de ne pas opter pour un verrou mais de payer les 200 ou 300 pour le déverrouillé. Il existe également d'autres options beaucoup moins chères que je n'ai pas essayées. L'usbprog semble très prometteur.

Peut soutenir

Assez certain que c'est là, bien que vous devriez vérifier pour en être sûr. Je ne l'utilise pas, donc je ne sais pas si tous l'ont.

Prise en charge Ethernet / USB

Le support USB est là. Le support Ethernet doit être ajouté en externe. Beaucoup d'exemples à choisir, cependant.


Nous avons CAN sur ATSAM. Au moins ATSAM3X8E en a un comme Arduino Duo, en utilisant cette puce, en a exposé un.
Maxthon Chan

0

J'utilise la carte de démonstration lpc4330-xplorer pour le LPC4330 de NXP. J'utilise une chaîne d'outils construite à la main, mais vous pouvez utiliser Yagarto (si vous ne vous souciez pas des FP durs), ou n'importe quel compilateur ARM vraiment, si vous pouvez creuser dans les scripts de l'éditeur de liens. NXP a des périphériques vraiment astucieux comme le temporisateur configurable par état (vous pouvez lire: générateur de fonctions) qui est capable de faire un certain nombre de choses. Ils ont aussi de jolis SGPIO. De plus, ils ont une pléthore de minuteries à bord. Il s'agit également d'un double processeur (puce basée sur M4-M0). Bien sûr, toute leur ligne LPC est plutôt sympa.

Pour être honnête, la ligne Cypress pSOC est également belle, mais je n'ai pas eu l'occasion de l'utiliser. Les autres ont tous leur utilité et leur public, mais j'utilise un environnement de développement Linux, pas d'IDE et une poignée d'outils en ligne de commande. Je choisis ce chemin parce que lorsque quelque chose ne va pas, et c'est toujours le cas, je trouve plus facile de traquer le problème si je n'ai pas à décoller des couches d'outils. De plus, aucune limite de code. Et, bien qu'elle ne soit pas très claire dans les recherches sur Internet, la ligne LPC est plutôt bien prise en charge par l'open source.

Enfin, LPC fournit une bonne quantité d'exemples de code dans LPCOpen. Encore une fois, pour être juste, si vous voulez qu'il compile avec des outils open source, cela prend un peu de travail, mais ce n'est pas difficile. Ils avaient même un bel exemple de serveur Web dans leur. Ils ont également un livre de cuisine SCT (le SCT prend un peu de temps à comprendre, mais une fois que c'est le cas, c'est vraiment bien), mais cela peut prendre un peu de temps pour travailler à travers les exemples, et les exemples SCT dans LPCOpen sont pitoyables. Mais cela en vaut la peine pour que les puces NXP soient opérationnelles. Je passe même un peu de temps avec NuttX (j'étais fatigué du code bare metal tout le temps) et le lpc4330-xplorer.

Quoi qu'il en soit, bonne chance avec tout ce que vous choisissez.


0

Voici mes options:

  • Beaucoup d'E / S mais une vitesse lente acceptable? Groupez les AVR. J'ai essayé de parler SMBus sur des lignes I2C et c'est au moins acceptable.
  • Besoin de vitesse? La série ATSAM semble bonne avec les packages TQFP100 et TQFP144. Nous avons Arduino SAM3X8E dans Arduino Duo. ATSAM a également MII / RMII mais la puce d'interface peut être difficile. Si vous voulez lire la ligne ATSAMA5 et y repenser, Allwinner A20 la bat probablement là-bas.
  • Plus de vitesse, multimédia, probablement un support Linux? Comme je viens de Chine, un fabricant natif particulier est vraiment intéressant: Allwinner. Leurs SoC Cortex-A7, A20 double cœur 5 $ et A31 quadricœur 10 $, ainsi qu'un gros octa-core SoC A80 Cortex-A15 / 7 à 80 $, le tout avec un respectable GPU compatible OpenGL et OpenCL intégré, malgré les packages BGA, sont assez bons pour les tablettes Android de niveau moyen à élevé, plus que suffisants pour le serveur Ubuntu à part entière quelques démons brûlant des GPU, des paquets de routage à une vitesse de ligne de 1 Gbps, ou conduisant deux 1080P ou un Écran 4K.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.