Важная информация

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 28

Тема: Простой флэш-диск от 16 мб + быстрый SPI для современной периферии

  1. #1
    Junior
    Регистрация
    30.01.2020
    Адрес
    г. Рязань
    Сообщений
    11
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Простой флэш-диск от 16 мб + быстрый SPI для современной периферии

    Запилил простой флэш-диск на 16 мб, всего на двух микросхемах. Схема тут http://zvzd3d.ru/orion128/OrionDiskNiky.html
    Подключается к порту F5, имитирует стандартный ROM-диск. Можно иметь ряд ROM-дисков и легко их переключать. Поддерживаются ROM-диски более 64 кб (совместимы с DsDos).
    Имеются также специальные высокоскоростные режимы чтения. Также к диску можно подключать современную SPI-переферию (например, SD-карты, Ethernet-контроллер, ЦАП).
    С ROM-дисками всё понятно, существующий софт (в том числе DsDos) работать будет.
    Но для записи на флэш пока софта под орион нет. Вопрос - стоит ли развивать проект дальше или ну на фиг?

  2. Эти 5 пользователя(ей) поблагодарили RyazanNik за это полезное сообщение:

    ALS (09.09.2020), Denn (08.09.2020), Error404 (09.09.2020), fifan (09.09.2020), Romych (12.09.2020)

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

  4. #2
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    473
    Спасибо Благодарностей получено 
    899
    Поблагодарили
    591 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Но для записи на флэш пока софта под орион нет.
    Интересно. По мере возможности попробую сделать поддержку в DSDOS, но нужна либо живая железка, либо поддержка сабжа в эмуляторе от b2m =)


    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Вопрос - стоит ли развивать проект дальше или ну на фиг?
    Имхо, стоит. Только с прицелом на более высокие тактовые частоты ЦП
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  5. #3
    Junior
    Регистрация
    30.01.2020
    Адрес
    г. Рязань
    Сообщений
    11
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Интересно. По мере возможности попробую сделать поддержку в DSDOS, но нужна либо живая железка, либо поддержка сабжа в эмуляторе от b2m =)
    Да железка то простая... Вы рассматриваете её только как накопитель или SPI может ещё пригодиться?


    Цитата Сообщение от Denn Посмотреть сообщение
    Имхо, стоит. Только с прицелом на более высокие тактовые частоты ЦП
    Более высокие - это какие? 10 МГц или ещё выше?
    Самое сложное - эмуляция ROM с произвольным доступом. Как сейчас сделано - будет работать до 5 МГц Ориона включительно. Выше - крайне затруднительно, тут остаётся только быстрая flash память МК на 64 кб для загрузки Ориона, а далее в коде нужно разносить SHLD F501 и LDA F500.
    Что касается быстрых режимов чтения / записи, то это должно спокойно работать на 10 МГц Ориона.
    Если надо выше 10 МГц - не знаю, думать и считать надо, тут уже накладные расходы прошивки МК существенны...

  6. #4
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    473
    Спасибо Благодарностей получено 
    899
    Поблагодарили
    591 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Вы рассматриваете её только как накопитель или SPI может ещё пригодиться?
    Всегда хотелось решить вопрос с быстрым подключением SDHC. В остальном пока SPI не пригождалось в жизни. Думаю, тут голосовалку можно попробовать устроить, может общественность что-то подскажет.


    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Более высокие - это какие? 10 МГц или ещё выше?
    Если с заделом на будущее (развитие), то 20 МГц. Совсем в идеале - 40. Имхо.


    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Самое сложное - эмуляция ROM с произвольным доступом. Как сейчас сделано - будет работать до 5 МГц Ориона включительно. Выше - крайне затруднительно...
    ROM-диск мне видится средством загрузки, этаким расширенным "монитором". Серьёзно рассматривать его в качестве накопителя в случае развития платформы, думаю смысла нет.

    П.С. лучше IDE-винчестера очень сложно что-то придумать, как выясняется. А та же SDHC подключается к IDE через переходник, и никаких расходов кода на Орионе...
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  7. #5
    Junior
    Регистрация
    30.01.2020
    Адрес
    г. Рязань
    Сообщений
    11
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Если с заделом на будущее (развитие), то 20 МГц. Совсем в идеале - 40. Имхо.
    Ну понятно, что это будет уже не на к580вм80, а на некой хитрой архитектуре, и накопитель / SPI тогда надо предусматривать в рамках этой архитектуры, а не навешивать отдельным МК к порту F5...

    Цитата Сообщение от Denn Посмотреть сообщение
    лучше IDE-винчестера очень сложно что-то придумать, как выясняется. А та же SDHC подключается к IDE через переходник, и никаких расходов кода на Орионе...
    Логично...

    Вообщем развивать лишний накопитель смысла не имеет. А для ретро-компа DsDos с ROM-диском на 1 мб - уже отличное решение (спасибо Вам!).
    Так что мне остаётся добавить к флэш-диску возможность сохранения/восстановления памяти ориона через мой спец-загрузчик - и достаточно.

  8. #6
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    473
    Спасибо Благодарностей получено 
    899
    Поблагодарили
    591 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Ну понятно, что это будет уже не на к580вм80, а на некой хитрой архитектуре, и накопитель / SPI тогда надо предусматривать в рамках этой архитектуры, а не навешивать отдельным МК к порту F5...
    Идеальнее всего - делать универсальный девайс. Как бы предполагая, что у всех платформы могут быть разные. И при этом чтобы была совместимость, в т.ч. с базовой (ВМ80, F5 и т.п.).


    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Так что мне остаётся добавить к флэш-диску возможность сохранения/восстановления памяти ориона через мой спец-загрузчик - и достаточно.
    Произвольный посекторный (по 512 или 1024 байт) R/W-доступ же возможен?
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  9. #7
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Да железка то простая... Вы рассматриваете её только как накопитель или SPI может ещё пригодиться?




    Более высокие - это какие? 10 МГц или ещё выше?
    Самое сложное - эмуляция ROM с произвольным доступом. Как сейчас сделано - будет работать до 5 МГц Ориона включительно. Выше - крайне затруднительно, тут остаётся только быстрая flash память МК на 64 кб для загрузки Ориона, а далее в коде нужно разносить SHLD F501 и LDA F500.
    Что касается быстрых режимов чтения / записи, то это должно спокойно работать на 10 МГц Ориона.
    Если надо выше 10 МГц - не знаю, думать и считать надо, тут уже накладные расходы прошивки МК существенны...
    Абстрагируясь, уже Z80 с типовыми 5Мгц (т.е. каких сейчас примерно половина парка) может в заданные временные рамки не влезть, т.к. благодаря тому, что порты ВВ55 в Орионе адресуются "секторами" по 256 байт, Z80 может читать их командой LDI и цикл чтения в тактах свернется вдвое-втрое.

    Проект полезный, но одного ПЗУ мало (оно и так у всех есть, хотя у контроллера тут есть некий профит - например в удаленом доступе к нему с PC - для обновления "ROM-дисков" на лету), смысл имеется когда все контроллеры SPI (а их там море, взять хотя бы Ethernet) можно подключать и полноценно с ними обмениваться. Т.е. либо надо хосту (Ориону) давать RAW доступ к регистру SPI (и дорогущий PIK стоимостью почти в PI Zero тогда превращается в просто регистр сдвига) и ПО надо писать на стороне Ориона, либо контроллеру надо и аппаратно давать больший функционал, и ПО в нем допиливать, и опять же поддерживать на стороне Ориона какой-то протокол (хотя тут уже полегче станет, например стек TCPIP можно унести в контроллер а Ориону выдать уже сокеты, и т.п.).
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  10. #8
    Junior
    Регистрация
    30.01.2020
    Адрес
    г. Рязань
    Сообщений
    11
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Идеальнее всего - делать универсальный девайс. Как бы предполагая, что у всех платформы могут быть разные. И при этом чтобы была совместимость, в т.ч. с базовой (ВМ80, F5 и т.п.)
    Универсальность просто так не даётся... Если надо 20 и 40 МГц, то устройство становится сложным, среди 8-битных МК в паябельных корпусах вообще нет SPI быстрее 16 Мбод. Надо городить какой-нибудь stm32, может с четырехпроводным QSPI... В принципе, тоже можно уложиться в две микры, но по stm32 я не спец.

    Другой подход - предусматривать какую-то синхронизацию / замедление, когда ориону приходится ожидать реакции устройства. Для высоких частот это вполне нормально, ибо у периферии всегда есть свои ограничения. Например, те же stm32 не успевают читать флэш-память программы даже на 80 МГц, поэтому там наворочены всякие кэширования...
    Но синхронизация сильно бьёт в плане скорости по низкочастотным орионам... А делать разным код конечно плохо (хотя представляю, что будет с обычным кодом опроса клавы на 20 МГц орионе).


    Цитата Сообщение от Denn Посмотреть сообщение
    Произвольный посекторный (по 512 или 1024 байт) R/W-доступ же возможен?
    Читать W25Q128 можно легко и быстро с произвольного адреса. Но минимальный стираемый блок - 4096 байт (хотя на заранее стёртое место можно писать блоками по 256 байт).
    Конечно можно (это же МК!) съэмулировать произвольную запись секторами по 512 байт... Но быстродействие записи снизится, а эти w25q128 вообще не быстрые на запись, даже при последовательной записи мне удавалось лишь 20-30 кб/с.
    В этом плане куда лучше SDHC-карты, они быстрые и их можно писать секторами по 512 байт (другое дело, что там физический стираемый блок может быть побольше 32 кб и скорость при произвольной записи может просесть очень сильно).

  11. #9
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    473
    Спасибо Благодарностей получено 
    899
    Поблагодарили
    591 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Если надо 20 и 40 МГц, то устройство становится сложным, среди 8-битных МК в паябельных корпусах вообще нет SPI быстрее 16 Мбод. Надо городить какой-нибудь stm32, может с четырехпроводным QSPI...
    Сложно тоже смысла нет - в народ не пойдёт.


    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Другой подход - предусматривать какую-то синхронизацию / замедление, когда ориону приходится ожидать реакции устройства.
    Тут какое дело. Если накопитель достаточно объёмный и платформа у нас достаточно быстрая, то автоматом встают требования к быстродействию связки, т.к. собственно весь смысл такого развития только в этом.

    Если говорить о практичности, то (имхо) вырисовываются два лидера: HDD и SDHC. Первый для т.н. "десктопов", второй для более "мобильных" конструкций. Кстати, по эффективному подключению обоих вопросы не закрыты до сих пор, как ни странно.


    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Но минимальный стираемый блок - 4096 байт
    Это просто прекрасно! По моим расчётам, для эффективного использования 16 Мб диска как раз сектор получается 4 Кб, для HDD именно так у меня и организовано в DSDOS.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  12. #10
    Junior
    Регистрация
    30.01.2020
    Адрес
    г. Рязань
    Сообщений
    11
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Абстрагируясь, уже Z80 с типовыми 5Мгц (т.е. каких сейчас примерно половина парка) может в заданные временные рамки не влезть, т.к. благодаря тому, что порты ВВ55 в Орионе адресуются "секторами" по 256 байт, Z80 может читать их командой LDI и цикл чтения в тактах свернется вдвое-втрое.
    Конечно, при желании легко придумать код, чтобы эмулируемый ROM-диск дал ошибку. Но какое это имеет значение? Главное, чтобы нормально работал уже существующий реальный код - фактически, Мониторы, OrDosы и DsDos.


    Цитата Сообщение от Error404 Посмотреть сообщение
    Т.е. либо надо хосту (Ориону) давать RAW доступ к регистру SPI (и дорогущий PIK стоимостью почти в PI Zero тогда превращается в просто регистр сдвига) и ПО надо писать на стороне Ориона.
    Ну почему дорогущий, 330р в чип-дип в корпусе dip40 (я правда брал куда дешевле, но чип-дип ещё тот магазин), а PI Zero это пара тыщь... Хотя пожалуй да, регистр сдвига.


    Цитата Сообщение от Error404 Посмотреть сообщение
    либо контроллеру надо и аппаратно давать больший функционал, и ПО в нем допиливать, и опять же поддерживать на стороне Ориона какой-то протокол (хотя тут уже полегче станет, например стек TCPIP можно унести в контроллер а Ориону выдать уже сокеты, и т.п.).
    По мне лучше работать с Ориона с SPI напрямую. Ибо куда перспективнее изучить реальную переферию, а на какую-то там прослойку на МК. Современная переферия простая - дальше некуда. Вот хоть Ethernet-контроллер W5500, там уже сокеты есть, только клади данные в буфер / читай принятые.

    - - - Добавлено - - -

    Цитата Сообщение от Denn Посмотреть сообщение
    Тут какое дело. Если накопитель достаточно объёмный и платформа у нас достаточно быстрая, то автоматом встают требования к быстродействию связки, т.к. собственно весь смысл такого развития только в этом.
    Ну не знаю, допустим, сейчас для "флэш-диска" предельная скорость чтения SPI 1.6 мб/с (если Орион достаточно быстр, ну, допустим). По сравнению с теми 44кб/с, которые сейчас достигаются для ROM-диска, очень не плохо!
    По современным меркам, конечно, очень мало, но что с этим потоком Орион будет делать, даже на 40 МГц? Хороший звук, например, всего 200 кб/с. Если тупо прочитанное в видеопамять класть, можно получить 66 кадров в сек. Опять же - код программ можно в память подгружать кусками и иметь дико сложные программы.
    Писать на SD-карту тоже можно 1.6 мб/с, если не злоупотреблять произвольным доступом.
    Есть ли смысл ещё увеличивать скорость накопителя для Ориона?

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

Страница 1 из 3 123 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 37
    Последнее: 06.12.2017, 01:24
  2. Немного периферии для Спектрума
    от ArtemKuchin в разделе Барахолка (архив)
    Ответов: 22
    Последнее: 04.05.2012, 13:22
  3. Картинки с флэш-анимацией.
    от moroz1999 в разделе Графика
    Ответов: 7
    Последнее: 29.08.2009, 19:10
  4. простой скрипт для написания хелпов
    от jim в разделе Программирование
    Ответов: 2
    Последнее: 09.04.2007, 14:33

Ваши права

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