MSD #09
18 декабря 1999 |
|
SIMM & Speccy (C) JtN/4D/10.03.99 Может я вас разочарую, но схем не будет. И вовсе не из-за то- го, что мне, как обычно, лень. В принципе, если вы владелец обычного Пентагона, Скорпиона, или "неоцветненного" (в CP/M ко- нечно) Профи, то проблем нет. Из всех оставшихся я знаю только Профи (версии 4 и 5). В них требуется одновременно читать 2 бай- та из RAM, но и это не так сложно (кому надо пишите). Теперь немного справочной информации: Микросхемы DRAM органи- зованы в виде матрицы, строки и столбцы которой выбираются им- пульсами RAS (Row Access Strobbe) и CAS (Column Access Strobe). Для сохранения информации к каждой строке матрицы необходимо об- ращаться с периодом около 3OOmc. В pC сигнал со счетчика, выра- батываемый каждые 1Smkc, вызывает холостой цикл обращения к па- мяти для регенерации очередной строки. Микросхемы DRAM имеют ем- кость до ЧМбит, время доступа 50-25Ohc и организованы по 1 или 4 бита в корпусе. Цифровая часть обозначения микросхемы имеет вид: NC-T, где N=1,4 - разрядность ячеек, бит; C=64,128,256,000... - количество ячеек (64:64К, 000:1М); Т - время доступа в наносекундах или десятках наносекунд. Микросхемы могут упаковываться в DIPkopnyca, устанавливаемые в кроватки; собираться в модули SIPP (Single InLine Pin Package) и SIMM (Single InLine Memory Module), устанавливаемые в специаль- ные гнезда. SIPP модули имеют 30 штырьковых выводов, SIMM 30 или 72 печатных вывода. SIPP - редко используемые, совпадают по раз- водке со стандартными SIMM ЗOpin. Подключение. Если у вас обычный Спектрум без всяких цветных (расширенных) режимов, то есть вам не надо в один и тот же мо- мент времени читать более одного байта из памяти, то подключение сводится к установке одного регистра или буфера (кому как удоб- ней) и регенерации 10 и возможно 11 бита - дополнительных строк модулей (SIMM'ы имеют строк в 2 (а некоторые в 4) раза больше, чем РУ7 и следовательно их нужно регенерировать). Но в принципе, если сигналы MA8, MA9 кинуть на "землю", то можно обойтись без регенерации, при этом потеряв значительную часть памяти. Пара советов: т.к. во всех Спектрумах память регенерируется видео- контроллером (ВК), то сигналы регенерации следует искать там. Найдите сигналы ВК, которые подаются через мультиплексоры на МАО-МА7 во время, когда /RAS=0 - т.е. активен. Эти сигналы в ре- генерации не участвуют, следовательно их можно задействовать, выбрав из них тот, частота которого больше (в Профи Это DA11, в Скорпионе (возможно!) ARF) - назовем его DAr. Далее отрезаем его и вешаем на "землю" вход мультиплексора, также найдите сигнал адресной шины процессора (обзовем его Ar), соответствующий DAr и отрежьте от мультиплексора - этот бит (вход мультиплексора) уве- личит память в 2 раза, т.е. его нужно повесить на какой-нибудь порт. Оставшиеся сигналы: Ar и DAr нужно повесить на собственный мультиплексор (см. рис.1), с которого будем иметь еще один бит расширения памяти. Таким образом, прорегенерировав один бит мо- дуля вы учетверите его емкость! Ну и наконец еще одна проблема. Она заключается в том, что SIMM'ы не имеют раздельных входов и выходов данных, а в большинстве Спектрумов они раздельны, т.е. для чтения из памяти используется внутренняя шина, с которой данные кидаются через регистры на видео или шину процессора (CPUmemREG). Но и тут не все так плохо, просто ставим регистр наоборот, относительно CPUmemREG, который будет открываться во время записи в память (см. рис.2). Если у кого-то возникли сом- нения по работоспособности - скажу, что у меня все это неплохо работает уже несколько месяцев. Замечание: во время подключения Simm ЗOpin выяснилось, что его сигнал CAS инверсный, то есть ес- ли подключаете Simm 72pin, то CAS вешаете на CAS, а если ЗOpin, то сначала не забудьте его проинвертировать. Теперь поключайте Simm и работайте с версией DOSa by Reanimator (4.12F). Приложение. Рис.1 ┌──┬────┬─┐ GND──6┤A0│ │ │7 DAr──5┤A1│ │A├──MA8 EXb──4┤A2│ │ │ Ar──3┤A3│КП12│ │ MA9 --> SIMM GND──1┤0E│ │ │ CPU - active when ├──┤ │ │ CPU have access to 14│SE│ │ │ memory /RAS───┤0 │ │ │ EXb -> Extended port CPU──2┤1 │ │ │ DAr, Ar - see above └──┴────┴─┘ Рис.2 2┌────┬────┬────┐14 ┌──┬──┬──┐ DB──┤ DC │ │ D ├──DB'┌ ┤ 0│RG│0 ├ ┐ ├────┤DRAM├────┤ │ ┤ 1│ │1 ├ │ ┌ ┤ A0 │ │ │ │ ┤ 2│ │2 ├ │ │ ┤ A1 │ │ │ DB│ ┤ 3│ И│3 ├ │DB' │ ┤ A2 │ │ │ │ ┤ 4│ Р│4 ├ │ MA│ ┤ A3 │ 565│ │ │ ┤ 5│ 2│5 ├ │ │ ┤ A4 │ РУ7│ │ │ ┤ 6│ 2│6 ├ │ │ ┤ A5 │ │ │ └ ┤ 7│ │7 ├ ┘ │ ┤ A6 │ │ │ 9├──┤ ├──┤ │ ┤ A7 │ │ │ +5В──┤ C│ │ │ └ ┤ A8 │ │ │ 1│ │ │ │ ├────┤ │ │ WE──┤0E│ │ │ RAS─┤/RAS│ │ │ └──┴──┴──┘ ├────┤ │ │ CAS─┤/CAS│ │ │ ├────┤ │ │ WE─┤/WE │ │ │ └────┴────┴────┘ DB - CPU DATA BUS. DB'- SUB DATA BUS - внутр. шина памяти. Таблица 1. Организация модулей SIMM. ┌───────┬────────────────┬───────────────┐ │Емкость│ С паритетом │Без паритета │ │ ├────────┬───────┼──────┬────────┤ │ BYTE │ ЗOpin │ 72pin │ЗOpin │ 72pin │ ├───────┼────────┼───────┼──────┼────────┤ │ 256K │ 256K*9 │ - │256K*8│ - │ │ 1M │ 1M*9 │256K*36│ 1M*8 │ 256K*32│ │ 2M │ - │512K*36│ - │ 512K*32│ │ 4M │ 4M*9 │ 1M*36 │ 4M*8 │ 1M*32 │ │ 8M │ - │ 2M*36 │ - │ 1M*32 │ │ 16M │ - │ 4M*36 │ - │ 4M*32 │ │ 32M │ - │ 8M*36 │ - │ 8M*32 │ │ 64M │ - │ 16M*36│ - │ 16M*32 │ └───────┴────────┴───────┴──────┴────────┘ Таблица 2. Назначение выводов модулей SIMM ЗOpin. ┌────┬─────┬─────┬────┬─────┬─────────┐ │Pin │ STD │ IBM │Pin │ STD │ IBM │ ├────┼─────┼─────┤────┼─────┼─────────┤ │ 1 │ +5В │ +5В │ 16 │ DBЧ │ DBЧ │ │ 2 │ CAS │ CAS │ 17 │ MA8 │ MA8 │ │ 3 │ DBO │ DBO │ 18 │ MA9 │ MA9 │ │ 4 │ MAO │ MAO │ 19 │ MA10│ RAS1 │ │ 5 │ MA1 │ MA1 │ 20 │ DBS │ DBS │ │ 6 │ DB1 │ DB1 │ 21 │ WE │ WE │ │ 7 │ MA2 │ MA2 │ 22 │ GND │ GND │ │ 8 │ МАЗ │ МАЗ │ 23 │ DBб │ DBб │ │ 9 │ GND │ GND │ 24 │ N.C.│ PrD │ │ │ │ │ │ │ (GND) │ │ 10 │ DB2 │ DB2 │ 25 │ DB7 │ DB7 │ │ 11 │ МАЧ │ МАЧ │ 26 │ DB8 │ PrD │ │ │ │ │ │ Out │ (1M=GND)│ │ 12 │ MAS │ MAS │ 27 │ RAS │ RAS │ │ 13 │ DBЗ │ DBЗ │ 28 │ CAS │ N.C. │ │ │ │ │ │Parity │ │ 14 │ MAб │ MAб │ 29 │ DB8 │ DB8 │ │ │ │ │ │ In │ In/Out │ │ 15 │ MA7 │ MA7 │ 30 │ +5В │ +5В │ └────┴─────┴─────┴────┴─────┴─────────┘ STD - стандартный SIMM (SIPP) IBM - SIMM фирмы IBM Таблица 3. Назначение выводов модулей SIMM 72pin. ┌────┬──────┬────┬──────┬────┬──────┐ │Pin │ Name │Pin │ Name │Pin │ Name │ ├────┼──────┼────┼──────┼────┼──────┤ │ 1 │ GND │ 25 │ DB22 │ 49 │ DB8 │ │ 2 │ DBO │ 26 │ DB7 │ 50 │ DB24 │ │ 3 │ DB16 │ 27 │ DB23 │ 51 │ DB9 │ │ 4 │ DB1 │ 28 │ MA7 │ 52 │ DB25 │ │ 5 │ DB17 │ 29 │ BSO │ 53 │ DB10 │ │ 6 │ DB2 │ 30 │ +5В │ 54 │ DB26 │ │ 7 │ DB18 │ 31 │ MA8 │ 55 │ DB11 │ │ 8 │ DBЗ │ 32 │ MA9 │ 56 │ DB27 │ │ 9 │ DB19 │ 33 │ RASЗ │ 57 │ DB12 │ │ 10 │ +5В │ 34 │ RAS2 │ 58 │ DB28 │ │ 11 │ CASp │ 35 │ DP2 │ 59 │ +5В │ │ 12 │ MAO │ 36 │ DPO │ 60 │ DB29 │ │ 13 │ MA1 │ 37 │ DP1 │ 61 │ DB13 │ │ 14 │ MA2 │ 38 │ DPЗ │ 62 │ DBЗO │ │ 15 │ МАЗ │ 39 │ GND │ 63 │ DB14 │ │ 16 │ МАЧ │ 40 │ CASO │ 64 │ DBЗ1 │ │ 17 │ MAS │ 41 │ CAS2 │ 65 │ DB15 │ │ 18 │ MAб │ 42 │ CASЗ │ 66 │ BS2 │ │ 19 │ Rsv. │ 43 │ CAS1 │ 67 │ PDO │ │ 20 │ DBЧ │ 44 │ RASO │ 68 │ PD1 │ │ 21 │ DB20 │ 45 │ RAS1 │ 69 │ PD2 │ │ 22 │ DBS │ 46 │ BS1 │ 70 │ PDЗ │ │ 23 │ DB21 │ 47 │ WE │ 71 │ BSЗ │ │ 24 │ DBб │ 48 │ Rsv. │ 72 │ GND │ └────┴──────┴────┴──────┴────┴──────┘ Обозначения: PD - Presence Detect - индентификатор наличия и типа. N.C.- No Connection - свободный вывод. DBi - биты данных. DB8 - бит паритета для SIMMЗO. DPi - бит паритета i-го байта. MA - мультиплексированный адрес. RAS, CAS - стробы выборки строки и столб- ца соответсвенно. WE - запись. BS - выборка блока. Rsv - Reserved. В статье использованы материалы из книги М.Гука "Аппаратные средства IBM PC", издательство "Питер Пресс", 1996.
Other articles:
|
|
|
|
|
|
|
Similar articles:
В этот день... 21 November