Сообщения без ответов | Активные темы Текущее время: 29 мар 2024, 19:32



Ответить на тему  [ Сообщений: 411 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10, 11 ... 21  След.
 Очень низкоуровневый эмулятор 6502 / NES 
Автор Сообщение
Сообщение 07 янв 2013, 00:58
Профиль

Зарегистрирован:
28 ноя 2012, 17:56
Сообщения: 63
Пока 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.

Изображение

На чипе этот блок расположен тут

Изображение


Вложения:
total.jpg
total.jpg [ 373.46 КБ | Просмотров: 13334 ]
square1_volume_decay_unit_.jpg
square1_volume_decay_unit_.jpg [ 960.84 КБ | Просмотров: 13334 ]
square1_volume_decay_unit.jpg
square1_volume_decay_unit.jpg [ 433.05 КБ | Просмотров: 13334 ]
Сообщение 09 янв 2013, 00:01
Профиль

Зарегистрирован:
28 ноя 2012, 17:56
Сообщения: 63
Натолкнулся на такой участок чипа.

Изображение

Не могу понять как ток вообще может пройти на другую сторону если один транзистор открывается сигналом а другой этим же сигналом, но инвертированным? В одной документации написано что это barrel shift. Сигнал этот кстати это нулевой бит регистра 0х4001.


Вложения:
how.jpg
how.jpg [ 33.32 КБ | Просмотров: 13287 ]
Сообщение 11 янв 2013, 10:47
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Цитата:
Пытался понять как понять как работает схема и застопорился на принципе работы 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 реализуется мультиплексорами, похоже тут просто одна "линейка" мультиплексора.


Сообщение 11 янв 2013, 15:31
Профиль

Зарегистрирован:
28 ноя 2012, 17:56
Сообщения: 63
Да я трассировал вначале, просто для понятности сразу показал на фотке. Вечером еще поразбираюсь, а пока вот еще вчера сделал кусок 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)

Изображение


Вложения:
duty_cycle_generator.jpg
duty_cycle_generator.jpg [ 84.33 КБ | Просмотров: 13225 ]
Сообщение 11 янв 2013, 16:05
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Тоже своего рода мультиплексор получается, только программируемый)
Кстати ты когда трансы считаешь - считай отдельно open-drain, потому что логики они не несут, но для общей статистики пригодятся)


Последний раз редактировалось org 23 фев 2013, 17:40, всего редактировалось 1 раз.



Сообщение 11 янв 2013, 18:54
Профиль
Аватара пользователя

Зарегистрирован:
24 июл 2007, 06:54
Сообщения: 492
Откуда: Embedded
Akari писал(а):
Сигнал с таймера тикает в обратную сторону с нуля, поэтому значения идут 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...


Сообщение 14 янв 2013, 09:47
Профиль

Зарегистрирован:
28 ноя 2012, 17:56
Сообщения: 63
Могу предположить только что у них при клонировании были допущены ошибки в схеме и транзисторы на этих 4 проводах перепутаны. но конкретно этот процессор работает правильно, как описано в документации.


Сообщение 14 янв 2013, 16:47
Профиль
Аватара пользователя

Зарегистрирован:
24 июл 2007, 06:54
Сообщения: 492
Откуда: Embedded
Ну мне просто интересно, на какой стадии она могла вкрасться.

_________________
Tried so hard and got so far, but in the end, it doesn't even matter...


Сообщение 14 янв 2013, 22:57
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
пропущенный виас может привести к такому. а точнее надо просто смотреть чип, так гадать можно бесконечно.


Сообщение 16 янв 2013, 10:00
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570


Сегодня часиков в 9 вечера приходите на очередной стрим)))


Сообщение 16 янв 2013, 14:12
Профиль

Зарегистрирован:
28 ноя 2012, 17:56
Сообщения: 63
У меня кстати есть транзисторные схемы некоторых кусков АПУ, почти весь square channel 1, pla rom регистров, и еще пара кусков. Можеш взять и слить со своим файлов. У нас же вроде одинаковые фотки. Раз ты взялся вновь за работу я тогда не буду дублировать наверно и трассировать сам. Я бы позанимался трассировкой PSXовских чипов. Не знаеш с кем можно связатся кто может отснять чипы?


Сообщение 16 янв 2013, 15:06
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Чипы есть у меня, причем очень много. Валяется порядка 10 раздолбанных "серых коробочек", я в свое время прикупил на барахолке их оптом (с убитыми приводами и прочая). Могу выслать почтой горстку чипов.
По ощущениям у соньковских чипов минимум 2 слоя металлизации, естественно там CMOS (то есть полисиликон бывает сразу двух видов n-типа и p-типа), соответственно декап будет достаточно трудоемким, так как нужно правильно стравить вначале первый слой металла, потом второй. К тому же совсем не понятно как по фотографии отличать полисиликон n-типа от p-типа, вряд-ли они будут отличаться друг от друга по окраске.

Отдекапить наверное сможет друг HWM-a - Homer, найди его тут на форуме, поговори. Цену вопроса я сказать не могу)

Сливать твой APU не вижу смысла, так как square channel 1 у меня тоже есть и всё остальное, но спасибо за проделанную работу, буду сверяться с транзисторными схемами для верности.


Сообщение 16 янв 2013, 15:36
Профиль
Аватара пользователя

Зарегистрирован:
24 июл 2007, 06:54
Сообщения: 492
Откуда: Embedded
Хорош тусить под столом, выкладываем!

_________________
Tried so hard and got so far, but in the end, it doesn't even matter...


Сообщение 16 янв 2013, 15:58
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Выкладывать что ?)


Сообщение 16 янв 2013, 16:00
Профиль

Зарегистрирован:
28 ноя 2012, 17:56
Сообщения: 63
Написал ему, только его с декабря не было на форуме. HardWareMan, скажи ему чтобы зашел почитал )

2 org: Наработки выкладывай.. больше наработок ) И свн не апдейтился месяц уже )


Сообщение 16 янв 2013, 16:08
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
По APU кроме веселых лсдшных картинок пока ещё ничего нет, а по 6502 - причесываю схему.
Сегодня примерно в 21-00 мск планирую доделать "обвязку" APU, буду стримить в реальном времени, подключайтесь )))

-- 16 янв 2013, 20:13 --



Сообщение 16 янв 2013, 21:14
Профиль
Аватара пользователя

Зарегистрирован:
23 июл 2007, 19:37
Сообщения: 401
Откуда: Мытищи
Круто

_________________
Nestopia 1.37/1.40 Fixed


Сообщение 17 янв 2013, 13:44
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Выложил все PSD-исходники на PPU:
Изображение

Качать тут : http://breaknes.com/

-- 17 янв 2013, 19:59 --



Сообщение 18 янв 2013, 21:24
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570


-- 18 янв 2013, 23:40 --

В завершение стрима выложу исходники PSD на хранение в сеть:

http://breaknes.com/files/APU/LFO.zip (13 MB)

-- 19 янв 2013, 15:55 --



-- 19 янв 2013, 19:51 --



Сообщение 20 янв 2013, 00:25
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Полностью восстановлена схема LFO (frame counter):

Изображение
(кликабельно)

Также проведена симуляция (в прямом эфире :D ), исходники закачаны на SVN:
http://code.google.com/p/breaks/source/detail?r=208

Исходники для фотошопа:
http://breaknes.com/files/APU/LFO.zip (21 MB)

Топологию APU скоро выложу, нужно поправить кое-какие линии... (с декодера регистров)

-- 20 янв 2013, 13:04 --



-- 20 янв 2013, 20:37 --



-- 20 янв 2013, 22:22 --

В заключение сегодняшнего стрима вкладываю схемы контактов (HWM, поясни что за транзистор такой, затвор которого подсоединен к земле плз, на схеме справа вверху у контакта D0 например)

Изображение

Исходники в PSD : http://breaknes.com/files/APU/PADS.zip (22 MB)

А также текущую топографическую схему всего APU : http://breaknes.com/files/APU/2A03.zip (220 MB)
(только там надо подправить название контрольной линии RES, сделаю при следующем обновлении файла)


Показать сообщения за:  Поле сортировки  
Ответить на тему   [ Сообщений: 411 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10, 11 ... 21  След.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF (mod by Zeru-j).
Русская поддержка phpBB