User Tag List

Страница 4 из 11 ПерваяПервая 12345678 ... ПоследняяПоследняя
Показано с 31 по 40 из 104

Тема: Снова о подключении ZX-PC

  1. #31

    Регистрация
    03.05.2020
    Адрес
    г. Челябинск
    Сообщений
    796
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    260
    Спасибо Благодарностей получено 
    274
    Поблагодарили
    145 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от reddie Посмотреть сообщение
    При этом скорость потока чтения/записи дискеты 250 Кбит, или 30 Кбайт в секунду, что явно больше, чем 115200. В два раза. Но это параллельный интерфейс, причём с ожиданием готовности. Вот хотя бы на эти цифры стоит ориентироваться.
    Я именно про это же. 115200 это всё-таки ощутимо медленно (кто на PC данные по нульмодему гонял, хорошо ощущает), а работа по параллельному интерфейсу (в данном примере работа с ВГ93 и флопом) дискомфорта не вызывает. Короче, надо будет осваивать GPIO на esp и перестраивать все на параллельный интерфейс. Я попробую, правда вряд ли раньше новогодних каникул, за это время что-то вроде тз должно в голове улечься.
    Последний раз редактировалось valerium; 24.11.2021 в 11:12.

  2. #31
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #32

    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,375
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    384
    Поблагодарили
    346 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от reddie Посмотреть сообщение
    При этом скорость потока чтения/записи дискеты 250 Кбит, или 30 Кбайт в секунду, что явно больше, чем 115200. В два раза. Но это параллельный интерфейс, причём с ожиданием готовности. Вот хотя бы на эти цифры стоит ориентироваться.
    по факту без турбо тянет 300, вряд ли сильно больше. (8085 на 4МГц тянет 500, т.е. HD дискеты, но с привлечением аппаратных средств. но это совсем другая история)

    Зверинецъ

    Специалист (был когда-то "совсем стандарт") - 1988-2023
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    БК0010-01 стоковый
    [свернуть]

  4. #33

    Регистрация
    17.07.2018
    Адрес
    г. Воронеж
    Сообщений
    297
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    53
    Поблагодарили
    40 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У вас 250 кбит между дисководом и ВГ93 или между ВГ93 и Z80? ) Это 2 большие разницы. Ну и давайте посчитаем, 3.5 МГц, я прикинул что если не стараться ну сильно извергаться нужно тактов 40 на байт или бит, смотря чем дрыгаем, это будет в районе 87500 байт или бит. Но это минимальное время идеал но железа без вейтов, занятой шины и не занятых портов.

  5. #34

    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    922
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    156 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kulich Посмотреть сообщение
    У вас 250 кбит между дисководом и ВГ93 или между ВГ93 и Z80? ) Это 2 большие разницы.
    Это скорость потока данных от ВГ93, под неё уже подстраивается протокол обмена с флопом.
    Приводилось просто как пример для ориентира. Можно вообще к LDIR весь обмен свести, дело лишь в реализации.

  6. #35

    Регистрация
    17.07.2018
    Адрес
    г. Воронеж
    Сообщений
    297
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    53
    Поблагодарили
    40 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от reddie Посмотреть сообщение
    Это скорость потока данных от ВГ93, под неё уже подстраивается протокол обмена с флопом.
    Приводилось просто как пример для ориентира. Можно вообще к LDIR весь обмен свести, дело лишь в реализации.
    Это как? Меняет скорость вращения диска чтоль? ) Как-раз скорость чтение диска константна, и она равна 250,500 и прочие кбит, а вот компьютер может читать данные с ВГ как ему удобнее.

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

    Кстати для того чтобы успешно работать на шине нужен достаточно быстрый контроллер, чтобы он успевал дергаться.
    Т.е. там порядка 500-700 нс на то чтоб получить прерывание и выставить ответ или просто отреагировать.
    Вот тут интересная статья про эмуляцию дисковода и картриджа на STM32
    https://www.kernelcrash.com/blog/emu...sx/2020/06/14/
    Последний раз редактировалось Kulich; 24.11.2021 в 15:42.

  7. #36

    Регистрация
    23.04.2020
    Адрес
    г. Тотьма
    Сообщений
    908
    Спасибо Благодарностей отдано 
    273
    Спасибо Благодарностей получено 
    343
    Поблагодарили
    182 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kulich Посмотреть сообщение
    То что 115200 у человека получилось получить только сильно извернувшись и поломав голову и говорит о том что где-то в этих пределах и лежит максимальная скорострельность в операциях,
    Подождите. На скорпе копирование с карты на карту через SMUC занимает 5 сек целая дискета. В турбе. А это значит около 1.2 мегабита. И причём это сначала чтение, потом запись. А там шина 8 бит.

    А при обмене на 57600 процессор даже не в турбе довольно много ждёт. И по одному биту всё проталкивает. А на 115200 предел возможностей, похоже, для нетурбы. Но это для UART протокола.

    Скрытый текст


    https://drive.google.com/drive/folde...xZ83juCuaBe32I

    Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
    Leningrad 1/Sega Joy Adapter
    DivGMX
    ZX Spectrum +2A
    ZX Evolution rev. C

    TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
    [свернуть]

  8. #37

    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    922
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    156 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kulich Посмотреть сообщение
    компьютер может читать данные с ВГ как ему удобнее
    Это уже если лезть в технические дебри контроллера и флопа. На стандартном обмене скорость фиксированная, не просто же так существуют эти обороты диска в 300, 360 и другие. Частота ВГ определяет скорость записи данных. Спектрум обязан принять/отослать данные в порт ВГ по сигналу готовности, иначе вылетит ошибка. Вот эта стандартная скорость и есть 250 Кбит (5 оборотов в секунду, 6 Кб на дорожке, итого 30 Кбайт).

    Выше уже отписали о копировании дискеты за 5 секунд, что довольно неплохо. Да, с карты на карту, но что мешает реализовать эти скорости для других типов хранения (приема) данных?

  9. #38

    Регистрация
    17.07.2018
    Адрес
    г. Воронеж
    Сообщений
    297
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    53
    Поблагодарили
    40 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от reddie Посмотреть сообщение
    Это уже если лезть в технические дебри контроллера и флопа. На стандартном обмене скорость фиксированная, не просто же так существуют эти обороты диска в 300, 360 и другие. Частота ВГ определяет скорость записи данных. Спектрум обязан принять/отослать данные в порт ВГ по сигналу готовности, иначе вылетит ошибка. Вот эта стандартная скорость и есть 250 Кбит (5 оборотов в секунду, 6 Кб на дорожке, итого 30 Кбайт).

    Выше уже отписали о копировании дискеты за 5 секунд, что довольно неплохо. Да, с карты на карту, но что мешает реализовать эти скорости для других типов хранения (приема) данных?
    Ну для 7 мегагерц там уже веселее я за 3.5 приводил расчет. Кажется я знаю как работает это копирование, без участия памяти вообще, так-как это тактов 28 на байт из которых in/out 20 съедают точно.

    Но вообще это дело десятое, максимальная скорость. Главное чтоб работало=) Я гофернеты в районе 9600 бороздю и не жалуюсь )

  10. #39

    Регистрация
    23.04.2020
    Адрес
    г. Тотьма
    Сообщений
    908
    Спасибо Благодарностей отдано 
    273
    Спасибо Благодарностей получено 
    343
    Поблагодарили
    182 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от polikarpov76 Посмотреть сообщение
    То-есть как бы обязательно иметь самописный сервер?
    Немного почитал. В общем, с завода умеет работать через TCP, команда
    AT+CIPSEND Отправить данные TCP/IP
    Как я понимаю, так работает гофер браузер. Посылает текстовые запросы типа GET на HTTP сервер.
    Но мне такое не подходит, потому что ответы от сервера могут быть разной длины. Тут нужен контроль передачи, чтобы приостанавливать. А так на 57600 времени на анализ пакета нет. Комп всё время ждёт данные.
    А у меня все пакеты от сервера равной длины, поэтому просто.
    И размер их около килобайта, потому что у меня не получилось за раз пропихнуть через ESP больше, чем примерно 1200 байт. Если пакет больше, она просто игнорирует его ).

    Ещё для ESP бывает FTP клиент, он может тягать файлы с сервера и записывать в свою примитивную файловую систему в память или на SD карту.

    Доп.
    А когда не знаешь какой длины придёт пакет, вопрос когда остановить приём. Сервер http наверное шлёт в конце пакета символ типа 13 или 0. Значит надо выкроить время анализировать каждый байт на лету. И ещё загвоздка в том, что когда выставляешь бит остановить передачу, она останавливается не сразу. Можно битик и потерять.
    Последний раз редактировалось izzx; 24.11.2021 в 20:51.

    Скрытый текст


    https://drive.google.com/drive/folde...xZ83juCuaBe32I

    Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
    Leningrad 1/Sega Joy Adapter
    DivGMX
    ZX Spectrum +2A
    ZX Evolution rev. C

    TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
    [свернуть]

    Этот пользователь поблагодарил izzx за это полезное сообщение:

    polikarpov76(25.11.2021)

  11. #40

    Регистрация
    03.05.2020
    Адрес
    г. Челябинск
    Сообщений
    796
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    260
    Спасибо Благодарностей получено 
    274
    Поблагодарили
    145 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kulich Посмотреть сообщение
    Кажется я знаю как работает это копирование, без участия памяти вообще, так-как это тактов 28 на байт из которых in/out 20 съедают точно.
    Даже если эту перезапись реализовать сдвигами напрямую из одной карты в другую (по SPI или по полному 4-разрядному интерфейсу SD), то все равно надо много доп.информации передавать каждой из карте для адресации единиц размещения (файловую систему-то она сама по себе не детализирует, а как без ее разбора ?). Но в СМУКе ж и этого нет. Как копировать без участия памяти-то ?
    И как за 5 сек вся дискета - разъясните, а то аж уснуть не могу )

    Что касается предела скорости обмена, тут Kulich действительно прикинул довольно точно.
    Вот такой фрагмент кода читает данные из условного "порта данных" некоей идеализированной железяки, которая в идеальном случае успевает формировать очередной байт данных к каждому новому чтению из порта. После чтения байт сохраняется в буфер в ОЗУ.
    Код:
    	ld hl, srcaddr
    	ld de, length
    	ld bc, portaddr
    loop:	in a, (c)	12T
    	ld (hl), a      7T
    	inc hl          6T
    	dec de          6T
    	jr nz, loop     12T
    На это уходит 43 (то есть даже больше, чем 40) тактов на один цикл (=байт), и это без какой-либо прочей обработки полученных данных и контроля готовности очередных данных перед приемом. 81395 циклов в секунду. Но это "сферический конь в вакууме".
    Если в действительности будет даже вдвое меньше, то ~40Кбайт/с при байтном обмене по 8-разрядной шине уже было бы неплохим результатом (~16 сек суммарное время на получение данных всех фрагментов TRD от сервера + обычное суммарное время записи из памяти на флоп с ожиданием позиционирования).
    Если бы такое удалось, уже классно. Все зависит действительно от того, насколько хорошо удастся оптимизировать обработку прерывания при обращении к ESP на чтение. Для нас, начинающих, та еще задачка )

Страница 4 из 11 ПерваяПервая 12345678 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 149
    Последнее: 13.12.2014, 12:03
  2. Ответов: 9
    Последнее: 06.09.2012, 22:15
  3. Нужна помощь в подключении к 32ТЦ309Д
    от axbob32 в разделе Изображение
    Ответов: 17
    Последнее: 11.05.2012, 21:30
  4. И еще раз о подключении дисковода...
    от Zloy в разделе Внешние накопители
    Ответов: 28
    Последнее: 23.12.2007, 00:35
  5. И снова о подключении дисковода к Speccy
    от ILoveSpeccy в разделе Внешние накопители
    Ответов: 8
    Последнее: 26.07.2007, 20:21

Ваши права

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