Подключение ISA карт (видеокарт в частности) к LPT порту.
Сама схема во вложении.
Детали использованные в схеме распространенные и не дорогие.
В реальности схему эту еще не собирал, проверил только на симуляторе.
Прошу помочь проверить схему:
1. Возможно гдето нужны подтягивающие резисторы, или может в схеме нехватает конденсаторов? т.к. именно с этой мат частью у меня большие пробелы.
2. Мне непонятно: Обязательно ли установив IOR/IOW/MEMR/MEMW в состояние LO после каждого чтения/записи байта информации сбрасывать в HI. или можно так и оставить LO?
и просто после смены адреса и его защелки по ALE тупо ждать RDY ? и получив его делаем следующий адрес и получаем/отправляем новые данные?
Эту неясность я увидел в прошивки из соседний темы на форуме, где в прошивке к AVR автор перед каждым отправленым байтом ставит LO а потом обратно HI. А по даташиту ISA я вроде подобной необходимости не увидел. А в другой статье говориться что эти линии вообще при желании можно задать фиксировано и не трогать их.
Используемые детали:
U1, U2: К555ИР27, 74LS377N
U4, U5: К555ИЕ10, 74LS161N
U6: К555ИД14, 74LS139N
U8: К555АП6, 74LS245N
U9: К555ЛЕ1
U10: К555ЛА3 (Вариант К555ЛА1 если подключать к IOR,IOW,MEMR,MEMW)
C1: 1000мкф, 10В
R1: 1кОм
Используемые пины на LPT разъеме:
1: -> CLK (наш клокер, управляет счетчиком +1 к адресу и ставит защелку ALE)
2..9: <-> DATA (двунаправлен)
11: <- RDY ждем готовность от устройства
14: -> Режим настройки
16: -> Режим настройки
* Режим настройки:
Код: Выделить всё
00 Рабочий режим. Принимаем/отправляем данные
01 старшие 4бит адреса A16..A19 и IOR,IOW,MEMR,MEMW
10 средние лини адреса A8..A15.
11 счетчик / лини адреса A0..A7.
(при установке счетчика нужно сделать CLK (pin 1) в HI)- При одновременной установке сигналов MEMR и MEMW в LO генерируется сигнал RESET!
К555ЛА3 (по MEMR/MEMW =LO), либо К555ЛА1 (По MEMR/MEMW/IOR/IOW = LO)
- Если LO установлен MEMW и/или IOW то буфер U8 включается по направлению в видеокарту. В остальных случаях независимо от состояния MEMR или IOR находится в состоянии от видеокарты в LPT. Но возникает проблемма! Флуд от видяхи на линии данных препятсвующих настройке адреса. Поэтому в момент начала нстройки т.е. когда режим не 0! дешифратор U6 отключает этот буфер и он становится неактивным! и не срет на линии данных.
- ALE судя по описанию: защелкивается по заднему фронту т.е. когда CLK_HI установит новый адрес, при переходе CLK_HI в состояние LO прозейдет защелкивание адреса.
т.е. при работе ALE должно быть LO
Алгоритм работы (запись по адресам в видеокарту) (Это то как поидее должно работать но не факт):
Код: Выделить всё
- Видеокарта получает сигнал RESET т.к. MEMR и MEMW = 0. CLK =LO. MODE=00
- Устанавливаем Mode 01
- D0..D1 устаавливаем [A16,A17,A18,A19, 0, 1, 1, 1]
- Устанавливаем Mode 10
- D0..D1 устаавливаем [A8..A15]
- Устанавливаем Mode 11
- D0..D1 устаавливаем [A0..A7]
- CLK устанавливаем HI (Записали новый адрес в счетчик)
- Устанавливаем Mode 00
- D0..D1 устаавливаем [Данные в видеокарту]
- CLK устанавливаем LO
- CLK устанавливаем HI (следующий адрес)
- D0..D1 устаавливаем [Данные в видеокарту]
- CLK устанавливаем LOНужно также понимать что при достижении Адреса A0..A7 в FF необходимо буде перейти в режим MODE отличный от 00 и задать новые параметры адреса и затем продолжить запись данных.
Т.е. адресс задается не каждый байт (как в примере с AVR), а только для каждого пакета данных, размер пакета до 256 байт.
Ответы на вопросы:
1. Зачем мне подключать видеокарту через LPT?
- Нужно выводить информацию на второй монитор, но чтобы этот монитор не был продолжением рабочего стола.
- Да чисто по фану
- Помимо видеокарты в этот ISA порт можно подключать и другие устройства.
2. Почему не AVR ?
- А чем он лучше? что в случае с AVR нужно писать программу и на ПК и для AVR. А в данном случае программу писать только на ПК.
- Мне больше нравится использовать микросхемы логики вместо AVR так ламповее.
Идея появилась давно, стал искать в интернете, вроде никто не реализовал подобного но нашел другие интересные статьи которые помогли мне в проектировании этого устройства и понимании логики его работы.
Список материалов которые я изучил:
1. https://www.radiokot.ru/forum/viewtopic.php?p=2206589
2. https://pinouts.ru/ParallelPorts/Parall ... nout.shtml
3. http://www.hardwarebook.info/ISA
4. http://exos.org.ru/download/isa.pdf
5. http://tinyvga.com/avr-isa-vga
6. https://habr.com/ru/post/406193/
7. http://exos.org.ru/download/portibm.zip
- Вложения
-
- ISA to LPT.png
- Схема устройства ISA to LPT
- (111.7 КБ) 755 скачиваний





