Kartu grafis VGA buatan sendiri yang sederhana

Sejauh yang saya tahu, cukup banyak orang tertarik untuk menghubungkan mikrokontroler ke monitor biasa dan mencoba menampilkan sesuatu di layar. Artikel ini akan membahas pembuatan kartu VGA-video paling sederhana berdasarkan mikrokontroler atmega168-20.

Secara umum, proyek ini berusia seratus tahun saat makan siang. Tetapi suatu kali saya berjanji untuk membicarakan kartu video ini di sini juga, tetapi semuanya adalah kemalasan. Sekarang saatnya memenuhi janji.

Kartu video ini menghasilkan gambar dengan resolusi 254x240 piksel dengan 256 warna. Semua ini bekerja dalam mode VGA standar 640x480 pada 60 Hz sweep. Saya menguji kartu video ini dengan 6 monitor (1 CRT dan 5 LCD), sementara kartu bekerja pada semua monitor, kecuali untuk monitor Acer. Apa yang dia tidak suka sinyal, saya tidak mengerti.

Dalam versi mock-up, kartu video terlihat seperti ini:



Kartu video terdiri dari dua modul: modul memori dan modul DAC.

Modul memori menghasilkan sinyal sinkronisasi (HS, VS) dan blanking blanking (BL) dan memberikan kode warna (D0 ... D7), yang diubah oleh modul DAC menjadi 0-0,7 V dan diberikan kepada monitor. Mikrokontroler dari modul memori hanya mengulangi alamat dari RAM statis, dan data dari RAM adalah warna dari titik-titik. Menggunakan mikrokontroler Atmega168 dengan frekuensi 20 MHz, diperlukan 2 siklus per titik, oleh karena itu bagian dari program ini ditulis dalam assembler dan diperluas menjadi sebuah fragmen berulang untuk setiap titik dari garis. Saya akan membiarkan diri saya untuk tidak menggambarkan perkembangan selang waktu dari sinyal VGA, terutama karena Internet penuh dengan informasi tentang hal ini (walaupun sering tidak bertepatan satu sama lain), dan saya telah lupa sedikit tentang diagram waktu selama beberapa tahun terakhir. kartu video.


Skema modul memori (membuka di jendela baru, Anda dapat meningkatkan).

Modul DAC terdiri dari tiga DAC R-2R biasa dengan tombol dan pengikut emitor keluaran (karena rentang warna agak "terputus"). Jika ada yang datang dengan cara murah dan marah untuk memperbaiki ini "menusuk" - Anda dipersilakan untuk berkomentar. Pada kucing radio saya disarankan untuk mengganti repeater emitor dengan sumber satu, tetapi saya masih belum memeriksa saran ini. Seperti yang Anda lihat dari diagram, saya menetapkan 3 bit menjadi merah, 3 bit menjadi hijau dan 2 bit menjadi biru. Saya mengambil transistor KT-315. :)


Sirkuit DAC.

Apa tepatnya kartu video yang akan ditampilkan ditentukan oleh pengontrol kontrol. Tugasnya adalah mengatur alamat pada bus alamat (A0 ... A15), mengatur data pada bus data (D0 ... D7), mengatur sinyal WR (menulis ke level rendah), OE (izin untuk menampilkan data di level rendah) dan mengatur Sinyal A / B (mengalihkan memori agar berfungsi dengan pengontrol kontrol pada level rendah). Pengontrol kontrol menerima sinyal blanking beam (BL) dari kartu memori, yang dapat digunakan untuk menyinkronkan rekaman ke memori kartu video.

Kartu video seperti ini berfungsi seperti ini:


Papan sirkuit cetak dan firmware dengan sumbernya.

Semoga sukses dalam pengembangan proyek!

All Articles