nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 12:01



Reply to topic  [ 182 posts ]  Go to page Previous  1 ... 8, 9, 10, 11, 12, 13  Next
MSX в proteus 
Author Message
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
В описании на SD интерфейс из упоминаемой ранее, страниц 5 назад, схемы есть такой текст:
Quote:
- Disk Speed measured by DOSSCAN
HW V1 on Z80 3.58MHz mode : 40KB/Sec
HW V2 on Z80 3.58MHz mode : 130KB/Sec
HW V2 on Z80 5.37MHz mode : 180KB/Sec
HW V2 on R800 DRAM mode : 145KB/Sec

что за утилита DOSSCAN я не знаю, но цифры приблизительную картину показывают. При этом, в коде вся работа с SD в полностью развернутом виде, ни каких циклов, те для чтения 512 байтного сектора 512 раз повторяется чтение порта и тп...
Вообщем то, в драйвере nextor места много, и сделать аналогично проблем нет, может это и ускорит чтение (ну и на запись все аналогично же).


15 Aug 2019 13:56
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Переделал код, отвечающий за чтение 512 байтного сектора с мнемоник ВМ80 на z80, немного развернул цикл чтения этого сектора, и получил скорость 79КБ/с. Цикл записи сектора переделал аналогично, только как проверить скорость записи не ясно, однако она раза в два должна быть выше чем чтение, так получается :). На этом с доработкой драйвера остановлюсь. Интересно, что в emu этот же тест показывает вообще 94КБ/с, скорость ограничивает реальная карта, что ли?
Во вложении каталог с драйвером, который в Nextor нужно распаковать в папку Nextor-xxx/source/kernel/drivers/
и собранный бинарник вместе с конфигом для emu.


Attachments:
Nextor-2.1.0.SunriseSD.zip [58.99 KiB]
Downloaded 360 times
SunriseSD.zip [51.16 KiB]
Downloaded 340 times
19 Aug 2019 14:29
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
Видимо пора писать свой тест скорости и желательно что бы он работал на MSX1 и DOS1 :)

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


20 Aug 2019 04:06
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Не вижу смысла в новом тесте скорости. Для 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
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Как оказалось в коде драйвера, выложенного выше есть ошибка, при записи пишется только один сектор на реальной карте. Пришлось эту ошибку исправлять, а заодно попробовал выжать максимум скорости чтения.
Кстати говоря, тест скорости работает с чтением по одному сектору и реализация многоблочного чтения на тесте скорости ни как не отразилась, а вот запуск реальных программ стал заметно быстрей.
очень много бликов получилось, но видно 92КБ/с!
 
Image

в драйвере остался еще момент c работой SDHC карт, они определяются, но пока не работают.
Попался мне, вообще говоря, вот такой проект, там есть готовый драйвер для SD. Можно подсмотреть некоторые моменты в реализации работы с картой, чем я и воспользовался.
давно не показывал свою макетку:
 
Image

контроллер клавиатуры на МТ8816, pic12f675 и 74hc595, usb клавиатура работает в ps/2 режиме спокойно. Есть, правда один момент, при включении питания клавиатура не всегда проходит селфтест(не мигают светодиоды) и как ее из этого состояния выводить я не знаю. Переброс питания помогает, но это же не правильно... С чистой ps/2 клавиатурой этот же глюк присутствует, так что это не в usb дело. Никто с подобным не сталкивался, как лечить?


Attachments:
DRIVER.zip [68.22 KiB]
Downloaded 346 times
24 Aug 2019 03:21
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
Видимо пора мне записать в свой todo лист вашу реализацию SD – интерфейса. IDE карты меня поддастали в силу их опошления и ухода далеко вперед от параллельного интерфейса.

Как вам МТ8816? Мне нравиться такой себе мост между прошлым и настоящим. Работает просто замечательно с моей USB (нативной) клавиатурой.

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


24 Aug 2019 03:56
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
PVV wrote:
Есть, правда один момент, при включении питания клавиатура не всегда проходит селфтест(не мигают светодиоды) и как ее из этого состояния выводить я не знаю.
Баловался с ps/2 клавиатурой. Драйвер был даже без int (ардуино). Все получалось, и отослать, и принять, и инициализировать.

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


24 Aug 2019 04:29
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
На счет МТ8816 что то сказать сложно, просто работает, проблем нет :).
У меня с клавиатурой вопрос именно с ее первым стартом, сама клавиатура внутренний тест не проходит, не мигает своими тремя светодиодами и, соответственно, не отвечает на команды (экспериментировал с тремя USB и парой ps/2). Этот глюк не постоянно происходит, примерно раз на десяток включений. Сегодня, к примеру включал несколько раз, стартовала всегда... Если светодиодами мигнула, то дальше все работает отлично, я и CapsLock на ней зажигаю по нажатию, те обмен в обе стороны идет.
На счет SD.
Есть предложение сделать самостоятельный модуль, втыкаемый в слот msx машинки. Весь вопрос в адресах. Хочется сделать схему дешифрации максимально простой, на мелкой логике, без применения плис/гал. Вариант с адресацией в портах получается именно такой. Таким образом, берутся порты, к примеру, BeerIDE, ставим тм8/9 на управление ПЗУ Nextor/Sunrise и все готово. Схему могу нарисовать.
В зависимости от прошивки будет хоть BeerSD, хоть Nextor, хоть Sunrise (если удастся собрать его исходники, то, что ходит в сети на 2.04 я собрать не смог).

upd: прикинул схему, как то вообще все просто получается, необходимость U8(тм2) я так и не удосужился проверить (в исходной то схеме ее нет). Надо завтра включить SD без нее и посмотреть на стабильность работы, тогда вовсе 7 корпусов получится :).


Attachments:
MSX_SD.pdf [46.5 KiB]
Downloaded 349 times
24 Aug 2019 12:31
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Проверил работу без ТМ2, скопировал десяток файлов, запустил их, все ок. Так что похоже, что без нее можно обойтись...


24 Aug 2019 23:48
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
PVV wrote:
У меня с клавиатурой вопрос именно с ее первым стартом, сама клавиатура внутренний тест не проходит, не мигает своими тремя светодиодами и, соответственно, не отвечает на команды (экспериментировал с тремя USB и парой ps/2).
Я принудительно сбрасывал клавиатуру. Вот кусочек кода.
Code:
#include <ps2.h>

/*
 * Pin 2 is the ps2 data pin, pin 3 is the clock pin
 * Feel free to use whatever pins are convenient.
 */
PS2 kbd(3, 2);

void kbd_init()
{
  unsigned char ack;
  unsigned char val;

  kbd.write(0xff);  // send reset code
  ack = kbd.read();
  Serial.println(ack, HEX);
  val = kbd.read();  // self test is done
  Serial.println(val, HEX);
.
.
.

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


25 Aug 2019 04:02
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
У меня инициализация аналогично сделана. Я же пишу
Quote:
сама клавиатура внутренний тест не проходит, не мигает своими тремя светодиодами и, соответственно, не отвечает на команды

пока она свой тест не пройдет, что ей не отправляй, она не реагирует. Поразмыслил я сейчас на сей счет, и вот, что подумалось. Код для пика на 95% повторяет код от Галаксии, который в свою очередь на 95% повторяет взятый из сети, и там я таких проблем не встречал. У меня точка запитки питанием клавиатуры и вход на плату +5В на углах по диагонали платы, может в этом все дело...

Однако, тема с SD более интересна, какие есть идеи? так ли уж плоха выборка по портам 0х31 и 0х32?


25 Aug 2019 23:51
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
Если клавиатура не стартует после подачи питания c не подключенными data и clk (вроде так), тогда точно надо смотреть что там с питанием.
PVV wrote:
Есть предложение сделать самостоятельный модуль, втыкаемый в слот msx машинки.
Буду делать под себя (MSX-EXT). Если делать под MSX, надо еще добавить сигнал /BUSDIR.
PVV wrote:
Весь вопрос в адресах. Хочется сделать схему дешифрации максимально простой, на мелкой логике, без применения плис/гал.
Тут тоже мое личное мнение. Хотелось бы сохранить для себя такой конфиг.

#30...#33 - BEER IDE
#38...#39 - YM2151
#3F - SN76489

С другой стороны настаивать не на чем буду. Только минимизировал бы текущий диапазон #30-#37. Как вариант допустим #34...#37.
PVV wrote:
хоть Sunrise (если удастся собрать его исходники, то, что ходит в сети на 2.04 я собрать не смог).
Нравится Sunrise с прошивкой MSX-DOS2. Думаю пересобирать все ПЗУ и не надо. Там же стандартные точки входа. Собирается низко уровневый драйвер. Так ведь?

add: Интересно почему на ПЗУ идет /CS12? Вроде /CS1 должен быть.

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


26 Aug 2019 02:50
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Alekcandr wrote:
Если клавиатура не стартует после подачи питания c не подключенными data и clk (вроде так), тогда точно надо смотреть что там с питанием.
Именно так.
Alekcandr wrote:
Буду делать под себя (MSX-EXT). Если делать под MSX, надо еще добавить сигнал /BUSDIR.

обкатать решение на MSX-EXT, а дальше уже может и пойдет в массы :).
Alekcandr wrote:
Тут тоже мое личное мнение. Хотелось бы сохранить для себя такой конфиг.
#30...#33 - BEER IDE
#38...#39 - YM2151
#3F - SN76489
С другой стороны настаивать не на чем буду. Только минимизировал бы текущий диапазон #30-#37. Как вариант допустим #34...#37.

на дешифраторе BeerIDE адрес А2 не задействован и есть вход свободный на ЛА2, как раз остается 0х34-37.
Alekcandr wrote:
Нравится Sunrise с прошивкой MSX-DOS2. Думаю пересобирать все ПЗУ и не надо. Там же стандартные точки входа. Собирается низко уровневый драйвер. Так ведь?

да, только страница с драйвером нужна для сборки, но вот ее я и не смог собрать
Alekcandr wrote:
add: Интересно почему на ПЗУ идет /CS12? Вроде /CS1 должен быть.

конечно ошибка, должно быть просто /CS1.


26 Aug 2019 03:18
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
PVV wrote:
на дешифраторе BeerIDE адрес А2 не задействован
Как так? Задействован. A2 идет на /CS PPI.
PVV wrote:
есть вход свободный на ЛА2, как раз остается 0х34-37.
Ну и отлично #34...#37 (0011 01XX). В принципе гал-ка тут и не тулиться.

Но я не ищу легких путей. Задумал я на шине избавится от анахронизма /CS1, /CS2 и /CS12. А тут проще и универсальней чем гал-ка не найти. В принципе, что там стоит логика или гал-ка, на работу схемы это не влияет.
PVV wrote:
да, только страница с драйвером нужна для сборки, но вот ее я и не смог собрать
Будем решать вопросы по мере их поступления.

Вот тут такой вопрос. Смотрю, схема тактируется сигналом CLK (3.58МГц). Это частота ЦПУ. У меня в голове зреет (да не созреет) схемка турбо для ЦПУ. В общем CLK будет 7.16МГц. Работоспособность интерфейса SD сохраниться на частоте 7.16МГц?

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


26 Aug 2019 06:45
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Alekcandr wrote:
Вот тут такой вопрос. Смотрю, схема тактируется сигналом CLK (3.58МГц). Это частота ЦПУ. У меня в голове зреет (да не созреет) схемка турбо для ЦПУ. В общем CLK будет 7.16МГц. Работоспособность интерфейса SD сохраниться на частоте 7.16МГц?

Схема от частоты зависеть не должна, завязок на время распространения сигналов в элементах в ней нет. Вопрос у меня вызывает все та же ТМ2 по цепи MISO. SD карта передает и принимает данные по разным фронтам CLK, а ИР24 все по одному фронту. ТМ2, тактируемая инверсным CLK, все решает корректно. Глюки без тм2 могут вылезти скорее при уменьшении частоты, а не увеличении.
Предыдущий вариант схемы на 10МГц работал в СпециалистеМХ2.


27 Aug 2019 05:19
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 182 posts ]  Go to page Previous  1 ... 8, 9, 10, 11, 12, 13  Next

Who is online

Users browsing this forum: No registered users and 6 guests


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

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.