Просмотр полной версии : Минимальный контроллер microSD для УКНЦ с небольшим загрузочным ПЗУ
Предположим, понадобился минимальный контроллер микроскопической флешки microSD для УКНЦ, для ЦП.
Совместимость - с RT-11 в общем плане, можно ни с чем из известного железа.
Необходимая скорость чтения - не менее 5 кбайт/с, записи - можно и немного меньше.
Никаких ОЭВМ, ПЛМ, ПЛИС - только совковая 555 серия, даже без АПх. Чем проще, тем лучше.
Нужно так же небольшое загрузочное ППЗУ, например длиной 001000 ( 8 ) ( 512 байт ), которое вычитает из microSD 100-й блок в 000000 адрес УКНЦ и запусти его с 000000 адреса, расположенное, например, в адресе 173000 :v2_dizzy_priest:
Что посоветуете ?
Что такое УКНЦ и RT-11 я не знаю :), но по аппаратной реализации SD интерфейса: можно глянуть на эту схему (http://www.nedopc.org/forum/download/file.php?id=1745) или эту (https://zx-pk.ru/attachment.php?attachmentid=64558&d=1520701260) , вырезанную из схемы Галаксии и на такой вариант подключения (http://www.nedopc.org/forum/viewtopic.php?f=93&t=16296#p132182) , это с требуемыми скоростями работы с
SD, а вот этот вариант подключения (http://www.nedopc.org/forum/viewtopic.php?f=93&t=16296&start=15#p145339) не обеспечит требуемую скорость раза в 2-3, но по простоте подключения он на первом месте. По програмной части ничего не скажу по УКНЦ, для i8080 исходники есть, можно попытаться портировать.
В продолжении темы с вопросами (https://zx-pk.ru/threads/29892-sd-karta-i-sdos-dlya-8i-bitnykh-pk.html?p=992613&viewfull=1#post992613) там отвечу здесь.
Нужен собственно железный алгоритм шевеления 3 шт. выводов ВВ55А - для чтения 512 байт, и записи 512 байт ( т.е. блоков данных ).
Тип интерфейса на ВВ55А - 2 проволоки на выход с ВВ55А, 1 проволока на вход.
Понятно, это вариант интерфейса n8vem, нужно для работы использовать 2 порта из 3х в ВВ55. На одном порту, настроенном на вывод, будет SD_CS, SD_CLK и SD_MOSI, а на втором, настроенном на ввод, SD_MISO.
Насчет инициализации ( с завода-изгоовиеля карты ) - я думаю нагло её прописывать Нулями, заодно и к/с секторов придет в норму.
вот это не понятно о чем, если о карте, то это в корне не верно.
Инициализировать карту в нашем случае это,
при не активном SD_CS послать в карту 80 тактовых импульсов (дергаем SD_CLK 80 раз в 0 и 1), тем самым переводя интерфейс карты в SPI режим, а дальше отправляем разные CMDх(блок схема того, как это делать по ссылкам ниже есть), для определения типа версии карты V1, V2 или V2+(те самые, которые SDHC). Эта информация нужна для дальнейшей работы, тк для V2+ по другому адресуются данные при чтении и записи секторов SD карты. Когда карта находится в SPI режиме общения CRC пакетов не контролируется, а передается любой 'мусор'. Для начала, можно взять карту на 2ГБ(или меньше), что заведомо будет не V2+, и сделать фиксированную инициализацию CMD0 - CMD55 - ACMD41, а уже дальше расширять возможности.
Вот еще пара ссылок первая (http://we.easyelectronics.ru/AVR/mmcsd-i-avr-chast-2-rabota-s-kartoy.html#comment119604) и вторая (http://microsin.net/programming/file-systems/sd-specifications-part-1-physical-layer-simplified-specification-ver-200-spi-mode.html). Плюс во вложении неплохое описание как работать с SD картой. Там везде масса комментариев, что позволяет просто описать алгоритм.
По большому счету в basic нужно реализовать функции записи байта, чтения байта и отправки CMD. Дальше их комбинации решают все поставленные задачи.
Запись и чтения байт лучше не заворачивать в цикл, а сделать линейно, что будет быстрее, но займет больше места в коде.
Практический вопрос. Нормальное состояние ( "нет сигнала" ) линий карточки микроСД - 0в. или +3в. ?
Практический вопрос. Нормальное состояние ( "нет сигнала" ) линий карточки микроСД - 0в. или +3в. ?
возможно тут есть что то полезное
https://zx-pk.ru/archive/index.php/t-27418.html
MM,Вам бы очень помог ЛА на чипе CY7C68013A. Подключаете ЛА к кадридеру 4 проволочками и исследуете.
Вот кардиограмма чтения SPI 25x512 для примера.(биос видеокарты).
https://pic.maxiol.com/thumbs/1553322050.773758523.spi.png (https://pic.maxiol.com/?v=1553322050.773758523.spi.png)
https://pic.maxiol.com/thumbs2/1604584237.2997898827.v.jpg (https://pic.maxiol.com/?v=1604584237.2997898827.v.jpg&dp=2)
4СПП под колодку КР1801РЕ2, проводочками - сигналы BS7 и DOUT.
Применяемые ИС :
DD1, DD2, DD3 - ЭКФ1564ЛН2
DD4, DD9 - ЭКФ1564СП1
DD5 - ЭКФ1564ТЛ2
DD6 - ЭКФ1564ЛЛ1
DD7 - ЭКФ1564ЛА4
DD8 - ЭКФ1564КП7
DD9, DD10 - ЭКФ1564ИР37
DD11 - эКФ1564ТМ9
DD12 - ЭКФ1554АП9
DD13, DD14 - 155РЕ3 в колодках.
СМД наборы резисторов CAT16-102J4 4х1 кОм - 2 шт., 4х10 ком - 2 шт.
СМД резисторы 0603, кондесаторы керамика 1210
Длина загрузчика - 100 ( 8 ).
Биты карты в регистре ( инвертированы по отношению к МПИ ):
000001 - Д0
000002 - Д1
000004 - Д2
000010 - Д3
000020 - КМД
000040 - Синхр
Возможные адреса регистра карты - 177700, 177702, 177704, 177710, 177712, 177714, 177716,
177760, 177762, 177764, 177766, 177770, 177772, 177774, 177776 ( 8 ).
Возможные адреса ППЗУ загрузчика :
176000, 176100, 176200, 176300, 176400 и т.д. - 16 ( 10 ) вариантов.
Порошу Гуру софта и карт Микро-СД посоветовать - какой длины может быть минимальный загрузчик самого младшего сектора ( 000000 сектора карты ) из карты по SPI в адрес, например 001000 ( 8 ) ?
Мне тут посоветовали мин. размер загрузчика 000400 ( 8 ) или 128 байт - может, это слишком много ?
Начальное состояние карты - от включения питания. Скорость загрузки - вторична. Адрес регистра карты - например 177772
Тип карты - Карта памяти SanDisk microSDHC 16 ГБ [SDSDQM-016G-B35]
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot