С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Так как платка была изначально задумана как раз под 86RK_SRAM, то и распиновку искать тут: http://radio86rk.pbworks.com/w/file/...K-SRAM-SCH.pdf
Конечно, ибо это его проект, схема та же, я всего лишь платку развел и с 3.3В уровнями чуток иначе решил вопрос.
Github: https://github.com/andykarpov/
Последний раз редактировалось andykarpov; 05.06.2019 в 14:12.
Github: https://github.com/andykarpov/
cy6(17.07.2019)
Обратите внимание, что линии A8-A15 вообще не используются. Их не надо никуда паять.
Загрузчик занимает не более 128 байт, даже 7 бит адреса достаточно, но используем восемь.
Итого, выбираем любые два порта ВВ55. Один под ША, другой под ШД.
По умолчанию, порт А это данные, а порт В - адрес.
У меня подгорел порт В, и я переделала загрузчик на работу с портом C.
Запускается контроллер последовательными директивами R и G.
А можно немного переделать монитор, и сделать директиву U без параметров. Включаете РК, набираете U, и сразу видите оболочку с SD карты.
Что я и сделала. Кому интересно "how to", пишите.
Вот как раз на вашей платке, можно тоже воткнуть резисторы, вместо чипа согласования уровней. Паяются прямо на места, предназначенные для ножек микросхемы.![]()
Так что, только два отличия от платы Алексея. Это расчет на производство (а не на ЛУТ), и компоненты smd.
Ах да, ну и разъем другой. Морозовский вариант сделан под переходник на Апогей.
Обе эти платы можно использовать на любой ПЭВМ, с интерфейсом ВВ55. Адаптировать нужно только программную часть (загрузчик, SDBIOS и оболочку).
Последний раз редактировалось cy6; 05.06.2019 в 19:18.
wtf
У платки есть небольшой недостаток, держатель карты находится не на краю печатной платы.
Предполагается ведь, что это будет в закрытом корпусе. Доступ нужен только к держателю карты.
Можно вообще спроектировать держатель платки, чтобы был по дизайну как маленький дисковод.
Вот только не будет ли мешать углубленная позиция замене носителя (SD карты). Расстояние в 5мм не маленькое, при таких масштабах.
P. S. Судя по рисунку, ничто не мешает сдвинуть к краю держатель карты. Только видимо нужна программа, подходящая к исходникам.
Последний раз редактировалось cy6; 21.06.2019 в 11:10.
wtf
cy6, how to по переделке монитора опубликуйте пожалуйста
Как сделать старт SD-BIOS автоматическим, по директиве монитора.
Исходные данные.
Имеем директиву U
Которая стартует в адреса портов В/В контроллера НГМД, что нам совершенно не надо.Код:CPI 055H ; U JZ MF000
И имеем директиву R, для которой надо вручную вводить параметры.
Имеем, стартовый адрес загрузчика (boot.rk) 0h и длину, не превышающую 128 байт (0000 - 007F).
Задача.
По директиве U выполнить директиву R с параметрами 0,7F,0 ("R0,7F,0"), а также директиву G0.
Решение.
Чтобы сэкономить на команде старта, перемещаем блок старта в конец монитора, где по умолчанию неиспользуемые байты.
После адреса 0FFFFh счетчик команд (регистр PC) автоматически становится 0.Код:.DB 0FFH,0FFH .END
Чтобы изыскать дополнительное место под вызов директивы R с параметрами, можно упаковать какие нибудь символьные данные, например, от директивы X.
Меняем вектор директивы U на адрес нашего кода.
Параметры для директивы R, нужно внести в регистры: HL - адрес начала загрузки в ПЗУ (у нас 0), BC - адрес начала загрузки в ОЗУ (у нас 0) и DE - длина блока данных (у нас 007Fh).Код:CPI 055H ; U - загрузка SD vixru JZ MV001
ПЗУ (в нашем случае адаптер SD карты) подключается: порт А - шина данных, порт B - младший байт адреса и порт C - старший байт адреса.
В нашем случае, старший байт адреса всегда будет равен НУЛЮ, и на плате адаптера SD карты не используется.
Наш код в самом конце монитора (6 байт, вместо двух)
Добавка (3 байта) в начало кода подпрограммы исполнения директивы R, родной адрес старта которой 0FA68h.Код:MV001: LXI H,0000H CALL MFA68z ; .DB 0FFH,0FFH .END
Также, нужно обеспечить содержимое регистра BC (= 0). Для этого применяется немного "магии вуду" (или можно потратить еще три байта).Код:MFA68z: LXI D,007FH MFA68:
В мониторе, первой обрабатывается директива Х, в которой сохраняются все оригинальные значения регистров.
Второй обрабатывается наша директива U
Далее, идет блок кода, общий для всех остальных директив. После исполнения которого BC = 0 (адрес по умолчанию 0000h).Код:CPI 058H ; X JZ MFFD3 CPI 055H ; U JZ MF000
Наша задача, сдвинуть директиву U под этот блок кода. И тогда, на нее тоже будет действовать правило адреса по умолчанию.Код:PUSH PSW CALL MF92C LHLD M762B MOV C,L MOV B,H LHLD M7629 XCHG LHLD M7627 POP PSW
Последний раз редактировалось cy6; 23.06.2019 в 12:12.
wtf
Если честно, то платка вообще разрабатывалась на скорую руку, автороутером
Вообще удивительно, что она работает, с нитками вместо линий питания))
Если кому-то надо, можно вообще переделать платку под microSD, сделать ее меньше раза в 1.5 так точно, с правильной разводкой и достаточным количеством крепежных отверстий
А исходники - под Autodesk Eagle, в любой современной бесплатной версии откроется и даст себя поредактировать![]()
Github: https://github.com/andykarpov/
cy6(17.07.2019)
Тогда обратная совместимость пропадет, большую карту не вставить.
Большой слот для карты в ноутбуках, это пока что стандарт.
У меня давно мысли, что на ней нужен RESET и часы реального времени. В коммандере, время стоит никакое, часы точно нужны.
И, естественно, мега328 на борт, вместо меги8.
А еще, можно сделать симуляцию ROM-диска.![]()
wtf
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)