Всем привет!
В этой теме буду выкладывать свои доработки схемы компьютера Орион. Кое-какие результаты уже достигнуты, но уже трудно что-либо вспомнить по последовательности доработок. Поэтому решил постить здесь все с нуля, восстанавливая доработки в хронологическом порядке (думаю, будет полезно в образовательных целях).
Что хочется получить на выходе:
** переработать синхрогенератор для работы с VGA дисплеем без дополнительных конвертеров, сохранив возможность работы с бытовым телевизором;
** интегрировать схему Турбо 200%;
** использовать статическую память на 16 бит - исключительно ради уменьшения печатной платы и упрощения разводки;
** разработать печатную плату для модернизации собранного компьютера.
В качестве исходного варианта взял схему с этого форума: viewtopic.php?t=23931
Первая доработка схемы - замена всех микросхем 155-й серии (SN74xx) на 1533 серию (SN74ALSxx).
Оставил только счетчики 155ИЕ5 (7493), 155ТМ7 (7475), 155ИР13 (74198). Замены производил по одной - двум микросхемам, контролируя корректность симуляции схемы. Такой подход позволил быстро находить проблемные места при замене микросхем. Кое где пришлось добавлять пару инверторов для задержки сигналов. Это цепи 70, 87, 61 и сигнал с выхода элемента DD16.A (3 нога)
Для проверки симуляции пришлось писать простенькую программу (написана очень коряво, но мне хватает), которая рисует шахматное поле из квадратов 8*8 точек на экране. После запуска она копирует себя из ПЗУ в ОЗУ и работает уже в ОЗУ. Это позволяет проверить работу ОЗУ, причем значительно быстрее, чем ждать запуска стандартного монитора.
Проект в архиве. Версия Proteus 8.17 SP5
Доработки схемы Орион
Moderator: Shaos
Доработки схемы Орион
- Attachments
- Orion_ALS.zip
- (1.01 MiB) Downloaded 9 times
Re: Доработки схемы Орион
Небольшая доработка схемы ПК Орион.
Изменено:
Полностью переработан синхрогенератор.
- на горизонтальную развертку установлены синхронные счетчики 74ALS161
- на вертикальную развертку установлен счетчик 74HC4040
- добавлен сдвиг растра по вертикали (DSW1 на схеме). Верхний включенный дип переключатель соответствует наибольшему смещению растра вниз
- реализована поддержка 3-х разрешений экрана с настройками. 384*256, 480*256, 512*256. Возможна некорректная симуляция отображения картинки из-за несовершенной модели RGBIOUT.DLL. На дешифраторах U5, U6 реализованы формирователи сдвига сигналов гашения и строчного синхроимпульса. Начало импульса гашения выбирается переключением входов 6,5,4,3 мультиплексора U40 к выходам дешифраторов. Синхроимпульс двигается переключением диодов D13,D14; D15,D16; D17,D18.
- упрощена схема управления регистрами сдвига 74198, формирующими изображение
- заменены прозрачные летчи 74LS373 на защелки 74ALS574
- изменено управление буфером шины данных процессора
- арбитр памяти и эмуляторы сигналов i8080 (на инверторах) пришлось оставить "медленными" серии 74xx.
Изменено:
Полностью переработан синхрогенератор.
- на горизонтальную развертку установлены синхронные счетчики 74ALS161
- на вертикальную развертку установлен счетчик 74HC4040
- добавлен сдвиг растра по вертикали (DSW1 на схеме). Верхний включенный дип переключатель соответствует наибольшему смещению растра вниз
- реализована поддержка 3-х разрешений экрана с настройками. 384*256, 480*256, 512*256. Возможна некорректная симуляция отображения картинки из-за несовершенной модели RGBIOUT.DLL. На дешифраторах U5, U6 реализованы формирователи сдвига сигналов гашения и строчного синхроимпульса. Начало импульса гашения выбирается переключением входов 6,5,4,3 мультиплексора U40 к выходам дешифраторов. Синхроимпульс двигается переключением диодов D13,D14; D15,D16; D17,D18.
- упрощена схема управления регистрами сдвига 74198, формирующими изображение
- заменены прозрачные летчи 74LS373 на защелки 74ALS574
- изменено управление буфером шины данных процессора
- арбитр памяти и эмуляторы сигналов i8080 (на инверторах) пришлось оставить "медленными" серии 74xx.
- Attachments
- Orion_ALS_161.zip
- (287.41 KiB) Downloaded 7 times
Re: Доработки схемы Орион
Еще одна доработка схемы: замена 2-х восьмибитных микросхем SRAM одной 16-ти битной. Получаем в одной микросхеме ОЗУ 512 кБт памяти и цвет.
Симуляция проходит нормально.
Необходимо установить модели для Proteus отсюда: viewtopic.php?t=24264
Симуляция проходит нормально.
Необходимо установить модели для Proteus отсюда: viewtopic.php?t=24264
- Attachments
- Orion_ALS_161_16bit.zip
- (291.92 KiB) Downloaded 6 times
Re: Доработки схемы Орион
Пересмотрел еще раз даташит на 16 битную память, и понял, что схему включения можно немного упростить. Оказалось, что при активном сигнале /OE можно производить запись в микросхему.
Измененная схема во вложении.
Измененная схема во вложении.
- Attachments
- Orion_ALS_161_16bit.zip
- (291.84 KiB) Downloaded 4 times
Re: Доработки схемы Орион
Очередная доработка схемы Орион. Теперь начинаем упрощать схему, используя микросхемы программируемой логики. Я выбрал для этих целей GAL22V10.
Первая доработка: меняем управление статическим ОЗУ. При применении GAL больше не нужно задерживать сигнал, формируемый элементом DD16.A.
Легко заметить, что заменяемая часть схемы представляет собой узел комбинационной логики, который легко описывается логическими уравнениями, по которым несложно "состряпать" прошивку для GAL-ки.
Первая доработка: меняем управление статическим ОЗУ. При применении GAL больше не нужно задерживать сигнал, формируемый элементом DD16.A.
Легко заметить, что заменяемая часть схемы представляет собой узел комбинационной логики, который легко описывается логическими уравнениями, по которым несложно "состряпать" прошивку для GAL-ки.
Code: Select all
Name GAL1.pld;
Partno ;
Date ;
Revision ;
Designer ;
Company ;
Assembly ;
Location ;
Device P22V10;
/* *************** INPUT PINS *********************/
PIN 2 = N87;
PIN 3 = N73;
PIN 4 = N43;
PIN 5 = N118;
PIN 6 = N83;
PIN 7 = BA12;
PIN 8 = BA11;
PIN 9 = BA10;
PIN 10 = BA13;
PIN 11 = BA14;
PIN 13 = BA15;
/* *************** OUTPUT PINS *********************/
PIN 23 = RAM_WE;
PIN 21 = N94 ;
PIN 20 = N95;
PIN 19 = RAM_LB;
PIN 18 = RAM_UB;
PIN 17 = N92;
PIN 16 = N93;
PIN 15 = N112;
PIN 14 = NAF4;
/* ********* */
NAF = BA12 & BA13 & BA14 & BA15; /* select addr. 0FxxxH */
N112 = !(BA11 & NAF # N83);
A = !(!NAF & N118);
C = !(N73 & N43);
E = N87;
D = N87;
NAF4 = !(BA10 & NAF);
F = N112 & NAF4;
/* --- 74155--*/
E1 = !E & F;
E2 = !D & !C;
N94 = !(E1 & !A);
N95 = !(E1 & A);
N92 = !(E2 & !A);
N93 = !(E2 & A);
/* END OF 74155 */
RAM_WE = N92 & N93;
RAM_LB = !N92;
RAM_UB = !N93;
- Attachments
- Orion_ALS_161_16bit_GAL1.zip
- (518.17 KiB) Downloaded 3 times
