Quel microprocesseur pour l'expérimentation?


33

Je nourris un fantasme secret (oups, pas si secret maintenant) de construire un simple ordinateur à partir de zéro. Je cherche un microprocesseur facile à utiliser pour commencer. Je connais les suspects habituels tels que les 6502, 68000, 8086, Z80, etc. Mais je me demande si quelque chose de mieux existe. Voici ma liste de souhaits:

Doit avoir:

  • Faible fréquence d'horloge (4-25 MHz)
  • Pas plus de 40 à 60 broches, de préférence en configuration DIP
  • Capacité de gérer environ 64 Ko de mémoire, mais un maximum de 1 Mo serait bien
  • Architecture de programme stocké (pas d'instruction en lecture seule) (Edit: ceci exclut la plupart des microcontrôleurs bas de gamme, comme le PIC et l'AVR)
  • Modèle de mémoire à plat, non mis en réserve ou segmenté comme le 8086

Voudrais, mais pas nécessaire d'avoir:

  • Jeu d'instructions RISCy (load-store)
  • Registres à usage général
  • Assortiment de broches TTL I / O
  • ROM flash intégrée

Quel microprocesseur ou microcontrôleur suggéreriez-vous qu'il soit relativement facile de câbler et d'obtenir les premières routines de ROM?

Mon objectif est d’obtenir un système simple Forth (ou similaire). Juste pour dire que je l'ai fait.

Edit: Après avoir fait quelques recherches, je pense que quelque chose comme ARM7 me conviendrait. Il est livré avec une quantité non négligeable de flash et de mémoire SRAM, parfois jusqu’à 256 Ko et 64 Ko de mémoire SRAM, ainsi qu’une entrée / sortie numérique, un convertisseur analogique-numérique, une entrée / sortie série et plus encore.

En voici un: la carte de développement STR711 ARM .


Pas vraiment lié à la programmation. Cela ressemble plus à une question matérielle (c.-à-d. Un matériel de superuser.com).

3
oui, mais seul un public de programmeurs peut répondre correctement
Stefano Borini Le

Voulez-vous que l'appareil gère le clavier, la souris et l'affichage seul ou allez-vous seulement vous connecter via une connexion série?

Une série me conviendrait.

STR711 ARM n'est pas vraiment trempette

Réponses:


15

Je conviens que ARM est la voie à suivre pour les microcontrôleurs 32 bits. ARM est omniprésent et son langage d'assemblage peut être utilisé dans un large éventail de familles de microcontrôleurs. ARM bénéficie également d’un bon support de la chaîne d’outils GCC. L’architecture de la puce ARM7TDMI a dominé l’espace mcu 32 bits au cours des 5 dernières années et le processeur ARM Cortex-M3 en est le remplacement émergent. Le Cortex-M3 a une architecture de Harvard (espaces séparés pour les instructions et les adresses de données), mais je ne pense pas que ce soit une limitation.

Micromint jouit d'une solide réputation et propose une carte Cortex-M3 avec des options configurables et un prix raisonnable. Cependant, si vous avez vraiment besoin de la configuration DIP, j’ai eu du succès avec le mbed

Maintenant, la prochaine chose est les langues. Vous avez mentionné FORTH. Je recommande également Python-on-a-Chip et eLua , des langues puissantes et faciles à apprendre qui fonctionnent sur cette plate-forme cible de taille. eLua est plus développé mais nécessite plus de ressources que Python-on-a-Chip. Divulgation complète: je suis l'auteur de la machine virtuelle PyMite utilisée dans Python-on-a-Chip. Donc, si votre objectif est de créer votre propre langue, je comprends tout à fait la joie de cet exercice.


1
ARM dispose d'instructions et de bus de données distincts , l' espace d'adressage est unifié (vous pouvez ainsi lire des instructions et exécuter des données si vous en avez besoin). Je recommanderais également de regarder les puces Cortex-Mx de bas de gamme de NXP - consultez LPCXpresso.
Igor Skochinsky

7

Pour les petites choses uC Arduino , pas cher, amusant, bonne communauté

Pour les machines de la classe ARM, le moins cher est probablement la prise sheeva, elles constituent une machine complète étonnante intégrée dans une alimentation murale et une machine un peu plus grande monocarte avec beaucoup plus d'e / s

Ou bien il y a un tableau beagle , plus orienté vers la performance audio / vidéo.

Ils fonctionnent tous sous Linux, vous avez donc une vaste gamme de logiciels de développement.


Totalement. Procurez-vous le kit Fuzebox, assemblez-le et piratez de petits jeux (ce sont tous des logiciels libres jusqu'à présent, je pense) pour votre téléviseur.

5

Le MSP430 de Texas Instruments a une très faible consommation d’énergie, un jeu d’instructions petit mais très sain (contrairement au PIC), des outils à code source ouvert et un format DIP dans leur ligne de valeur. Ils viennent de publier un kit de démarrage à 4,30 $ (oui, cela représente quatre dollars trente cents, livraison gratuite) comprenant une interface USB pour la programmation et le débogage, ainsi que deux puces DIP avec lesquelles jouer. Check it out .


C'est plutôt cool! J'ai mis ce site en favori. :)

4

Vous pouvez obtenir un FPGA et simuler le tout - aucun processeur requis.

J'ai déjà été tenté de créer un simple ordinateur MIPS. J'ai une conception de base du processeur, mais il serait difficile de dire le moins du monde.


C'est une idée intéressante. Existe-t-il des sources de processeurs de référence pouvant être programmées dans un FPGA?

La plupart des devkits FPGA sont livrés avec une conception de processeur libre ou sous licence. Parfois, même avec un RTOS d'accompagnement.

Un PDP-1 serait réalisable. Il est construit à partir de composants modulaires. Les logigrammes de chaque composant sont publiés dans le Digital Logic Handbook, 1969 (le mien vient d’être envoyé par la poste aujourd’hui!).
luser droog

2

Découvrez les microcontrôleurs ATmega d’Atmel, ils ont tout ce que vous demandez sauf la possibilité d’exécuter du code à partir de la RAM, et ils sont très faciles à configurer.

Certains petits processeurs ARM 32 bits tels que ARM7TDMI pourraient constituer une alternative, mais ils ne sont pas fournis dans les packages DIP. Il en va de même pour les microcontrôleurs Renesas R8C / M16C.



Tous les AVR utilisent un espace d'instruction en lecture seule, n'est-ce pas? Je dois pouvoir exécuter en dehors de la RAM, afin que mes programmes puissent en écrire.

Oui, on dirait que tu as raison. Cependant, lorsque j'ai joué avec Forth il y a 25 ans, j'ai utilisé une implémentation de code threadé, ce qui serait possible avec AVR.
starblue

Un processeur ARM Cortex M0 dans un boîtier DIP à 28 broches a été détecté
starblue

2

Cela semble être un bon projet! J'en ai fait une dans les années 70 avec une puce 8008 et un peu de RAM et de ROM. Je l'ai programmé pour jouer un petit morceau avec les haut-parleurs connectés au port I / O. Une partie du circuit de la mémoire impliquait une puce de minuterie contrôlée par un condensateur. J'ai soudé un condensateur supplémentaire qui, lorsqu'il a été mis en contact, a permis de ralentir le processus de 1 000. Ensuite, j'ai utilisé le cours en classe comme démonstrateur. Premièrement, je le faisais lentement et les étudiants pouvaient entendre les haut-parleurs cliquer, cliquer. Puis j'ai décroché le condensateur et ils ont entendu la mélodie. J'essayais de leur expliquer comment les ordinateurs finissaient une instruction avant de commencer la suivante.


1

Découvrez OLIMEX, ils ont des cartes de développement pour la plupart des micro-contrôleurs modernes et si vous voulez vraiment DIP, ils ont des processeurs ARM sur des cartes au format DIP ( 1 ). Ils vendent également des JTAG et disposent d’un code de démonstration pour la plupart des cartes (gcc), ce qui les rend très faciles à utiliser. La plupart de leurs conseils sont disponibles via Sparkfun . Personnellement, j’aime les micros Phillips LPC ARM, mais tout ce qui vient d’Olimim est bon.

L’AVR32 fonctionnera également pour vous (non négligeable). Je viens tout juste de commencer à les utiliser et je suis très surpris de la facilité et de la facilité avec laquelle ils sont utilisés.

Construire à partir de zéro n'est pas vraiment une option aujourd'hui, sauf si vous utilisez un micro à immersion 8 bits ou si vous disposez d'une configuration pour souder des cartes de montage en surface et déboguer des cartes PC numériques complexes.


1

En fonction de vos objectifs, vous pouvez envisager de créer votre propre processeur avec les fonctionnalités souhaitées, au lieu d'utiliser un processeur existant. Découvrez le webring CPU Homebuilt . Il y a même un enthousiaste fou qui a construit un processeur à partir de relais!


1
HOU LA LA! C'est louche! Et il a l'air fier de ça ....
asp316

C'est un beau projet. Alan Turing a travaillé avec du matériel à relais. Le matériel de relais de ce type a l'air parfaitement assemblé et construit dans de belles armoires. Bon travail!
Kaz

1

Hélice Parallax

Le seul processeur 32 bits en cours de fabrication dans un package DIP est le Parallax Propeller . (La même puce est également disponible dans des boîtiers QFP 44 broches et QFN 44 broches beaucoup plus petits, tous avec 32 broches d’E / S à usage général). Outre l'IDE Windows, il existe également quelques outils de développement sous Linux .

Il semble répondre à toutes vos exigences, à l'exception de la "ROM flash intégrée", qui lance propeller à partir d'une EEPROM à 8 broches externe. (C'est une chose de plus à câbler, mais il est beaucoup plus facile de câbler une puce à 8 broches que la plupart des puces de stockage de programme externes).


0

+1 Pour les micros ATmega. Vous les recevez avec un chargeur de démarrage pour la programmation via USB, ce qui simplifie encore le fonctionnement de la première carte sans recourir à un programmeur dédié. Vous allez manquer les choses ICE si vous suivez cette voie.


0

Un deuxième vote pour l'Amtel. J'aime particulièrement le teensy ++ pour les prototypes et l'expérimentation. L'USB fournit l'alimentation, fournit une interface de programmation et affiche la sortie de débogage. Outils de développement GNU. Des tonnes de plaisir pour environ 30 $.


0

Atmel sera très populaire, les arduinos (j'aime les modèles pro de sparkfun) sont eux-mêmes populaires. Vous trouverez de nombreux amateurs connaissant et pouvant répondre à la plupart des questions concernant l’utilisation de l’AVR.

Je préfère le jeu d'instructions msp430 au avr et le jeu d'instructions au-dessus des autres. Olimex fabrique un certain nombre de cartes "en-tête" parfaitement adaptées aux expériences. Luminary micro en a de bons, mais la plupart des broches sont consommées par une puce. Montrez les périphériques de la puce, ce qui est bon pour apprendre la puce et ses fonctionnalités, mais vous voudrez éventuellement les couper pour pouvoir accéder aux E / S. Quoi qu'il en soit, olimex est bon, essayez http://www.sparkfun.com et parcourez les conseils de développement, certains proviennent d’olimex, certains de sparkfun, une vaste sélection et de nombreux autres à moins de 40 $ ou 50 $ afin que vous puissiez en essayer quelques-uns. comme. Je suis sur le point de commander un armmite, qui, s’il est à la hauteur de sa liste de fonctionnalités, est probablement le meilleur contrôleur pour mes besoins.


0

J'ai eu le même rêve, mais je n'y suis jamais vraiment allée.

La plupart des recommandations ci-dessus concernent les conseils de développement. Puisque vous avez dit "à partir de zéro", je suppose que vous voulez commencer avec une seule puce de processeur DIP et non acheter une carte de développement. Dans ce cas, je vous recommanderais très fort de vous en tenir à quelque chose qui ressemble aux suspects habituels que vous avez énumérés dans votre message. Ils sont populaires parce qu'ils fonctionnent bien pour une telle tâche. Vous pouvez surmonter le besoin de davantage de lignes d'E / S avec des multiplexeurs et des démultiplexeurs.

Supposons que vous trouviez ce processeur "parfait" qui fait tout ce que vous voulez et a le nombre exact de lignes d'E / S que vous souhaitez. Vous ne trouverez nulle part près du support que vous trouverez pour les processeurs populaires. Vous devriez pouvoir facilement trouver de vieux livres usagés sur E-Bay, Amazon, etc. Pour quelques centimes qui montrent comment concevoir un système complet à l'aide de ces processeurs. Sans parler des sites Web, des compilateurs et d'autres personnes qui font la même chose.

Si vous partez avec autre chose, je pense que vous allez le regretter profondément. Vous passerez plus de temps frustré par le manque de support que par la résolution de problèmes techniques avec ces processeurs. De plus, puisque les gens ont déjà conçu des ordinateurs complets avec ces puces, vous savez que cela peut être fait. Avec toute autre chose, il y a toujours une chance que vous vous heurtiez à un mur de briques.


En outre, vous pouvez envisager la possibilité de copier une architecture existante telle que le C64, qui a déjà été piratée à mort.

0

Choisissez Atmel AVR. Voici quelques plates-formes de jeu autour de cela:

http://belogic.com/uzebox/index.asp
http://avga.prometheus4.com/
http://www.innovativedevice.com/console/GameStation.asp
http://www.lucidscience.com/pro-lazarus-64%20prototype-1.aspx
http://www.lucidscience.com/pro-vga%20video%20generator-1.aspx

0

Je préfère le jeu d'instructions msp430 au avr et le jeu d'instructions au-dessus des autres.

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.