Assemblage d'un ordinateur 8 bits: comment réduire le nombre de puces à six


La combinaison de l'ancienne astuce avec le codage couleur NTSC et le fer moderne permet d'assembler une machine Ă©tonnamment efficace.Les

systĂšmes 8 bits ont quelque chose de toujours attrayant: vous pouvez construire un systĂšme autonome suffisamment puissant pour prendre en charge une interaction utilisateur adĂ©quate, mais assez simple pour assembler et programmer vous-mĂȘme. La plupart des machines 8 bits modernes crĂ©Ă©es par des amateurs sont liĂ©es Ă  des processeurs classiques qui vivaient Ă  l' Ăąge d'or des ordinateurs personnels dans les annĂ©es 1980, lorsque des millions de tĂ©lĂ©viseurs Ă©taient utilisĂ©s comme Ă©crans. Au dĂ©part, l'idĂ©e Ă©tait de construire ma voiture Ă  partir du processeur Motorola 6809de la mĂȘme Ă©poque. J'ai essayĂ© d'utiliser le moins de puces possible, mais malgrĂ© mes efforts, j'avais encore besoin de 13 puces supplĂ©mentaires pour travailler avec la RAM et le transfert de donnĂ©es sĂ©rie. Alors j'ai pensĂ©: et si j'utilisais un processeur 8 bits plus moderne? De combien puis-je rĂ©duire le nombre de puces dont j'ai besoin?


En conséquence, j'ai assemblé une voiture dessus, qui s'appelait Améthyste . Comme tout ordinateur domestique, il possÚde un clavier intégré et peut produire du son et de la vidéo. Il dispose également d'un langage de programmation intégré de haut niveau afin que les utilisateurs puissent y écrire leurs propres programmes. J'ai réussi à réduire le nombre de microcircuits à six: CPU ATMEGA1284P , interface USB et quatre circuits intégrés simples.

L'ATMEGA1284P 2008 (ou 1284P) a 128 kilo-octets de mĂ©moire flash et 16 kilo-octets de RAM. Il peut fonctionner avec une frĂ©quence allant jusqu'Ă  20 mĂ©gahertz. Il possĂšde des contrĂŽleurs sĂ©rie intĂ©grĂ©s intĂ©grĂ©s et 32 ​​entrĂ©es / sorties numĂ©riques.



Grùce à la mémoire intégrée et aux interfaces série, le besoin de nombreuses puces auxiliaires a disparu. Je pouvais générer directement de l'audio, interrompre et appliquer un signal à l'entrée / sortie avec différentes fréquences. Ainsi, j'ai appris à donner un ton qui, cependant, possédait la netteté caractéristique d'une onde carrée. Mais qu'en est-il de la génération d'un signal vidéo analogique? Cela nécessitera-t-il vraiment un équipement spécial?

Astuce standard


À la fin de 2018, j'ai vu une astuce que Steve Wozniak a utilisĂ©e dans les annĂ©es 1970 pour implĂ©menter le support graphique couleur dans Apple II. Aux États-Unis, cette astuce a Ă©tĂ© utilisĂ©e pour la diffusion couleur dans le systĂšme NTSC dans les annĂ©es 1950.

Au départ, la télévision américaine n'était qu'en noir et blanc et utilisait la norme NTSC assez simple (développée par le Comité national des systÚmes de télévision). Pour former une image à l'écran, un faisceau d'électrons trace des points sur sa surface, ligne aprÚs ligne. L'amplitude du signal vidéo reçu a déterminé la luminosité du faisceau à n'importe quel endroit donné le long de la rangée. Puis en 1953, NTSC a été mis à niveau pour prendre en charge la télévision couleur, tout en conservant la compatibilité avec les téléviseurs noir et blanc existants.

Les ingénieurs ont décidé de présenter les informations de couleur sous la forme d'un signal sinusoïdal haute fréquence. Pour cela, la sous-porteuse a été divisée en deux composantes avec un déphasage de 90 °, chacune ayant subi une modulation. Le résultat a été un signal modulé en amplitude et en phase. L'amplitude du signal a déterminé la saturation de la couleur. Ce signal de chrominance haute fréquence a ensuite été ajouté au signal de luminance basse fréquence pour créer le signal vidéo composite. Cette méthode est toujours utilisée pour de nombreux téléviseurs et écrans moins chers.



« »: , [ ], - , [ ]. . [ ] , : . [ ], .


Un téléviseur noir et blanc perçoit un signal couleur comme du bruit et l'ignore. Mais un téléviseur couleur peut séparer le signal couleur du signal de luminance à l'aide de boucles de filtre.

Dans les annĂ©es 1970, les ingĂ©nieurs ont rĂ©alisĂ© que ce schĂ©ma de filtrage pourrait ĂȘtre trĂšs utile pour les ordinateurs personnels car il permet Ă  un signal numĂ©rique rectangulaire de simuler la plupart du signal analogique composite. Le flux de zĂ©ros envoyĂ© par l'ordinateur au tĂ©lĂ©viseur sera perçu comme une tension analogique basse frĂ©quence constante, c'est-Ă -dire noire. Le flux d'unitĂ©s sera considĂ©rĂ© comme une tension haute frĂ©quence constante, c'est-Ă -dire blanche. Mais avec un dĂ©bit binaire suffisamment Ă©levĂ©, des structures binaires plus complexes apparaĂźtront que les schĂ©mas de filtrage passe-haut reconnaĂźtront comme des signaux de couleur. Cette astuce a permis Ă  Apple II d'afficher jusqu'Ă  16 couleurs.

Au début, je pensais que je devais commuter la broche d'entrée / sortie trÚs rapidement afin de générer directement un signal vidéo. Cependant, je me suis vite rendu compte qu'avec mon 1284P fonctionnant à 14,318 MHz, je ne pouvais pas le commuter assez rapidement pour afficher plus de quatre couleurs. Le fait est que ses interfaces série intégrées auraient besoin de deux cycles d'horloge pour envoyer un bit, ce qui limiterait ma fréquence d'horloge à 7,159 MHz. Apple II a utilisé un accÚs direct à la mémoire rapide pour connecter sa puce externe à la sortie vidéo, tandis que son processeur était occupé par le traitement interne. Mais, comme la RAM de mon ordinateur est intégrée dans la puce, je ne pouvais pas utiliser cette approche.

J'ai donc regardĂ© dans mes tiroirs et sorti quatre microcircuits de la sĂ©rie 7400 - deux multiplexeurs et deux registres Ă  dĂ©calage sĂ©rie parallĂšle. J'ai pu installer huit broches 1284P en parallĂšle et envoyer simultanĂ©ment des donnĂ©es vers les multiplexeurs et les registres Ă  dĂ©calage, qui les convertissent en un flux binaire sĂ©rie haute vitesse. Ainsi, j'ai appris Ă  gĂ©nĂ©rer des bits assez rapidement pour afficher environ 215 couleurs diffĂ©rentes Ă  l'Ă©cran. Cependant, j’ai dĂ» payer avec ma puissance de calcul: le traitement vidĂ©o consomme constamment 75% des ressources du processeur.



Ordinateur compact


Amethyst est un ordinateur monocarte. Il est assemblé à partir de seulement six circuits intégrés - un processeur, une interface USB et quatre microcircuits de la série 7400, qui sont utilisés pour créer une image en 215 couleurs. Les commutateurs du clavier sont soudés directement sur la carte, qui prend également en charge l'audio et quatre connexions série E / S pour les périphériques tels que les contrÎleurs de jeu et les périphériques de stockage. Vous pouvez écrire des programmes et les exécuter grùce à la machine virtuelle intégrée Forth.

J'avais besoin d'un environnement de programmation lĂ©ger pour les utilisateurs, ce qui m'a fait choisir Forth au lieu du traditionnel Basic. Forth est un ancien langage de programmation pour les systĂšmes embarquĂ©s, il prend en charge l'interactivitĂ© et est capable de compiler efficacement du code. Avec lui, vous pouvez faire beaucoup en utilisant le minimum de ressources. Étant donnĂ© que le 1284P ne permet pas au code machine compilĂ© d'ĂȘtre exĂ©cutĂ© directement Ă  partir de sa RAM, le code utilisateur est plutĂŽt compilĂ© en bytecode intermĂ©diaire. Ce bytecode est ensuite envoyĂ© en entrĂ©e Ă  une machine virtuelle exĂ©cutĂ©e Ă  partir de la mĂ©moire flash 1284P. Le code de la machine virtuelle a Ă©tĂ© Ă©crit en assembleur et optimisĂ© manuellement pour le rendre aussi rapide que possible.

En tant qu'ingénieur travaillant pour une entreprise qui produit des imprimantes laser 3D, j'ai accÚs à des machines de découpe laser avancées. J'ai donc facilement conçu et fabriqué une caisse en bois (j'ai espionné la finition bois de l' Atari 2600 ). Les commutateurs mécaniques du clavier ont été soudés directement sur une seule carte de circuit imprimé Amethyst. Ce clavier a une caractéristique curieuse - l'absence du grand écart habituel. Au lieu de cela, juste un bouton, modestement situé au-dessus de la touche Entrée.

Le schĂ©ma complet, les fichiers PCB pour la carte de circuit imprimĂ© et le code source sont disponibles dans mon rĂ©fĂ©rentiel GitHub . Vous pouvez donc crĂ©er votre propre AmĂ©thyste ou mĂȘme amĂ©liorer mon projet. Et si vous pouviez trouver comment Ă©conomiser quelques jetons supplĂ©mentaires?


All Articles