nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 18:03



Reply to topic  [ 70 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Ethernet для Timex Sinclair 2068 и пр. (SprinterNet) 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
По ходу ISA-шина Спринтера быстровата для визнета - запись байта не всегда с первого раза удаётся если в турбо-режиме работаем - можно попробовать вейтать проц на немного, если визнет выбран.
Ну или чисто программно - запись с верификацией и если не совпадает, то повторная запись...

По ходу дела надо вместо 74LS ставить 74F или хотя бы 74ALS т.к. для формирования /CSWIZ у меня используется цепочка в 8 гейтов, что теоретически может дать задержку в 80нс, что уменьшит цикл шины 140нс до 60нс, что есть меньше требуемого - если всё сделать 74F, то задержка уменьшится до 30нс, что укоротит цикл шины только до 110нс, что будет ок (по документации на W5100 цикл чтения должен быть как минимум 80нс, а записи - 70нс).

P.S. Все тестовые программки я пишу прямо на Спринтере и собираю в OrgAsm - сейчас я вижу, что мне очень нужны макросы, так что наверное пришло время его расширить :)

_________________
:dj: https://mastodon.social/@Shaos


09 Jan 2021 21:08
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
P.P.S. Наверно с SPI EEPROM надо несколько пересмотреть схему - там SCK похоже надо инвертировать если идёт чтение - у меня SCK просто тупо с /MREQ идёт - для записи норм (на диаграмме внизу INPUT), а для чтения появляется смещение (см. OUTPUT - хотя может тоже норм - надо пробовать):

Image
P.P.P.S. Хотя наверное дело в том, что данные надо держать неизменными после фронта SCK как минимум 50 нс, а если делать как сейчас, то они пропадают сразу же. Можно скажем прозрачную защёлку поставить, чтобы сохраняло бит до следующего такта, а можно и тупо кондёр воткнуть с резистором, чтобы подержало чуток ;)

Вобщем надо ставить 74LS75 (это 4 триггера, которые попарно имеют вход разрешения защёлкивания E - оно при "1" пропускает прозрачно, а при "0" - выдаёт запомненное) - подавать инвертированный сигнал /WR ИЛИ /CSSPI, который будет прозрачно выдавать содержимое бита 0 шины данных на вход SI, а при окончании цикла записи там всё ещё будет защёлкнуто последнее значение - в этом случае /MREQ ИЛИ /CSSPI можно будет всё также использовать как SCK. В случае же чтения (OUTPUT) SCK надо бы инвертировать, но я не уверен ещё как это вообще всё вместе слепится.

P.S. Вот диаграмма записи и последующего чтения:

Attachment:
SPI-EEPROM-WRITE-READ.png
SPI-EEPROM-WRITE-READ.png [ 23.17 KiB | Viewed 8331 times ]

По идее наверное если проц читает по фронту (окончание /RD), то должно работать с тем же SCK = /MREQ ИЛИ /CSSPI:

Attachment:
Z80_memory_rw.jpg
Z80_memory_rw.jpg [ 63.89 KiB | Viewed 8330 times ]

(кстати тут видно, почему у WizNET проблемы с записью есть, а проблем с чтением нет - сигнал /WR у Z80 короче, чем сигнал /RD)

P.P.S. С другой стороны смотрю на диаграммы Z80 - должно SPI работать как есть прямо сейчас, но не работает - видимо надо осциллографом смотреть...

_________________
:dj: https://mastodon.social/@Shaos


10 Jan 2021 07:15
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
наверное если проц читает по фронту (окончание /RD), то должно работать с тем же SCK = /MREQ ИЛИ /CSSPI:

Ну обычно так и должно быть: читают всегда в самый последний момент, когда данные окончательно
ну или максимально возможно "устаканились" на шине.
Shaos wrote:
...сигнал /WR у Z80 короче, чем сигнал /RD

А вот это не факт, что причина: длительность цикла одинакова - видимо, надо посмотреть - по переднему,
или по заднему фронту идёт запись.
Если по переднему - то да, время меньше, а по заднему - примерно столько же.
Сама длительность сигнал /WR, на мой взгляд, особой роли не играет.

_________________
iLavr


10 Jan 2021 11:44
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Ещё интересный момент - в то время как /RD уходит в ноль до проверки /WAIT, при записи /WR уходт в ноль ПОСЛЕ! Значит ли это, что /WR не удлиняется при вейте?...

_________________
:dj: https://mastodon.social/@Shaos


10 Jan 2021 18:45
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
А на твоих диаграммах в цикле совсем не видно wait_states.
Тут вот DimkaM (Формирование WAIT для Z80) советовал посмотреть документ: z80_UM.pdf но я его не нашел... :(

С активным wait диаграмма должна быть вот такая:
Attachment:
input-output-timing-1.jpg
input-output-timing-1.jpg [ 40.75 KiB | Viewed 8313 times ]

Нашел здесь: https://smallcomputercentral.wordpress.com/2019/08/01/design-part-2/comment-page-1/

_________________
iLavr


10 Jan 2021 19:50
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
ну это похоже, на то что я выше выкладывал, но с широким /WR
картинка выше пишут взята из доки на Z80
а вот эту я скапчил из доки на спринтеровский Z84C15 - вроде /WR тоже растягивается, хоть и начинается на полтакта позже:


Attachments:
Screenshot from 2021-01-10 19-09-08.png
Screenshot from 2021-01-10 19-09-08.png [ 32.66 KiB | Viewed 8312 times ]

_________________
:dj: https://mastodon.social/@Shaos
10 Jan 2021 20:07
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Ну, собственно, я искал картинку сугубо для тебя, потому что у нас тут любят "пруфпики"... :-?

А так-то я сам помню, да и ты, думаю, должен помнить, что когда делают схему для пошагового
прохождения, тормозя проц по входу WAIT, то обещают, что в этот момент "все сигналы на
шинах активны
", и их можно прощупать обычным пробником, следовательно: и RD, и WR на
время активного WAIT должны увеличить свою длительность.

_________________
iLavr


10 Jan 2021 20:30
Profile
Fanat

Joined: 05 Jul 2020 14:08
Posts: 87
Location: Ижевск
Reply with quote
На zx-pk выяснил, что данные иногда не сразу снимаются с шины после WR. Предлагаю потестить Z80Explorer.


11 Jan 2021 05:34
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
dvarkin wrote:
На zx-pk выяснил, что данные иногда не сразу снимаются с шины после WR. Предлагаю потестить Z80Explorer.

А Z80Explorer, если вдруг что, умеет оценить аппаратную задержку на шине после WR? :roll:

_________________
iLavr


11 Jan 2021 05:51
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
dvarkin wrote:
На zx-pk выяснил, что данные иногда не сразу снимаются с шины после WR. Предлагаю потестить Z80Explorer.

Короче появились у меня кое-какие мысли насчёт кривости подключения ISA-шины к Спринтеру - напишу тут:

http://www.nedopc.org/forum/viewtopic.php?p=158489#p158489

Возможно именно с этим связаны мои проблемы с WIZNet и EEPROM...

_________________
:dj: https://mastodon.social/@Shaos


11 Jan 2021 06:03
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Короче появились у меня кое-какие мысли насчёт кривости подключения ISA-шины к Спринтеру

Вообще это всё странно как-то... :-? В последний раз я вешал на шину ISA таймер ВИ53 и ППА ВВ55.
Это было на 286 машине на частоте 20 МГц - и wait-стейтов не понадобилось, хотя я и припас...
А у тебя там хорошие современные ИС, насколько я вижу... :-?

_________________
iLavr


11 Jan 2021 06:28
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Lavr wrote:
Shaos wrote:
Короче появились у меня кое-какие мысли насчёт кривости подключения ISA-шины к Спринтеру

Вообще это всё странно как-то... :-? В последний раз я вешал на шину ISA таймер ВИ53 и ППА ВВ55.
Это было на 286 машине на частоте 20 МГц - и wait-стейтов не понадобилось, хотя я и припас...
А у тебя там хорошие современные ИС, насколько я вижу... :-?

Ну тут по сути и не ISA шина, а так - фейк по мотивам:

Image

P.S. Добавил маскирование сигнала /MEMR при обращении к SPI и визнету (включается/выключается существующим управляющим битом TX/RX) - обошёлся уже имеющимися в наличии на плате неиспользованными гейтами - надо будет заказывать новую версию платы, т.к. проводочками эти изменения напаивать на существующую плату будет немного проблематично (хотя и возможно)...

_________________
:dj: https://mastodon.social/@Shaos


11 Jan 2021 06:36
Profile WWW
Fanat

Joined: 05 Jul 2020 14:08
Posts: 87
Location: Ижевск
Reply with quote
Lavr wrote:
А Z80Explorer, если вдруг что, умеет оценить аппаратную задержку на шине после WR? :roll:
С его помощью можно легко и удобно смотреть состояние любых транзисторов и проводников в NMOS Z80 при всяких состояниях последнего с шагом в один такт. В теме по ссылке выше я показал как мониторил состояние выходных транзисторов на шине данных. Для исследования внутренних процессов NMOS Z80 нет ничего достовернее Z80Explorer, но дальше выводов Z80 эта прога оценить ничего не может, если это имелось ввиду :) .


11 Jan 2021 07:44
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
dvarkin wrote:
Lavr wrote:
А Z80Explorer, если вдруг что, умеет оценить аппаратную задержку на шине после WR? :roll:
...
но дальше выводов Z80 эта прога оценить ничего не может, если это имелось ввиду :) .

Да, вы меня правильно поняли.

_________________
iLavr


11 Jan 2021 07:54
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
P.S. Добавил маскирование сигнала /MEMR при обращении к SPI и визнету (включается/выключается существующим управляющим битом TX/RX) - обошёлся уже имеющимися в наличии на плате неиспользованными гейтами - надо будет заказывать новую версию платы, т.к. проводочками эти изменения напаивать на существующую плату будет немного проблематично (хотя и возможно)...

Вот обовлённая схемка (задействовал все вентили - ничего лишнего не осталось):

Attachment:
shaos-ts1-sch.jpg
shaos-ts1-sch.jpg [ 153.29 KiB | Viewed 8270 times ]

и платка (даже декодер адреса туда удалось воткнуть на 74LS85 - IC18):

Attachment:
shaos-ts1-brd.jpg
shaos-ts1-brd.jpg [ 359.91 KiB | Viewed 8268 times ]

Размер платки ограничен стандартной лицензией пятого игла 160x100 мм...

P.S. Заказал 5 платок (минимум) красного цвета у китайцев на JLCPCB - получилось всего $68 с доставкой DHL :mrgreen:


Attachments:
shaos-ts1-parts.txt [4.43 KiB]
Downloaded 273 times
shaos-ts1-JLCPCB-top.png
shaos-ts1-JLCPCB-top.png [ 129.77 KiB | Viewed 8265 times ]
shaos-ts1-JLCPCB-bottom.png
shaos-ts1-JLCPCB-bottom.png [ 115.1 KiB | Viewed 8265 times ]

_________________
:dj: https://mastodon.social/@Shaos
12 Jan 2021 03:18
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 70 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

Who is online

Users browsing this forum: No registered users and 13 guests


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

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.