|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Author |
Message |
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
В описании на SD интерфейс из упоминаемой ранее, страниц 5 назад, схемы есть такой текст: что за утилита DOSSCAN я не знаю, но цифры приблизительную картину показывают. При этом, в коде вся работа с SD в полностью развернутом виде, ни каких циклов, те для чтения 512 байтного сектора 512 раз повторяется чтение порта и тп... Вообщем то, в драйвере nextor места много, и сделать аналогично проблем нет, может это и ускорит чтение (ну и на запись все аналогично же).
|
15 Aug 2019 13:56 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Переделал код, отвечающий за чтение 512 байтного сектора с мнемоник ВМ80 на z80, немного развернул цикл чтения этого сектора, и получил скорость 79КБ/с. Цикл записи сектора переделал аналогично, только как проверить скорость записи не ясно, однако она раза в два должна быть выше чем чтение, так получается . На этом с доработкой драйвера остановлюсь. Интересно, что в emu этот же тест показывает вообще 94КБ/с, скорость ограничивает реальная карта, что ли? Во вложении каталог с драйвером, который в Nextor нужно распаковать в папку Nextor-xxx/source/kernel/drivers/ и собранный бинарник вместе с конфигом для emu.
|
19 Aug 2019 14:29 |
|
|
Alekcandr
Doomed
Joined: 01 Oct 2007 10:30 Posts: 665 Location: Ukraine
|
Видимо пора писать свой тест скорости и желательно что бы он работал на MSX1 и DOS1
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
20 Aug 2019 04:06 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Не вижу смысла в новом тесте скорости. Для 8и битных машинок это уже предел. Если в IDE для чтения сектора в 512 байт используется LDI, то это 16 тактов z80 на байт, а сейчас в SD: out (c),d - 12 тактов и ini - 16 тактов, те 28 тактов на байт, что хоть и медленнее в два раза, но соизмеримо. Понятно, что есть еще накладные расходы, но это не превалирующее время в чтении сектора. Запись так вообще одинаково получается и IDE и SD: outi - 16 тактов на байт. Доработать SD интерфейс, что бы избавиться от out (c),d при чтении можно, но целесообразности не вижу. Так что, для z80 с тактовой в 3.5МГц скорость чтения этого SD интерфейса ~80КБ/c. upd: написал out (c),d - 12 тактов и подумал, а для чего так? обычный же out (порт),a - 11 тактов ! Пересобрал прямо сейчас драйвер, прошил в ПЗУ, и получил скорость уже 84КБ/с... Всего один такт, а плюс 4КБ скорости .
|
20 Aug 2019 13:42 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Как оказалось в коде драйвера, выложенного выше есть ошибка, при записи пишется только один сектор на реальной карте. Пришлось эту ошибку исправлять, а заодно попробовал выжать максимум скорости чтения. Кстати говоря, тест скорости работает с чтением по одному сектору и реализация многоблочного чтения на тесте скорости ни как не отразилась, а вот запуск реальных программ стал заметно быстрей. очень много бликов получилось, но видно 92КБ/с! в драйвере остался еще момент c работой SDHC карт, они определяются, но пока не работают. Попался мне, вообще говоря, вот такой проект, там есть готовый драйвер для SD. Можно подсмотреть некоторые моменты в реализации работы с картой, чем я и воспользовался. давно не показывал свою макетку: контроллер клавиатуры на МТ8816, pic12f675 и 74hc595, usb клавиатура работает в ps/2 режиме спокойно. Есть, правда один момент, при включении питания клавиатура не всегда проходит селфтест(не мигают светодиоды) и как ее из этого состояния выводить я не знаю. Переброс питания помогает, но это же не правильно... С чистой ps/2 клавиатурой этот же глюк присутствует, так что это не в usb дело. Никто с подобным не сталкивался, как лечить?
|
24 Aug 2019 03:21 |
|
|
Alekcandr
Doomed
Joined: 01 Oct 2007 10:30 Posts: 665 Location: Ukraine
|
Видимо пора мне записать в свой todo лист вашу реализацию SD – интерфейса. IDE карты меня поддастали в силу их опошления и ухода далеко вперед от параллельного интерфейса.
Как вам МТ8816? Мне нравиться такой себе мост между прошлым и настоящим. Работает просто замечательно с моей USB (нативной) клавиатурой.
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
24 Aug 2019 03:56 |
|
|
Alekcandr
Doomed
Joined: 01 Oct 2007 10:30 Posts: 665 Location: Ukraine
|
Баловался с ps/2 клавиатурой. Драйвер был даже без int (ардуино). Все получалось, и отослать, и принять, и инициализировать.
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
24 Aug 2019 04:29 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
На счет МТ8816 что то сказать сложно, просто работает, проблем нет . У меня с клавиатурой вопрос именно с ее первым стартом, сама клавиатура внутренний тест не проходит, не мигает своими тремя светодиодами и, соответственно, не отвечает на команды (экспериментировал с тремя USB и парой ps/2). Этот глюк не постоянно происходит, примерно раз на десяток включений. Сегодня, к примеру включал несколько раз, стартовала всегда... Если светодиодами мигнула, то дальше все работает отлично, я и CapsLock на ней зажигаю по нажатию, те обмен в обе стороны идет. На счет SD. Есть предложение сделать самостоятельный модуль, втыкаемый в слот msx машинки. Весь вопрос в адресах. Хочется сделать схему дешифрации максимально простой, на мелкой логике, без применения плис/гал. Вариант с адресацией в портах получается именно такой. Таким образом, берутся порты, к примеру, BeerIDE, ставим тм8/9 на управление ПЗУ Nextor/Sunrise и все готово. Схему могу нарисовать. В зависимости от прошивки будет хоть BeerSD, хоть Nextor, хоть Sunrise (если удастся собрать его исходники, то, что ходит в сети на 2.04 я собрать не смог). upd: прикинул схему, как то вообще все просто получается, необходимость U8(тм2) я так и не удосужился проверить (в исходной то схеме ее нет). Надо завтра включить SD без нее и посмотреть на стабильность работы, тогда вовсе 7 корпусов получится .
|
24 Aug 2019 12:31 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Проверил работу без ТМ2, скопировал десяток файлов, запустил их, все ок. Так что похоже, что без нее можно обойтись...
|
24 Aug 2019 23:48 |
|
|
Alekcandr
Doomed
Joined: 01 Oct 2007 10:30 Posts: 665 Location: Ukraine
|
Я принудительно сбрасывал клавиатуру. Вот кусочек кода.
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
25 Aug 2019 04:02 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
У меня инициализация аналогично сделана. Я же пишу пока она свой тест не пройдет, что ей не отправляй, она не реагирует. Поразмыслил я сейчас на сей счет, и вот, что подумалось. Код для пика на 95% повторяет код от Галаксии, который в свою очередь на 95% повторяет взятый из сети, и там я таких проблем не встречал. У меня точка запитки питанием клавиатуры и вход на плату +5В на углах по диагонали платы, может в этом все дело... Однако, тема с SD более интересна, какие есть идеи? так ли уж плоха выборка по портам 0х31 и 0х32?
|
25 Aug 2019 23:51 |
|
|
Alekcandr
Doomed
Joined: 01 Oct 2007 10:30 Posts: 665 Location: Ukraine
|
Если клавиатура не стартует после подачи питания c не подключенными data и clk (вроде так), тогда точно надо смотреть что там с питанием. Буду делать под себя (MSX-EXT). Если делать под MSX, надо еще добавить сигнал /BUSDIR. Тут тоже мое личное мнение. Хотелось бы сохранить для себя такой конфиг. #30...#33 - BEER IDE #38...#39 - YM2151 #3F - SN76489 С другой стороны настаивать не на чем буду. Только минимизировал бы текущий диапазон #30-#37. Как вариант допустим #34...#37. Нравится Sunrise с прошивкой MSX-DOS2. Думаю пересобирать все ПЗУ и не надо. Там же стандартные точки входа. Собирается низко уровневый драйвер. Так ведь? add: Интересно почему на ПЗУ идет /CS12? Вроде /CS1 должен быть.
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
26 Aug 2019 02:50 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Именно так. обкатать решение на MSX-EXT, а дальше уже может и пойдет в массы . на дешифраторе BeerIDE адрес А2 не задействован и есть вход свободный на ЛА2, как раз остается 0х34-37. да, только страница с драйвером нужна для сборки, но вот ее я и не смог собрать конечно ошибка, должно быть просто /CS1.
|
26 Aug 2019 03:18 |
|
|
Alekcandr
Doomed
Joined: 01 Oct 2007 10:30 Posts: 665 Location: Ukraine
|
Как так? Задействован. A2 идет на /CS PPI. Ну и отлично #34...#37 (0011 01XX). В принципе гал-ка тут и не тулиться. Но я не ищу легких путей. Задумал я на шине избавится от анахронизма /CS1, /CS2 и /CS12. А тут проще и универсальней чем гал-ка не найти. В принципе, что там стоит логика или гал-ка, на работу схемы это не влияет. Будем решать вопросы по мере их поступления. Вот тут такой вопрос. Смотрю, схема тактируется сигналом CLK (3.58МГц). Это частота ЦПУ. У меня в голове зреет (да не созреет) схемка турбо для ЦПУ. В общем CLK будет 7.16МГц. Работоспособность интерфейса SD сохраниться на частоте 7.16МГц?
_________________Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
|
26 Aug 2019 06:45 |
|
|
PVV
Doomed
Joined: 12 Feb 2016 13:39 Posts: 463
|
Схема от частоты зависеть не должна, завязок на время распространения сигналов в элементах в ней нет. Вопрос у меня вызывает все та же ТМ2 по цепи MISO. SD карта передает и принимает данные по разным фронтам CLK, а ИР24 все по одному фронту. ТМ2, тактируемая инверсным CLK, все решает корректно. Глюки без тм2 могут вылезти скорее при уменьшении частоты, а не увеличении. Предыдущий вариант схемы на 10МГц работал в СпециалистеМХ2.
|
27 Aug 2019 05:19 |
|
|
Who is online |
Users browsing this forum: No registered users and 1 guest |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|