Например TDA7294

Форум РадиоКот :: Просмотр темы - ISA видеокарта и AVR
Форум РадиоКот
https://radiokot.ru/forum/

ISA видеокарта и AVR
https://radiokot.ru/forum/viewtopic.php?f=2&t=110471
Страница 1 из 1

Автор:  da-nie [ Вт дек 02, 2014 19:09:18 ]
Заголовок сообщения:  ISA видеокарта и AVR

Нашёл я тут на работе штуки четыре разных ISA-видеокарт VGA и захотелось мне хоть одну такую карточку подключить к микроконтроллеру. Поискал я в инете и нашёл один проект такого устройства. К этому проекту была схема и программы для запуска видеокарты. Схему я переделал - в ней много мне ненужного. Программу также несколько изменил - "причесал" под себя. Повозившись с разными картами обнаружил, что карта на чипе Trident9000C хоть и пытается запуститься, но всё же не работает должным образом (о чём в найденной мной программе и честно написано). Зато карта на чипе Trident9000i работает замечательно. :) Подключаю я видеокарту в 8 битном режиме. Текстовый режим пока что не очень работает (шрифты не грузятся), но графический 320x200x256 работает. :)

Итак, для сборки потребуется:
1) Резисторы (номиналы видны на печатной плате).
2) Конденсаторы (номиналы смотрите там же).
3) 3 микросхемы К588ИР1 - параллельный регистр.
4) Atmega32 или Atmega16.
5) Кварц на 16 МГц.
6) Видеокарта с чипом Trident9000i (или другая, но придётся основательно повозиться)
7) ISA разъём (выпаивается термофеном с плат от 286-х до P-233 или иными).

У меня Atmega32 и прошивка откомпилирована для неё.

Печатная плата выглядит вот так вот (файл печатки в архиве):

Изображение

Схема, полагаю, очевидна - три регистра по-очереди загружаются значениями шины адреса вот, собственно, и всё.
На ISA-разъёме нужно подключить:
+5,
+12,
GND,
REFRESH (притянут к +5В через резистор),
A0-A19,
D0-D7,
RESET,
MEMW,
MEMR,
IOW,
IOR,
ALE,
READY,
AEN (подключается к GND).

На картинке красным я отметил требующие подключения контакты разъёма ISA.

Изображение

Для некоторых карт нужно подключить -5 В и -12 В (их придётся вам откуда-то взять - например, из источников TracoPower) и сигнал OSC (14.318 МГц) - его можно генерировать простейшим генератором на К155ЛН1.

Прошивка (с текстом программы):
Вложение:
Firmware.rar [51.64 KiB]
Скачиваний: 855


Печатка:
Вложение:
board.rar [38.98 KiB]
Скачиваний: 820


Внешний вид конструкции (немного отличается от печатки):

Изображение

Стабилизаторы нужно ставить на радиатор с вентилятором - ток довольно существенный. Возможно, на вашей печатке придётся увеличивать место для радиатора.

Видео работы: http://www.youtube.com/watch?v=xr_VLWmuoB4

Как запустить любую имеющуюся видеокарту ISA? Для этого найдите в инете BIOS требуемой видеокарты (скажем, тут: http://chukaev.ru54.com/video_en.htm ) и с помощью IDA дизассеблируйте её. Там обычный X86 код. Только начинается он не с 0 адреса - там сигнатура (2 байта) и контрольная сумма (1 байт). Итого, начинать надо с 3-его байта. И последовательно выяснить в какие порты что нужно записать, чтобы карта заработала. Скажу честно, мне терпения не хватило, чтобы понять, что не так с Trident9000C (для неё прошивка от Trident89000 идёт).

Ну вот вроде бы и всё. :)

Вложения:
board-image.JPG [71.24 KiB]
Скачиваний: 3147
ISA.GIF [22.5 KiB]
Скачиваний: 3134
board.GIF [50.57 KiB]
Скачиваний: 3123

Автор:  da-nie [ Вт дек 02, 2014 19:10:04 ]
Заголовок сообщения:  Re: ISA видеокарта и AVR

Найденная мной программа и схема в инете (там есть запуск других видеокарт, но придётся адаптировать самим):
Вложение:
Archive.rar [116.52 KiB]
Скачиваний: 371

Автор:  da-nie [ Ср дек 10, 2014 19:32:33 ]
Заголовок сообщения:  Re: ISA видеокарта и AVR

Кстати, а нет ли тут специалистов по регистрам адаптера VGA?
Вижу в коде смены видеорежима странные вещи:

//регистры контроллера атрибутов
#define ATTRCON_ADDR 0x03C0

System_In8(0x03DA);
System_Out8(ATTRCON_ADDR,0x20);

Тут в общем-то, ничего особого нет. Запись в регистры контроллера атрибутов делается за 2 шага: записываем сперва номер регистра, а затем данные. Чтобы всегда начинать с записи номера, читаем ISR1 (из 0x03DA) - так сделано.
Но вот что странно. У контроллера атрибутов НЕТ регистра 0x20! У него регистр последний 0x14. И даже если такой регистр бы был, почему нет записи значения? Должно быть две записи в порт. А у нас одна.
Я поискал в инете и нашёл, что почему-то (в книгах я этого не нашёл) можно записать, скажем, в регистр 0x10 значение 0x20 за один раз просто объединив биты: System_Out8(ATTRCON_ADDR,0x10|0x20); Тогда указанная запись пишет 0x20 в регистр 0x00? Но почему это работает? И так ли это? :dont_know:

Я бы на это забил бы, но всё дело в том, что иногда отваливается цвет после инициализации. Палитру просто не задать. Видно, что она меняется, но цвета вовсе не те, что должны быть. Если инициализацию сделать повторно, то всё восстанавливается. На каком этапе это происходит - загадка. Экспериментально я выяснил, что с большой вероятностью, это как раз установка видеорежима. Но вот что там именно не то - узнать пока не смог. Вот и ищу.

Автор:  Ariadna-on-Line [ Пт дек 12, 2014 09:31:24 ]
Заголовок сообщения:  Re: ISA видеокарта и AVR

Тоже припрятал несколько ISA-шных видюх. В том числе и Трайдент TVGA9000i-1. Но никак не соберусь.
Наверное лучше сделать сначала переходник типа USB-многоканапьная параллель. Изучить карту и только потом
программить в AVR.
Рискую нарваться, но таки напишу...

Р. Уилтон - "Видеосистемы персональных компьютеров IBM и PS/2".

Ну и Роберт Джордейн - "Справочник...", куда без него?

Автор:  da-nie [ Пт дек 12, 2014 16:13:10 ]
Заголовок сообщения:  Re: ISA видеокарта и AVR

Книжка Уилстона интересная, спасибо! :)
Но тоже написана стандартная информация - регистры такие-то, работают вот так вот. В том-то и дело, что
System_Out8(ATTRCON_ADDR,0x20); там так же невозможная ситуация. :oops: Ну а как эти адаптеры в стандартных режимах программировать я читал ещё лет 17 назад... :roll:

Автор:  Ariadna-on-Line [ Сб дек 13, 2014 17:49:34 ]
Заголовок сообщения:  Re: ISA видеокарта и AVR

С картой шла дискета с драйверами. Возможно они в резидентном режиме подменяли или дополняли биос карты. Может стоит найти и покопаться?! Тогда шла гонка на опережение, так как идея висела в воздухе. Поэтому много тонкостей схемотехники осталось неизвестным.

Автор:  da-nie [ Сб дек 13, 2014 21:17:49 ]
Заголовок сообщения:  Re: ISA видеокарта и AVR

Да нет, это вряд ли. BIOS карты полностью выполняет все функции прерывания int 10h по переключению видеорежимов. И это не особенность карты - это особенность регистра VGA. Почему-то не документированная.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/