1 Отредактировано Voldemar0 (13-09-2019 20:11)

Тема: Ethernet-контроллер w5100

Собрал всё в кучу:

Youtube:
https://youtu.be/--eo7GIiM38
https://youtu.be/mMMrwCDMULQ
https://youtu.be/Zg71gSWoue4

Дальше в аттаче:
- прошивка GAL;
- дока на программирование SPI-контроллера;
- библиотека мультсистем и UFO-editor в исходниках;
- библиотека мультсистем и весь сетевой софт в исходниках;
- wolf2d (версии 1996 и 2019 годов) в исходниках;
- печатка SPI-контроллера (png, 600 dpi);
- сценарий ролика для Youtube.

Все исходники в koi8-r, только прошивка GAL есть в варианте cp1251.
У кого совсем нет софта: открывайте в ворде, он сам предложит и кодировку выбрать и CR/LF.
Только шрифт пропорциональный потом выбирайте, чтобы все отступы правильные были.

Схемы нет, рисовал сразу плату. Плата двухсторонняя.
Картинка платы зеркальная, под лазерно-утюжный процесс. Но год там неправильно вписан -- он в на плате потом зеркаальным будет ;)

Post's attachments

Attachment icon UFO-Editor.zip 58.95 kb, 275 downloads since 2019-09-13 

Attachment icon api.zip 1.73 kb, 281 downloads since 2019-09-13 

Attachment icon gal.zip 3.42 kb, 258 downloads since 2019-09-13 

Attachment icon scenary.txt 48.31 kb, 288 downloads since 2019-09-13 

Attachment icon screen.png 85.66 kb, 131 downloads since 2019-09-13 

Attachment icon w5100.zip 111.2 kb, 299 downloads since 2019-09-13 

Attachment icon wolf2d.zip 34.48 kb, 265 downloads since 2019-09-13 

2

Re: Ethernet-контроллер w5100

Супер! Но вот размер библиотеки "переходника" под разные ОС не порадовал. 20 блоков...

3

Re: Ethernet-контроллер w5100

> Супер! Но вот размер библиотеки "переходника" под разные ОС не порадовал. 20 блоков...

Я сам точно не знаю её размер, так как она компилируется как част ь бинаря, так что могу только догадываться. Ну или посмотреть итоговые таблицы размеров. Самая большая версия - для бейсика - там много внутренних тестов - может блоков 10, может 20.
При сборке под BTK и ДОК существенно меньше по размеру. Ну и зависит от состава: только файловая часть, +ввод-вывод на экран, +поддержка текстовых конфигов...

4

Re: Ethernet-контроллер w5100

Ну, вообще! Телнет на Агате! Теперь я видел в этой жизни все :)

Кстати, в мониторе Apple ][ была поддержка некоторых ESC команд - очистка экрана и перемещение курсора (ESC A, ESC B, ESC C, ESC D). На Агате ее зачем-то выпилили.

А еще в микропроцессорных средствах и системах за 1984 год было написано про плату контроллера дисплея 80x24 (и там она нарисована не пунктиром, то есть разработка была закончена). Скорее всего, такую плату делали именно для терминального доступа и, возможно, разработчики НИИВК часть этого пути тоже прошли.

5

Re: Ethernet-контроллер w5100

Спасибо за отзыв :)

6 Отредактировано garnizon (31-08-2019 18:33)

Re: Ethernet-контроллер w5100

Ну не томи же, где третья часть :)

Очень интересное видео. Дело дойдет до размещения на сайте раздела, специально для загрузок реальным агатом?

7

Re: Ethernet-контроллер w5100

Ага, открыть Agat Store и в онлайне загружать программы :)

8 Отредактировано garnizon (07-09-2019 10:25)

Re: Ethernet-контроллер w5100

Не, ну такого я даже предположить не мог. Еще и с планшета. Понравилось что желтым выделил нужное для переноса в обе стороны, а потом все это передавалось. Крутнецкий крутняк!

9

Re: Ethernet-контроллер w5100

Товарищ сделал "облачное хранилище" программ для "Ориона". Правда, организовано несколько иначе - "Орион" работает с "облачными" файлами через РС, где крутится программа-шлюз. А с РС связан по последовательному порту. Можно нечто подобное организовать и для "Агата". Представляете, сетевая карта для "Агата", уже содержащая ПЗУ с необходимой программой. Вставляем и без дисковода попадаем в файловое хранилище :)

10 Отредактировано Voldemar0 (09-09-2019 19:08)

Re: Ethernet-контроллер w5100

Сетевые карты для бездисковой загрузки Агата и так существуют. Существует также ИКП-Кермит, который тоже поддерживает какое-то железо и как-то может работать с сетью. Проблема только в том, что всё это - частные решения, которые распространяются на бейсик только. Ну может и на рапиру и что-то ещё. Остальную кучу прог с автозагрузкой они всё равно поддерживать не будут.

Если говорить о распределённой сети, т.е. облака/интернет, то единственный красивый вариант, который я как-то предлагал уже: сделать в виндовом эмуляторе поддержку сетевых карт (старых, для которых есть софт) и из эмулятора работать с неким сервером. Но даже чтобы это сделать, нужно, как минимум, внедрить эмуляцию вв51, обернув её выхлоп в UDP, и разобраться с агатовским ПО этой карты (одной из выбранных).

А так да, мечтать не вредно :)

PS Есть ещё одно красивое решение: эмулятор дисковода с выходом в инет. Т.е. чтобы он сам брал образы с удалённого хранилища. Но, если честно: удалённые хранилища полезны только одним: доступностью из разных мест и устройств при условии, что содержимое хранилища часто обновляется. А иначе - в чём смысл ? У вас несколько агатов, пара дома и ещё два на даче ? И агат-совместимый ноутбук, вмонтированный в приборку авто ? Я же не случайно вторую серию начал с постановки целей.

11 Отредактировано avivanov76 (12-09-2019 21:30)

Re: Ethernet-контроллер w5100

Вообще, круто, что SPI-контроллер удалось уместить всего в 4 микросхемы. Я тут заглянул в даташиты и захотел прикинуть, как эту схему можно было сделать. Ну и сразу уперся в то, что ног у GAL-ки не хватает :)

Как я понял, контроллер работает с байтами и основная функция GAL-ки - служить сдвиговым регистром вроде 155ИР13. Видимо, 8 входов GAL-ки посажены на шину данных, откуда берется исходный байт для передачи, а на 8 ее выходах образуется принятый байт, который через ИР22 считывается на шину данных. Проблема только в том, что у GAL-ки остается только 2 свободных ноги - тактовый вход и разрешение выхода. А нужен как минимум еще один вход для сигнала MISO.

Полез снова в даташит, но так и не понял: выходная ячейка может либо быть регистровой, либо работать как совмещенный вход и выход, но тогда она не сможет защелкивать данные. И вот вопрос - как вообще удалось это разрулить?

Пока единственная мысль - ЛЕ1 используется как мультиплексор для младшего разряда :)

12 Отредактировано Voldemar0 (13-09-2019 06:26)

Re: Ethernet-контроллер w5100

Нет, я ж говорил: контроллер вобрал в себя опыт анализа контроллеров дисководов ;)

В 140ке эпловской стоит аналог ир29 - это сдвиговый регистр с Z-состоянием, высокой мощностью выхлопа и параллельной загрузкой.
Вот я его тут и воткнул - он занимается сдвигом. А GAL - это счётчик бит и дешифратор сигналов управления шиной (f0, R/!W...).

Я вот тут собирал инфу по буферам, когда всё это продумывал:
http://forum.agatcomp.ru//viewtopic.php?id=134

(сорри, там в видео я сказал об ир22, кажется - путаю их)

13

Re: Ethernet-контроллер w5100

А! Ну тогда другое дело. А то я услышал "ИР22", решил, что сдвигами она не занимается, и пошел по ложному пути :)
А там именно синхронный сброс важен? 1533ИР24 не годится?

И что вообще умеет SPI контроллер? Он все 4 режима поддерживает? К нему реально подключить SD карту или какой-нибудь еще контроллер, типа USB?

14 Отредактировано Voldemar0 (13-09-2019 17:14)

Re: Ethernet-контроллер w5100

Я сейчас че-то не соображу про 4 режима: два - это синхро по фронту или спаду - это, наверное, можно получить подправив конфиг матрицы. А ещё два - это порядок бит ? Можно просто другой режим работы ир29 выбрать - она в обе стороны может двигать. Но мне так кажется, те устройства, с которыми доводилось иметь дело, используют SPI именно по подъёму синхро ... ну вот про порядок бит не помню. Кажется, обычно первый бит - MSB.

Собственно, именно под подключение других устройств я как раз и думал. Но каких именно - не знаю. Я добивался главного: чтобы байт улетал за одну команду 6502. Т.е. можно выполнить sta и следом lda и данные от sta улетят наружу, а lda уже прочитает новый байт (т.е. 8 тактов spi, обмен в оба направления). Фактически, обмен произойдёт сразу после sta, lda уже не вызывает синхронизации, а просто получает данные, защёлкнутые после sta.

Регистр можно тактировать как 14 МГц, я так пробовал и это работало. Но потом я снизил такт до 7 Мгц, ради надёжности: всё равно 6502 и так и эдак медленее регистра и галки, а чем ниже частота, тем меньше потенциальных проблем. Всю работу с w5100 вёл на 7 МГц.

Про ир24 не думал, сам по себе сброс там не нужен, используется только параллельная загрузка и сдвиг.
Но там важен Z-выход и мощный выходной каскад.

ЗЫ Если будут ещё вопросы, я перенесу сообщения в какой нибудь тематический раздел.

15 Отредактировано AlexBel (13-09-2019 17:49)

Re: Ethernet-контроллер w5100

Voldemar0 пишет:

Собственно, именно под подключение других устройств я как раз и думал. Но каких именно - не знаю.

SD-карта в режиме SPI. Например :)
https://ru.aliexpress.com/item/19402163 … 33edvLh3g1

16

Re: Ethernet-контроллер w5100

Voldemar0 пишет:

Я сейчас че-то не соображу про 4 режима: два - это синхро по фронту или спаду - это, наверное, можно получить подправив конфиг матрицы. А ещё два - это порядок бит ?

Нет, это полярность синхронизации - активный уровень 0 или 1. Собственно, в википудии все расписано и даже картинка есть https://ru.wikipedia.org/wiki/Serial_Pe … рфейса_SPI

Voldemar0 пишет:

Про ир24 не думал, сам по себе сброс там не нужен, используется только параллельная загрузка и сдвиг.
Но там важен Z-выход и мощный выходной каскад.

ИР24 - это тоже самое по мощности и Z-выход там есть.

17 Отредактировано Voldemar0 (13-09-2019 20:35)

Re: Ethernet-контроллер w5100

> SD-карта в режиме SPI. Например :)
Я боюсь, что мне тема SD-карт малоинтересна: когда-то я её уже проходил тут: http://deka.agatcomp.ru/er/Orfey2/
И эта конструкция по сию пору успешно работает и используется.

Что до USB, то тут вопрос в том, для чего он нужен на агате ? Если для связи с PC, то проще взять какую нибудь pl2303 и на любой скорости тащить данные, даже не очень заморачиваясь на разработку софта для PC - будет виртуальный com-порт и дальше всё просто. А со стороны агата есть ком-порт. Он тормознутый, но я думаю, можно найти какой нибудь простой конвертор SPI-UART и всё будет отлично.

Если же делать на агате полноценный USB-Host, т.е. чтобы всякие ... А что по нему подключать?

Ну ладно, флешку там (так уж тогда проще всё таки SD-карты цеплять - протокол попроще). А что ещё ?
Клавиатуру/мышь не зацепишь - это нужно аппаратное решение, чтобы перекрыть своим устройством порт клавиатуры.
Сканер ? Замучаешся описание протокола искать. Принтер ? Ну разве что.

По SPI можно легко подключить дополнительную память, ФЛЕШ например, Особенно если подобрать версию микры, у которой SPI-посылки кратны 8 битам. Но опять же - для чего ? Разве что развернуть всю схему до платы автозагрузки. Но это опять - драйверы дисководов под всё переписывать/дополнять........

18

Re: Ethernet-контроллер w5100

Получилось очень круто!
* Не планируется ли сделать текстовое описание проекта на основном сайте, а то даже изначальная тема называлась "Новое на сайте" а на сайте ничего нет :(
* Почему был выбран ethernet модуль а не wi-fi на каком нибудь esp8266?

19

Re: Ethernet-контроллер w5100

> Почему был выбран ethernet модуль а не wi-fi на каком нибудь esp8266?

1) Удивительно низкая стоимость модуля с w5100. Встроенный IP/TCP/UDP-стеки.

2) WiFi - это дополнительный слой протоколов шифрования-авторизации. Это дополнительные параметры, настройки
и глюки. А также нестабильный, по своей природе, радиоканал. WiFi точка у меня есть (вот даже планшет в третьей части с ней работает), но некоторые устройства рядом с агатом уже показывают снижение уровня сигнала и скорости.
Хотя там метров 5 до точки, ну ещё тонкая кирпичная стена.
Кроме того, я неоднократно сталкивался с тем, что некоторые WiFi-устройства нестабильно работают в некоторых комбинациях друг с другом. Вот у меня tplink в качестве точки и есть небольшой ноут HP - он раз в 5 минут стабильно отваливается от этой точки. Хотя другая техника с ней работает. Мне не хотелось бы отлаживать софт на агате, если бы ещё полезли такие глюки. Ethernet-сетевухи, в среднем, заметно более стабильны.

3) Так агат, вроде как, не портативное устройство :) Зачем ему WiFi ?


> Не планируется ли сделать текстовое описание проекта на основном сайте.

Если кто-то захочет сделать себе такой модуль и развивать ПО для него.
Тогда совместно нарисуем полную схему, возможно, напишу описание библиотек.
А так пока это только интересный выставочный экспонат, поэтому для него сразу задумывался именно ролик, а не страница.

20 Отредактировано Voldemar0 (29-12-2019 20:32)

Re: Ethernet-контроллер w5100

Yes!!
Сегодня попробовал контроллер на семёрке (надо будет в ближайшие дни разные файлы покидать туда-сюда) - всё ок, сетка работает под Basic-60 ! (я ж железки только на девятке тестил и враппер в эмуляторе семёрки).