Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Unsorted (http://zx-pk.ru/forumdisplay.php?f=13)
-   -   Speccy2007 v1.00 (http://zx-pk.ru/showthread.php?t=6679)

Black_Cat 25th November 2009 06:40

Насамделе такая нестабильность и критичность к элементной базе скорее всего свидетельствуют что времянки управляющих сигналов подобраны впритык, при том отлаживались на качественном ОЗУ, имеющем запас быстродействия относительно своих паспортных данных. Поэтому, при установке говняного ОЗУ, которое вполне может быть даже медленнее чем заявленные паспортные данные система не успевает отрабатывать циклы записи/чтения, что проявляется в виде глюков. Здесь рекомендации - либо подправить времянки для того, чтоб можно было работать с говняным ОЗУ, либо ставить более быстрое и соответственно дорогое ОЗУ.

syd 25th November 2009 10:20

Попробовал разные комбинации, глючит когда UT работает основной памятью (старшие 32k), если UT стоит в качестве видеопамяти (нижние 16k) вроде все ок. На моей плате тоже работает нормально, но там видеопамять дублируется, так что это не показательно. Самое странное, что из времянок там только сигнал RAM (~CE для микрухи), а он формируется очень тупо (RAM <= '0' when MREQ = '0' and A15 = '1' else '1'), а остальные сигналы идут прямо с Z80.

Может конечно в обоих микросхемах памяти проблема в старшей половине (в видеопамяти она не используется) - но вероятность, по-моему, очень маленькая.

Black_Cat 25th November 2009 11:25

Quote:

Originally Posted by syd (Post 235522)
Самое странное, что из времянок там только сигнал RAM (~CE для микрухи), а он формируется очень тупо (RAM <= '0' when MREQ = '0' and A15 = '1' else '1'), а остальные сигналы идут прямо с Z80.

syd, там судя играет роль взаимное положение сигналов обращения к ОЗУ и открытия-закрытия буферов адреса.

---------- Post added at 10:25 ---------- Previous post was at 10:18 ----------

Т.е. сбой возможно идёт по адресам из-за захвата шины сканером.

syd 25th November 2009 13:22

:v2_eek: Похоже память себя нормально чувствует с прошивкой 1.03, что совсем странно, т.к. все код по работе с памятью там одинаковый. Alex_kapfa, есть возможность свою проверить?

Alex_kapfa 25th November 2009 13:36

Quote:

Originally Posted by syd (Post 235561)
:v2_eek: Похоже память себя нормально чувствует с прошивкой 1.03, что совсем странно, т.к. все код по работе с памятью там одинаковый. Alex_kapfa, есть возможность свою проверить?

Syd, я не против протестировать, только напиши мне, что необходимо сделать.
Правильно ли я понимаю, что мне для этого тестирования необходимо будет прошить снова ПЗУ, Альтеру и АТмегу?
У меня АТмега 32, а версия 1.03 - это для АТмеги 16. Или я ошибаюсь?

rnd.gen 25th November 2009 13:53

Quote:

Originally Posted by Alex_kapfa (Post 235566)
Syd, я не против протестировать, только напиши мне, что необходимо сделать.
Правильно ли я понимаю, что мне для этого тестирования необходимо будет прошить снова ПЗУ, Альтеру и АТмегу?
У меня АТмега 32, а версия 1.03 - это для АТмеги 16. Или я ошибаюсь?

Судя по первому посту - да. Прошивка от Дениса с tr-dos-ом для атмеги32, думаю прошивка для атмеги 16 будет работать и на 32, хотя если есть атмега 16 то проще ее заменить :). (Эксперты могут поправить).
Мне только остается наблюдать и болеть :), а еще благодарить :).

Alex_kapfa 25th November 2009 14:09

Quote:

Originally Posted by rnd.gen (Post 235577)
Судя по первому посту - да. Прошивка от Дениса с tr-dos-ом для атмеги32, думаю прошивка для атмеги 16 будет работать и на 32, хотя если есть атмега 16 то проще ее заменить :). (Эксперты могут поправить).
Мне только остается наблюдать и болеть :), а еще благодарить :).

У меня только АТмега 32. АТмегу 16 у меня не получится быстро купить (детали я покупаю по выходным на радиорынке; иногда что-то, чего у них на "точке" нет в наличии, приходится заказывать и ждать следующих выходных, чтобы забрать).
Я думаю, что можно скомпилировать исходный код и под Мегу32, но у меня для этого мало опыта.

syd 25th November 2009 14:25

1 Attachment(s)
Alex_kapfa. Вот прошивка.

syd 25th November 2009 14:30

Альтеру, а потом мегу этой прошивкой. ПЗУ наверное можно и не прошивать.

Alex_kapfa 25th November 2009 14:39

Quote:

Originally Posted by syd (Post 235591)
Альтеру, а потом мегу этой прошивкой. ПЗУ наверное можно и не прошивать.

Постараюсь сегодня вечером поэкспериментировать.

Ewgeny7 25th November 2009 14:59

Quote:

Originally Posted by syd (Post 235522)
а он формируется очень тупо (RAM <= '0' when MREQ = '0' and A15 = '1' else '1')

Это мы проходили на Орионе...
Возможно появление мусора на сигнале. Я в подобном случае изменил код на:
if.... then
...
else
...
end if;
и код заработал нормально. Видать он компилится немножко по разному.

syd 25th November 2009 15:32

Вчера попробовал и так - не помогло. Вечером продолжу.
ewgeny7, а что за Орион. Железо есть посмотреть? А то развожу свою схему под fpga, а лучше бы покодил что-то. ;)

---------- Post added at 15:32 ---------- Previous post was at 15:28 ----------

Нашел ветку про Орион. ;)

Alex_kapfa 26th November 2009 00:17

Quote:

Originally Posted by syd (Post 235589)
Alex_kapfa. Вот прошивка.

syd, после прошивки ATMega32 этой прошивкой (в Мегу32 зашита версия 1.03, а Альтера осталась со старой прошивкой 1.04) компьютер начинает нормально работать со старой памятью, с которой он раньше сбоил (с UT62256CPCL-70LL). В качестве индикатора использую RiverRaid. Эта игрушка ранее "вылетала" через 30 сек после загрузки, а сейчас она уже более 15 минут "крутится".
Программировать Альтеру прошивкой 1.03 или оставить пока как есть?

Нет, все-таки "подвис" приблизительно через 30 минут. Попробую еще и в Альтеру залить прошивку 1.03.

syd 26th November 2009 00:51

Спасибо !
Если хочешь оставить 1.03 - то перепрошей и альтеру, если 1.04 то мегу назад прошей. Так правильно будет. А этой информации мне пока хватит.

Alex_kapfa 26th November 2009 11:51

Quote:

Originally Posted by syd (Post 235815)
Если хочешь оставить 1.03 - то перепрошей и альтеру, если 1.04 то мегу назад прошей. Так правильно будет. А этой информации мне пока хватит.

Syd, я перепрошил, кроме Меги, еще Альтеру и ПЗУ (в Альтеру записал прошивку 1.03., в ПЗУ 1.02 (эта версия ROM была в RAR-архиве speccy2007_v103a_src.rar)).

Оставил крутиться на ночь в качестве теста игрушку RiverRaid (понравилось мне ее использовать как тест :) ) в демонстрационном режиме. Утром обнаружил, что она "вывалилась" в бейсик с ошибкой "5 Out of screen, 5:1"

dicebox 26th November 2009 15:38

Ув. syd, раз уж ты сел за исходник, можно тебя попросить заодно пересмотреть там один момент, про который я упоминал здесь (см. PS/2)? Или хотя бы просто разреши использовать уже правленный вариант.

syd 26th November 2009 19:25

dicebox, давай патч, прикручу.

dicebox 26th November 2009 19:54

Quote:

Originally Posted by syd (Post 236007)
dicebox, давай патч, прикручу.

Изменения только в main.c, дать его? Где положить?

rnd.gen 27th November 2009 00:05

Quote:

Originally Posted by syd (Post 235611)
Вчера попробовал и так - не помогло. Вечером продолжу.
ewgeny7, а что за Орион. Железо есть посмотреть? А то развожу свою схему под fpga, а лучше бы покодил что-то. ;)[COLOR="Silver"]

А можно немного в нескольких словах по простому рассказать бедным юсерам о своей работе по speccy2007? :v2_conf3: Ну пожалуйта!:v2_blush: . Мне только остается читать сообщения, а так интересно же.
Можно было бы еще платы speccy2007 заказать? Может бы нужно было покрыть часть расхода, с тем что потом бы денежка вернулась когда забрали заказы.
Я точно уверен что буду делать и 128кб вариант, имея опыт это уже будет сделать легче.

Black_Cat 27th November 2009 04:38

rnd.gen, Орион - это не Спектрум :)

denisv 27th November 2009 09:42

Quote:

Originally Posted by ewgeny7 (Post 235602)
Цитата:
Сообщение от syd
а он формируется очень тупо (RAM <= '0' when MREQ = '0' and A15 = '1' else '1')
Это мы проходили на Орионе...
Возможно появление мусора на сигнале. Я в подобном случае изменил код на:
if.... then
...
else
...
end if;
и код заработал нормально. Видать он компилится немножко по разному.

В первом случае как wire в верилоге, во втором как триггер.

rnd.gen 27th November 2009 13:19

Quote:

Originally Posted by БК-0010 (Post 236087)
rnd.gen, Орион - это не Спектрум :)

я имел ввиду не Орион, а спекки 2007 :). Поправлюсь в своем сообщении.

---------- Post added at 11:19 ---------- Previous post was at 09:22 ----------

А какая память из двух вариантов UT62256CPC-70LL и CY62256LL-70PC считается лучше?

Alex_kapfa 27th November 2009 13:38

Quote:

Originally Posted by rnd.gen (Post 236131)

[/COLOR]А какая память из двух вариантов UT62256CPC-70LL и CY62256LL-70PC считается лучше?

та, которая работает :). В данном случае получается, что со Speccy2007 работает CY62256LL-70PC.
В прайсе IMRADа (я в основном у них покупал комплектовку для Speccy)
http://www.imrad.com.ua/search.shtml?qs=62256&query=any
CY62256LL-70 дороже на 6 грн., чем UT62256CPC-70LL.

---------- Post added at 11:38 ---------- Previous post was at 11:27 ----------

Я думаю приспособить память с "четверочного кэша"
http://zx.pk.ru/showpost.php?p=235480&postcount=680
Эти микросхемы в "узком" DIPe, поэтому хочу использовать 32-х контактную цанговую панельку в качестве переходника, чтобы потом, когда буду переделывать в 128-ой вариант ее можно было извлечь, а вторую микросхему, которую не нужно будет менять, скорее всего, просто припаяю.
С эстетической стороны этот вариант, конечно, хуже, но микросхемы с "кэшей" я думаю будут лучше работать (пусть меня поправят, если я заблуждаюсь), т.к. они быстрее (20 ns вместо 70, как у UT62256CPC-70LL).

Mikka_A 27th November 2009 15:28

Quote:

Originally Posted by Alex_kapfa (Post 236176)
..........Я думаю приспособить память с "четверочного кэша"........

напиши эроглифы, которыми обозначается эта микросхема...

Ewgeny7 27th November 2009 15:33

Quote:

Originally Posted by Mikka_A (Post 236196)
напиши эроглифы, которыми обозначается эта микросхема...

Я тебе давал такие.

Alex_kapfa 27th November 2009 16:05

Quote:

Originally Posted by Mikka_A (Post 236196)
напиши эроглифы, которыми обозначается эта микросхема...

AS7C256-20PC

Mikka_A 27th November 2009 16:11

Quote:

Originally Posted by ewgeny7 (Post 236197)
Я тебе давал такие.

ты, по моему, давал мне просто 62256 в узком дипе....

или я ошибаюсь?

Ewgeny7 27th November 2009 16:42

UT62256-20
Эти работают у мну на трех машинках.

Mikka_A 27th November 2009 17:01

Quote:

Originally Posted by ewgeny7 (Post 236214)
UT62256-20
Эти работают у мну на трех машинках.

хм...не думал что это кеш....
такие в микронике продаются по полтинику...

syd 27th November 2009 21:57

Нужны свежие идеи. На сегодня имеем такую картину. Память UT62256CPC-70LL работающая в качестве нижней памяти ведет себя правильно. Если использовать ее как верхнюю память периодически проявляется ошибка при чтении из нее (по всему диапазону 0х8000 - 0xffff ). Причем либо младший бит данных сбрасывается, либо биты 5, 7 устанавливаются. Например записано 0x47, а прочиталось 0x46. Если она битая, почему работает в первом случае. Не понимаю.

Решение есть - заменить память и забыть, но ведь должно же быть объяснение.

---------- Post added at 21:57 ---------- Previous post was at 21:29 ----------

Шина данных подтянута к 5 В (10k).
Все сигналы идут прямо с Z80. (Ax, Dx, ~RD, ~WR). Только ~CS идет с ПЛИС, но формируется он очень просто.

Black_Cat 28th November 2009 04:22

syd, мне видится токо одно объяснение: обращение к видео ОЗУ должно происходить не за 3, а за 4 такта, чтоб синхронизироваться со сканером. На оригинальном Сперктруме доп. такт добавляется остановом CPU, на отечественных клонах - через WAIT. Если этого не делать, то надо очень быстрое ОЗУ чтоб доступ к памяти был прозрачным, иначе будут вот такие глюки. Поэтому с быстрой памятью всё работает, а медленная просто не успевает за пол такта 3,5МГц выдать правильный результат. Т.е. 70нс память по идее должна успевать работать прозрачно без задержки.. но говняная память - не успевает.. Это возможно объясняется тем, что эта память - перемаркированная из более медленной фальшивка, или некондиция - у китайцев это бывает часто.

syd 28th November 2009 11:57

БК-0010, в том и проблема, что в качестве видеопамяти она успевает все сделать, а вот в качестве верхней памяти не читает иногда нормально. Хотя там время на чтение больше 1 такта 3.5 МГц (> 280 нс).

Судя по тому, что данные читаются практически правильные (только некоторые биты испорчены) я сделал вывод, что операция чтения проходит, но кто-то еще занимает шину данных, и портит их. Вытащил эту память, запустил тот же тест, но проверяю, чтобы читалось все время 0xff. Пока все четко, без сбоев. Значит шина в порядке.

Black_Cat 28th November 2009 12:12

Quote:

Originally Posted by syd (Post 236371)
в том и проблема, что в качестве видеопамяти она успевает все сделать, а вот в качестве верхней памяти не читает иногда нормально

ну так и должно быть.. Сканер же должен иметь приоритет в управлении переключением шины адреса. Поэтому он-то, как раз имеет нормальный доступ к ОЗУ, а процессору достаются остатки.. И если проц не тормозится чтоб его доступ был посередине между обращениями сканера, то ОЗУ просто не успевает отрабатывать запросы проца. В этом случае ессно ничего кроме #FF читаться без ОЗУ не будет, потому как никаких левых данных там нет..

syd 28th November 2009 12:24

В speccy2007 используется две микросхемы памяти. Одна для видео памяти, она делиться между процом и видеоконтролером (сканером). Именно от нее процу остаются остатки. Так вот она работает нормально.
Вторая память напрямую связана с процом (висит прямо на шине данных и шине адреса проца). Эта память не тормозиться, тк сканер работает со своими шинами , и не мешает ей.

Black_Cat 28th November 2009 12:36

пардон, тормознул на счёт "верхней памяти", забыл что речь о 48к, а не о 128к.. т.е. глючит именно процессорное ОЗУ?

syd 28th November 2009 12:49

Да.

---------- Post added at 12:49 ---------- Previous post was at 12:43 ----------

В общем еще гипотеза, шина VD меньше нагружена (только плис). Шина D нагружена процом, плис, авркой и пзу. Возможно память не справляется с такой нагрузкой на шину данных. А если работает как видеопамять, и нагрузка меньше, то все ОК. Но как это проверить? И как исправить?

rnd.gen 28th November 2009 13:54

Quote:

Originally Posted by syd (Post 236379)
Да.

---------- Post added at 12:49 ---------- Previous post was at 12:43 ----------

В общем еще гипотеза, шина VD меньше нагружена (только плис). Шина D нагружена процом, плис, авркой и пзу. Возможно память не справляется с такой нагрузкой на шину данных. А если работает как видеопамять, и нагрузка меньше, то все ОК. Но как это проверить? И как исправить?

Каким образом на память влияет проц, плис, авр и пзу. Они посылают какие-то сигналы? Как они могут работать не конфликтуя между собой? Что значит нагрузка для памяти? - Это количество обращений к ней? Я задаю может быть глупые вопросы, но иначе у меня даже идеи не сможет возникнуть если я не пойму простых вещей.
Есть смысл тебе морочится с этой проблемой, или просто тебе интересно разобраться? Мне интересно читать сообщения, хотя мало что понимаю.
Еще вопрос. Есть у меня еще память для 128 варианта, UT621024PCL-70LL, она будет работать нормально или сразу заказывать другой аналог?

Alex_kapfa 28th November 2009 16:39

Quote:

Originally Posted by syd (Post 236379)
Да.

---------- Post added at 12:49 ---------- Previous post was at 12:43 ----------

В общем еще гипотеза, шина VD меньше нагружена (только плис). Шина D нагружена процом, плис, авркой и пзу. Возможно память не справляется с такой нагрузкой на шину данных. А если работает как видеопамять, и нагрузка меньше, то все ОК. Но как это проверить? И как исправить?

Было бы интересно попробовать еще более медленную память (>70ns), но другого производителя. Может действительно данные микросхемы не справляются из-за нагрузочной способности шин (to rnd.gen: когда к одному источнику одновременно подключено несколько потребителей, которые "подсаживают" шину).
Для меня тоже важно узнать, будет ли в 128-ом варианте работать UT621024PCL-70LL, так как я тоже купил именно эту память для расширения.

Black_Cat 28th November 2009 16:57

Quote:

Originally Posted by syd (Post 236379)
Шина D нагружена процом, плис, авркой и пзу

ПЗУ отпадает, т.к. токо на выход, а три ТТЛ нагрузки полюбому должна держать.. syd, а ОЗУ аедёт себя так и в твоём компе? Попробуй поварьировать подтяжку к +5В, запаяй параллельно ещё одну матрищу резисторов, чтоб сильнее притянуть шину данных.

syd 29th November 2009 18:26

Alex_kapfa, rnd.gen, у меня в 128 версии UT621024SCL-70LL, работает отлично. Так что хз.

БК-0010, часть битов стабильно вместо 0 дают 1.

Буду завтра высылать rnd.gen плату с нормальной памятью, он уже скучает наверное. :)


All times are GMT +4. The time now is 11:01.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.