PDA

Просмотр полной версии : СМП-ридер для МК-90



Ewgeny7
12.03.2016, 22:05
Есть такая замечательная штука для "прошивания" модулей памяти СМП (МПО) для "Электроники МК-90".
Сами модули построены на статическом ОЗУ, а интерфейс с внешним миром сделан через контроллер КА1835ВГ2 (serial/parallel).
Сама тема обмена данными с ПЦ была раскурена замечательным поляком Piotr Piatek (http://www.pisi.com.pl/piotr433/mk90cahe.htm).
Он же предложил ридер, прицепляемый с LPT-порту ПЦ.
Ясен перец, сейчас это уже проблематично...
Поэтому уже наш человек запилил (http://mk90.blogspot.ru/search/label/%D0%A1%D0%9C%D0%9F) USB-версию ридера.
Называться ридером этому девайсу несколько неправильно, ведь он не только читает, но и пишет данные в модули памяти.
Мне сей агрегат стал интересен, поскольку обзавелся пресловутым "Электроника МК-90".
Платку переразвел для QFP-варианта Меги, ибо их у меня много.
Получилось вот так:

http://savepic.net/7810606m.jpg (http://savepic.net/7810606.htm)

Файлик Sprint Layout (https://yadi.sk/d/ix5TWUr4q7mnv).
Архив с файлами (https://yadi.sk/d/vIOxnNLQq7nER), в неизмененном виде утянутый с вышеупомянутого блога mk90. Дабы было не в одном месте.
После изготовления платки и обработки напильником обматывания ее скотчем черной изолентой получилось это -

http://savepic.net/7857696m.jpg (http://savepic.net/7857696.htm)

Работает прекрасно.
Разъем (штырьковый) лучше поставить угловой, чтобы модуль памяти прижать к платке, но - небыло.

Arix
04.01.2019, 10:48
Я недавно купил такую штучку в готовом виде. Установил драйвер, всё по инструкции. Windows XP SP3. B диспетчере устройств он есть. Подключаю СМП - светодиод загорается, даже если сама плата не подключена к компьютеру.
Но программа smpusb.exe не работает. В консоли пишется: "Не удается выполнить указанную программу". Если запускать из-под проводника, то появляется сообщение "Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему". Какая повторная установка? Оно не устанавливается, оно уже есть в готовом виде. И как его корректно настроить, если я его даже запустить не могу? По-моему, это просто отмазка, дело в чём-то другом.
Несколько раз пытался написать это сообщение в блоге (https://mk90.blogspot.com/2009/08/usb.html#comment-form). Но что-то не получается. Вошёл с ааккунтом Гугла, втавляю текст, нажимаю "Публикация", страница перезагружается, но сообщение не появляется.

b2m
04.01.2019, 16:39
оно уже есть в готовом виде
Вероятно, нет нужных ему DLL.

Arix
05.01.2019, 18:56
А как узнать, каких? Написано, что для ХР, у других, почему-то работает. Система практически чистая, не загаженная.

b2m
05.01.2019, 19:24
Посмотреть в любом hex-редакторе, наверняка встретятся строки типа KERNEL32.DLL,USER32.DLL (но эти-то всегда есть), и рядом с ними другие .DLL
Есть, конечно, специальные Dependency Walker-ы, они точнее покажут. Хуже, когда программа использует какие-либо ActiveX, тут фиг поймёшь, чего ей надо, объекты создаются по GUID, чаще всего никаких названий рядом нет. Но такие программы и работают "не везде", и распространяются только с инсталятором.

MacBuster
05.01.2019, 21:46
Система практически чистая, не загаженная.
Библиотеки Visual C++ установлены?

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

А вот это - программу-инсталлятор (https://mk90.blogspot.com/2009/11/smpreaderusb.html) установили?

ALS
05.01.2019, 21:55
Обычно такое сообщение появляется, когда отсутствует .Net Framework от M$.
Какая версия - это уже опытным путем. 2.0 - самая легковесная, но и самая старая.
Обычно с 4 (самой жЫрной для XP) все начинает работать :)

Клапауций68
05.01.2019, 22:26
Я недавно купил такую штучку в готовом виде. Установил драйвер, всё по инструкции. Windows XP SP3. B диспетчере устройств он есть. Подключаю СМП - светодиод загорается, даже если сама плата не подключена к компьютеру.

тут много чего тебе насоветовали, но... а, стребовать с продавца, что бы балалайка заработала - слабо?
не работает - делай возврат.

MM
05.01.2019, 22:51
Windows XP SP3
Я не автор, всей кухни программирования W NT не знаю.
Но могу посоветовать Хрюшку SP2 - там идет всё, что шло на W3.1. А в SP3 уже нет 16-битных библиотек - проверял на своих програмочках 1995-1999 г, сделанных с левых компиляторов Бейсика.

MacBuster
06.01.2019, 01:18
не работает
Моя балалайка, приобретенная у того же продавца, работает. Но если будет возврат, то будет еще один владелец, а новой балалайки не будет.

Arix
06.01.2019, 11:17
А вот это - программу-инсталлятор установили?
Заработало. Спасибо!

Считал образ, получился некий filename.bin. Что теперь с ним делать, чем распаковать, упаковать?
При открытии bin'a в текстовом редакторе текст Бейсик-программ нормально читается.

Клапауций68
06.01.2019, 13:56
Что теперь с ним делать, чем распаковать, упаковать?
нуу... можно распечатать файл и раздавать прохожим на пешеходных переходах, например.

Arix
10.01.2019, 19:42
Если в файле двоичные данные, боюсь, прохожие мою щедрость не оценят.
Я имею в виду, как извлечь данные из образа и запаковать их в образ. Извлечь отдельные файлы, программы или добавить их в образ, чтоб потом записать в СМП. Бейсик-программы, возможно, можно копировать через Блокнот, а программы в кодах как? Или, например, есть образы из СМП-16, в СМП-10 они не влезут. Надо что-то оттуда убрать.

Клапауций68
10.01.2019, 21:34
Если в файле двоичные данные, боюсь, прохожие мою щедрость не оценят.
Я имею в виду, как извлечь данные из образа и запаковать их в образ. Извлечь отдельные файлы, программы или добавить их в образ, чтоб потом записать в СМП. Бейсик-программы, возможно, можно копировать через Блокнот, а программы в кодах как? Или, например, есть образы из СМП-16, в СМП-10 они не влезут. Надо что-то оттуда убрать.
в документации к ридеру, что написано?
например - Ув. Покупатель, ты являешься счастливым обладателем гравицапы, с помощью которой...
не?

MacBuster
10.01.2019, 21:39
Думаю надо экспериментировать - записать 10-20 раз (или какой там максимум) один и тот же текст программы на бейсике и в считанном образе посмотреть что где оказалось.

ilya_dan
10.02.2019, 00:59
Я имею в виду, как извлечь данные из образа и запаковать их в образ. Извлечь отдельные файлы, программы или добавить их в образ, чтоб потом записать в СМП. Бейсик-программы, возможно, можно копировать через Блокнот, а программы в кодах как? Или, например, есть образы из СМП-16, в СМП-10 они не влезут. Надо что-то оттуда убрать.

Этот ридер задумывался как средство обмена с эмулятором http://www.pisi.com.pl/piotr433/mk90emue.htm, то бишь бейсик-программы отлаживаем в эмуляторе, потом файл бинарного образа заливаем в реальный МПО и подключаем к реальному МК-90.

По поводу "СМП-16" - никогда не слышал, чтобы такое подключалось к МК-90. Наверное, речь про МК-106: http://www.kros-niat.ru/docs/product/MK-106_history.php ?

Photocor
12.06.2019, 18:39
Коллеги, здравствуйте! Только-только стал обладателем МК-90. Подскажите, где можно заказать USB-интерфейс для МПО? Компьютер типа "ретро-портал" с Windows XP имеется.

Sergei Frolov
12.06.2019, 18:42
Сейчас делают платку на STM, где модуль МПО эмулируется. По идее должно решать все проблемы с программами.

Photocor
12.06.2019, 20:02
Сейчас делают платку на STM, где модуль МПО эмулируется. По идее должно решать все проблемы с программами.
Тем не менее, в целях исторической реконструкции, хотелось бы иметь возможность залить что-то полезное на настоящий МПО ))
На местной барахолке пока ничего подобного не нашел.

NEO SPECTRUMAN
13.10.2019, 00:37
Есть, конечно, специальные Dependency Walker-ы, они точнее покажут
отлично!
нашел чего хотел прога
вытянул системные dll-ки из 7-ки
положил их в *******.exe.local
после выкидывания ошибок *******.exe с пинка запустилось на ХРю
и даже выполнило поставленные перед собой задачи

немедленно возьмем на вооружение :v2_dizzy_roll:

walhi
05.05.2020, 04:16
SMPReaderUSB (http://mk90.blogspot.com/2009/11/smpreaderusb.html). Штука тут достаточно известная. Я же предлагаю Вам всего за 100 рублей собрать аналог данной железки. Без ЛУТа, без фоторезиста. Только макетка (и то не обязательно) и месяц ожидания посылки с Китая. Хотя вполне возможно у Вас итак имеется в ящике парочка программаторов для микроконтроллеров AVR под названием USBasp.

Схемы устройств очень похожи между собой. В части USB они практически одинаковые, что не удивительно. Остается только подключить СМП и радоваться жизни.

Не вижу особого смысла заморачиваться со схемой измерения напряжения на батарейке. Проще взять мультиметр. К нему доверия побольше будет. Так что схема будет состоять из пяти проводков.

https://dev.walhi.ru/_media/smp_adapter.gif

В результате получаем работающий программатор. Из отличий от оригинала: нет загрузчика и ругается на напряжение батареи в 0 вольт. Опять же, не вижу смысла в загрузчике, так как проект давно уже не обновлялся. Последняя версия, вроде, от 2009 года.

Все FUSE биты оставить без изменений. Просто залить файл прошивки в микроконтроллер.

Скачать модифицированный исходный код прошивки: https://dev.walhi.ru/_media/src_smpreader.zip.
Скачать файл прошивки и плату в формате SL6: https://dev.walhi.ru/_media/%D0%BC%D0%BA90.zip.

Для желающих посмотреть процесс адаптации прошивки (запись стрима):
https://www.youtube.com/watch?v=cbEqOipq45k

Radon17
28.02.2021, 15:45
Решился повторить идею из предыдущего сообщения. Получилось вполне успешно :)
Постараюсь расписать по шагам что именно нужно делать "с нуля". Все изображения в данном сообщении кликабельны.

Первое: покупаем на AliExpress или локально ДВА программатора usbasp. Можно брать любые на базе МК ATmega8. Конкретно я взял тут: https://aliexpress.ru/item/32727211265.html (со временем ссылка может устареть).

Второе: как только программаторы приехали, распаковываем оба. Вставляем один в usb разъём компьютера. Через диспетчер устройств находим наш программатор и ставим драйвера. Их можно взять например вот тут (https://myrobot.ru/downloads/driver-usbasp-v-2.0-usb-isp-windows-7-8-10-xp.php)

Третье: соединяем два программатора штатным кабелем из комплекта через штатные разъёмы.
Тот, который хотим перешивать, оставляем лежать на столе и переводим в режим обновления прошивки установкой перемычки (здесь подписана как upgrade standby).
На том, который воткнут в компьютер, эту перемычку не ставим. Но на обоих надо выставить правильные логические уровни (перемычка output selection). Переводим её в положение 5v.

https://pic.maxiol.com/thumbs2/1614511734.1559558027.wavgatusbaspusbisp.jpg (https://pic.maxiol.com/?v=1614511734.1559558027.wavgatusbaspusbisp.jpg&dp=2)

Четвёртое: скачиваем программу avrdude. Изначально она консольная, но под неё есть неплохая графическая оболочка. Взять её можно тут (https://microkontroller.ru/programmirovanie-mikrokontrollerov-avr/avrdude_prog-programmirovanie-avr/). Выбираем из списка нужный контроллер (ATmega8). Далее в поле "flash" нажимаем на кнопку с тремя точками и выбираем файл smpreaderusb.hex из архива от walhi (https://dev.walhi.ru/_media/мк90.zip). С фьюзами я лично ничего не делал, оставил по умолчанию. Вроде всё работает.
Далее всё в том же поле "flash" нажимаем кнопку "программирование". Как только оно закончится, высветится сообщение об успехе.

Затем можно отключить программаторы друг от друга и снять перемычку обновления прошивки.
Теперь можно распаять шлейф нашего программатора. Схема представлена выше в сообщении walhi.
Здесь важно: крайне нежелательно использовать современные разъёмы-гребёнки. Оригинальные имеют несколько другой вид контактов. Тут они прямоугольного, а не квадратного сечения.

Вот тут наглядно показаны отличия:
https://pic.maxiol.com/thumbs2/1614513730.1559558027.dscn6702.jpg (https://pic.maxiol.com/?v=1614513730.1559558027.dscn6702.jpg&dp=2)

Сейчас такие разъёмы можно снять с донорских плат от дисководов МС 5305 армянского производства.

https://pic.maxiol.com/thumbs2/1614514177.1559558027.dscn7297.jpg (https://pic.maxiol.com/?v=1614514177.1559558027.dscn7297.jpg&dp=2)

Достаточно только их выпаять, очистить от окислов, развернуть контакты на 90 градусов и склеить отдельные секции цианокрилатным клеем.
Но вернёмся к шлейфу. От комплектного шлейфа программатора отрезается один из разъёмов, без разницы какой, и припаивается наша гребёнка с контактами.
Конкретно я сделал вот так:

https://pic.maxiol.com/thumbs2/1614515067.1559558027.dscn7291.jpg (https://pic.maxiol.com/?v=1614515067.1559558027.dscn7291.jpg&dp=2)

Привожу табличку соединений:


+-----+-------+
| СМП | Шлейф |
+-----+-------+
| 1 | --- |
| 2 | 2 |
| 3 | 4 |
| 4 | 6 |
| 5 | 7 |
| 6 | 8 |
+-----+-------+


В шлейфе первый контакт всегда помечен красным цветом, нумерация контактов СМП взята с известного сайта (http://www.pisi.com.pl/piotr433/mk90cahe.htm).

Итак, теперь можно работать! Подключаем наш перепрошитый программатор к ПК. К нему сразу же подтягиваются драйверы от usbasp, но это нам даже на руку.
Скачиваем архив (http://arduino.idanilov.ru/files/b/smpreaderusb/smpreaderusb_2.0-full.zip) с сайта разработчика. Находим программу smpusb.exe по пути \smpreaderusb_2.0-full\software-bin\windows\smpusb.exe.
Синтаксис команд продублирую здесь на всякий случай:

Использование:

Чтение образа СМП: smpusb read -f filename.bin
Запись образа СМП: smpusb write -f filename.bin
При каждом чтении или записи программа будет ругаться на низкий уровень заряда батареи, это совершенно нормально т.к. в перепрошитом программаторе он никак не определяется.

Всё! Можно пользоваться.