Carte graphique VGA simple faite maison

Pour autant que je sache, beaucoup de gens sont intéressés à connecter le microcontrôleur à un moniteur normal et à essayer d'afficher quelque chose à l'écran. Cet article traitera de la création de la carte vidéo VGA la plus simple basée sur le microcontrôleur atmega168-20.

D'une manière générale, ce projet a cent ans à l'heure du déjeuner. Mais une fois, j'ai promis de parler de cette carte vidéo ici aussi, mais tout était paresse. Il est maintenant temps de tenir la promesse.

Cette carte vidéo produit une image avec une résolution de 254x240 pixels avec 256 couleurs. Tout cela fonctionne dans le mode VGA standard 640x480 à un balayage de 60 Hz. J'ai testé cette carte vidéo avec 6 moniteurs (1 CRT et 5 LCD), tandis que la carte fonctionnait sur tous les moniteurs, à l'exception du moniteur Acer. Ce qu'il n'a pas aimé le signal, je ne l'ai pas compris.

Dans la version maquette, la carte vidéo ressemble à ceci: La



carte vidéo se compose de deux modules: un module de mémoire et un module DAC.

Le module de mémoire génère simplement des signaux de synchronisation (HS, VS) et de suppression de faisceau (BL) et donne un code couleur (D0 ... D7), que le module DAC convertit en 0-0,7 V et l'envoie au moniteur. Le microcontrôleur du module de mémoire itère simplement sur les adresses de la RAM statique, et les données de la RAM sont de la couleur des points. En utilisant un microcontrôleur Atmega168 avec une fréquence de 20 MHz, 2 cycles d'horloge par point sont nécessaires, donc cette partie du programme est écrite en assembleur et développée en un fragment répétitif pour chaque point de la ligne. Je me permettrai de ne pas décrire le balayage dépendant du temps du signal VGA, d'autant plus qu'Internet regorge d'informations sur ce sujet (bien que cela ne coïncide souvent pas les uns avec les autres), et au cours des dernières années, j'ai déjà un peu oublié quel diagramme temporel j'ai mis en œuvre dans ce carte vidéo.


Schéma du module mémoire (ouverture dans une nouvelle fenêtre, vous pouvez augmenter).

Le module DAC se compose de trois DAC R-2R ordinaires avec des touches et un émetteur de sortie suiveur (grâce à quoi une gamme de couleurs est "coupée" un peu). Si quelqu'un arrive à quel prix et avec colère pour réparer ce "coup de couteau" - vous êtes invités à commenter. Sur un chat radio, on m'a conseillé de remplacer le répéteur émetteur par un répéteur source, mais je n'ai toujours pas vérifié ce conseil. Comme vous pouvez le voir sur le schéma, j'ai attribué 3 bits au rouge, 3 bits au vert et 2 bits au bleu. J'ai pris des transistors KT-315. :)


Circuit DAC.

Ce que la carte vidéo affichera exactement est déterminé par le contrôleur de contrôle. Sa tâche consiste à définir l'adresse sur le bus d'adresses (A0 ... A15), à définir les données sur le bus de données (D0 à D7), à définir les signaux WR (écriture à bas niveau), OE (autorisation de sortie des données à bas niveau) et à définir Signal A / B (commutation de la mémoire pour fonctionner avec le contrôleur de contrôle à un niveau bas). Le contrôleur de commande reçoit un signal de suppression de faisceau (BL) de la carte mémoire, qui peut être utilisé pour synchroniser l'enregistrement avec la mémoire de la carte vidéo.

Une telle carte vidéo fonctionne comme ceci:


Cartes de circuits imprimés et firmware avec leur source.

Bonne chance dans le développement du projet!

All Articles