Это потому что Reverse не собран на мелкой логике серии 1533 :)
Вид для печати
Это понятно :) на Reverse все сделать и проверить можно быстрее чем на россыпе микросхем, но в Вашей доработке проблема скорее не в серии К1533...Пересмотрев пару раз тему, схему Вашей доработки и схемы GS для которой она делалась так и не нашел, поэтому трудно судить в чем основная проблема... т.к. все зависит от правильности логики схемы в общем, и быстродействия и времянок основных блоков в целом...Код:#xx00 "расширенная память" - регистр доступный для записи
bit <3:0> переключают страницы по 32Kb, страница 0 - ПЗУ
bit <7:4> не используются, зависит от установленного ОЗУ
Распределение памяти:
#0000 - #3FFF - первые 16Kb ПЗУ
#4000 - #7FFF - первые 16Kb первой страницы ОЗУ
#8000 - #FFFF - листаемые страницы по 32Kb
страница 0 - ПЗУ,
страница 1 - первая страница ОЗУ
страницы 2... ОЗУ
При разработке модуля для Reverse я использовал материал отсюда, про неточности в схеме здесь.
Я свою схему ещё не публиковал, поэтому ты и не мог её ещё видеть. Я вечером буду разбираться, почему доступный объём ОЗУ получился намного меньше чем должно, но схему я и задумывал так, чтобы она соответствовала твоему описанию архитектуры. Возможно что где-то что-то недосмотрел. Когда полученный результат станет полностью соответствовать ожидаемому, я опубликую схему.
Но тем не менее, я вчера полностью выпаял с платы GS 4 микросхемы ОЗУ 43256. Это был ещё тот геморой, но обошлось без повреждения дорожек, и моя схема расширения ОЗУ работает самостоятельно без старого ОЗУ.
Но пока что это не главная проблема, которая меня волнует, меня больше всего волнует разгон. Судя по щелчку в колонках через 2 сек. после сброса, а так же при запуске плеера, который инициализирует GS, могу судить, что процессорная часть GS на разогнанной частоте работает, и программа в прошивке работает. Но тем не менее плеер Титаник отказывается видеть GS. Со старым ПЗУ на частоте 16 МГц не было и щелчка в колонках.
Понятно...
Кажется была и у меня похожая проблема, возможно из-за кратности частот, или прерывания, было так, что в "Sea Dragon" GS играл какую-то зацикленную ерунду. При установке другой частоты и вовсе не детектился. Сейчас уже точно не помню, скорее всего после доработки INTA# все стало на свои места. Но Reverse это другая система с другими особенностями работы...
Придётся написать какое-нибудь простенькое тест-пзу для GS, который бы при тестировании ОЗУ тональными последовательностями сообщал номера протестированных страниц ОЗУ.
---------- Post added at 11:33 ---------- Previous post was at 11:30 ----------
После доработки INT-а в самом GS ? Потому что в самом компьютере у меня INT доработан до использования сигналов IORQ+M1. И кстати, проблем с GS у меня не было при включении на компьютере турбо-режимов 7 МГц и 14 МГц.
вы бы вместо гадания на кофейной гуще (титаники), протестировали всё командами, вручную, через порты. увидели бы хотя бы, крутится прошивка или нет, если да, то можно вытащить список увиденных GSом страниц, они лежат по адресу #4000, 64 байта.
памяти может быть меньше из-за того, что она не проходит тест, например.
что-то меня здесь смущает. прошивка точно поддерживает больше страниц, чем 15, как могут не использоваться биты <7:4>? они будут использоваться, не нужно такое разграничение делать по битам. я не помню точно, но что будет если включить 16ю страницу? не помню, чтобы там подключалось ПЗУ в этом случае.
далее,
#4000 - #7FFF - вторые 16Kb первой страницы ОЗУ, а первые 16к спрятаны под пзу. они будут доступны с #8000 по #bfff, если включить 1ю страницу.
Судя по оригинальной принципиальной схеме GS и оригинальной схеме платы расширения ОЗУ до 512Кб, задействованы только 4 бита порта #00, на плате GS триггер 1533ТМ8, у которого всего 4 бита, и 1533ИД7 выбирает ПЗУ и номера страниц ОЗУ, проверяя 4 бита порта, поэтому если попытаться включить 16-ю страницу, то на младших 4-х разрядах будет 0000, что приведёт к включению 0-й страницы ПЗУ.
Поэтому при расширении памяти выше 512Кб, дорабатывается сама плата GS - режется дорожка на 6-ю ногу 1533ИД7 и туда вместо +5в подаётся разрешение выбора ПЗУ при 0 на остальных битах порта #00, которые задействованы на плате расширения дополнительным триггером 1533ТМ8 (в моём случае 1533ТМ2).
P.s. Заодно я понял, почему памяти у меня вышло меньше почти на 256Кб, только что понял, в чем ошибка в моей схеме расширения.
Кстати, Титаник 3.0 !неправильно! показывает количество памяти и думает долго.
Юзай Z-Player v3.3, там все нормуль, но чтоб заветные цифры увидеть надо мод загрузить.
Evgeny Muchkin, Z-Player моды вроде тока с дискеты грузит?
Может Титаник и ошибается где-то в пределах 32Кбайт, но ошибка в схеме всё-же имеется, сегодня вечером доработаю её, и должен увидеть намного больше памяти даже в Титанике.
Да и мод размером 309 Кбайт подтвердил наличие ошибки в схеме - когда я вставил только одну ОЗУ 512Кбайт и Титаник показал 272 Кбайта, то когда я загрузил мод размером 309 Кбайт, он начал звучать не правильно из-за того что некоторые инструменты не влезли в память. Вставил вторую микросхему памяти - этот мод стал звучать правильно.
Ура! Всё получилось, и с расширением ОЗУ, и с разгоном General Sound-а до 16.5 МГц. Ошибок в логике работы схемы не было, подвела диодная логика "И", не всегда она хорошо работает, в данном случае диоды ещё и препятствовали разгону, пришлось добавить 5-ю микросхему - 1531ЛИ1. Завтра (вернее уже сегодня) нарисую схемы и выложу здесь. А так же приведу код, который вытягивает из General Sound-а любой участок памяти любого размера.
Ещё я пытался для экспериментов заслать в ОЗУ GS свой небольшой код программки для выполнения (просто воспроизводит писк) и запустить его, но с запуском вышло туго - GS то начинал выполнение кода, то отказывался его выполнять.
В первом варианте схемы с двумя микросхемами по 512Кбайт получилось всего лишь 23 страницы, 8 из них в 1-й микросхеме и 15 страниц во 2-й:
08, 09, 0A, 0B, 0C, 0D, 0E, 0F
11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F
Затем я просто заменил микросхему 1533ЛЕ1 на 1531ЛЕ1, и добавились ещё 3 страницы ОЗУ, и их стало 26 - 11 страниц в 1-й и 15 во 2-й:
05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F
11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F
А после того как я на плате расширения выкинул все диоды и поставил вместо них 1531ЛИ1, появились все остальные недостающие страницы ОЗУ, и их стало 30 - 14 страниц в 1-й и 16 во второй.
02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F
0-я страница ОЗУ затеняется ПЗУ, а 1-я, вернее первые 16Кб от неё, используется в нижних адресах с #4000 по #7FFF, поэтому GS не выдаёт её в списке.
Итак, обещанные схемы - расширение памяти General Sound-а, которое требует отсутствия микросхем ОЗУ на самой плате GS, и разгон GS:
Начну со схемы расширения памяти, т.к. без этого разгон GS не возможен.
http://s017.radikal.ru/i401/1112/35/4bd203903c39t.jpg
Эта схема требует отсутствие на плате GS микросхем ОЗУ, т.к. полностью его заменяет. Если вы владельцы General Sound-а с данными микросхемами памяти на 128Кбайт, вам придётся его выпаять. Сразу предупрежу, что это очень геморойное занятие, но тем не менее, мне удалось их выпаять без повреждения дорожек.
Мне пришлось уменьшить максимальный доступный объём ОЗУ до 2 Мбайт, иначе на плату пришлось бы ставить ещё одну микросхему - 1533ЛИ3, т.е. я сделал это с целью уменьшения кол-ва корпусов на плате расширения.
Но если кому-то всё-таки нужно получить 4 Мбайта ОЗУ, я нарисую схему с полностью реализованными 4 Мбайтами ОЗУ, но придётся так же модернизировать и прошивку, в то время как вряд ли найдёте мод больше чем на 2 Мбайта. Поэтому ещё раз подумайте, а нужно ли вам 4 Мбайта ?
Хотя на триггер порта #00 на микросхеме 1533ТМ8 я развёл 4 бита - с D4 по D7, реально для 2Мбайт из них используются только 2 бита - D4 и D5. Биты D6 и D7 я развёл на будущее, например D6 можно использовать для расширения памяти до 4Мб, а D7 для того чтобы возложить на него функцию переключения ПЗУ/ОЗУ.
Для работы этой схемы расширения, на разъёме расширения по оригинальной схеме не хватает 3-х сигналов - P0, PAGE0 и ROM0. Названия этих трёх сигналов не стандартные, названия остальных сигналов я взял с оригинальной схемы из архива GSPAK_1.4zip. Все ссылки на микросхемы General Sound-а взяты так же с этой версии схемы GS.
Сигнал P0 нужен для работы второй половины порта #00, находящейся на плате расширения памяти, и берётся с микросхемы D16 (1533ТМ8) с выв.9. Для этого надо от разъёма расширения отрезать сигнал RAM7 с микросхемы D15 (1533ИД7) с выв.7, и вместо него подать сигнал P0.
Сигнал PAGE0 нужен для того чтобы 1-я страница ОЗУ, верней первые её 16Кб, проецировались в адресное пространство с #4000 по #7FFF, берётся с микросхемы D14 (1533ИД7) с выв.14. Для этого нужно от разъёма расширения отрезать сигнал RAM5 с микросхемы D15 (1533ИД7) с выв.10, и вместо него подать сигнал с микросхемы D14 (1533ИД7) с выв.14.
Сигнал ROM0 нужен для того, чтобы не допустить включение ПЗУ при обращении к верхним страницам ОЗУ, и подаётся с платы расширения памяти на микросхему D15 (1533ИД7) на выв.6 вместо сигнала /3/P0.
Разгон General Sound-а:
Прежде всего надо избавиться от медленной памяти GS. Для этого надо выпаять с платы все 4 микросхемы ОЗУ и собрать расширение памяти по выше приведённой схеме. Разумеется, сами микросхемы ОЗУ надо поставить с временем доступа не более 70 нс. Я поставил себе на 55нс.
Во-вторых, нужно медленное УФ-ПЗУ заменить на электрически стираемое ПЗУ Winbond с временем доступа не более 70 нс. Я поставил себе ПЗУ на 45нс.
Ну и в третьих, нужно розыскать кварцевый резонатор на нужную частоту, в данном случае на 16.5 МГц, и провести доработку в соответствии со схемой. Чёрным обозначены старые микросхемы и соединения, красным - соединения, которые надо разорвать, и зелёным новые микросхема и соединения.
http://s09.radikal.ru/i182/1112/3a/dd6b68b05331t.jpg
По оригинальной схеме обозначенная микросхема счётчика 1533ИЕ19, это D5. Сигнал GEN_-5V, это вход преобразователя напряжения питания "-5в", его нужно отрезать от выв.10 D5 и подать на выв.9 D5. Конденсатор ёмкостью 10нф в схеме формирователя INT-а надо отсоединить от выв.11 D5 и соединить с выв.10 D5.
Данная доработка обеспечивает суммарный коэффициент деления счётчиков равным 440 (16500 КГц / 440 = 37.5 КГц).
Если не удалось найти дефицитный кварц на 16.5 МГц, можно поставить кварц на 15 МГц, но в этом случае коэффициент деления счётчиков нужно уменьшить до 400, для этого надо отсоединить один из входов элемента "3И" от выв.3 счётчика 1533ИЕ19 и соединить на +5в. Но в этом случае вы получите меньшее быстродействие General Sound-а, хотя разгон до 15 МГц всё равно даёт эффект по сравнению с 12МГц.
Если будут вопросы, спрашивайте.
Для сравнения, я записал работу General Sound-а на двух критичных модах до доработки:
http://soundcloud.com/northwood_dnep...rystal-rain-gs
http://soundcloud.com/northwood_dnep...en-stemning-gs
И после разгона до 16.5 МГц:
http://soundcloud.com/northwood_dnep...ain-gs-fix16-5
http://soundcloud.com/northwood_dnep...ing-gs-fix16-5
Всё это тестировалось без релупов с плеером Титаник-3.0, завтра попробую звучание с включенными релупами.
Кстати, Титаник всё-таки абсолютно правильно показывает объём ОЗУ General Sound-а доступный для модов, т.к. берёт общее кол-во страниц, которое выдаёт GS, умножает их на 32 и прибавляет 16Кб.
И обещанный код, который позволяет получить содержимое памяти General Sound-а. Не важно, что это - ПЗУ или ОЗУ.
Код:DI
LD HL, адрес_куда_надо_скопировать данные
LD DE, адрес_памяти_GS_откуда_надо_скопировать_данные
LD BC, количество_байт_которые_надо_скопировать
LD A,C
OUT (#B3),A
LD A,#15
OUT (#BB),A
label1 IN A,(#BB)
RLCA
JR C, label1
LD A,B
OUT (#B3),A
label2 IN A,(#BB)
RLCA
JR C, label2
LD A,E
OUT (#B3),A
label3 IN A,(#BB)
RLCA
JR C, label3
LD A,D
OUT (#B3),A
label4 IN A,(#BB)
RLCA
JR NC, label4
label5 IN A,(#BB)
RLCA
JR NC, label5
IN A,(#B3)
LD (HL),A
INC HL
DEC BC
LD A,B
OR C
JR NZ, label5
P.s. Хочу попробовать ещё поднять тактовую частоту процессора - до 18 МГц. По сравнению с разгоном до 16.5 МГц, никаких усложнений в схеме не будет, нужно будет просто 2 входа 1533ЛИ3 переключить на выводы 5 и 6 микросхемы 1533ИЕ19, 3-й вход ЛИ3 подключить на +5в (или заменить на 1533ЛИ1). Да и кварц на 18 МГц достать намного проще, чем на 16.5 МГц. Производительность при разгоне до 16.5 МГц получается 440 тактов за прерывание, а при 18 МГц - 480 тактов.
Если разгон на 18 МГц пройдёт успешно и GS не будет глючить, то перерисую схему.
Northwood, давай уже на 20 мгц делай.задействуй всю мощь 20мгц процессора
Да я вот смотрю, что в Радиомаге вообще нет в списке кварцев на 18 МГц, То ли мне показалось, что я видел их на радиорынке.
Но если разгонять на 20 МГц, то будет не возможно получить точную частоту прерываний 37.5 КГц, т.е. проигрывание станет либо немного быстрее, либо немного медленней, т.к. суммарный коэффициент деления счётчиков должен быть 533, и имея в распоряжении 3 счётчика - с максимальным делением на 10, на 16 и на 8, никак не получается коэффициент деления 533 разделить на 3 счётчика таким образом, чтобы везде получилось целое число.
Northwood, значит смотри ближайший кварц в сторону увеличения (надеюсь проц потянет разгон )
Для того чтобы в конечном итоге получать точную частоту прерываний 37.5 КГц и при этом делать минимум телодвижений со схемой, шаг изменения частоты кварца должен быть ровно 1,5 МГц.
Если делать расчёт на увеличение числа разрезанных дорожек вокруг счётчиков, но расчитывать на получение точной частоты прерываний 37.5 КГц, то шаг изменения частоты кварца должен быть 37.5 КГц.
При ином шаге изменения частоты кварца, точную частоту прерываний 37.5 КГц получить будет не возможно, что не есть хорошо. Но вначале конечно было бы не плохо проверить, какую вообще максимальную тактовую частоту процессора потянет General Sound.
Прошивка версии 1.0.5, скачал последнюю версию ZPlayer-а 3.3, вот что получается, если к разгону до 16.5 МГц добавить релупы. На мой взгляд, результат достойный:Цитата:
завтра попробую звучание с включенными релупами
http://soundcloud.com/northwood_dnep...fix16_5_reloop
http://soundcloud.com/northwood_dnep...fix16_5_reloop
И для сравнения 2 вчерашние ссылки без релупов:
http://soundcloud.com/northwood_dnep...ain-gs-fix16-5
http://soundcloud.com/northwood_dnep...ing-gs-fix16-5
Evgeny Muchkin, на этих двух модах так должно звучать или можно добиться ещё лучшего результата ? Большинство щелчков ушли, но кое-где ещё остались.
А вообще плеер классный, мне очень понравился - и дизайн, и звучание с релупами. спасибо :) Но очень не хватает возможности остановки, паузы и перемотки...
Знаю, на ПЦ на нём и слушаю. Но меня интересует, можно ли на GS можно ли добиться ещё лучшего результата или на этом остановиться. Тем более что я не до конца уверен в исправности ЦАПов на моём GS - после того как лет 10 назад у меня полетел импульсный блок питания и он выдал +7.5V вместо +5V, у меня явным образом в GS накрылся один из каналов регулировки громкости - 1533ТМ9 и 572ПА1 и сдох процессор Z84C0010PEC, пришлось всё это заменить. Поэтому я не уверен в полной исправности ЦАПов каналов, и если например будут неисправны младшие биты ЦАПа, то на слух это будет не сильно заметно, но качество звука будет подпорчено. Поэтому я и хочу узнать, так ли должно звучать на GS или нужно что-то делать.
После длительного перерыва, я всё-таки развёл печатную плату под мою схему расширения памяти GS. Хотя правильней сказать не "расширение памяти", а "подключение памяти", т.к. в данной схеме основная память на плате самого GS должна отсутствовать, а вся основная память теперь должна находиться только на плате расширения.
Все подробности в 1-м сообщении этой темы.
Учту, посмотрю, как можно будет её оптимизировать. Ещё общаюсь с человеком, который занимается изготовлением плат, он высказал пару своих замечаний, так что скоро будет окончательный вариант платы.
Тут ещё назрел вопрос: Какие керамические конденсаторы ставить, обычные с гибкими ножками или смд ?
Имхо, предусмотреть выводные посадочные места с расстоянием между выводами 5 мм. Туда можно будет и выводной конденсатор поставить, и SMD сверху напаять.
http://photo.qip.ru/photo/softfelix/.../104049819.jpg
Немного оптимизировал плату, добавил блокировочных конденсаторов. Рисунки платы заменил на новые. Возможность оптимизации трассы от DD9:6 не нашел.
Northwood, дорожку DD5:10-DD9:5 в районе DD8 поднимаем (пропускаем между ногами 5-6/9-10, за счет смещения поворота дорожки DD6:6-DD8:5 чуть левее, плотность участка позволяет). А DD9:6-DD5:13 пропускаем между ног DD8 6-7/8-9.
---------- Post added at 14:06 ---------- Previous post was at 14:05 ----------
Плюс ко всему вопрос - под какой класс затачивается плата? переходные отверстия не малы? а то из-за них ценник на производство поднимется сильно.
Больше никаких пожеланий не будет ? Если нет, я отправляю материалы изготовителю плат.
Ну если сходу, то:
1. убрал бы переходное отверстие около DD5:10 (сама ножка микрухи - уже переходное отверстие)
2. если внимательно посмотреть на дорогу идущую к DD7:12, то там можно тоже от переходного отверстия избавиться.
3. непонятное, видимо лишнее п/о около С6 по шине питания.
Прога случаем не DipTrace? а то дизайн похож.