Даний проект присвячений формуванню vga сигналу за допомогою 8-ми бітних

(Проект про формування VGA сигналу за допомогою 8-ми бітнихMCUфірми AVR)

(Що, свого часу дало мені "добрячого стусана" в справі мотивації

вдосконалення моїх знань в області мікроконтролерів).

Кілька місяців тому, маючи на меті підключити VGA-монітор для виведення текстових даних з микроконтроллерной системи збору інформації - я з подивом виявив, що нічого скільки-небудь "зрозумілої" і доступного для повторення "на коліні" по цій темі в Інтернеті відсутня.

Звичайно, існують промислові плати стандарту PC-104, можна дещо "нарити" і на www.opencores.org для реалізації на FPGA, є графічні контролери Fujitsu. хтось тут недавно на місцевій конференції пропонував за 5000 $ проект на ACEX 'е. але треба визнати - все це страшно далеко від народу ..

Хотілося щось набагато більше "дешеве і сердите". Попередні прикидки показували, що з найбільш поширених і досить швидкодіючих мікроконтролерів підходить продукція фірми ATMEL.

8-ми бітове RISC ядро ​​AVR забезпечує пікову продуктивність близько 16 MIPS на тактовій частоті 16M H z. Плюс на підході більш швидкісні сімейства Mega 48,88,168 підтримують офіційну тактову частоту 20 MHz При цьому швидкість виведення даних через стандартний порт введення-виведення при FOSC = 16 MHz командами виведення в порт (out port x ..) 8 MIPS. До того ж я вже мав достатній досвід розробки пристроїв на мікроконтролерах AVR. І я засукав рукава ..

Результат своєї роботи я представляю на Ваш суд.

Поставлена ​​технічна задача:

Мета яку я поставив для себе, досить проста на перший погляд:

Обмежившись одним корпусом поширеного MCU типу Mega8,16,8535

і т.д. і мінімумом зовнішніх елементів сконструювати символьний дисплей-адаптер з дозволом> 15x15 символів, який би виводив інформацію на VGA монітор при стандартних частотах VGA сигналу. Інформацію символьний адаптер повинен отримувати через стандартний USART порт мікроконтролера. Частота використовуваного мікроконтролера стандартна -16M H z.

Фотографії та схеми проекту:

Принципова схема відкоригована, на старій схемі були переплутані положення порту PAL-синхронізації і джампера PAL - VGA! Через це в "залозі" у багатьох схема НЕ ПРАЦЮВАЛА.

Даний проект присвячений формуванню vga сигналу за допомогою 8-ми бітних

Так все це виглядає в залозі, зібраному на "коліні" за одну годину:

Даний проект присвячений формуванню vga сигналу за допомогою 8-ми бітних

А ось що ми отримуємо на екрані монітора:

Даний проект присвячений формуванню vga сигналу за допомогою 8-ми бітних

Даний проект присвячений формуванню vga сигналу за допомогою 8-ми бітних

Технічні характеристики проекту:

Технічні характеристики VGA-адаптера:

Кількість символів: 20 рядків по 20 символів

Роздільна здатність матриці знакогенератора: 8x12 точок

Кодова таблиця знакогенератора: WIN тисячі двісті п'ятьдесят один

Формований сигнал: VGA

Частота кадрової синхронізації: 60Hz

Швидкість обміну UART 19200 bps

Технічні характерістікіVideo -Адаптер:

Кількість символів: 20 рядків по 38 символів

Роздільна здатність матриці знакогенератора: 8x12 точок

Кодова таблиця знакогенератора: WIN тисячі двісті п'ятьдесят один

Формований сигнал. Composite Video (PAL / SECAM)

Дозвіл: 625 рядків (чересстрочная)

Частота кадрової синхронізації: 50Hz

Швидкість обміну UART 19200 bps

Тип використовуваного мікроконтролера: Mega 8, Mega16. Mega32, Mega8535 і т.д.

Тактова частота мікроконтролера стандартна - 16Mhz

Алгоритм роботи програми:

Даний проект присвячений формуванню vga сигналу за допомогою 8-ми бітних

Пояснення по роботі програми:

Алгоритм рендеринга зображення досить традиційний, головне ноу-хау проекту в використанні для побітного виведення зображення - зсувного регістру SPI SPDR через біт MOSI. При цьому утворюється двоступеневий конвеєр рендеринга:

У той час, як наступний байт для рендеринга вибирається з пам'яті,

попередній байт виводиться через зсувний регістр SPI SPDR MOSI.

Даний проект присвячений формуванню vga сигналу за допомогою 8-ми бітних

Даний проект присвячений формуванню vga сигналу за допомогою 8-ми бітних