User Tag List

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

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    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) работать будет.
    Но для записи на флэш пока софта под орион нет. Вопрос - стоит ли развивать проект дальше или ну на фиг?

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

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

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

  3. #2

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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


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

  4. #3

    Регистрация
    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 МГц - не знаю, думать и считать надо, тут уже накладные расходы прошивки МК существенны...

  5. #4

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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


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


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

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

  6. #5

    Регистрация
    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 мб - уже отличное решение (спасибо Вам!).
    Так что мне остаётся добавить к флэш-диску возможность сохранения/восстановления памяти ориона через мой спец-загрузчик - и достаточно.

  7. #6

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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


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

  8. #7

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    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

  9. #8

    Регистрация
    14.09.2012
    Адрес
    г.Севастополь
    Сообщений
    473
    Спасибо Благодарностей отдано 
    278
    Спасибо Благодарностей получено 
    78
    Поблагодарили
    56 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ... на правах оффтопа )
    PIC-и неплохо гонятся при внешнем тактировании. Проверял с внешним генератором на 24MHz и включенным умножением х4. Вся набортная периферия работала нормально.

  10. #9

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

    По умолчанию

    Цитата Сообщение от ALS Посмотреть сообщение
    PIC-и неплохо гонятся при внешнем тактировании. Проверял с внешним генератором на 24MHz и включенным умножением х4. Вся набортная периферия работала нормально.
    А точно было 24x4 МГц, а то ведь RC-генератор в PLL может тупо такую частоту не потянуть. Но вообще да, спасибо, можно попробовать... А на счет переферии - даже для быстрых dsPic33 со скоростью 70 MIPS заявлена макс. частота SPI в 15 МГц, ну не свинство ли...


    Цитата Сообщение от Error404 Посмотреть сообщение
    Потому что делать аппаратную разработку, работающую только в одной конкретной ОС это не наш метод.
    Есть вполне реальные ОС, написанные под Z80 где полно всяких хаков, в т.ч. и работа из РОМ-диска и с RОМ-диском. Может там тоже захочется такой ROM-диск? Хотя конечно, можно и замедлить чтение в коде, не проблема.
    Я с Z80 не работал. Почитал - пока не очень понимаю, как можно стандартное чтение ROM F5 значимо ускорить. INI конечно хороша, но кто сперва адрес чтения на ППА F5 выставит?
    В любом случае, пока 2 мкс от обнаружения адреса до выдачи байта и ещё 1.5 мкс до обслуживания следующего адреса - мой предел (это 5 МГц для Ориона).
    Простого и универсального решения тут нет.


    Цитата Сообщение от Error404 Посмотреть сообщение
    Я тут отстал от реалий, возможно? Я еще мысленно пребываю во временах когда Pizero=5$, а OrangePI=10$. А когда оно так подорожало?
    Я не спец, тупо посмотрел на али.


    Цитата Сообщение от Error404 Посмотреть сообщение
    Вот вы сейчас прямо на больное наступаете. Уже года три как сделали аппаратный SPI на 5 микросхемах 1533 тупо со сдвиговым регистром, и ни одного проекта (SDHC я не учитываю т.к. схема для нее и делалась, и прекрасно работает на дюжине платформ от Галаксии и RK-86 с их 16кб ОЗУ до Ориона с его 16Мб, и даже кросплатформенная ДОС есть с FAT16). А уж как я тут расписывал про прелести внешних дивайсов подключенных по SPI. Но нет, суровые парни не одобряэ. Или ленятся (как и я сам, каюсь).
    И правильно, нафига на Орионе интернет какой-то, его и так везде слишком много


    Денис, я тут прикинул по скоростям - если делается проброс CS ППА F5 и чтение данных идет каждые 19 тактов (mov a,m; stax d; inx D), то Орион может запросто молотить на 20 МГц. При этом скорость чтения составит 1027 кб/с. На более низких частотах Ориона скорость чтения снижается пропорционально из-за замедления кода на орионе. В этом случае хорошо бы модифицировать код, чтобы он стал быстрее (но наверное это возможно только инструкциями Z80).

    Если у Ориона выше 40 МГц - надо увеличивать интервалы в программе, чтобы не превышать эти 1027 кб/с.
    В принципе у МК полно таймеров, используя их программа на Орионе могла бы оценить частоту Ориона и загрузить оптимизированный набор функций по работе с SPI (на самом деле нужна только одна оптимизированная функция быстрого SPI чтения большого блока).

    Конечно, на высоких частотах SPI на "сдвиговом регистре" был бы быстрее. Но воспользоваться этим на 20МГц можно, опять же, только сперва оптимизировав сам код чтения для Ориона. Что касается 40МГц - на таких частотах уже приходится менять подходы к работе с периферией. Например, чтение из w25q128 при тактовой выше 20 МГц надо делать отдельной командой и первый прочитанный байт пропускать. SD-карту тоже надо инициализировать на более низких частотах. Т.е. на самом деле "сдвиговому регистру" нужен ещё перестраиваемый задатчик скорости...

  11. #10

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    если делается проброс CS ППА F5 и чтение данных идет каждые 19 тактов (mov a,m; stax d; inx D), то Орион может запросто молотить на 20 МГц.
    По коду "всё печальнее", у меня например в онлайне проверяется возможный выход за границу банка, так что далеко не так быстро ПО читает данные.


    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Если у Ориона выше 40 МГц - надо увеличивать интервалы в программе, чтобы не превышать эти 1027 кб/с.
    Высокоскоростная версия Ориона будет стартовать на дефолтных 2,5 МГц и будет иметь возможность программно задавать клок ЦП. Если ROM-диск рассматривать только в качестве загрузчика, то по идее можно не заморачиваться возможностью работы на 40 МГц. На больших скоростях уже полезут ограничения самих ПЗУшек скорее всего.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

Страница 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

Ваши права

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