PDA

Просмотр полной версии : SPI контроллер для Ориона на дискретных ИС



Error404
14.02.2017, 14:01
Просыпайтесь. :) А то весна уже скоро.
Предлагаю обсудить SPI контроллер для Ориона на дискретных ИС.
На данный момент для Ориона есть 2 поддержанные реализации подключения SPI (а точнее SD-карт, т.е. усеченного SPI) - их схемы во вложении.

1) Схема от n8vem (тупо регистр на запись и буфер на чтение) - самая очевидная и самая медленная, в ней все импульсы реализуются программно. Скорость примерно в два-три раза медленнее дисковода (за исключением позиционирования).

2) Схема цельнотянутая с MSX (запись побитно программно, чтение автоматизировано через регистр, но 1 бит = одна команда ЦПУ). Скорость примерно в полтора раза медленнее дисковода (за исключением позиционирования).

Т.е. обе не сахар по быстродействию. Нужна схема с аппаратным сдвигом и чтением/записью данных целым байтом. Наблюдая за похожими проектами (HardwareMan, PVV) родилась мысль попробовать собрать аналог аппаратного SPI. Вот что получается прикидочно: схема по сложности равная MSX, но работать будет со скоростью близкой к авторскому IDE от PRO (ну или NEMO IDE, т.е. даже еще быстрее чем IDE на ВВ55) или схеме с внешним микроконтроллером:
https://lh3.googleusercontent.com/3FNazrs_gIhw-eZV987qrqi9e_k3cqLEkoxGP7jnNpdq-BbwuBgnn4qR10rvH7rgtH7UnAVzqc7n4FMZIYqNHFCU8EM2KG2 HaG4JWCOq3ryT1XNmv1HhpfHuqF8JpEfAujWtayCC_D-hJ0U2zTXq2qsW7hqQlH83xsRWe45hlH0ibVL_f6ZBoHKv8S2Ly fB1BzAySPGSvfQkhhzS5AFsY4shPb1jZDhNZ3i2534f3iI-Ge-zC0h04h78K66mFGtaVMr9xjwmcAfK5HD78Kq43MTr1aJEQLegT 03zt3eoUx9z2efMVZYqorwW3EEx9fSk83-7D0FeDPu1akUHUwesNpC4SiZ8GrszH8qUGYmR8bos-ORP-92-ZtLs_ceuF5vW1Ji67tNEO8IY_tMNGuzaKWJCcec-wWlkfEp2XSMdaKau_cZJ_PIyW0ZaZcUCRCo8qujLZreuPFBc12 9CZqH_fLtrZO0EYDGXUdiRiHlOL740lkIzaBf46U3G1Hggtk5L eVw3Psbkr2e12ohv1nKFgnS-IBjixXRLV7e3kwahxoNy-x5jiNx5Abpu3MdPtR-C4w6C081RKOUSCYFu77fSUNAsyhJ80Pjsm5_eLp8zGhULXo4JY rMscHQimK5JhmpvU56E-iodCxh7XfeIO8LC0n4mbl4qUfrMdWO2NQ5Prn4-=w774-h512-no


В полном варианте схемы 9* корпусов с полным дешифратором (2* корпуса, в принципе у кого-то сократится на уже имеющийся) и 2 чипа на регистр выбирающий длину пакета (1..8 бит), скорость передачи (одну из двух) и SPI-устройство от одного до трех (регистр дает выбрать длину пакета менее 8 бит, чтобы подключать устройства с пакетом не кратным 8 битам, например SPI-часы и датчики многие такие). Если ограничиться только одной SD-картой (и на ИЕ7 фиксированно поставить предустановку в 7 ) и условно выкинуть дешифратор портов, то в контроллере остается 5(?) корпусов. И в любом варианте контроллер получается меньше чем контроллер НГМД или IDE варианта Nemo-like (у схемы IDE на ВВ55, понятно, конкурентов по простоте нет :) )

В подпрограмме spi_sel инициализация ИЕ7 (холостой прогон клоков чтобы сработал перенос и защелка предустановки из регистра) делается при сначала невыбранных устройствах.

Предлагаю обсудить - чтобы понять косяки еще до пайки (т.к. паяю и отлаживаю железки я долго и грустно, системами моделирования не владею, что явно видно по рисунку :) ).
Аппаратный SPI да на несколько устройств - это вообще весчь! Можно подключить не только SD-карту, но и дешевые часы-RTC и контроллеры Ethernet (https://www.aliexpress.com/item/ENC28J60-SPI-interface-network-module-Ethernet-module-mini-version/32341839317.html?spm=2114.13010308.0.0.Qfz5Xx), различные датчики типа термометров и т.п., причем все это на общую шину MISO/MOSI/SCK - только селекты раздельные подать.

HardWareMan
14.02.2017, 14:40
Я строил дискретную схему исходя из того, что мне доступно. ИР24 нет, а вот ИР13 есть. В остальном поддерживаю.

Error404
14.02.2017, 14:56
Я ир24 для себя вообще недавно открыл, листая на ночь для заснуть справочник. :) Оказалась очень удобной: и сдвиг в любую сторону с вводом, и хранение с параллельной загрузкой и чтением, и шину умеет в Z ставить. В Москве много где продается, рублей по десять, в чипадипе негуманных 28 рублей стоит (как обычно у них - втридорога)

DIMKA55
14.02.2017, 15:24
А программно это чем поддерживается?

tol123
14.02.2017, 16:35
Наверное в мониторе загрузчик будет. Для N8vem и msx есть мониторы ,а из под Ордос загрузчик.

Denn
14.02.2017, 17:13
SDHC - это хорошо. Быстрая поддержка и на дискретах - вообще прекрасно. С удовольствием понаблюдаю за развитием :)

У меня идея сабжа немного другая, она как-бы чуть меньше по религии :) А именно, поручить МК всю "черновую" работу с SDHC, т.о. освободить 8-битку от кучи рутины, отнимающей драгоценное ОЗУ. В итоге принцип такой: 8-битка видит регистры (данных, команд, состояния), также имеется небольшое СОЗУ для хранения данных, команд и сектора (512 байт, возможно нескольких секторов, т.к. СОЗУ обычно 2 или 8 Кб, почему бы не закэшировать туда сразу несколько? :)). 8-битка пишет в СОЗУ/регистры необходимые данные, и МК в фоне начинает исполнять команду. В это время 8-битка покуривая и попивая кофе чекает регистр состояния, и если всё готово, то забирает либо готовые данные, либо код ошибки (если что-то пошло не так). На МК ложатся: определение карты, хэндшейкинг, хранение ID-сессии, алгоритмы чтения/записи сектора, форматирование... в общем, весь низкий уровень.
8-битка работает на уровне: есть/нет SDHC, записать/считать целевой сектор.

Сопсно, в чём профит такого решения:

- полностью асинхронная работа (нет привязки к быстродействию 8-битки, МК молотит с картой на своих скоростях, 8-битка пишет/читает данные на своих);
- есть возможность использования быстрого 4-битного протокола с картой, вместо черепашьего SPI;
- 100500 байт кода обслуживания протокола с SDHC не занимают ОЗУ 8-битки;
- при выходе новых карт/стандартов, просто меняется прошивка МК, 8-битка об этом и знать не знает;
- схемотехника минимальна по кол-ву корпусов (СОЗУ, ПЗУ /логика/, МК, преобразование уровней 5в<->3в).

Вроде МК как-бы мимо религии, но не более чем сама SDHC, у которой внутрях тот же МК :)

tol123
14.02.2017, 17:32
Интересно конечно. Жаль только что стандарт не "утвержденный", в каждом случае свой.

Error404
14.02.2017, 18:36
Интересно конечно. Жаль только что стандарт не "утвержденный", в каждом случае свой.

Утверждающие на работу не вышли. :)
На самом деле для новых устройств, которые уже в 21 веке пошли (когда Орион уже сошел с дистанции), нет никаких ограничений (в виде авторских планов). Тут, думаю, кроме нас самих некому задавать что и как будет. Старый диапазон устройств не трогаем (там устройств то - полдюжины едва наберется), а о новых договоримся.

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


А программно это чем поддерживается?

Пока ничем. Главное чтобы железка заработала (она пока только на бумаге). Если говорить за SD-карты, то программно разные схемы отличаются как раз таки лишь низовыми подпрограммами записи и чтения байта (которые на картинке). Меняешь их, а все остальное работает как надо.

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


SDHC - это хорошо. Быстрая поддержка и на дискретах - вообще прекрасно. С удовольствием понаблюдаю за развитием :)
У меня идея сабжа немного другая, она как-бы чуть меньше по религии :) А именно, поручить МК всю "черновую" работу с SDHC, т.о. освободить 8-битку от кучи рутины, отнимающей драгоценное ОЗУ.


Китайцы делают нечто подобное (https://ru.aliexpress.com/item/Promotion-44-Pin-Male-IDE-To-SD-Card-Adapter/32623277221.html) для эмуляции IDE(ATA) через контроллер к SD-карте. Я даже покупал такой адаптер и пробовал его на Орионе-ПРО (http://zx-pk.ru/threads/25327-periferiya-quot-orionpro-quot.html?p=891186&viewfull=1#post891186). На схеме с ВВ55 он запустился, а на "НЕМО"-IDE авторском - не захотел. В этом смысле схема на контроллере с меньшим количеством интерфейсных линий (для IDE надо все 24) и более простым протоколом чем ATA (чтобы не было такого как у китайцев "тут работает, тут нет"), вполне будет годна.

Denn
15.02.2017, 12:28
Error404, на схеме из заглавного поста фигурирует сигнал "/iorq". Я правильно понимаю, что владельцы классического Ориона (на ВМ80А) курят бамбук? :)

Error404
15.02.2017, 12:46
Error404, на схеме из заглавного поста фигурирует сигнал "/iorq". Я правильно понимаю, что владельцы классического Ориона (на ВМ80А) курят бамбук? :)

Не, просто я навскидку не помню как выбираются порты по OUT на классике. В частности и поэтому дешифратор выделен отдельным блоком - нет предпочтений как оно должно быть. Например для ПРО вроде принято ВУ адресовать как порты, а для Ориона-128 как память диапазона F7xx, и дешифратор будет другой. Самой схеме надо два порта, а как они будут выбраны пока не важно (схема в процессе осмысления, пока не понятны более критичные вещи - например, прямым или инверсным SCK надо тактировать сдвиг у ИР24).

OrionExt
16.02.2017, 21:57
SPI контроллер Ориону нужен. И тут не нужно ограничиваться сд-картами. Если много чего вкусного для подключения. И повесить его на порт. Только не на память. Ее и так нет (64 кб). До DMA контролеров еще долгий путь.

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

К580 отлично общается с портами. Это не процессор от Мотороллы (да простят меня фанаты Мото).

Denn
16.02.2017, 23:31
К580 отлично общается с портами.

...в ЮТ-88. А в Орионе128 - через одно место :)

alx32
20.02.2017, 07:47
Это да, в классическом Орионе порты всё равно отображены на память...

HardWareMan
20.02.2017, 08:14
Вы кстати да, сделайте контроллер шины MirkoBUS (https://www.mikroe.com/mikrobus/). Много кто (в том числе и я) скажут вам спасибо.
http://savepic.ru/12962362.jpg
Для начала хватит SPI и несколько GPIO. Ну а в будущем бы полный спектр (UART и I2C).

Error404
20.02.2017, 20:59
Вы кстати да, сделайте контроллер шины MirkoBUS (https://www.mikroe.com/mikrobus/). Много кто (в том числе и я) скажут вам спасибо.
http://savepic.ru/12962362.jpg
Для начала хватит SPI и несколько GPIO. Ну а в будущем бы полный спектр (UART и I2C).

полная реализация такой шины - всех протоколов, как раз дело для микроконтроллера (современные МК на борту как раз такие интерфейсы имеют "искаропки', ничего выдумывать не надо), на дискретных ИС будет гораздо более громоздко, а значит теряет смысл. Что до только spi, то да - можно вывести на совместимый разъем. Я так понял эта шина по большей части микрочиповская поляна? мне такое на Али не попадалось, оно есть там? прицениться...

HardWareMan
21.02.2017, 07:04
Error404, протоколы реализовывать не надо, это удел софта. Нет, не микрочипа. А Микроэлектроники. (https://shop.mikroe.com/click)

OrionExt
04.03.2017, 01:47
Встряхну Орион тему. Хотя не совсем по делу.

Как там вм80 поживает на Орионе. Без портов то. Цена вопроса пару мелко схем.

А тут уже в других темах куют. Новую платформу для Ориона.

Error404
04.03.2017, 11:39
А тут уже в других темах куют. Новую платформу для Ориона.

А что за платформу?

OrionExt
05.03.2017, 23:17
А что за платформу?
Ну как же, а вот (http://zx-pk.ru/threads/25424-spetsialist-zamena-8080-na-8085.html?p=903068&viewfull=1#post903068):)

Error404
06.03.2017, 09:44
Ну как же, а вот (http://zx-pk.ru/threads/25424-spetsialist-zamena-8080-na-8085.html?p=903068&viewfull=1#post903068):)

Ну, платформой называть это слишком громко. :) Это мои эксперименты по результатами прочтения темы "Самодельный компьютер на Z80 и не только" с микрокомпиками, причем пока еще только на бумаге. Просто поскольку цель не только попаять, но и что-нибудь на нем позапускать, я его планирую максимально приближенным к тому, на что у меня имеется софт - Ориону.

OrionExt
06.03.2017, 18:11
Микрокомпик - это прекрасно:) А если еще и программы будут - вообще замечательно.

Будет повод с этого микрокомпа сделать модульную конструкцию. А то мои потуги разобрать классический Орион на модули закончились неудачей.

Тут пару моих мыслей.

ПЗУ ставить по стандартной схеме Ориона. ПЗУ как я понял, используется как бут-лоадер и дальше отключается.

Мепер на регистре F9 пока оставить как в оригинале. Может его последним битом отключать, если поставить Z180 вместо Z80. У Z180 свой мепер, которым можно воспроизвести аналогичную конфигурацию памяти на регистре F9.

Пока остановлюсь, тут главное начать все это реализовывать в железе. А дальше и перепаять не сложно на макетке:)

OrionExt
09.03.2017, 01:55
Думал, думал… На новую платформу много энтузиастов не как не заманить. Главное старых не отпугнуть/растерять. Такая тенденция на всех 8-битках.

Порты F9, FB и т.п. трогать не надо. Пусть будут как есть. Сделать миникомп. Да пусть даже без экрана, только последовательный порт. Дальше и экран добавить можно. Продумать модульный биос (как в MSX), а не очередной РОМ-диск. Интересная конструкция получиться:)

Error404
02.04.2017, 23:16
В качестве разминки, на плате контроллера IDE Ориона-ПРО спаял схему N8VEM (в последнем выпуске на этой плате есть монтажное поле и посадочное место под разъем SD-карты). Цена вопроса 1 корпус ЛЛ1, 1 корпус ТМ9 и 1 разряд (бит) любого буфера с Z-состоянием (в моем случае АП4). Работает чудесно с имеющимся ПО (по LD (F762) - из режима Орион-128), запустилось с первого тыка. Цель была проверить как работает резисторный согласователь уровня SD, стаб 3.3V, да и вообще на рассыпухе я SD еще не подключал - ХЗ как оно там, все ПО писалось в эмуляторе. Дальше соберусь с духом и таки распаяю схему SPI. Все же тяжко дается МГТФ, не то что в плату детальки впаять.

OrionExt
02.04.2017, 23:28
Мгтф по старой школе. Да ну его нафиг. Сам 3 месяца, как это все упросить. Сук у буржуев получается (не мгтф). А куда деваться) С принтером у меня фейл произошел (рационализаторы китайцы, черти). … бамбук. А руки то чешутся)

Tronix
03.04.2017, 08:02
Товарищи, а что такое clock1 и clock2 по схеме? Мы тут просто присматриваемся то же самое на Поиск прикрутить...

Error404
03.04.2017, 11:56
Товарищи, а что такое clock1 и clock2 по схеме? Мы тут просто присматриваемся то же самое на Поиск прикрутить...

С древних времен первых SPI-устройств есть требование инициализацию устройства производить на начальной скорости соответствующей такту регистра SPI в 400кГц. На такой скорости с гарантией работают древние SD/MMC-карты и все небыстрые устройства типа часов (я присматриваюсь к DS1302), различных датчиков (температуры, освещения и т.п. - их для ардуин в ассортименте).
В то же время многие современные устройства типа SD-карт, сетевых карт работают и на скоростях куда более высоких (SD до скоростей соответствующих 20-40 Мгц).

Поэтому я планирую в схему подавать две частоты тактирования регистра SPI и разрядом порта управления выбирать одну из двух частот тактирования (clock1/clock2).
В Орионе-ПРО на системный разъем выводится 10Мгц (в орионе-128 тоже такая частота есть и вывести ее на разъем не проблема), если ее поделить на 16 на ИЕ5 (самое простое что приходит в голову чтобы не загромождать), то получим вторую частоту в 625кГц - близко к требуемой 400кГц, для любых устройств пойдет. А с SD-картами буду работать на 10Мгц, по отзывам такую частоту тянут все современные карты.

Если частота SPI-регистра равна частоте процессора Z80 (который ЕМНИП делает IN за 11 тактов), то скорее всего SPI будет успевать сделать 8 сдвигов между соседними IN/OUT и не потребуется вставлять NOP между ними. Это уточнится при проверка "в железе".
А в Орионе процессор нигде не дотягивает до 10М (в т.ч. и в ПРО в режиме 10М делаются 2-4 такта wait при обращении к памяти и портам).

HardWareMan
03.04.2017, 13:46
В Орионе-ПРО на системный разъем выводится 10Мгц (в орионе-128 тоже такая частота есть и вывести ее на разъем не проблема), если ее поделить на 16 на ИЕ5 (самое простое что приходит в голову чтобы не загромождать), то получим вторую частоту в 625кГц - близко к требуемой 400кГц, для любых устройств пойдет.
Практика со Специалистом показала: не для любых устройств пойдет. На 500кГц не проверяли. Ниже 400кГц работает железно.

Error404
03.04.2017, 21:54
Практика со Специалистом показала: не для любых устройств пойдет. На 500кГц не проверяли. Ниже 400кГц работает железно.

А что не работало? Для статистики.

HardWareMan
04.04.2017, 07:18
Карта не инициализировалась. Я не знаю, с чем это было связано. Возможно с неправильной настройкой самого SPI. Но эти же самые настройки всегда 100% работали на "проблемных" картах, если инитить их на частоте ниже 400кГц. У меня, правда, не было возможности тестировать с шагом в 1кГц, поэтому точную границу не подскажу. Частоту брал из стандартной сетки Специалиста и простым каскадным делением на 2.

Tronix
04.04.2017, 20:15
Я хочу в Altera EPM3032 это упрятать. Она 3.3V, но толерантна к 5V TTL. То есть не надо никаких валящих фронты резистивных делителей. Одна сторона смотрит в SPI напрямую в устройство 3,3V, другая напрямую в 5 вольтовую ША/ШД. Без всяких буферов. Тупо одна EPM-ка стоит и LDO 1117. Все, больше деталей нет. Ну в случае Поиска, конечно, еще ПЗУ-ха с BIOS который int13 эмулирует для sd, ну и АП6 на шину данных. Про Орион ничего не знаю, звиняйте дядьки. Но я думаю даже в протеусе протестить на днях. Схема то - огонь! -)

AndyD
09.09.2017, 16:48
Я хочу в Altera EPM3032 это упрятать
нифига не влезет ,в epm3064 без лелителей частоты только только,я пробовал и почти получилось в 2шт 3064 ,в итоге взял более емкую epm7160 что была в загашнике и вот что получилось https://www.youtube.com/watch?v=G_PTUI1Jxac&feature=youtu.be

OrionExt
09.09.2017, 17:00
Х.з. простые решения до конца не изучены в силу лени авторов. Вот MSX сектор читается простой инструкцией LDI (или аналогичной).

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

На двух GAL-ах делали чудеса, а сейчас обленились.

HardWareMan
09.09.2017, 17:12
нифига не влезет ,в epm3064 без лелителей частоты только только,я пробовал и почти получилось в 2шт 3064 ,в итоге взял более емкую epm7160 что была в загашнике и вот что получилось https://www.youtube.com/watch?v=G_PTUI1Jxac&feature=youtu.be
Это ты просто не умеешь ПЛИС готовить. Все там влазит в 3032, в притирочку, но влазит.

AndyD
09.09.2017, 17:13
На двух GAL-ах делали чудеса
по приведенной схеме 36 macrocells получается,вот проект,не пугайтесь SMUC2 это я за основу брал для обучения,а название осталось

Error404
10.09.2017, 12:32
вот что получилось https://www.youtube.com/watch?v=G_PTUI1Jxac&feature=youtu.be

Привет!
Расскажи пожалуйста, что именно в итоге сделано в ПЛИС? Потребовалось ли вносить какие-то изменения в схему или подпрограммы выборки/записи/чтения? Судя по примененной в проекте ИР24 (74HC299), схема на ней (VHD проект посмотреть нечем). Кстати, хостинг savepic.ru умер (что очень печально - свои схемы я хранил на нём), я сегодня перезалил схему в первом посте в ГуглКартинки - схема в базисе использовалась эта? (а то у меня еще был более ранний вариант где MISO не был сдвинут на второй половинке ТМ2)

А то я как тот котэ с видео - "шо це було?" :), из видео понял только что в качестве хоста применена ПентЭва, и по всей видимости SPI-контроллер применен для чтения с SD-card (так? как включен? SMUC2- это что?). Кстати, как в софт ПентЭвы интегрирована поддержка этой схемы - там драйвер или что-то более серьезно переписано? Разработка еще где-то в бложеке/форуме описывалась?

Сам я схему так и не спаял, и не известно когда спаяю - болею уже полгода почти (артрит, здоровья хватает еле-еле на поработать на работе). Но еще не отказался от идеи, вылечусь - вернусь к теме.

AndyD
10.09.2017, 13:12
Привет!
Привет,выздоравливай уже.
Спасибо за схему,она меня толкнула на изготовление сего девайса.
Про плату: в альтере аппаратный SPI к которому подцеплен mp3 декодер vs1011e,SPI тактируется от 12мгц кварца,на декодер музыка кидается с тактом 3мгц играет все битрейты 8-320кбит/с.Читается музыка средствами WC с карты Эвы,написан плагин под WC.
По поводу твоей схемы: к сожалению я ее в действии не попробовал,хотя симулировал в кактусе, очень уж мне хотелось написать на Verilog(первый проект на плис у меня) ,прошивка написана на верилоге ,занимает пока 67ячеек,декодер адреса 16бит порты #043B-данные ,#053B-управление, 2режима клока спи 1.5мгц и 3мгц , может рулить 4мя спи слейвами,
До этого делал на 2х 3064 ,в одной декодер адреса и клок генератор,во 2й сам спи ,2ая висла по непонятным причинам,видимо мгтф не для таких частот.
Доделаю все выложу на форум.
Порты и идею взял здесь http://spectrum.alioth.net/doc/index.php/ZX_SPI

Error404
05.12.2017, 13:58
В качестве разминки, на плате контроллера IDE Ориона-ПРО спаял схему N8VEM (в последнем выпуске на этой плате есть монтажное поле и посадочное место под разъем SD-карты). Цена вопроса 1 корпус ЛЛ1, 1 корпус ТМ9 и 1 разряд (бит) любого буфера с Z-состоянием (в моем случае АП4). Работает чудесно с имеющимся ПО (по LD (F762) - из режима Орион-128), запустилось с первого тыка. Цель была проверить как работает резисторный согласователь уровня SD, стаб 3.3V, да и вообще на рассыпухе я SD еще не подключал - ХЗ как оно там, все ПО писалось в эмуляторе. Дальше соберусь с духом и таки распаяю схему SPI. Все же тяжко дается МГТФ, не то что в плату детальки впаять.

Ну и вот, сделав небольшой перерывчик в 10 месяцев, таки предпринял я еще один подход к интерфейсу с SD. В этот раз в этой же аппаратной схеме "N8VEM" (см. вложение первого поста) экспериментировал с SDHC (распознавание, операции) и процедурами инициализации как SDC, так и SDHC (чтобы распознавались и инитились максимальное количество карт разных видов). Результат есть, пока не окончательный, но т.к. я похоже ухожу на еще один небольшой перерыв, то промежуточный результат помещу пока здесь (в итоге цель конечно все результаты перенести в ДОС). Ну и зоопарк же там с картами SD, скажу я вам, несколько алгоритмов инициализации в зависимости от того насколько старая карта, да еще SDHC требует выделения веток для него. Что получилось статистически по проверенным картам:

карта/инициализируется/читается/пишется

SDC Mirex 512Mb / + / + / +
SDC Noname 512Mb / + / + / +
SDC Transcend 1Gb / + / + / +
SDC Kingston 2Gb / - / /
uSDC noname 2Gb / - / /
uSDC noname 2Gb / + / + /
uSDC noname 2Gb / + / + /
uSDHC 8Gb Apacer из Ашана за 200руб / + / + /
uSDHC 8Gb noname из Ашана за 200руб / + / + /
uSDHC 16Gb L&D / + / + / +?
uSDHC 32Gb L&D / + / + /

После доработки старого алгоритма детекта (годовалой давности) к списку читающихся добавилось пара древних 2Gb карт что ранее почему-то не читались. Все SDHC (карты размером до 32Gb) теперь детектируются (и показывают реальный размер в maxlba) и читаются неоднократно и без проблем - это было главной целью. Запись SDHC проверил только на uSDHC 16Gb L&D, сектор записался (проверял), но процедура почему-то после записи увисла (надо разбираться, мог и сам ПК глюкануть - все на навесном монтаже, и вообще, запись проверяю реже - жалко современные карты под эксперименты на запись портить :) ). Читаются и инитятся SDHC все что попробовал, вообще они более беспроблемные по этой части.
Исходники утилиты на который экспериментирую пока в git не закоммитил (т.к. неокончательный вариант), размещаю здесь во вложении (основные правки см. в архиве в файле BIOSSD.MAC, компилировал в версию для CP/M - АльтаирДОС, версия для ORDOS потребует исправления размера кода в заголовке Ордос). Если у кого будут мысли, доработки алгоритма, статистика (вдруг кто попробует на реале) - пишите.

Error404
06.12.2017, 01:24
Запись SDHC проверил только на uSDHC 16Gb L&D, сектор записался (проверял), но процедура почему-то после записи увисла (надо разбираться, мог и сам ПК глюкануть - все на навесном монтаже, и вообще, запись проверяю реже - жалко современные карты под эксперименты на запись портить :) ). Читаются и инитятся SDHC все что попробовал, вообще они более беспроблемные по этой части.

Не знаю чего утром глюкануло, но вечером та же самая карта микро-SDHC пишется нормально. И еще одну микро-SDHC попробовал, тоже нормально пишется, к статистике:

карта/инициализируется/читается/пишется
uSDHC 16Gb L&D (фирмовый Китай) / + / + / +
uSDHC 8Gb OltraMax из Ашана за 200руб / + / + / +