![]() |
|
|
Добро пожаловать, SuperMax.
Ваш последний визит: 02.05.2014 в 11:46 Личные сообщения: Новых 0, всего 2.
|
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
Рейтинг: ![]() ![]() |
Опции просмотра
![]() |
![]() |
#1 |
Member
Регистрация: 31.03.2013
Адрес: г. Киев
Сообщений: 140
Сказал(а) Спасибо: 28
Поблагодарили 189 раз(а) в 73 сообщениях
![]() ![]() ![]() |
![]()
РЕ-мулятор представляет собой печатную плату в габаритах корпуса
DIP-24 и предназначен для непосредственной замены микросхем типа 1801РЕ2 и 1801РР1 в различных устройствах.
С использованием дополнительных внешних входов РЕ-мулятор способен заменить до четырех отдельных независимых микросхем типа 1801РЕ2/РР1. Например, возможна одновременная замена одним эмулятором шести микросхем 1801РЕ2 на основной плате БК-0010 плюс плата модуля МСТД/Фокал. Для БК-0011М один эмулятор способен заменить до семи микросхем (на основной плате и дополнительно на плате Бейсика) РЕ-мулятор построен на основе недорогого и распространенного микроконтроллера STM32F205, работающего на частоте 120МГц. Допускается замена программного обеспечения микроконтроллера без отключения РЕ-мулятора от платы для которой осуществляется эмуляция. Таким образом можно быстро изменять "прошивку" эмулируемой микросхемы без вынимания РЕ-мулятора из панельки. Поле конфигурации, реализованное на перемычках ("джамперах") позволяет управлять режимом работы РЕ-мулятора без частой замены прошивки микроконтроллера. По мере разработки и усовершенствования программного обеспечения функционал РЕ-мулятора может быть значительно расширен, выходя за рамки простой эмуляции ПЗУ. Например, возможно использование одного из дополнительных выводов для генерации сигнала DOUT, РЕ-мулятор сможет осуществлять циклы записи на шине МПИ и выполнять самостоятельное тестирование устройства, без участия центрального процессора схемы (разумеется, сам ЦП следует отключить сигналами захвата шины). Программирование микроконтроллера может осуществляться с использованием полного JTAG, "укороченного" SWJ или по последовательному интерфейсу UART (с иcпользованием внешнего преобразователя уровней RS-232 и предварительно запрограммированного загрузчика). Программирование по UART и SWJ допускается без отключения РЕ-мулятора от схемы. При использовании JTAG без отключения от схемы следует обеспечить размыкание цепей проходящих через R4 и R5. Для программирования по JTAG/SWJ можно использовать стандартные программаторы/отладчики типа JLink, ST-Link, MT-Link. Или (если будет интерес и необходимость) - с использованием Altera ByteBlaster (простая схема на одной 74HCT244, подключаемая к параллельному порту PC) и моей утилиты.
__________________
Орион-128 ('90), Ленинград-2 ('90), Поиск-2 ('93), БК-0010/11М ('13), МС-0511 ('13) Восстанавливаю ДВК: МС1201.02/.03/MX/MY/НГМД2/КЦГД/КСМ/КГД/КЖД/КТлК6 Последний раз редактировалось Vslav; 05.08.2013 в 22:18. Причина: Добавлен архив с исходниками |
Offline
![]() |
![]() ![]() ![]() |
Эти 10 пользователя(ей) сказали Спасибо Vslav за это полезное сообщение:
Удалить вашу благодарность |
![]() |
#2 |
Member
Регистрация: 31.03.2013
Адрес: г. Киев
Сообщений: 140
Сказал(а) Спасибо: 28
Поблагодарили 189 раз(а) в 73 сообщениях
![]() ![]() ![]() |
![]()
На данный момент эмулятор проверен в работе на плате БК-0010,
работающей на частоте 3МГц в качестве замены одной 1801РЕ2-017.
Программное обеспечение сейчас "вычищается" и готовится к публикации,
включая исходники.
Приглашаю всех желающих к обсуждению режимов работы РЕ-мулятора. На данный момент предполагается реализация следующих прошивок и режимов: - простая эмуляция одной микросхемы 1801РЕ2. Требуемое содержимое прошивки РЕ2 будет располагаться в прошивке микросконтроллера по фиксированному адресу, будет написан простой скрипт, и желающие при необходимости смогут сами вставлять нужное содержимое РЕ2 в файл прошивки микроконтроллера без перекомпиляции. То есть - готовим нужный файл для РЕ2 в требуемом формате (предлагаю формат программатора Стерх - intel-hex, в конце два байта адресного кода микросхемы), берем уже подготовленный файл прошивки микроконтроллера (будет выложен тут), запускаем простой скрипт (батник, скорее всего будет одна использоваться только утилита srec_cat) и получаем на выходе сразу (без компиляции - не надо разбираться с компилятором для ARM - инсталлировать, настраивать и тд) готовый файл для прошивки в микроконтроллер, которая будет эмулировать РЕ2 с заданным содержимым. - Прошивка БК-0010. Содержит образы РЕ2-017, -106, -107, -108, -018, -019. Устанавливается на место D25(РЕ2-108, чтобы фильтровать обращение к регистрам по сигналу CS в данном посадочном месте) и заменяет все четыре микросхемы плюс модуль Фокала/МСТД. В зависимости от установленных конфигурационных перемычек РЕ-мулятор будет заменять или просто микросхемы на основной плате, или режим подключенного модуля МСТД. - Прошивка для БК-0011М. Аналогично - со всеми РЕ2, которые применяются в данном компьютере. Я с БК не очень много работал, поэтому предлагайте варианты, которые могут быть полезны и интересны.
__________________
Орион-128 ('90), Ленинград-2 ('90), Поиск-2 ('93), БК-0010/11М ('13), МС-0511 ('13) Восстанавливаю ДВК: МС1201.02/.03/MX/MY/НГМД2/КЦГД/КСМ/КГД/КЖД/КТлК6 |
Offline
![]() |
![]() ![]() ![]() ![]() |
Эти 5 пользователя(ей) сказали Спасибо Vslav за это полезное сообщение: | anasana (28.06.2013), dmluk (28.06.2013), Mdesk (29.06.2013), perestoronin (29.06.2013), tnt23 (29.06.2013) |
![]() |
#3 |
Member
Регистрация: 11.08.2009
Адрес: Минск
Сообщений: 125
Сказал(а) Спасибо: 178
Поблагодарили 19 раз(а) в 19 сообщениях
![]() |
![]()
Очень круто - 32-битный ARM на 120МГц для реализации простейшего
алгоритма по эмуляции ПЗУ (в соответствии с адресом на входе выдавать
содержимое внутренней Flash) ...
|
Offline
![]() |
![]() ![]() ![]() ![]() |
![]() |
#4 |
Member
Регистрация: 31.03.2013
Адрес: г. Киев
Сообщений: 140
Сказал(а) Спасибо: 28
Поблагодарили 189 раз(а) в 73 сообщениях
![]() ![]() ![]() |
![]()
А чем плохо? Всего одна микросхема за 120 российских рублей в розницу
(стабилизатор +3.3V не в счет). Свои функции выполняет и ладно. А
делать на отдельной микросхеме флеша плюс CPLD или дискретная логика -
это очевидное (скучно-банальное) и более громоздкое(и дорогое) решение,
имхо.
__________________
Орион-128 ('90), Ленинград-2 ('90), Поиск-2 ('93), БК-0010/11М ('13), МС-0511 ('13) Восстанавливаю ДВК: МС1201.02/.03/MX/MY/НГМД2/КЦГД/КСМ/КГД/КЖД/КТлК6 |
Offline
![]() |
![]() ![]() ![]() ![]() |
Эти 2 пользователя(ей) сказали Спасибо Vslav за это полезное сообщение: | perestoronin (30.06.2013), trader2k4 (02.07.2013) |
![]() |
#5 |
Member
Регистрация: 31.03.2013
Адрес: г. Киев
Сообщений: 140
Сказал(а) Спасибо: 28
Поблагодарили 189 раз(а) в 73 сообщениях
![]() ![]() ![]() |
![]()
Новости проекта:
- посылка с платами пришла на "место вручения" в Москве - написана штатная программа и опробована конфигурация БК-0010 - замена до 4-х микросхем -017, -106, -107, -108 Программа написана так, что содержимое прошивок отвязано от самой программы, и можно собрать нужную конфигурацию эмуляции простым скриптом при помощи одной единственной утилиты srecords (srec_cat), то есть кто не хочет - может компиляторы не ставить и с ними не разбираться. При этом легко собирая нужный конфиг прошивки. Сборка исходников осуществляется GCC (пробовал готовые сборки CodeSourcery и ARM toolchain) или IAR (размер кода прошивки менее 8К, есть бесплатная лицензия типа KickStarter от IAR) - кому что нравится, для тех кто захочет поэкспериментировать поглубже. Вот так сейчас выглядит стендик с БК-0010: Кстати трассировка системной платы (пресловутой "переразведенки") не очень, когда сначала запустил РЕ-мулятор на видео начали строчки подергиваться (зазхватываю через ТВ-тюнер). Со штатными РЕ-шками помех на видео нету. В итоге ограничил скорость нарастания сигнала на выходах AD (есть такая фича у STM32) полосой 25МГц (сначала стояли аттрибуты на 50МГц) и помехи ушли. Прелесть РЕ-мулятора еще и в том что он позволяет по последовательному порту сразу перешивать прошивку "на лету", то есть скорость написания, кросс-компиляции и прогона коротких тестов значительно увеличилась, теперь это просто стало удобно. Слева там фото лежат аккуратно выпаянные оригинальные РЕ-шки, пришлось слегка повозиться, также сделал удлинитель клавы, и прочее. В-общем, постарался чтобы хобби выглядело красиво ![]() Сейчас прочитаю еще (этим же РЕ-мулятором прямо на плате БК) прошивки -018 и -019 (МСТД на фото слева) и буду готовить программу к релизу - повычищаю все хвосты и на днях выложу. PS. Также готовлюсь тестироваться на чуть более быстрой БК-0011М и ищу прошивки -327, -329 - микросхемы на плату Бейсика БК-0011М. Оно как бы необязательно, но было бы приятно сразу 5 чипов РЕ-мулировать.
__________________
Орион-128 ('90), Ленинград-2 ('90), Поиск-2 ('93), БК-0010/11М ('13), МС-0511 ('13) Восстанавливаю ДВК: МС1201.02/.03/MX/MY/НГМД2/КЦГД/КСМ/КГД/КЖД/КТлК6 Последний раз редактировалось Vslav; 28.07.2013 в 20:00. |
Offline
![]() |
![]() ![]() ![]() ![]() |
Эти 2 пользователя(ей) сказали Спасибо Vslav за это полезное сообщение: | Mad Killer/PG (31.07.2013), perestoronin (28.07.2013) |
![]() |
#6 |
Member
Регистрация: 31.03.2013
Адрес: г. Киев
Сообщений: 140
Сказал(а) Спасибо: 28
Поблагодарили 189 раз(а) в 73 сообщениях
![]() ![]() ![]() |
![]()
Пооптимизировал основную процедуру ремулятора (обработка сигналов
МПИ), в итоге получилось время выборки в пределах 250-300нс. По крайней
мере не хуже чем у оригинальной 1801РЕ2А с ее паспортными 300нс.
Картинка с осциллографа (Желтый сигнал - ~DIN, голубой - ~RPLY):
![]() Если кому надо быстрее, то можно применить STM32F407 - они до 168МГц штатно работают. Или STM32F205 также вполне хорошо оверклочится (на 168МГц работали все экземпляры что я пробовал). Ниже картинка с оверклоченного до 144МГц 205-го - ориентировочно время выборки 200-250нс. До параметров СОЗУ не дотягивает, конечно, но параметры эмулируемых микросхем перекрывает надежно. ![]()
__________________
Орион-128 ('90), Ленинград-2 ('90), Поиск-2 ('93), БК-0010/11М ('13), МС-0511 ('13) Восстанавливаю ДВК: МС1201.02/.03/MX/MY/НГМД2/КЦГД/КСМ/КГД/КЖД/КТлК6 |
Offline
![]() |
![]() ![]() ![]() ![]() |
Эти 3 пользователя(ей) сказали Спасибо Vslav за это полезное сообщение: |
![]() |
#7 |
Member
Регистрация: 31.03.2013
Адрес: г. Киев
Сообщений: 140
Сказал(а) Спасибо: 28
Поблагодарили 189 раз(а) в 73 сообщениях
![]() ![]() ![]() |
![]()
Сделал считыватель прошивок - в одну панельку на системной плате
БК-0010 вставляется считываемая 1801РЕ2/РР1 и далее РЕ-мулятор
устанавливает системный сброс ( можно подключить на запрос захвата шины,
вместо сброса, но тогда не прочитать микросхемы с чип-кодами 4-7 -
будет вылазить -037 на шину) и рулит DIN/SYNC. Результаты чтения
попадают в формате ihex в лог-файл отладчика, из которого несложно
сделать результирующий файл.
Update: Вычитал -018 и -019, сделал дополнительную конфигурацию с МСТД. Забавно вышло - выбираем на РЕ-муляторе перемычками конфигурацию 0 (эмуляция -017, -106, -107, -108), включаем питание, видим заставку Бейсика БК-0010. Выключаемся, на РЕ-муляторе выбираем перемычками конфигурацию 1 (эмуляция -017, -018, -019), включаемся - видим Фокал. То есть, РЕ-мулятор легко и просто заменяет модуль МСТД.
__________________
Орион-128 ('90), Ленинград-2 ('90), Поиск-2 ('93), БК-0010/11М ('13), МС-0511 ('13) Восстанавливаю ДВК: МС1201.02/.03/MX/MY/НГМД2/КЦГД/КСМ/КГД/КЖД/КТлК6 Последний раз редактировалось Vslav; 29.07.2013 в 16:13. |
Offline
![]() |
![]() ![]() ![]() ![]() |
Эти 4 пользователя(ей) сказали Спасибо Vslav за это полезное сообщение: |
![]() |
#8 |
Member
Регистрация: 31.03.2013
Адрес: г. Киев
Сообщений: 140
Сказал(а) Спасибо: 28
Поблагодарили 189 раз(а) в 73 сообщениях
![]() ![]() ![]() |
![]()
В первом посте добавлены:
- архив с исходниками - архив с начальным загрузчиком и утилитой для прошивки по UART (задействован такой механизм потому что полный JTAG не позволяет делать это в устройстве не вынимая из панельки (часть ног JTAG совмещена с AD-шиной), а Cortex SWD поддерживается только относительно новыми адаптерами). Также в этом архиве утилита-препроцессор локальных меток - нужна для компилиции исходников. Сейчас пишу документ, где описывается РЕ-мулятор и как с ним работать. Ну чтобы я мог потом всегда гордо сказать - RTFM, да. ![]()
__________________
Орион-128 ('90), Ленинград-2 ('90), Поиск-2 ('93), БК-0010/11М ('13), МС-0511 ('13) Восстанавливаю ДВК: МС1201.02/.03/MX/MY/НГМД2/КЦГД/КСМ/КГД/КЖД/КТлК6 Последний раз редактировалось Vslav; 05.08.2013 в 23:52. |
Offline
![]() |
![]() ![]() ![]() ![]() |
![]() |
#9 |
Moderator
Регистрация: 11.01.2006
Адрес: Брест/Минск
Сообщений: 6,281
Сказал(а) Спасибо: 2,198
Поблагодарили 1,412 раз(а) в 924 сообщениях
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Vslav, а почему не используете StdPeriph_Driver?
Последний раз редактировалось BYTEMAN; 05.08.2013 в 22:57. |
Offline
![]() |
![]() ![]() ![]() ![]() |
![]() |
#10 |
Member
Регистрация: 31.03.2013
Адрес: г. Киев
Сообщений: 140
Сказал(а) Спасибо: 28
Поблагодарили 189 раз(а) в 73 сообщениях
![]() ![]() ![]() |
![]()
Не использую так как:
- было быстро найдено несколько глюков в библиотеке от ST, то есть качество банально не удовлетворило - все равно надо вникать и делать ревью кода. А мусора там... - пришел на STM32 с другого Cortex (LPC17 и SAM3) и уже было очень много своих наработок (проект РЕ-мулятора на самом деле сначала был "по-быстрому" сделан на моей коммерческой модульной системе, а потом уже низведен до опубликованного состояния. Там много чего было - HAL, RTOS, стеки, все следы от этого были вычищены - да и не надо это все в РЕ-муляторе) - не факт что буду очень долго на STM32 оставаться - нет смысла привыкать к проприетарной библиотеке - не нравится что библиотека очень серьезно замыливает сущности, взамен давая только относительно простую миграцию на другие STM, в полезности чего у меня есть сомнения. Банальный принцип Окама - не умножай сущности сверх необходимого
__________________
Орион-128 ('90), Ленинград-2 ('90), Поиск-2 ('93), БК-0010/11М ('13), МС-0511 ('13) Восстанавливаю ДВК: МС1201.02/.03/MX/MY/НГМД2/КЦГД/КСМ/КГД/КЖД/КТлК6 |
Offline
![]() |
![]() ![]() ![]() ![]() |
Этот пользователь сказал Спасибо Vslav за это полезное сообщение: | BYTEMAN (06.08.2013) |
![]() |
Здесь присутствуют: 1 (пользователей: 1 , гостей: 0) | |
SuperMax |
|
|