Кошик

Ваш кошик порожній

Solder Demon
Зміст документації/Як це працює

Як це працює

RAM expansion — невелика й проста карта: вісім мікросхем пам’яті, одна програмована логічна мікросхема й один транзистор. Ця сторінка пояснює, що робить кожна частина. Це стане в пригоді, коли шукаєш несправність або хочеш зробити щось подібне.


Сигнали, які використовує карта

Карта використовує лише частину 64-контактної шини розширення:

СигналиДля чого
VCC, GNDЖивлення всієї карти
A1–A19Адреса всередині мікросхеми (512 K комірок)
A20–A23Який мегабайт: їх читає дешифратор
D0–D15Дані, 16 біт
EXPSELОсновна плата повідомляє, що процесор звертається до простору розширення
UDS, LDSЯкий байт 16-бітного слова: парний, непарний чи обидва
RWЧитання чи запис

DTACK, переривання, тактовий сигнал та інше вона не використовує. Зокрема, вона ніколи не повідомляє процесору, що закінчила: це робить основна плата (див. нижче).

Мікросхеми пам’яті

U1–U8 — статична RAM AS6C4008, 512 K × 8 біт кожна: та сама мікросхема, що й на основній платі. Статична RAM зберігає вміст, доки є живлення, без регенерації, і відповідає за 55 нс.

68010 має 16-бітну шину даних, тому мікросхеми працюють парами. У кожній парі одна мікросхема зберігає непарні байти (D0–D7, вибір через LDS), а друга — парні (D8–D15, вибір через UDS). Разом пара дає 1 МБ.

ПараНепарний байт (D0–D7)Парний байт (D8–D15)Надруковано на платі
1-й МБU1U2base..base+$FFFFF
2-й МБU3U4base+$100000..base+$1FFFFF
3-й МБU5U6base+$200000..base+$2FFFFF
4-й МБU7U8base+$300000..base+$3FFFFF

Якщо плата повернута як на мапах посібника зі складання (J1 праворуч), пари йдуть справа наліво: U1 і U2 поруч із J1, U7 і U8 — з лівого краю. У кожній парі непарна мікросхема — у верхньому ряду.

Лінії адреси приходять на мікросхеми в перемішаному порядку, а не A1 на вивід A0 і так далі. Для RAM це не має значення: кожна адреса все одно потрапляє рівно в одну комірку пам’яті, завжди ту саму.

Дешифратор (IC1)

IC1 — програмована логічна мікросхема ATF16V8. Вона має вісім виходів, по одному сигналу вибору на кожну мікросхему пам’яті, і притягує один чи два з них до нуля, коли виконуються всі ці умови:

  • EXPSEL у нулі: процесор звертається до простору розширення.
  • A20–A23, номер мегабайта, потрапляють у 4 МБ цієї карти з урахуванням бази, заданої JP1–JP3.
  • LDS у нулі (для непарної мікросхеми пари) або UDS у нулі (для парної). 16-бітне звернення обирає обидві мікросхеми.

Усе інше ігнорується, тож поза своїми 4 МБ карта мовчить. Налаштування джамперів пояснено в розділі Адресні джампери й карта пам’яті.

Кожен із JP1–JP3, коли на ньому стоїть джампер, підтягує вхід IC1 до 5 V. Без джампера резистор 4K7 (R3–R5) тримає вхід на 0 V.

IC1 має бути запрограмована логікою дешифратора саме цієї карти, перш ніж її встановлювати. Чиста ATF16V8 або запрограмована під щось інше тут нічого корисного не зробить.

Читання й запис (Q1)

Кожна мікросхема пам’яті, крім вибору, має ще два керувальні входи: дозвіл запису й дозвіл виходу. Обидва активні в нулі.

  • Дозвіл запису береться прямо з RW: нуль означає запис.
  • Дозвіл виходу потребує протилежного: нуль означає читання. Його робить Q1, транзистор 2N3904. Коли RW переходить в одиницю (читання), Q1 відкривається через R2 (100K) і притягує дозвіл виходу до нуля. Коли RW у нулі (запис), Q1 закритий, і R1 (10K) підтягує дозвіл виходу до одиниці.

Тож мікросхема виставляє дані на шину лише тоді, коли її обрано і процесор читає. Саме тому перевернутий Q1 ламає кожне читання: запис відбувається, але назад нічого не приходить.

Чому DTACK дає основна плата

У 68010 кожен цикл шини чекає, доки хтось не відповість сигналом DTACK. Ця карта такої лінії не має. Мікросхеми на 55 нс достатньо швидкі, щоб відповідати без очікування з боку процесора, тож оригінальний проєкт доручає відповідь основній платі: коли JP4 на основній платі замкнений, вона подає DTACK на кожне звернення до простору розширення.

Коли JP4 розімкнений, ніхто не відповідає, сторожовий таймер основної плати завершує цикл помилкою шини, і прошивка не бачить пам’яті. Див. Адресні джампери й карта пам’яті.

Живлення й розв’язка

Кожна мікросхема пам’яті та IC1 має власний конденсатор 100 nF (C1–C9), щоб гасити короткі стрибки струму під час перемикання. C10 і C11 (100 µF) — місцевий запас енергії карти, по одному з кожного кінця J1. Живлення 5 V карта бере з піна 2 шини.

Менше мікросхем: 1, 2 чи 3 МБ

Карта працює й з меншою кількістю мікросхем, тому на платі написано 1/2/3/4MB. Став мікросхеми цілими парами, починаючи з U1 і U2:

ВстановленоОбсяг карти
U1, U21 МБ
U1–U42 МБ
U1–U63 МБ
U1–U84 МБ

Дешифратору не треба про це знати: він і далі обирає порожні панельки, але там ніяка мікросхема не виставляє дані, тестове значення не повертається, і прошивка зупиняє підрахунок на першій порожній парі. Прогалина, наприклад U1–U2 і U5–U6 без U3–U4, обриває підрахунок на прогалині.

J1 віддзеркалений

Карта висить деталями донизу на штирях 2×32 основної плати або слота bus board. Оскільки вона перевернута, номери пінів її власного роз’єму J1 віддзеркалені відносно шини: пін 1 карти зустрічається з піном 2 шини (VCC) і так далі. Якщо карта повернута правильно, усе збігається. Якщо не тим боком, 5 V потрапляє на адресну лінію, — саме тому посібник зі складання наполягає на прозвонці перед першим увімкненням.