Сигнали шини
Усі п’ять слотів шинної плати несуть ту саму 64-контактну шину розширення rosco_m68k, з’єднану пін у пін. Ця сторінка пояснює, що робить кожен сигнал, — для тих, хто проєктує карту або шукає несправність. Сітку пінів так, як вона виглядає на платі, дивись у розпіновці в кінці посібника зі складання.
Описи нижче стосуються основної плати rosco_m68k r2 з MC68010. Назви сигналів — як надруковано на шинній платі.
Що таке шинна плата, а що ні
Шинна плата пасивна: мідні доріжки, вузол живлення й більше нічого. Між слотами немає буферів, драйверів чи термінаторів. Кожен сигнал на шині йде прямо від процесора або логіки на основній платі.
Звідси три наслідки для тих, хто проєктує карти:
- Кожна карта додає навантаження. Виходи основної плати не мають запасу струму. Використовуй входи CMOS або HCT і став буфер на карті, якщо вона вішає кілька входів на одну лінію.
- Ніколи не живи світлодіод від лінії шини. Використай транзистор або зроби так, щоб пін втягував струм.
- Спільні лінії треба ділити чемно. Лінії з відкритим колектором лише притягуються до нуля, ніколи не виставляються в одиницю (див. нижче).
Який слот
Слоти електрично однакові, тож будь-яка карта працює в будь-якому слоті. У проєкті плати слот BUS5 — крайній праворуч, найдальший від вузла живлення — позначено як рекомендований для основної плати.
Ніколи не вставляй і не виймай карту при ввімкненому живленні.
Довідка по сигналах
Напрямок — з погляду основної плати: вихід виставляє основна плата, вхід виставляє карта.
| Сигнал | Піни | Активний | Напрямок | Що робить |
|---|---|---|---|---|
| VCC | 2 | — | — | +5 В для кожної карти. Див. Живлення та джампери. |
| GND | 6 | — | — | Земля. |
| CLK | 4 | — | вихід | Системний тактовий сигнал, 10 МГц, шпаруватість 50 %. |
| A1–A23 | 1, 3, 5 … 45 (непарні) | високий | вихід | Шина адреси. A0 немає: байти процесор обирає через UDS і LDS. |
| D0–D15 | 38–64, див. розпіновку | високий | вхід/вихід | Шина даних, 16 біт. |
| AS | 47 | низький | вихід | Строб адреси: адреса на A1–A23 дійсна. |
| RW | 59 | — | вихід | Читання/запис: високий рівень — читання, низький — запис. |
| UDS | 34 | низький | вихід | Строб старшого байта: цикл використовує D8–D15 (парний байт). |
| LDS | 32 | низький | вихід | Строб молодшого байта: цикл використовує D0–D7 (непарний байт). |
| DTACK | 57 | низький | вхід | Підтвердження передачі даних: карта виставила дані на шину або забрала їх. Процесор чекає, доки не побачить DTACK. |
| BERR | 49 | низький | вхід | Помилка шини: завершує цикл винятком замість даних. |
| FC0–FC2 | 20, 22, 24 | високий | вихід | Коди функції: користувач чи супервізор, програма чи дані. Усі три в одиниці — цикл підтвердження переривання. |
| IOSEL | 16 | низький | вихід | Від дешифратора адреси основної плати: процесор звертається до простору вводу-виводу. |
| EXPSEL | 18 | низький | вихід | Від дешифратора адреси основної плати: процесор звертається до простору пам’яті розширення. |
| MFPIEO | 14 | низький | вхід | На основній платі r2: запит переривання рівня 3. Назва лишилася від плат r1, де цей пін був виходом дозволу переривань MC68901. |
| IPL0 | 26 | низький | вхід | На основній платі r2: запит переривання рівня 5. |
| IPL1 | 28 | низький | вхід | На основній платі r2: запит переривання рівня 2. |
| IPL2 | 30 | низький | вхід | На основній платі r2: запит переривання рівня 6. |
| RESET | 36 | низький | вхід/вихід | Скидання системи. Основна плата скидає шину при ввімкненні; карта може притягнути лінію до нуля, щоб скинути систему. |
| BR | 55 | низький | вхід | Запит шини: карта просить передати їй керування шиною. |
| BG | 51 | низький | вихід | Надання шини: процесор звільнить шину наприкінці поточного циклу. |
| BGACK | 53 | низький | вхід | Підтвердження надання шини: тепер шиною володіє карта. |
| VPA | 8 | низький | вхід | Дійсна адреса периферії: запускає повільний цикл у стилі 6800, синхронізований з E, або просить автовектор під час підтвердження переривання. |
| E | 10 | — | вихід | Тактовий сигнал для периферії сімейства 6800, одна десята від CLK. |
| VMA | 12 | низький | вихід | Дійсна адреса пам’яті для периферії сімейства 6800, синхронно з E. |
Лінії з відкритим колектором
Лінії переривань (піни 14, 26, 28, 30) і RESET (пін 36) спільні для всіх карт. Кожна має підтягувальний резистор на основній платі: 4,7 кОм на лініях переривань. VPA (пін 8) має підтягування 10 кОм.
- Притягуй ці лінії до нуля лише через вихід з відкритим колектором або відкритим стоком, ніколи звичайним двотактним виходом.
- Ніколи не виставляй їх в одиницю: карта, що виставляє одиницю, поки інша тягне до нуля, — це коротке замикання.
- Не додавай власних підтягувальних резисторів: тих, що на основній платі, достатньо.
Переривання
Карта запитує переривання, притягуючи свою лінію до нуля, і тримає її, доки процесор не підтвердить. У циклі підтвердження FC0–FC2 усі в одиниці, а на A1–A3 — рівень, який підтверджується. Тоді карта відповідає одним із двох способів:
- Векторне: виставляє номер вектора на D0–D7 і подає DTACK.
- Автовекторне: подає VPA замість DTACK; процесор бере фіксований вектор для цього рівня.
Перш ніж відповідати, карта має перевірити, що A1–A3 збігаються з її власним рівнем. Кілька карт можуть ділити один рівень, але тоді кожна має ще й знати, чи це вона просила.
Перш ніж обрати рівень, перевір, які рівні вже займають твої карти: див. карту пам’яті й таблицю IRQ у rosco_m68k hardware projects. Рівень 7 не маскується: залиш його для того, що справді цього потребує.
Захоплення шини
Карта, яка хоче сама керувати шиною, наприклад для DMA, використовує BR, BG і BGACK:
- Карта притягує BR до нуля.
- Процесор відповідає сигналом BG.
- Коли AS в одиниці, карта притягує BGACK до нуля, відпускає BR і керує шиною.
- Закінчивши, карта перестає керувати шиною й відпускає BGACK.
Поки шиною володіє карта, виходи адреси, даних і керування процесора перебувають у високоімпедансному стані.
Периферія сімейства 6800
VPA, E і VMA дозволяють 68010 працювати зі старою периферією 6800. Карта подає VPA; процесор тоді виконує повільний цикл синхронно з E і подає VMA, коли адреса дійсна. Ці цикли значно довші за звичайні, тож використовуй їх лише для мікросхем, яким це потрібно.
Дешифрування адреси
IOSEL і EXPSEL надходять від дешифратора адреси основної плати й дають карті простий спосіб дізнатися, до якої частини адресного простору йде звернення. Карта все одно дешифрує лінії адреси всередині цього простору, щоб відповідати лише на своїх адресах і ніколи не накладатися на основну плату чи іншу карту.
Лінії EXT: гребінка 2×8
Гребінка 2×8 під кожним слотом несе 16 запасних ліній, від EXT1 до EXT16. Непарні номери — в лівому ряду, EXT1 угорі, як і на гребінці 2×32.
Лінії EXT з’єднують п’ять слотів пін у пін і більше нікуди не йдуть: ні на основну плату, ні на живлення. Через них карти можуть обмінюватися сигналами між собою, не займаючи ліній шини, наприклад передавати приватне переривання чи сигнал вибору мікросхеми. Стандарту на їх використання немає: якщо дві карти використовують одну лінію, вони мають домовитися, що вона означає.