Пока org пропадает я решил разобратся как же все это делается сам. Поскольку чипов PSX с которыми мне хотелось бы поразбиратся нет, я решил разобрать APU, который располагаетсян а одном чипе с CPU. Добрался до области которая отвечает за первый square channel. Она состоит из 6 блоков: - programmable timer - length counter - 4-bit DAC - volume/envelope decay unit - sweep unit - duty cycle generator
Начать я решил с самого первого регистра 0х4000 и volume/envelope decay unit который его использует.
Вот трассировка
А вот и транзисторная схема (количество транзисторов старое, я не пересчитывал после того как все разобрал). Пока толком не разбирался как работает. Понятно что сверху слева располагаются 4 бита регистра которые хранят volume / envelope decay rate. Справа от них располагается первый набор регистров которые отвечают за уменьшение счетчика на единицу. Точно такой же набор находится внизу. Пока толком не понял для чего их два. Под 4 битами регистра располагаются бит envelope decay disable и envelope decay looping enable. В центре блок который отвечает за управление этими счетчиками и регистрами и на выходе дает финальное значение в 4 бита данных громкости которые идут в 4-bit DAC.
Не могу понять как ток вообще может пройти на другую сторону если один транзистор открывается сигналом а другой этим же сигналом, но инвертированным? В одной документации написано что это barrel shift. Сигнал этот кстати это нулевой бит регистра 0х4001.
Пытался понять как понять как работает схема и застопорился на принципе работы open-drain транзисторов
да там понимать нечего, обычный резистор.
я уезжал на моря)
-- 11 янв 2013, 10:00 --
По транзисторной схеме немного рекомендаций: - управляющие линии типа RST можно писать сразу на базе чтобы не рисовать лишних шлангов - справа вверху конструкция напоминает count-up счетчик на 4 разряда (на нулевой бит подается +5V (единица)) - open-drain трансы лучше пристыковывать к общей схеме только одним проводом (стоком), чтобы было проще читать схему
По непонятной схеме надо трассировку сделать, я так что-то вообще не врубаюсь, если смотреть на голый чип)
-- 11 янв 2013, 13:54 --
Я нашёл это место:
но надо целиком смотреть весь кусок. а вообще да - эти два транса никогда не будут одновременно пропускать ток через себя, ну и что )) тут полно таких странных мест, просто игнорируй их.
ниже я там ещё маленький кусочек нарисовал - latch, логика его работы такая:
if (set) latch = data; out = latch if (writeback) latch = out;
writeback -- нужен для того, чтобы не было конфликтов со старым значением, при записи значения в защелку. поэтому когда нужно что-то записать туда - делаем set=1 и writeback=0, чтобы отсечь старое значение и 100% записать новое (data) а в обычном режиме (writeback=1) старое значение подается опять на вход (рефрешится).
-- 11 янв 2013, 13:59 --
ЗЫ. barrel shifter реализуется мультиплексорами, похоже тут просто одна "линейка" мультиплексора.
Да я трассировал вначале, просто для понятности сразу показал на фотке. Вечером еще поразбираюсь, а пока вот еще вчера сделал кусок duty cycle generator (генератор скважности). С ним все понятно в битах регистра 0х4000 6 и 7 сохраняются значения от 0 до 3. По ним на основании сигнала от programmable timer формируется выходной сигнал 0 или 1 (потом в Volume / envelope decay unit к нему применяется значение громкости, а потом он идет в цифроаналоговый преобразователь).
Сигнал с таймера тикает в обратную сторону с нуля, поэтому значения идут 0 7 6 5 4 3 2 1 0 и так далее. На основании этих сигналов получается следующий результат 0 0 1 0 0 0 0 0 0 (12.5%) 1 0 1 1 0 0 0 0 0 (25%) 2 0 1 1 1 1 0 0 0 (50%) 3 1 0 0 1 1 1 1 1 (25% negated)
Тоже своего рода мультиплексор получается, только программируемый) Кстати ты когда трансы считаешь - считай отдельно open-drain, потому что логики они не несут, но для общей статистики пригодятся)
Последний раз редактировалось org 23 фев 2013, 17:40, всего редактировалось 1 раз.
Сигнал с таймера тикает в обратную сторону с нуля, поэтому значения идут 0 7 6 5 4 3 2 1 0 и так далее. На основании этих сигналов получается следующий результат 0 0 1 0 0 0 0 0 0 (12.5%) 1 0 1 1 0 0 0 0 0 (25%) 2 0 1 1 1 1 0 0 0 (50%) 3 1 0 0 1 1 1 1 1 (25% negated)
А как при этом может быть достигнута перепутанная скважность, которая присутствует в некоторых клонах? Тесты показали следующую зависимость: 00 = 12.5% 01 = 25% (50% на некоторых клонах) 10 = 50% (25% на некоторых клонах) 11 = 75%
_________________ Tried so hard and got so far, but in the end, it doesn't even matter...
Могу предположить только что у них при клонировании были допущены ошибки в схеме и транзисторы на этих 4 проводах перепутаны. но конкретно этот процессор работает правильно, как описано в документации.
У меня кстати есть транзисторные схемы некоторых кусков АПУ, почти весь square channel 1, pla rom регистров, и еще пара кусков. Можеш взять и слить со своим файлов. У нас же вроде одинаковые фотки. Раз ты взялся вновь за работу я тогда не буду дублировать наверно и трассировать сам. Я бы позанимался трассировкой PSXовских чипов. Не знаеш с кем можно связатся кто может отснять чипы?
Чипы есть у меня, причем очень много. Валяется порядка 10 раздолбанных "серых коробочек", я в свое время прикупил на барахолке их оптом (с убитыми приводами и прочая). Могу выслать почтой горстку чипов. По ощущениям у соньковских чипов минимум 2 слоя металлизации, естественно там CMOS (то есть полисиликон бывает сразу двух видов n-типа и p-типа), соответственно декап будет достаточно трудоемким, так как нужно правильно стравить вначале первый слой металла, потом второй. К тому же совсем не понятно как по фотографии отличать полисиликон n-типа от p-типа, вряд-ли они будут отличаться друг от друга по окраске.
Отдекапить наверное сможет друг HWM-a - Homer, найди его тут на форуме, поговори. Цену вопроса я сказать не могу)
Сливать твой APU не вижу смысла, так как square channel 1 у меня тоже есть и всё остальное, но спасибо за проделанную работу, буду сверяться с транзисторными схемами для верности.
По APU кроме веселых лсдшных картинок пока ещё ничего нет, а по 6502 - причесываю схему. Сегодня примерно в 21-00 мск планирую доделать "обвязку" APU, буду стримить в реальном времени, подключайтесь )))
Топологию APU скоро выложу, нужно поправить кое-какие линии... (с декодера регистров)
-- 20 янв 2013, 13:04 --
-- 20 янв 2013, 20:37 --
-- 20 янв 2013, 22:22 --
В заключение сегодняшнего стрима вкладываю схемы контактов (HWM, поясни что за транзистор такой, затвор которого подсоединен к земле плз, на схеме справа вверху у контакта D0 например)
А также текущую топографическую схему всего APU : http://breaknes.com/files/APU/2A03.zip (220 MB) (только там надо подправить название контрольной линии RES, сделаю при следующем обновлении файла)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения