|
nedoPC.orgCommunity for electronics hobbyists, established in 2002 |
|
Author |
Message |
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23436 Location: Silicon Valley
|
У меня уже какое-то время имеется голая плата "ISA 8-Bit Backplane" от Сергея Киселёва: https://github.com/skiselev/isa8_backplane плата в сборе И я подумал, а почему бы не сделать для неё процессорную плату на 8080A (КР580ВМ80А) раз уж все нужные напряжения тут уже имеются? Пусть такой концепт называется SlothPC Мне гугловский AI Gemini даже предложил девиз для этого концепта: Relax, it's a SlothPC SlothPC можно будет использовать в качестве отладочного стенда для ISA-плат типа Sprinternet-а или каких-то новодельных звуковух...
|
08 Sep 2024 00:21 |
|
|
imsushka
Maniac
Joined: 01 Jan 2022 04:34 Posts: 201 Location: USSR, Tashkent
|
нуууууу, не прошло и 2х лет как в теме по z80 или 180 или 280 я уже предлагал такой вариант
но все сказали - нафиг надо
|
08 Sep 2024 00:27 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23436 Location: Silicon Valley
|
да ничо не сказали viewtopic.php?p=170737#p170737наоборот человек как раз и начал городить всё на этой ISA8 плате
|
08 Sep 2024 00:45 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23436 Location: Silicon Valley
|
Память этого компика можно совсем по простому разбить: #0000...#7FFF - RAM 32KB #8000...#9FFF - Cartridge nedoMem (RAM/ROM/etc) #A000...#BFFF - ROM 8KB #C000...#FFFF - ISA-bus (подключение как в Спринтере через окно 16KB) Если воткнуть туда SRAM-картридж, то объём сплошного ОЗУ будет 40КБ (причём область картриджа сможет переключаться страницами по 8КБ и в пределе допускать наличие до полумега памяти). Вывод можно сделать через nedoText/SX (текст 80x25 на NTSC телек) - скажем с помощью отдельной ISA-платки. Ввод - через PC-клаву подцепленную к микроконтроллеру PIC (PS/2 или USB). Но для начала можно последовательный порт на 6850 типа как в RC2014 организовать. При старте всё адресное пространство будет занимать копии ПЗУ 8KB, в первых трёх байтах которого будет прошито C3 03 A0 (JMP #A003) - при передаче управления на адрес #A003 (по факту перехода A15 из 0 в 1) триггер начального старта будет сброшен в нормальное состояние (типа как на РК) и карта памяти будет установлена в том виде, как описано выше. Можно сделать на мелкой логике выборку IO/MEM и на порты повесить 6850, а также пару регистров задающих старшие биты адреса для nedoMem (A13...A18) и ISA (A14...A19), которые также будут управлять индикацией на двух 7-сегментных индикаторах (пусть будет). А можно и в общее адресное пространство их воткнуть - скажем в конец области ПЗУ... P.S. Вместо обычного срама 32КБ можно поставить энергонезависимую память M48T35 с часами где в конце сидят: | | | | Quote: #7FF8 - управление (Write-bit,Read-bit,Sign-bit,Calibration) #7FF9 - секунды в BCD (STOP-bit,seconds/10,seconds%10) #7FFA - минуты в BCD (0,minutes/10,minutes%10) #7FFB - часы в BCD (0,0,hours/10,hours%10) #7FFC - век и день недели (0, FT-must be 0, Century Enable Bit, Century Bit, 0, day 1-7) #7FFD - день месяца в BCD (0,0,day/10,day%10) #7FFE - месяц в BCD (0,0,0,month/10,month%10) #7FFF - год в BCD (year/10,year%10)
| | | | |
https://www.digikey.com/en/products/detail/stmicroelectronics/M48T35-70PC1/606269 (тут просят $33.73 за один чип)
|
08 Sep 2024 03:19 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23436 Location: Silicon Valley
|
68B50 занимает 2 байта на чтение и запись регистры для задания старших адресов картриджа и ISA можно сделать только на запись - ещё 2 байта ещё наверное понадобится чтение состояния IRQ-ов (IRQ2-IRQ7), а режим DMA мы пока проигнорируем - ещё 1 байт (можно совместить с одним из тех, что на запись) чтобы получить скорость в COM-порту 115200 бод частота для 68B50 должна быть 7.3728МГц (как в RC2014) кроме этого на шине ISA должна быть частота 14.1818МГц (например для AdLib, который делит эту частоту на 4, чтобы подать затем на OPL2 чип) частоту для проца можно получить от частоты, идущей на 68B50 - скажем можно взять осциллятор 14.7456МГц и поделить его частоту на 2 для 68B50, а для 8080 поделить на 6, сформировав "красивые" непересекающиеся фазы на счётчике считающем до 6: я знаю можно проще, но тогда будет деление входной частоты на 4, а хотелось бы на 6, чтобы получить частоту процессора близкую к идеальной - 2.4576МГц (по всем длинам и отступам сюда отлично вписывается не только старый-добрый КР580ВМ80А, но и классический 8080A-1 и может быть даже чуть более медленный 8080A-2) P.S. Наверно можно эти же 14.7456МГц подать на OSC вход ISA шины, но AdLib без коррекции при этом станет фальшивить на 4% (сдвиг между соседними нотами напомню составляет 5.95%) так что наверное для ISA надо будет отдельно стоящий осциллятор 14.1818МГц воткнуть (либо программировать OPL2 с учётом изменённой частоты)...
|
08 Sep 2024 22:30 |
|
|
imsushka
Maniac
Joined: 01 Jan 2022 04:34 Posts: 201 Location: USSR, Tashkent
|
есть 14,1818 стандарт для исы вот и используй ее для уарта, ну будет не 115200 и 115100 и что ? на вс современых чипах подстройка скорости
я на пике 675 делал программый уарт и все читалось без проблем
|
08 Sep 2024 23:59 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23436 Location: Silicon Valley
|
на 115200 программно делал? и кстати при 14.1818 МГц оно будет 110795...
|
09 Sep 2024 00:01 |
|
|
imsushka
Maniac
Joined: 01 Jan 2022 04:34 Posts: 201 Location: USSR, Tashkent
|
нет канешно, 19200 или гдето там рядом 3% ошибки не проблема
|
09 Sep 2024 01:21 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23436 Location: Silicon Valley
|
Ну вот, а мне 115200 надо
|
09 Sep 2024 08:43 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23436 Location: Silicon Valley
|
Ещё такая идея есть, что хочется из старья иметь только сам проц, а все остальные микрухи будут относительно новыми (90e-00e), поэтому никакого другого околоинтеловского барахла типа ГФ24, ВК28, ВН59 и т.д. тут не будет. Для прерываний наверное надо на мелкой логике каких-то триггерочков нагородить, чтобы они ловили запросы на прерывания по IRQ-ам и защёлкивали, пока проц не дойдёт до их обработки - на проц в итоге может идти одно прерывание по #FF (RST 7) и обработчик уже сам будет смотреть какие битики опрокинулись (причём INTA из слова состояния мне доставать не очень хочется поэтому триггерочки можно сбрасывать по INTE) - вобщем как-то так...
|
09 Sep 2024 19:06 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23436 Location: Silicon Valley
|
Интересная схема формирования фаз на мелкой логике попалась мне в старом интеловском мануале: Тут счёт начинается с 3 и перезагрузка происходит синхронно на счёте 12, т.е. считаются 10 тактов: Красиво В моём случае можно начинать с 5 и считать до 10 - при этом старший бит счётчика сразу становится F2, а F1 должен быть в единице только при 0110: При частоте 14.7456 МГц длительность активной части F1 (а также пауза между F1 и F2 и пауза между F2 и F1) в данном случае будет составлять 67.8 нс, а длительность активной части F2 - 203.5 нс (т.е. частота процессора будет 2.46 МГц), что подпадает под тайминги 8080A-1, но чуть-чуть выходит за пределы таймингов 8080A-2 и 8080A: P.S. Если считать не 6 тактов, а 5 (убрав паузу между F1 и F2), то частота процессора поднимется до 2.95 МГц, но 8080A скорее всего выпадет т.к. TD3 тоже станет 67.8 нс и F2 перестанет быть чисто симметричным, что некрасиво...
|
09 Sep 2024 23:02 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23436 Location: Silicon Valley
|
Можно ещё сделать прерывание от кнопки (назовём его IRQ0) и от встроенного RS232-контроллера 68B50 (назовём его IRQ1), а контроллер клавы (и мыши?) сделать отдельной ISA-платкой и соответственно оно задействует одно из прерываний ISA-шины (IRQ2-IRQ7). Также сделать отдельной ISA-платкой текстовый видеовыход nedoText/SX, который тоже задействует одно из прерываний. В итоге у нас получается 8 "виртуальных" прерываний IRQ0-IRQ7, которые можно будет побитно маскировать. По поводу управления моей выводилкой текста 80x25: viewtopic.php?p=77766#p77766 | | | | Shaos wrote: Взаимодействие с девайсом предпологается осуществлять по 10 сигналам (плюс земля): D0, D1, D2, D3, D4, D5, D6, D7, IFLAG, OFLAG (из них выходной только OFLAG, а все остальные - входы).
Внешнее устройство ждёт когда OFLAG=0, затем выводит в D0...D7 нужный код и взводит IFLAG=1, далее ждём когда OFLAG=1 и сбрасываем IFLAG=0. Пока не станет OFLAG=0 новый код засылать нельзя. | | | | |
Надо превратить это в работу по прерыванию (полинг тоже можно оставить) - можно сделать так, что OFLAG=1 будет сбрасывать IFLAG автоматически - в итоге программе ничего не надо будет делать при переходе OFLAG из 0 в 1, а прерывание будет срабатывать по переходу OFLAG из 1 в 0 (т.е. IRQn=!OFLAG). Поллинг может вычитывать бит OFLAG из порта статуса (чтобы можно было без прерываний работать чисто программно) и если он 0, то программа засылает байт в порт данных - можно сделать так, что IFLAG при этом автоматически установится в 1, а изменившийся из 0 в 1 OFLAG этот IFLAG автоматически сбросит - далее изменение из 1 в 0 сигнала OFLAG приведёт к вызову прерывания (если оно не замаскировано) - такую платку даже можно будет потом в PC XT новоделах задействовать, поправив ихний опенсорсный BIOS! Разбиение такого компа на несколько плат упростит разработку и отладку, причём главная плата SlothPC сможет работать сама по себе - даже без ISA-шины, т.к. там кроме процессора уже будет ОЗУ, ПЗУ и COM-порт. Можно джамперами выбирать как пускаться - с использованием встроенного COM-порта или с использованием ввода-вывода по ISA-шине (можно зарезервировать специальные порты и прерывания под это дело - типа для nedoText/SX взять порты 220h/221h и прерывание IRQ2, а для самодельной клавиатуры - порты 110h/111h и прерывание IRQ5?). Ну и плюс уже существующие PC-платы можно будет тут же задействовать - главное следить, чтобы оно друг с другом не конфликтовало (например AdLib разрешает выбирать прерывания IRQ2, IRQ3 или IRQ5).
|
11 Sep 2024 00:49 |
|
|
Mildi
Novelist
Joined: 24 Aug 2022 23:08 Posts: 39
|
Можно уже готовую плату найти на 6-8 isa16 разъемов используя неисправную чипсетную материнку 286/386. Типа М219/TD70AN/M396 и подобную просто обрезав лишние проводники и удалив чипсет с процессором и обвязкой.
|
20 Sep 2024 10:42 |
|
|
Mondx
Doomed
Joined: 10 Aug 2022 07:27 Posts: 414
|
А ещё интересна схема БП, формирующая 2 доп. напряжения из +5-ти... Почему такая любовь к 8080? Ну работай с тем же z80, как с 8080, чем плохо? Или даже с 8085. Всяко лучше.
|
20 Sep 2024 11:21 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23436 Location: Silicon Valley
|
в z80 много лишнего и некоторые программы написанные для 8080 неправильно работают на z80, к тому же он теперь такой же труп как и 8080/8085 - так зачем же тогда отходить от истоков?… P.S. блок питания ATX уже имеет все напряжения, а если вдруг -5 отсутствует, то на плате Киселёва есть преобразователь из -12 в -5...
|
20 Sep 2024 12:48 |
|
|
Who is online |
Users browsing this forum: No registered users and 1 guest |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|