User Tag List

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 28

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

  1. #11

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

    По умолчанию

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

  2. #12

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Конечно, при желании легко придумать код, чтобы эмулируемый ROM-диск дал ошибку. Но какое это имеет значение? Главное, чтобы нормально работал уже существующий реальный код - фактически, Мониторы, OrDosы и DsDos.
    Потому что делать аппаратную разработку, работающую только в одной конкретной ОС это не наш метод.
    Есть вполне реальные ОС, написанные под Z80 где полно всяких хаков, в т.ч. и работа из РОМ-диска и с RОМ-диском. Может там тоже захочется такой ROM-диск? Хотя конечно, можно и замедлить чтение в коде, не проблема.

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Ну почему дорогущий, 330р в чип-дип в корпусе dip40 (я правда брал куда дешевле, но чип-дип ещё тот магазин), а PI Zero это пара тыщь... Хотя пожалуй да, регистр сдвига.
    Я тут отстал от реалий, возможно? Я еще мысленно пребываю во временах когда Pizero=5$, а OrangePI=10$. А когда оно так подорожало?

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

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

    Цитата Сообщение от RyazanNik Посмотреть сообщение
    Меня лично больше напрягает отсутствие многозадачности, т.е. например, что игра звука параллельно с другой работой не возможна, но эту проблему просто не решить...
    Был проект где в качестве ковокса для проигрывания оцифровки использовался AY. Вот там ЕМНИП слайс для параллельности оставался (хотя и очень небольшой, большую часть все же съедала прогрузка AY), при том что всё делалось из заранее заполненного ОЗУ (подгрузка с носителя все положит, да).
    Последний раз редактировалось Error404; 10.09.2020 в 00:07.
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

  3. #13

    Регистрация
    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-карту тоже надо инициализировать на более низких частотах. Т.е. на самом деле "сдвиговому регистру" нужен ещё перестраиваемый задатчик скорости...

  4. #14

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

    По умолчанию

    Сорри, обманул, 20MHz.
    Но это точно )
    МК - PIC16F1825


  5. #15

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

  6. #16

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

    По умолчанию

    Цитата Сообщение от ALS Посмотреть сообщение
    Сорри, обманул, 20MHz.
    Но это точно )
    МК - PIC16F1825
    x4? т.е. 80МГц тактовой?

    Зверинецъ

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

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

  8. #17

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

    По умолчанию

    Таки да )

  9. #18

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

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    По коду "всё печальнее", у меня например в онлайне проверяется возможный выход за границу банка, так что далеко не так быстро ПО читает данные.
    Ну если ПО читает не быстро, значит и с Орионом на 40 МГц будет флэш-диск работать
    Вообще для флэш-диска в режиме прямого чтения проверять банк не понадобится, там же автоинкремент. Свои соображения по эффективной организации циклов я дополнительно выложил тут: http://zvzd3d.ru/Orion128/OrionDiskNiky.html#YaCikli (надо обновить страницу). Конечно, это больше актуально для быстрого чтения.

    Посмотрел Вашу реализацию чтения ROM-диска - вижу SHLD и LDA уже раснесены. При желании код можно ускорить. Цикл делать без "mov a,c; ora b". И проверку выхода за банк - делать вне цикла. Пусть HL - начальный адрес чтения, а BC - длина. Тогда если ~HL > BC, то переключения банка не нужно. Иначе читаем сперва (~HL+1) байт, переключаем банк, читаем остаток.


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

  10. #19

    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    813
    Спасибо Благодарностей отдано 
    33
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    60 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    10, 20, 40 МГц... Вот десятку вроде сделали: по мегагерцам вдули в 4 раза больше, а на выхлопе всего 3.5 Маха... Под двадцатку даже и процик существует Z84C0020, а в реале Ориончика такого ПОКА нет... А под сороковку какой процик планируется? Хренсобаки, тьфу, Кавасаки KL5C8400C только 33 МГц позволяет... Хотя наш комрад утверждает, что гонится в лёгкую.

    RyazanNik, предложение: а если взять PIC/dsPIC с Parallel Master Port (PMP) и его тулить не к ВВ55, а вместо ВВ55 на шину, и при необходимости вэйтить основной процик. Уж тогда всё что угодно можно прикрутить. Как тебе идейка?
    Последний раз редактировалось LeoN65816; 11.09.2020 в 01:19.
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  11. #20

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

    По умолчанию

    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    RyazanNik, предложение: а если взять PIC/dsPIC с Parallel Master Port (PMP) и его тулить не к ВВ55, а вместо ВВ55 на шину, и при необходимости вэйтить основной процик. Уж тогда всё что угодно можно прикрутить. Как тебе идейка?
    А Орион что, можно "вэйтить"? Это же какой то Радио-РК86 тогда получается... А если несколько абонентов захотят вэйтить? Конечно, вэйтить понадобится в весьма редких случаях, когда ROM-диск на самом деле не успевает (что легко распознать и выставить соответствующий сигнал).

    Идея на первый взгляд чертовски хороша: выкидывается ВВ55, а вместо неё подключается Pic, который эмулирует огромный ROM-диск и имеет при этом кучу реально свободных ног для действительно нужной внешней переферии (АЦП, таймеры, 2 SPI чтобы можно было гнать с SD-карты на звук ЦАП прямым потоком, I2C всякие). Красота!

    На самом деле ведомый Parallel Master Port в dsPIC это всего лишь 4 регистра-защелки. Т.е. отличий от ВВ55 почти никаких. Чисто экономия ног у МК.
    Увы, не думаю, что кто-то захочет выдирать ВВ55 из ретро-сборки или плату переразводить... Я лично в своём любимом стареньком Орионе ничего кардинального трогать не готов, если только что-то внешнее подключать. Для высокоскоростного режима флэш-диска уже достаточно проброса одной линии CS от ППА. Да и ожидание нужно только для эмуляции ROM-диска выше 5 МГц, а в прямом режиме, как выясняется, даже на 40 МГц софт 1 мб/с с трудом читает...


    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    10, 20, 40 МГц... Вот десятку вроде сделали: по мегагерцам вдули в 4 раза больше, а на выхлопе всего 3.5 Маха... Под двадцатку даже и процик существует Z84C0020, а в реале Ориончика такого ПОКА нет... А под сороковку какой процик планируется? Хренсобаки.
    Это получается видеовыход скорость портит?
    Ну понятно, что скоростные Орионы это такая проблема, что тут не до флэш-диска...

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

Ваши права

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