Table des matières:

Le KIM Uno - un émulateur de kit de développement de microprocesseur à 5 € : 13 étapes (avec photos)
Le KIM Uno - un émulateur de kit de développement de microprocesseur à 5 € : 13 étapes (avec photos)

Vidéo: Le KIM Uno - un émulateur de kit de développement de microprocesseur à 5 € : 13 étapes (avec photos)

Vidéo: Le KIM Uno - un émulateur de kit de développement de microprocesseur à 5 € : 13 étapes (avec photos)
Vidéo: TRONIK AVENTUR 301 : ATMEGA328P pour économiser des Arduino Uno 2024, Juin
Anonim
Image
Image
Le KIM Uno - un émulateur de kit de développement de microprocesseur à 5 €
Le KIM Uno - un émulateur de kit de développement de microprocesseur à 5 €
Le KIM Uno - un émulateur de kit de développement de microprocesseur à 5 €
Le KIM Uno - un émulateur de kit de développement de microprocesseur à 5 €

Le KIM Uno est un kit de développement portable et défini par logiciel pour les microprocesseurs (rétro). Mais permettez-moi d'en présenter l'idée en remontant le temps:

À la fin de 2018, il m'est venu à l'esprit que je voulais construire un petit kit de développement de microprocesseur portable, tout comme le célèbre KIM-1 de MOS Technology, Inc. et conçu par Chuck Peddle qui a également participé à la création du processeur 6502.

Mais construire un kit de développement "bare-bone" avec des composants logiques discrets n'était pas une option car il nécessitait une grosse alimentation (puisque ces anciens appareils ont tendance à prendre un courant important) et le développement prendrait également beaucoup de temps. Et je le veux maintenant !

Par conséquent, j'ai conçu le KIM Uno comme un appareil portable, qui tient dans une main et est alimenté par deux piles CR2032. Il utilise le microcontrôleur ATMega328p ("Arduino") fonctionnant à 8 MHz pour émuler (ou simuler) un processeur souhaité. Cette architecture garantit également que les processeurs émulés sont interchangeables avec tout ce qui tient dans la mémoire flash du microcontrôleur. C'est donc un appareil polyvalent.

Par coïncidence, j'ai regardé plus tard une très bonne conférence - intitulée The Ultimate Apollo Guidance Computer Talk (34C3) - sur YouTube où "One Instruction Set Computers" ou OISC sont mentionnés. Je ne les connaissais pas et j'ai trouvé que c'était le candidat idéal pour le mettre en œuvre.

Le KIM Uno émule un processeur avec une seule instruction: subleq - soustrait et branche si inférieur ou égal à zéro.

Si vous suivez avec moi à travers ce Instructable, vous pouvez construire votre propre KIM Uno en un rien de temps. Et le meilleur - outre le fait que vous pouvez le modifier à votre goût - c'est qu'il ne coûte que 4,75 € à fabriquer (fin 2018).

Un indice: il existe un référentiel Git qui contient tous les fichiers fournis par les différentes étapes de cette instructable. Si vous souhaitez modifier certaines ressources et les partager avec nous, vous pouvez faire un PR. Mais vous pouvez également y télécharger tous les fichiers à la fois. Simplement à https://github.com/maxstrauch/kim-uno. Merci!

Il existe un autre projet assez intéressant, appelé le même (KIM Uno), qui fait une véritable réplique du 6502 KIM Uno. Vérifiez le ici. Le créateur vend même le kit. Alors si le 6502 vous intéresse et que vous aimez ce projet, vous devriez y jeter un œil !

Étape 1: Sourcing du PCB

Approvisionnement du PCB
Approvisionnement du PCB
Approvisionnement du PCB
Approvisionnement du PCB

Comme vous pouvez le voir, j'ai profité de l'occasion pour concevoir un PCB et le laisser faire de manière professionnelle. Étant donné que le fabriquer à l'extérieur et vous l'expédier prendra beaucoup de temps (selon l'endroit où vous vous trouvez dans le monde;-)), le commander est la première étape. Nous pouvons ensuite continuer avec les autres étapes pendant que le PCB est fabriqué et vous est expédié.

J'ai commandé mes PCB en Chine chez PCBWay pour seulement 5 $. Je ne tire aucun avantage de présenter PCBWay comme mon fabricant de choix pour les PCB, c'est juste que cela a bien fonctionné pour moi et pourrait aussi bien fonctionner pour vous. Mais vous pouvez les commander à n'importe quel autre endroit comme JLCPCB, OSH Park ou n'importe quelle entreprise locale de PCB.

Mais si vous êtes prêt à les commander sur PCBWay, vous pouvez télécharger le fichier ZIP ci-joint " kim-uno-rev1_2018-12-12_gerbers.zip" et le télécharger directement sur PCBWay sans aucun changement. C'est le fichier original que j'ai utilisé pour commander les PCB que vous pouvez voir dans les images.

Si vous les commandez auprès d'un autre fabricant, vous devrez peut-être les réexporter à partir des sources KiCad d'origine, car je les ai générés avec les spécifications de PCBWay que vous pouvez trouver ici. Pour les sources originales de KiCad, téléchargez " kim-uno-kicad-sources.zip" et extrayez-le.

Mais il existe même un deuxième moyen: si vous ne souhaitez pas commander le PCB, vous pouvez créer votre propre version en utilisant perfboard ou même une maquette.

Quoi qu'il en soit: puisque les PCB sont maintenant en route, nous pouvons nous concentrer sur les autres parties ! Viens, suis-moi.

Étape 2: Sourcing des composants

Approvisionnement des composants
Approvisionnement des composants
Approvisionnement des composants
Approvisionnement des composants
Approvisionnement des composants
Approvisionnement des composants

Maintenant, vous devez obtenir les composants. Pour cela, vous trouverez une image d'ensemble de tous les composants et quantités dont vous avez besoin, jointe à cette étape ainsi qu'une nomenclature (nomenclature).

La nomenclature contient des liens vers eBay. Bien que ces offres puissent être fermées lorsque vous lisez ceci, vous pouvez l'utiliser comme point de départ. Les composants utilisés sont assez standard.

Dans ce qui suit, je vais vous expliquer tous les composants nécessaires:

  • 7 résistances de 1 kΩ pour les sept affichages à segments. Vous pouvez réduire la valeur (par exemple à 470 Ω) pour les faire briller plus fort, mais ne la réduisez pas trop sinon les LED mourront ou la batterie se déchargera très rapidement. J'ai trouvé que cette valeur fonctionne pour moi
  • 1x 10 kΩ comme résistance de rappel pour la ligne RESET du microcontrôleur
  • 1x condensateur 100nF pour lisser les pics de tension (ce qui ne devrait pas arriver puisque nous utilisons des piles, c'est vrai, mais pour faire bonne mesure…)
  • 1x ATMega328P dans le boîtier DIP-28 (généralement nommé ATMega328P-PU)
  • 1x le PCB principal - voir l'étape précédente; soit commandé ou construit par vous-même
  • 2x porte-piles CR2032
  • 1x interrupteur SPDT (unipolaire, bidirectionnel) qui a essentiellement trois contacts et dans chacun de ses deux états (activé ou désactivé), il connecte deux contacts
  • 20x boutons poussoirs tactiles pour le clavier. Pour utiliser l'arrière du PCB, j'ai utilisé des boutons poussoirs tactiles SMD (les standards 6x6x6 mm) - ils sont assez faciles à souder comme vous le verrez
  • FACULTATIF: 1x 1x6 broches en-tête pour connecter le programmeur, mais ceci est facultatif comme vous le verrez plus tard
  • 1 affichage à sept segments avec 4 chiffres et 1 affichage à sept segments avec 2 chiffres - la carte n'acceptera que des éléments de 0,36 pouce (9, 14 mm) avec un câblage d'anode commun. Les deux exigences sont importantes pour obtenir une unité de travail. Mais aussi ce type d'affichage à sept segments est très courant

Attaché à cette étape, vous pouvez trouver le fichier « component-datasheets.zip » qui contient des informations plus précises sur les dimensions et les types des composants utilisés. Mais la plupart des composants sont très standard et peuvent être obtenus facilement pour peu d'argent.

Maintenant, vous devez attendre que tous les composants soient prêts pour continuer à souder. Pendant ce temps, vous pouvez déjà aller à la fin et lire un peu sur l'utilisation du KIM Uno si vous le souhaitez.

Étape 3: Présentation de l'outil de soudage

Aperçu de l'outil de soudage
Aperçu de l'outil de soudage
Aperçu de l'outil de soudage
Aperçu de l'outil de soudage

Pour souder et construire le KIM Uno, vous avez besoin des outils illustrés par les images:

  • Coupe-fil (pour couper l'extrémité des fils composants)
  • Pince plate
  • Paire de pincettes
  • (correcte) Soudure qui n'est pas trop épaisse - j'utilise de la soudure de 0,56 mm
  • Un fer à souder - vous n'avez pas besoin d'un fer à souder haut de gamme (car nous ne faisons pas non plus de la science des fusées ici) - J'utilise l'Ersa FineTip 260 depuis longtemps maintenant et il est vraiment bien
  • Un stylo à flux: l'ajout de flux aux composants et aux pastilles permet de les souder d'autant plus facilement que la soudure " s'écoule " d'elle-même au bon endroit*
  • En option: une éponge (en laine de métal) pour votre fer à souder

Pour programmer ultérieurement le KIM Uno, vous aurez également besoin de:

  • un ordinateur avec la chaîne d'outils AVR-GCC et avrdude pour télécharger le firmware
  • un FAI (programmeur) - comme vous pouvez le voir sur l'image, j'utilise mon Arduino Uno comme FAI avec un croquis spécial - donc pas besoin d'acheter du matériel sophistiqué

* quelques conseils par des humains nécessaires;-)

Es-tu prêt? Dans l'étape suivante, nous allons commencer à assembler le KIM Uno.

Étape 4: Soudure #1: Ajout de résistances et de condensateurs

Soudure #1: Ajout de résistances et de condensateurs
Soudure #1: Ajout de résistances et de condensateurs
Soudure #1: Ajout de résistances et de condensateurs
Soudure #1: Ajout de résistances et de condensateurs
Soudure #1: Ajout de résistances et de condensateurs
Soudure #1: Ajout de résistances et de condensateurs
Soudure #1: Ajout de résistances et de condensateurs
Soudure #1: Ajout de résistances et de condensateurs

Vous devez toujours travailler à partir des composants les plus petits (en termes de hauteur des composants) en premier, jusqu'aux composants les plus hauts en dernier. Par conséquent, nous commençons par ajouter les résistances et plier les jambes à l'arrière afin que les résistances soient faciles à souder et restent en place. Ensuite, coupez les longs fils.

De plus, non illustré dans les images, ajoutez le petit condensateur de 100 nF de la même manière.

Un conseil: conservez ces pattes en fil de fer dans un petit contenant, elles sont parfois utiles.

Étape 5: Soudure #2: Assemblage du clavier

Soudure #2: Assemblage du clavier
Soudure #2: Assemblage du clavier
Soudure #2: Assemblage du clavier
Soudure #2: Assemblage du clavier
Soudure #2: Assemblage du clavier
Soudure #2: Assemblage du clavier

L'étape suivante consiste à souder les 20 commutateurs tactiles SMD. Comme ce travail est un peu fastidieux, nous le faisons maintenant, lorsque le PCB repose à plat sur l'établi.

On va travailler de haut en bas (ou de gauche à droite si le PCB est orienté comme indiqué sur les photos) et commencer par la première rangée: choisir un des quatre pads pour chaque switch et le mouiller avec le flux pen.

Utilisez ensuite une pince à épiler pour saisir un interrupteur et positionnez-le soigneusement sur les quatre pads. Puis soudez uniquement la patte de l'interrupteur qui se trouve sur le plot que vous avez choisi et préparé avec du flux. Pour cela, vous devez "prendre" de la soudure avec votre fer avant de commencer. En utilisant cette méthode, complétez toute la rangée de commutateurs, en ne soudant qu'une seule jambe.

L'image avec les flèches montre un grossissement comment la soudure a été faite exactement.

Après avoir soudé toute la rangée (une seule broche), vous pouvez faire de petits ajustements en chauffant la broche et en repositionnant le commutateur. Assurez-vous que les commutateurs sont alignés aussi bien que possible.

Si vous êtes satisfait de l'alignement, vous pouvez mouiller toutes les autres broches avec le stylo à flux, puis les souder en les touchant avec le fer à souder et en ajoutant un peu de soudure en les touchant également. Vous verrez que la soudure est aspirée directement sur la pastille.

Après avoir soudé une rangée ou deux, vous remarquerez que vous vous y habituez et que ce n'est pas si difficile mais répétitif. Alors faites le reste et vous obtiendrez un clavier fini en un rien de temps.

Étape 6: Soudure #3: l'affichage à sept segments, le commutateur et l'en-tête de broche

Soudure n°3: l'affichage à sept segments, le commutateur et l'en-tête de broche
Soudure n°3: l'affichage à sept segments, le commutateur et l'en-tête de broche
Soudure n°3: l'affichage à sept segments, le commutateur et l'en-tête de broche
Soudure n°3: l'affichage à sept segments, le commutateur et l'en-tête de broche
Soudure n°3: l'affichage à sept segments, le commutateur et l'en-tête de broche
Soudure n°3: l'affichage à sept segments, le commutateur et l'en-tête de broche

Maintenant, vous pouvez ajouter le commutateur et l'en-tête de broche (facultatif) en le tenant avec votre doigt et en soudant une broche pour la maintenir au PCB, de sorte que vous puissiez souder les autres broches et enfin retoucher la broche de maintien initiale.

Attention à ne pas vous brûler avec le fer à souder chaud. Si vous n'êtes pas à l'aise avec cela, vous pouvez utiliser un peu de ruban adhésif (par exemple du ruban adhésif pour peintre) pour maintenir le composant. De cette façon, vous avez les deux mains libres pour vous déplacer.

Les sept écrans segmentés sont soudés de la même manière (voir image): vous l'insérez, le tenez avec votre main ou du ruban adhésif et soudez deux broches opposées pour le maintenir en place pendant que vous pouvez souder les autres broches.

Mais soyez prudent et mettez l'affichage à sept segments dans le bon sens (avec les points décimaux face au clavier). Sinon tu as des ennuis…

Étape 7: Soudage #4: Soudage du microcontrôleur

Soudure n°4: Souder le microcontrôleur
Soudure n°4: Souder le microcontrôleur

Maintenant que vous avez beaucoup de pratique, vous pouvez aller de l'avant et mettre le microcontrôleur avec l'encoche sur le dessus (ou la première broche) tournée vers le commutateur. À l'aide d'une pince plate, vous pouvez légèrement plier les pattes du microcontrôleur afin qu'elles correspondent aux trous du circuit imprimé.

Comme il s'agit d'un ajustement serré, vous avez besoin d'une force contrôlée pour insérer le microcontrôleur. L'avantage est qu'il ne tombe pas. Cela signifie que vous pouvez prendre votre temps et le souder par l'arrière.

Étape 8: Soudure #5: Ajoutez les supports de batterie (étape finale)

Soudure n°5: ajoutez les supports de batterie (étape finale)
Soudure n°5: ajoutez les supports de batterie (étape finale)
Soudure n°5: ajoutez les supports de batterie (étape finale)
Soudure n°5: ajoutez les supports de batterie (étape finale)
Soudure n°5: ajoutez les supports de batterie (étape finale)
Soudure n°5: ajoutez les supports de batterie (étape finale)

Enfin, vous devez ajouter les supports de batterie à l'arrière. Pour cela, il vous suffit d'utiliser le stylo flux et de mouiller les quatre plaquettes, puis de souder votre fer. Alignez soigneusement le support de batterie sur les deux patins. Aux deux extrémités des contacts, il devrait y avoir la même quantité de plot PCB visible. Touchez le pad PCB et la patte du support de batterie avec votre fer à repasser. La soudure coulera sous le tampon et au-dessus et le fixera en place comme indiqué dans l'image. Si vous avez des problèmes avec cela, vous pouvez ajouter plus de flux avec le stylo.

Étape 9: Flasher l'émulateur

Flasher l'émulateur
Flasher l'émulateur
Flasher l'émulateur
Flasher l'émulateur
Flasher l'émulateur
Flasher l'émulateur

Dans l'archive zip ci-jointe " kim-uno-firmware.zip", vous pouvez trouver le code source de l'émulateur ainsi qu'un "main.hex" déjà compilé que vous pouvez directement télécharger sur le microcontrôleur.

Avant de pouvoir l'utiliser réellement, vous devez régler les bits de fusible du microcontrôleur, de sorte qu'il utilise l'horloge interne de 8 MHz sans la diviser en deux. Vous pouvez effectuer le travail avec la commande suivante:

avrdude -c stk500v1 -b 9600 -v -v -P /dev/cu.usbmodem1421 -p m328p -U lfuse:w:0xe2:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m

Si vous ne connaissez pas avrdude: c'est un programme pour télécharger des programmes sur un microcontrôleur. Vous pouvez en apprendre plus à ce sujet ici. Fondamentalement, vous l'installez et ensuite il est prêt à l'emploi. Pour votre configuration, vous devrez peut-être changer l'argument de "-P" en un autre port série. Veuillez vérifier sur votre ordinateur quel port série est utilisé (par exemple à l'intérieur de l'IDE Arduino).

Après cela, vous pouvez flasher le firmware sur le microcontrôleur avec cette commande:

avrdude -c stk500v1 -b 9600 -v -v -P /dev/cu.usbmodem1421 -p m328p -U flash:w:main.hex

Encore une fois: la même chose s'applique à "-P" comme ci-dessus.

Comme je ne possède pas de FAI "professionnel" (In-System Programmer), j'utilise toujours mon Arduino UNO (voir image) et le croquis que j'ai joint ("arduino-isp.ino", de Randall Bohn). Je sais qu'il existe une version plus récente, mais avec cette version, je n'ai eu aucun problème avec ces cinq dernières années, donc je la garde. Cela fonctionne. En utilisant le commentaire dans l'en-tête du croquis, vous obtenez le brochage sur l'Arduino UNO et en utilisant le schéma du KIM Uno (voir ci-joint), vous pouvez obtenir le brochage de l'en-tête 1x6 ISP sur le KIM Uno. La broche carrée, près de l'affichage à sept segments est la broche 1 (GND). Les broches suivantes sont (dans le bon ordre): RESET, MOSI, MISO, SCK, VCC. Vous pouvez connecter VCC soit à 3V3 soit à 5V.

Si vous n'avez pas ajouté l'en-tête 1x6 broches, vous pouvez utiliser des fils de maquette et les mettre dans les trous de connexion et les incliner avec votre doigt - comme indiqué sur l'image. Cela fait suffisamment de contact pour flasher le firmware et régler les fusibles. Mais si vous aimez une configuration plus permanente, vous devez absolument ajouter les en-têtes 1x6 broches.

J'ai deux appareils: une version de production sans les en-têtes de broches et une version de développement avec des en-têtes de broches que je laisse connectés et que je réutilise encore et encore pendant le développement. C'est beaucoup plus confortable.

Étape 10: Terminé

Fini
Fini
Fini
Fini

Maintenant, vous avez terminé et pouvez commencer à écrire vos propres programmes subleq sur papier, les assembler puis les entrer dans la mémoire.

Le KIM Uno est livré avec un calcul de Fibonacci préprogrammé commençant à l'emplacement mémoire 0x0a. Il est défini par défaut sur n = 6 et devrait donc donner une valeur de 8. Appuyez sur "Go" pour lancer le calcul.

Étape 11: Analyse de la conception des circuits imprimés

Analyse de conception de PCB
Analyse de conception de PCB
Analyse de conception de PCB
Analyse de conception de PCB

Après avoir terminé ce projet, j'ai trouvé quelques points qui méritent d'être notés et devraient être traités dans une nouvelle révision du tableau:

  • la sérigraphie de l'ATMega328p n'a pas l'encoche habituelle où se trouve la première broche. L'empreinte DIP-28 n'a même pas de patin carré où se trouve la première broche. Cela devrait certainement être amélioré avec une sérigraphie plus détaillée pour éviter toute confusion
  • l'en-tête ISP n'a pas d'étiquettes de connexion sur l'écran en soie. Cela rend difficile de reconnaître comment le connecter au FAI
  • l'en-tête ISP peut être changé en un en-tête 2x6 broches avec une disposition de broches standard pour éviter toute confusion

En dehors de ces points, je suis assez content de la façon dont cela s'est passé et du premier essai.

Étape 12: Comment programmer SUBLEQ ?

Image
Image
Comment programmer SUBLEQ ?
Comment programmer SUBLEQ ?
Comment programmer SUBLEQ ?
Comment programmer SUBLEQ ?

Comme mentionné au début, le micrologiciel actuel du KIM Uno émule un ordinateur à jeu d'instructions unique (OISC) et fournit l'instruction subleq pour effectuer le calcul.

L'instruction subleq signifie soustraire et branchement si inférieur ou égal à zéro. En pseudo-code, cela ressemble à ceci:

subleq A B C mem[B] = mem [B] - mem[A]; si (mem[B] <= 0) aller à C;

Étant donné que le KIM Uno émule une machine à 8 bits, tous les arguments A, B et C sont des valeurs de 8 bits et il peut donc adresser une mémoire principale totale de 256 octets. Évidemment, cela peut être étendu en créant des valeurs multi-octets A, B et C. Mais pour l'instant restons simples.

Le KIM Uno dispose également de « périphériques »: l'écran et le clavier. Il utilise une architecture mappée en mémoire pour interfacer ces périphériques, bien que la carte mémoire soit très simple:

  • 0x00 = le registre Z (zéro) et doit être maintenu à zéro.
  • 0x01 - 0x06 = six octets qui représentent la valeur de chacun des segments d'affichage (de droite à gauche). Une valeur 0xf - voir le code source (main.c) pour plus de détails.
  • 0x07, 0x08, 0x09 = trois octets où chaque octet représente deux affichages à sept segments (de droite à gauche). Ces emplacements mémoire permettent d'afficher simplement un résultat sans diviser le résultat en deux quartets pour le placer dans les emplacements mémoire à un chiffre 0x01 - 0x06.
  • 0x0a+ = Un programme démarre à 0x0a. Actuellement, la touche "Go" s'exécute à partir de 0x0a corrigé.

Avec ces informations, on peut maintenant écrire un programme en assembleur et entrer les instructions dans la mémoire, puis l'exécuter. Comme il n'y a qu'une seule instruction, seuls les arguments (A, B et C) sont saisis. Ainsi, après trois emplacements mémoire, les arguments de l'instruction suivante commencent et ainsi de suite.

Attaché à cette étape, vous pouvez trouver le fichier " fibonacci.s" ainsi qu'une image du programme manuscrit qui est un exemple d'implémentation de Fibonacci. Mais attendez: il y a trois instructions utilisées - spécifiquement ADD, MOV et HLT - qui ne sont pas subleq. « Quel est le problème ? N'avez-vous pas dit qu'il n'y a qu'une seule instruction, subleq ? » vous demandez? C'est très simple: avec subleq on peut imiter ces instructions très facilement:

MOV a, b - les données de copie à l'emplacement a à b peuvent être composées de:

  1. subleq b, b, 2 (instruction suivante)
  2. subleq a, Z, 3 (instruction suivante)
  3. subleq Z, b, 4 (instruction suivante)
  4. subleq Z, Z, par ex. 5 (instruction suivante)

En utilisant la fonction de soustraction de subleq, qui fait mem - mem[a] et écrase mem avec le résultat, la valeur est copiée en utilisant le registre zéro. Et "subleq Z, Z, …" remet simplement le registre zéro à 0, quelle que soit la valeur de Z.

AJOUTER a, b - additionne les valeurs a + b et stocke la somme dans b peut être composé de:

  1. subleq a, Z, 2 (instruction suivante)
  2. subleq Z, b, 3 (instruction suivante)
  3. subleq Z, Z, par ex. 4 (instruction suivante)

Cette instruction calcule simplement mem - (- mem[a]) qui est mem + mem[a] en utilisant également la fonction de soustraction.

HLT - arrête le CPU et termine l'exécution:

Par définition, l'émulateur sait que le CPU veut se terminer s'il passe à 0xff (ou -1 s'il est signé). Alors un simple

sous-leq Z, Z, -1

fait le travail et indique à l'émulateur qu'il doit mettre fin à l'émulation.

En utilisant ces trois instructions simples, l'algorithme de Fibonacci peut être implémenté et fonctionne très bien. C'est parce que l'OISC peut calculer tout ce qu'un ordinateur "réel" peut calculer avec seulement l'instruction subleq. Mais bien sûr, il y a de nombreux compromis à faire - comme la longueur et la vitesse du code. Mais néanmoins, c'est un excellent moyen d'apprendre et d'expérimenter la programmation logicielle de bas niveau et les ordinateurs.

Attaché à cette étape, vous pouvez également trouver l'archive zip " kim_uno_tools.zip". Il contient un assembleur et un simulateur de base pour le KIM Uno. Ils sont écrits en NodeJS - assurez-vous de l'avoir installé.

Assemblage de programmes

Si vous jetez un œil à "fibonacci/fibonacci.s", vous constaterez qu'il s'agit du code source de l'implémentation de fibonacci discutée. Pour l'assembler et en faire un programme que le KIM Uno peut exécuter, vous entrez la commande suivante (à la racine de l'archive extraite "kim_uno_tools.zip"):

nœud assembler.js fibonacci/fibonacci.s

et il affichera une erreur si vous avez fait une erreur ou renverra le programme résultant. Pour l'enregistrer, vous pouvez copier la sortie et l'enregistrer dans un fichier ou simplement exécuter cette commande:

nœud assemble.js fibonacci/fibonacci.s > votrefichier.h

La sortie est formatée de manière à pouvoir être directement incluse dans le micrologiciel KIM Uno en tant que fichier d'en-tête C, mais le simulateur peut également l'utiliser pour simuler. Entrez simplement:

nœud sim.js votrefichier.h

Et le résultat de la simulation et la sortie attendue du KIM Uno s'afficheront à l'écran.

Il s'agissait d'une très brève introduction à ces outils; Je vous recommande de jouer avec eux et de regarder comment ils fonctionnent. De cette façon, vous obtenez une connaissance approfondie et apprenez les principes de fonctionnement des processeurs, des instructions, des assembleurs et des émulateurs;-)

Étape 13: Outlook

Perspectives
Perspectives
Perspectives
Perspectives
Perspectives
Perspectives

Toutes nos félicitations

Si vous lisez ceci, vous avez probablement parcouru toute cette instructable et construit votre propre KIM Uno. C'est vraiment sympa.

Mais le voyage ne s'arrête pas là - il existe un nombre infini d'options pour modifier le KIM Uno et le personnaliser selon vos besoins et vos goûts.

Par exemple le KIM Uno pourrait être équipé d'un "vrai" émulateur de CPU rétro qui pourrait émuler les fameux MOS 6502 ou Intel 8085, 8086 ou 8088. Ensuite, cela irait dans le sens de ma vision initiale, avant de découvrir les OISC.

Mais il existe d'autres utilisations possibles, car la conception du matériel est assez générique. Le KIM Uno pourrait être utilisé comme…

  • … une télécommande, par ex. pour CNC ou autres appareils. Peut-être filaire ou équipé d'une diode IR ou de tout autre émetteur sans fil
  • … une calculatrice de poche (hexadécimale). Le firmware peut être adapté très facilement et la conception de la carte n'a pas besoin d'être beaucoup modifiée. Peut-être que la sérigraphie peut être adaptée avec des opérations mathématiques et que l'espace entre les segments peut être supprimé. En dehors de cela, il est déjà prêt pour cette transformation

J'espère que vous avez eu autant de plaisir à suivre et, espérons-le, à construire le KIM Uno que j'en ai eu à le concevoir et à le planifier. Et si vous l'étendez ou le modifiez, faites-le moi savoir. À votre santé!

Concours PCB
Concours PCB
Concours PCB
Concours PCB

Finaliste du concours PCB

Conseillé: