... на правах оффтопа )
PIC-и неплохо гонятся при внешнем тактировании. Проверял с внешним генератором на 24MHz и включенным умножением х4. Вся набортная периферия работала нормально.
... на правах оффтопа )
PIC-и неплохо гонятся при внешнем тактировании. Проверял с внешним генератором на 24MHz и включенным умножением х4. Вся набортная периферия работала нормально.
Потому что делать аппаратную разработку, работающую только в одной конкретной ОС это не наш метод.
Есть вполне реальные ОС, написанные под Z80 где полно всяких хаков, в т.ч. и работа из РОМ-диска и с RОМ-диском. Может там тоже захочется такой ROM-диск? Хотя конечно, можно и замедлить чтение в коде, не проблема.
Я тут отстал от реалий, возможно? Я еще мысленно пребываю во временах когда Pizero=5$, а OrangePI=10$. А когда оно так подорожало?
- - - Добавлено - - -
Вот вы сейчас прямо на больное наступаете. Уже года три как сделали аппаратный SPI на 5 микросхемах 1533 тупо со сдвиговым регистром, и ни одного проекта (SDHC я не учитываю т.к. схема для нее и делалась, и прекрасно работает на дюжине платформ от Галаксии и RK-86 с их 16кб ОЗУ до Ориона с его 16Мб, и даже кросплатформенная ДОС есть с FAT16). А уж как я тут расписывал про прелести внешних дивайсов подключенных по SPI. Но нет, суровые парни не одобряэ. Или ленятся (как и я сам, каюсь).
Был проект где в качестве ковокса для проигрывания оцифровки использовался AY. Вот там ЕМНИП слайс для параллельности оставался (хотя и очень небольшой, большую часть все же съедала прогрузка AY), при том что всё делалось из заранее заполненного ОЗУ (подгрузка с носителя все положит, да).
Последний раз редактировалось Error404; 10.09.2020 в 00:07.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
А точно было 24x4 МГц, а то ведь RC-генератор в PLL может тупо такую частоту не потянуть. Но вообще да, спасибо, можно попробовать... А на счет переферии - даже для быстрых dsPic33 со скоростью 70 MIPS заявлена макс. частота SPI в 15 МГц, ну не свинство ли...
Я с Z80 не работал. Почитал - пока не очень понимаю, как можно стандартное чтение ROM F5 значимо ускорить. INI конечно хороша, но кто сперва адрес чтения на ППА F5 выставит?
В любом случае, пока 2 мкс от обнаружения адреса до выдачи байта и ещё 1.5 мкс до обслуживания следующего адреса - мой предел (это 5 МГц для Ориона).
Простого и универсального решения тут нет.
Я не спец, тупо посмотрел на али.
И правильно, нафига на Орионе интернет какой-то, его и так везде слишком много
Денис, я тут прикинул по скоростям - если делается проброс CS ППА F5 и чтение данных идет каждые 19 тактов (mov a,m; stax d; inx D), то Орион может запросто молотить на 20 МГц. При этом скорость чтения составит 1027 кб/с. На более низких частотах Ориона скорость чтения снижается пропорционально из-за замедления кода на орионе. В этом случае хорошо бы модифицировать код, чтобы он стал быстрее (но наверное это возможно только инструкциями Z80).
Если у Ориона выше 40 МГц - надо увеличивать интервалы в программе, чтобы не превышать эти 1027 кб/с.
В принципе у МК полно таймеров, используя их программа на Орионе могла бы оценить частоту Ориона и загрузить оптимизированный набор функций по работе с SPI (на самом деле нужна только одна оптимизированная функция быстрого SPI чтения большого блока).
Конечно, на высоких частотах SPI на "сдвиговом регистре" был бы быстрее. Но воспользоваться этим на 20МГц можно, опять же, только сперва оптимизировав сам код чтения для Ориона. Что касается 40МГц - на таких частотах уже приходится менять подходы к работе с периферией. Например, чтение из w25q128 при тактовой выше 20 МГц надо делать отдельной командой и первый прочитанный байт пропускать. SD-карту тоже надо инициализировать на более низких частотах. Т.е. на самом деле "сдвиговому регистру" нужен ещё перестраиваемый задатчик скорости...
Сорри, обманул, 20MHz.
Но это точно )
МК - PIC16F1825
![]()
По коду "всё печальнее", у меня например в онлайне проверяется возможный выход за границу банка, так что далеко не так быстро ПО читает данные.
Высокоскоростная версия Ориона будет стартовать на дефолтных 2,5 МГц и будет иметь возможность программно задавать клок ЦП. Если ROM-диск рассматривать только в качестве загрузчика, то по идее можно не заморачиваться возможностью работы на 40 МГц. На больших скоростях уже полезут ограничения самих ПЗУшек скорее всего.
Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Таки да )
Ну если ПО читает не быстро, значит и с Орионом на 40 МГц будет флэш-диск работать
Вообще для флэш-диска в режиме прямого чтения проверять банк не понадобится, там же автоинкремент. Свои соображения по эффективной организации циклов я дополнительно выложил тут: http://zvzd3d.ru/Orion128/OrionDiskNiky.html#YaCikli (надо обновить страницу). Конечно, это больше актуально для быстрого чтения.
Посмотрел Вашу реализацию чтения ROM-диска - вижу SHLD и LDA уже раснесены. При желании код можно ускорить. Цикл делать без "mov a,c; ora b". И проверку выхода за банк - делать вне цикла. Пусть HL - начальный адрес чтения, а BC - длина. Тогда если ~HL > BC, то переключения банка не нужно. Иначе читаем сперва (~HL+1) байт, переключаем банк, читаем остаток.
На чем же будет сделан Орион на 40 МГц?
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).
А Орион что, можно "вэйтить"? Это же какой то Радио-РК86 тогда получается... А если несколько абонентов захотят вэйтить? Конечно, вэйтить понадобится в весьма редких случаях, когда ROM-диск на самом деле не успевает (что легко распознать и выставить соответствующий сигнал).
Идея на первый взгляд чертовски хороша: выкидывается ВВ55, а вместо неё подключается Pic, который эмулирует огромный ROM-диск и имеет при этом кучу реально свободных ног для действительно нужной внешней переферии (АЦП, таймеры, 2 SPI чтобы можно было гнать с SD-карты на звук ЦАП прямым потоком, I2C всякие). Красота!
На самом деле ведомый Parallel Master Port в dsPIC это всего лишь 4 регистра-защелки. Т.е. отличий от ВВ55 почти никаких. Чисто экономия ног у МК.
Увы, не думаю, что кто-то захочет выдирать ВВ55 из ретро-сборки или плату переразводить... Я лично в своём любимом стареньком Орионе ничего кардинального трогать не готов, если только что-то внешнее подключать. Для высокоскоростного режима флэш-диска уже достаточно проброса одной линии CS от ППА. Да и ожидание нужно только для эмуляции ROM-диска выше 5 МГц, а в прямом режиме, как выясняется, даже на 40 МГц софт 1 мб/с с трудом читает...
Это получается видеовыход скорость портит?
Ну понятно, что скоростные Орионы это такая проблема, что тут не до флэш-диска...
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)