Понравилась мне идея с подключением SD к порту ВВ55 совместно с ROM диском, и я решил на новогодних каникулах проверить эту идею 'в железе', а то теория так и останется теорией без проверки её на практике

. РК-86, новодел, у меня есть. Подтолкнуло меня еще к этому ещё и желание собрать программатор для УФППЗУ, тк РФки у меня еще остались, а вот программатора уже нет. Начал прорабатывать схему в протеусе, что и как можно упростить, ни каких подводных камней не увидел, все отрабатывало как и было задумано. Переключение скорости не имеет смысла, тк в таком варианте подключения период обращения укладывается при тактовой на карте ~300Кгц, соотв. 4Мгц/8=500Кгц - будет достаточно и для инициализации (инициализация должна быть до 400Кгц, но реально и при 4Мгц работает) и для основной работы. Набросал примерное размещение мс на макетке, и сделал несущую плату универсального ROM диска, SD интерфейса и программатора УФППЗУ. Держателя для SD карт у меня под рукой не нашлось, но а зачем он нужен то?- Почти все microSD карточки идут в комплекте с переходником под стандартную SD карту, - это же готовый держатель для карт! к контактам переходника подпаиваются луженые провода, формуются и готово!
IMG_2205.JPG
Все спаял,
IMG_2212.JPG
подключил, ROM диск читается, а вот с SD все плохо... иногда карта определяется, и даже 1 раз удалось загрузить коротенькую программку с неё, но в целом не работает... Стал разбираться. Добавил в код sd_dos тестовый вывод, что читается из карты, на нажатие кнопки 'X' реализовал отправку байта в порт, что бы проверить весь тракт прохождения байта - если убрать карту и закоротить MOSI и MISO на держателе, то можно увидеть, что в порт пишется и что читается. На одиночных запросах все ок, НО ведь не работает!? Конденсаторы по питанию я не жалею (их не видно - чипы 0805). В это время fifan начал запускать SD интерфейс на 'СпециалистеМХ2', и я решил кое какие идеи из этой схемы проверить на работающей у меня плате SD для 'Специалиста', собрал локальный тактовый генератор на 4Мгц, поставил ИЕ19 вместо ИЕ5 на делитель полной и пониженной скорости тактирования карты и на узел формирования сдвига байта и - не работает! Как так??? подключаю тактирование от специалистовского генератора - все ок, перекидываю на локальный - нет!?!? Начал в протеусе задавать разные частоты тактирования ВМ80 и SD интерфейса и тут, тоже, SD перестала работать! Как оказалось, проблема заключается в не синхронном поступлении сигнала записи в SD порт по отношению к тактовой на ИР9, иногда данные портятся, а иногда все нормально - при тактировании от одного источника синхронность обеспечивалась автоматически, и этой проблемы я не видел и не задумался... В варианте для РК все решается просто, хоть и добавлением еще одной мс, - D-триггера. Сигнал WR, формируемый программно на ВВ55, имеет длительность гораздо выше тактовой карты, и эта схема работает в широких пределах частот, а вот для схемы SD 'Специалиста' это не так, но это я буду рассказывать в 'специалистовской' теме... отвлекся, однако...
Быстренько напаиваю на свою платку ТМ2, все подключаю и - все работает как швейцарские часы

. Так что практика хоть и вносит свои коррективы в теорию, но и теория имеет право на жизнь!
Схема получилось, возможно, и не очень простая, но не сложнее любой схемы контроллера FDD, а удобство в использовании гораздо выше. Ограничения, имеющиеся в текущей реализации sd_dos легко решаются использованием внешних, запускаемых с самой SD карты программ. Кто мешает сделать программу, создающую файл на файловой системе требуемого размера, программу переименования, копирования, удаления, если эти действия нужны именно на РК, а не использовать этот уже готовый функционал на наших 'больших' ПК. Ведь мы именно ищем способы переноса файлов между нашими 'поделками' и PC, а запись в файл без изменения его размера в sd_dos есть.
фото моей 'поделки'...
PS фото делал при плохом освещении, ночь за окном, по тому качество не очень

You do not have the required permissions to view the files attached to this post.