Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   ISA-8 контроллер SD карт (XT-SD)
RSS

ISA-8 контроллер SD карт (XT-SD)

Создалась тут меж делом железка....

<<Назад  Вперед>> Страницы: 1 2 3 4
Печать
 
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
В принципе, проблемы как таковой нет. Есть XT-IDE и есть китай-переходники IDE->SD. Вот и все что нужно для работы с SD-картой на XT. У меня оно так и работает.

Но решил сделать отдельную железку. Не то, что бы офигеть как надо, скорее просто нужно было куда-то утилизировать валяющуюся CPLD EPM3032 уже лет 5 как. Суть идеи проста - разгрузить процессор от ногодрыга, переложив это в CPLD. Байт в порт послали - он последовательно выдался на SPI. Из порта прочитали уже готовый байт.



На плате мы видим 2 (две) микросхемы - это 1533ИД7 в роли дешифратора порта и, собственно, CPLD EPM3032ALC44-10. Это вообщем то и все. Есть еще линейный стабилизатор 1117 (5в -> 3.3в) и немножко рассыпухи из блокировочных конденсаторов и пары-тройки сопротивлений на подтяжку SPI.

В порт данных пишутся или читаются данные. Порт управления и статуса объединен. При записи используются только 3 младших бита - бит 0 - установка скорости SPI, бит 1 - выбор CS, бит 2 - выбор CS2 или управление светодиодом. При чтении этого порта в 6 бите есть признак занятости BUSY (если CPLD сдвигает байт). В бите 7 есть признак наличия карты INSERT.

В качестве софта пока выступает слегка модифицированный драйвер SDPP .



Железяка проверена на Поиск-2, 386, Pentium 1. Полет нормальный.
IdeaFix
Гость

Ссылка

У меня есть кучка адаптеров "толстых" с CF на SD - ни с одной не смог загрузиться :( SD карты разные, от 16MB.

Кстати, а реально ли сделать не массовую реплику SCSI2SD дешевле оригинала?
Сейчас на форуме
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
CF не люблю, потому что цены какие-то нереальные. И не пользую. Да и вообще зачем переходник CF -> SD, если и то и то - флешка? Где вы CF этот взяли в качестве интерфейса?

А XT-IDE, что в Поиске, что в XT прекрасно работает у меня с такого типа переходником: https://ru.aliexpress.com/item...eLevelAB=0
IdeaFix
Гость

Ссылка

Tronix
У меня переходники несколько иные. Уж не помню откуда достались, но их много и по прямому назначению они бесполезны, ибо толще чем обычные CF - никуда не лезут :(

Дешевыми CF на небольшие объёмы закупился здесь же, всё-таки пассивный переходник радует - сам могу наколотить со второго раза переходник с CF на IDE :)

Но вот с дивайсами что по ссылке выше и с имеющимися небольшими SD (4-16MB из комплектров к старым фотикам) диск удаётся форматнуть, но не загрузиться с него нет :(
Сейчас на форуме
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
В общем случае достаточно затереть нулевой сектор (MBR) нулями, например в WinHex, дальше на целевой машине (например на XT или 386 или что там у вас) делаем все как с обычным HDD - fdisk, format c:, sys a: c:.
Залог успеха - не размечать флешку на винде. Размечать только на целевой машине.
andyTh
Гость

Ссылка

Это потолочная скорость обмена?
Больше выжать нельзя?
Сейчас на форуме
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
andyTh написал:
[q]
Это потолочная скорость обмена?
Больше выжать нельзя?
[/q]
Это DOS драйвер, написанный на C. Драйвер несет сам по себе высокую избыточность в необходимых телодвижениях. Плюс код на чистом C, без ассемблерных вставок. Вызов каждой процедуры это боль и страдание для 8088. Взгляните на это:

/* Single byte SPI transaction */
static
BYTE xchg_spi (BYTE dat)
{
  outp(OUTPORT,dat);
        while (inp(CONTROLPORT) & 0x40);
  return inp(OUTPORT);  /* Get received byte */
}


Превращается в эту махину:

   ;  
   ;  BYTE xchg_spi (BYTE dat)
   ;  
  assume  cs:_TEXT
xchg_spi  proc  near
  push  bp
  mov  bp,sp
   ;  
   ;  {
   ;    outp(OUTPORT,dat);
   ;  
  mov  dx,word ptr DGROUP:_OUTPORT
  mov  al,byte ptr [bp+4]
  out  dx,al
@5@58:
   ;  
   ;          while (inp(CONTROLPORT) & 0x40);
   ;  
  mov  dx,word ptr DGROUP:_CONTROLPORT
  in  al,dx
  mov  ah,0
  test  ax,64
  jne  short @5@58
   ;  
   ;    return inp(OUTPORT);  /* Get received byte */
   ;  
  mov  dx,word ptr DGROUP:_OUTPORT
  in  al,dx
   ;  
   ;  }
   ;  
  pop  bp
  ret  


Поэтому отвечая на вопрос - нет, это скорость скорее плинтусная, чем потолочная.
Но этот драйвер позволил в кратчайшие сроки проверить просто работоспособность идеи "в целом". В дальнейшем, к карте планируется собственный BIOS, естественно на ассемблере, который будет позволять загружаться с карты, работать с ней прозрачно, и не жрать память как в случае с ДОС-драйвером.
IdeaFix
Гость

Ссылка

Даёшь NVME SSD на XT?! :biggrin:

Ну, а если серьёзно, будет ли в дальнейшем доступно для приобретения сие устройство?
Сейчас на форуме
Посредственный пользователь
Advanced Member


Откуда: $pb
Всего сообщений: 1469
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
4 июля 2014
IdeaFix написал:
[q]
SD карты разные, от 16MB
[/q]
Я меньше 2гб в руках не держал. Что за sd-мелкие карты по объёму?
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
Посредственный пользователь написал:
[q]
Что за sd-мелкие карты по объёму?
[/q]
Реально 16 Мб. Темная эра технологий :)

IdeaFix
Гость

Ссылка

Tronix Это MMC, у меня именно SD, тоже кэнон кстати. Думаю, нет смысла выкладывать фото.
Сейчас на форуме
andyTh
Гость

Ссылка

Это хорошо. Для одной полугипотетической поделки я планировал в качестве диска
SD карточку. Скорость рассчитывал получить хотя бы на уровне ST157. Это где то
400-500к по памяти. Увидев тут 30 опечалился. Но вы подарили надежду на светлое
будущее. :)

ПыСы
У меня тоже есть где то сапоповская карточка на 16
Сейчас на форуме
Кай
Гость
Divine Assassin

Откуда: извне (from beyond)
Всего сообщений: 13709
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2010
IdeaFix

Хорошая попытка. Попробуйте ещё. :) Для подготовки повторной моей характеристики у Вас есть 30 дней.
Mihail1810
Advanced Member


Откуда: Екатеринбург
Всего сообщений: 1565
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 дек. 2014
Макетка зачетная.
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
Mihail1810 написал:
[q]
Макетка зачетная.
[/q]
Да, удобная. Не моя. Продается на соседнем ресурсе.
justontime
Full Member


Откуда: СПб
Всего сообщений: 236
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
10 сен. 2016
andyTh написал:
[q]
Для одной полугипотетической поделки я планировал в качестве дискаSD карточку. Скорость рассчитывал получить хотя бы на уровне ST157. Это где то 400-500к по памяти. Увидев тут 30 опечалился.
[/q]
Все зависит от того, как реализован интерфейс, и на какой машине крутится. Как сказал Tronix, используется крайне неэффективный драйвер. Кроме того:

- медленная машина
- не максимальная тактовая частота карты
- интерфейс SPI вместо полного

Без особых усилий скорость поднимается в разы (на одной и той же машине). С определенными усилиями - раз в десять. Дальше - уже намного сложнее.

Моя карта на стандартной XT без использования DMA дает скорость около 180 к/секунду. Скорее всего, если постараться, мою схему/софт можно запихнуть в схему Tronix'а и получить аналогичную скорость. Думаю, что при использовании машины побыстрее (типа AT286 12 MHz) можно получить скорость под 250 - 300 к/с.

Я не до конца доделал работу через DMA, но то, что заработало, позволило оценить возможную скорость, на стандартной XT должно получиться около 300 к/с. Но такую схему в 32 макроячейки не запихнуть (как минимум, это не для моих способностей).

Это все скорости для работы с картой по SPI. Теоретически, при работе по полному интерфейсу скорости могут быть принципиально другие, но это уже совсем другая история.
alecv
Advanced Member


Откуда: Санкт-Петербург
Всего сообщений: 5545
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 окт. 2004
Tronix Забавно, что если в XT CF-Lite засунуть китайский переходник CF>-->SD, то скорость получается около 150Kb/s на оригинальной IBM XT 5160 4.77MHz. В CF-Lite карточка CF (и переходник соответственно) работает в 8-битном режиме ATAPI-4.
Единственная проблема, что переходник стоит 6..7$...
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
alecv Да, мне кажется 150KB/s это очень хороший результат для 4,77 MHz. Даже слишком хороший, так как граничит с теоретической скоростью шины по грубым прикидкам. Мне самому интересно проверить быстродействие моей карты. Но я пока жду плату ISA ROM Board . Сам флешку паять на плату заленился.
Приедет - попробуем набросать BIOS для карточки, там и посмотрим на быстродействие. Тем более justontime любезно поделился своими наработками для своей мега-карты на MAX 10 .

А, забыл еще про фишку одну - карта позволяет работать с ДВУМЯ SPI. Ну первое и основное - понятно, SD-карта. А второй SPI свободен. Сюда можно невозбранно прикрутить, например, RTC Clock DS1347 или DS1347 или любой другой SPI RTC.
alecv
Advanced Member


Откуда: Санкт-Петербург
Всего сообщений: 5545
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 окт. 2004
Tronix Может просто сделать "драйвер" в составе XT IDE UNIVERSAL BIOS ? Там драйвера железа выделены в отдельные модули.
Но программировать придется на NASM, у него синтаксис довольно сильно отличается от MASM и надо привыкнуть.
http://www.xtideuniversalbios....ontrollers
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
alecv Может быть.
Filin
Advanced Member


Откуда: Киев
Всего сообщений: 466
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 сен. 2017
Tronix написал:
[q]
alecv Да, мне кажется 150KB/s это очень хороший результат для 4,77 MHz. Даже слишком хороший, так как граничит с теоретической скоростью шины по грубым прикидкам
[/q]
Не знаю, насколько можно доверять результатам CheckIt, но у меня на Поиске с V20 показывает 366КБ/с
http://zx-pk.ru/threads/20977-...post940183
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
Filin написал:
[q]
Не знаю, насколько можно доверять результатам CheckIt, но у меня на Поиске с V20 показывает 366КБ/с
[/q]
А вот эта программа https://www.lo-tech.co.uk/wiki/DOS_Disk_Tester ?
https://www.lo-tech.co.uk/downloads/benchmarks/disktest.zip
alecv
Advanced Member


Откуда: Санкт-Петербург
Всего сообщений: 5545
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 окт. 2004
Filin Если установлен NEC V20 и BIOS XT IDE скомпилирован с поддержкой i80188 (команды с REP INS/OUTS) то это дает очень большой прирост производительности.
Filin
Advanced Member


Откуда: Киев
Всего сообщений: 466
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 сен. 2017
Tronix написал:
[q]
А вот эта программа https://www.lo-tech.co.uk/wiki/DOS_Disk_Tester ?
[/q]
Вот. Возможно влияет контроллер накопителя, там наверняка есть механизмы кэширования.
Посредственный пользователь
Advanced Member


Откуда: $pb
Всего сообщений: 1469
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
4 июля 2014
Filin написал:
[q]
насколько можно доверять результатам CheckIt
[/q]
Tronix написал:
[q]
эта программа https://www.lo-tech.co.uk/wiki/DOS_Disk_Tester ?
https://www.lo-tech.co.uk/downloads/benchmarks/disktest.zip
[/q]
Надо замутить бенчмарк для Поиска. Требование:32-40кб озу,чтоб в минимальной конфигурации запустить под досом.
Даже толкого теста быстродействия нет. Ни одна прога не работает ,кроме checkit и старых pc-info/benchmark pcmag.
Если развяжусь с хардвейрными траблами,то буду пробовать написать.
На турбо барсике писал,а выглядело это так:

Прикрепленный файл (IMG_20171204_205805.jpg, 0 байт, скачан: 30 раз)
Filin
Advanced Member


Откуда: Киев
Всего сообщений: 466
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 сен. 2017
Кстати, после разгона CPU показатели улучшились

Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
По совету newold86 избавился от необходимости постоянного контроля флага занятости через чтение статусного порта. Вместо этого в логику CPLD внесено управление линией IO CH RDY - когда происходит запись или чтение в/из порта данных, а SPI еще не сдвинул до конца биты линия IO CH RDY удерживается. Как только закончил сдвиг, линия отпускается и поехали дальше. С драйвером никаких оптимизаций не производилось, за исключением убранного за ненадобностью чтения статусного порта.



Плата ISA ROM Board пока не готова, поэтому по BIOS подвижек никаких нет. Только старый драйвер на чистом Си.
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
Просто заменил Си-шные процедуры чтения-записи на ассемблерные вставки.

ASL
Advanced Member


Откуда: Тверь
Всего сообщений: 564
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
13 авг. 2015
А если поставить вторую 3032 и замутить на ней дешифратор в том числе и для драйвера-биоса, те будет две 3032 и пзу?. А то у меня этих 3032 штук 100 наверное есть.
Могу вам бесплатно пяток выслать для экспериментов. Надеюсь прошивка будет доступна.
justontime
Full Member


Откуда: СПб
Всего сообщений: 236
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
10 сен. 2016
Можно еще CheckIt’ом скорость померить ? Я свою плату только им измерял - интересно, как показания соотносятся.

Еще не совсем понятно, почему чтение медленнее записи...
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
ASL написал:
[q]
А если поставить вторую 3032 и замутить на ней дешифратор в том числе и для драйвера-биоса, те будет две 3032 и пзу?
[/q]
Да как-то неизящно получается. Для дешифрации ROM-BIOS понадобится еще одна 1533ИД7, итого на плате будет две ИД7, 3032 и пзу. Или уж тогда надо 3064 одну брать, но они как-то мало распространены.


justontime написал:
[q]
Еще не совсем понятно, почему чтение медленнее записи...
[/q]
Ну у меня же чтение из порта данных не инициализирует сдвиг SPI. То есть при чтении сначала нужно что-то записать в порт данных, а потом прочитать, типа так:

mov al,0FFh
out dx,al
in al,dx
stosb

То есть два IO - запись и чтение. При записи - только запись.
justontime
Full Member


Откуда: СПб
Всего сообщений: 236
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
10 сен. 2016
Tronix написал:
[q]
Да как-то неизящно получается. Для дешифрации ROM-BIOS понадобится еще одна 1533ИД7, итого на плате будет две ИД7, 3032 и пзу.
[/q]
Насколько я понял, была идея использовать 3032 в качестве дешифратора...
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
justontime написал:
[q]
Насколько я понял, была идея использовать 3032 в качестве дешифратора...
[/q]
Я понял, но смысл? ИД7 подешевше и доступнее будет, чем EPM3032. Я понимаю, у ASL их много. Да можно конечно и вторую EPM поставить, я не против -)

А насчет checkit - не получится пока. Драйвер досовый, он же только раздел в досе прописывает. То есть не видится системой как жесткий диск.

Надо делать сдвиг при чтении. ....
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
С трудом избавился от необходимости при чтении записи в порт. Всё воскресенье проковырялся в трех строчках верилога - все нормально работает, но в какой-то момент при чтении сектора сдвигает не 8 а 7 бит и потом опять нормально, по восемь бит. Но сегодня после работы вроде победил с наскока.

Сильно скорости чтения это не прибавило, но это уже скорее драйвер так написан на Си. С аппаратной точки зрения (глядя на анализатор) все работает максимально быстро. Будет BIOS на ассемблере, будут интереснее тесты.

<<Назад  Вперед>> Страницы: 1 2 3 4
Печать
Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   ISA-8 контроллер SD карт (XT-SD)
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS