Submitted by st on пн, 28/09/2020 - 18:28 Permalink
Я имею в виду, что на сурсфордже есть сервисы и SVN, и Git. Калькуляторный проект лежит в SVN. Его также можно checkout к себе, потом либо продолжать с этим депо (у тебя был доступ на запись), либо создать свой.
Submitted by Vitasam on пн, 28/09/2020 - 20:13 Permalink
Да, понятно. Я клонирую себе сейчас локально с Сорсфорджа SVN-ом, а потом буду собирать все у себя в Гитлабе. Если что-то заработает, либо выложу обратно в сорсфордж, либо еще что.
Submitted by st on вт, 29/09/2020 - 12:20 Permalink
Насколько я помню, GPL от LGPL отличается тем, что если ты меняешь код, то при распространении конечного продукта должен его отдавать вместе с продуктом. В LGPL попроще, можно только бинарники.
Submitted by AtH on вт, 29/09/2020 - 14:23 Permalink
GPL заражает свободой произведения, включающие код под GPL («авторское лево»). LGPL требует распространять исходники только самой библиотеки, а основная программа может быть под другой лицензией.
Конечно, в работы под GPL можно включать другие работы под менее строгой LGPL. Надо лишь помнить, что авторские права не передаются. Поэтому при публикации совместного произведения требуется либо учитывать LGPL (минимум включить в дистрибутив исходники библиотеки и текст LGPL), либо индивидуально договориться с автором о другом лицензировании.
Submitted by st on вт, 29/09/2020 - 15:12 Permalink
Внушает оптимизм :) Эмулятор в консоли был работающий, интерфейс с консолью я отделил по максимуму, так что проблем перетащить само ядро не должно возникнуть.
Submitted by AtH on вт, 29/09/2020 - 16:45 Permalink
В DM41X полноэкранный редактор — графическая оболочка над эмулятором. Выдаваемая эмулятором информация о памяти программ расшифровывается на 4 строки экрана, а вводимые с клавиатуры команды передаются эмулятору. Есть не только клавиши вверх/вниз, отсутствовавшие на старой железке, но и комбинации клавиш для перехода на первую и последнюю строки программы.
При этом ощущение совершенно другое, удобнее смотреть и редактировать программу. Но одновременно и 100% совместимость со старым ПМК, так как в конечном итоге всё проходит через эмулятор.
Если делать римейк МК-61, как state of art, режим F ПРГ можно приблизить к такому же в МК-161. С таблицей декомпилятора и отображением мнемоники, на русском или английском языках. К каждому шагу можно отдельно (вне памяти эмулятора) хранить дополнительный байт, как в MKP — что хранится в ячейке, адрес или код операции. Это позволит реализовать вставку и удаление шага / команды.
Submitted by Vitasam on вт, 29/09/2020 - 21:10 Permalink
Да, согласен. Ресурсов "синей таблетки" пока хватает, похоже, в крайнем случае, уйдем на RET6 чип с 512КБ флэш-памяти.
Типа такого варианта (обратный слэш кода 5С на шаге 01 почему-то онлайн генератор ЖКИ не смог отрисовать):
ЖКИ экраны 20x4, что находятся у меня, с латинским знакогенератором. Вроде, есть экраны с кириллицей в прошивке, у меня таких никогда не было.
Но у HD44780 контроллера дисплея есть память на 8 символов пользователя. Вопрос - можно ли организовать интерфейс МК61S таким образом, что в каждый момент времени на экране будет не больше 8 русскоязычных символов? Тогда, теоретически, можно на лету подгружать русские символы.
P.S. Второй скриншот в начале форума я удалил - там баги были :)
P.P.S Производитель МК161 не будет против слизывания дизайна?
Submitted by AtH on вт, 29/09/2020 - 22:04 Permalink
Можно и так. В этом случае эмулятору придётся скармливать ШГ→ , ШГ← для считывания четвёртого шага на виртуальный индикатор. Ну или обращаться к кольцу в обход эмулятора.
Проще, наверное, оставить классический вывод 3 шагов, посвятив каждому из них отдельную строку с адресом, кодом и мнемоникой. На четвёртой же выводить статусную информацию. Нажатые клавиши F, K, ИП и т.д. Примерно так и в МК-161 ввод устроен, только там шагов в два раза больше отображается. По правилам ЭКВМ новая команда вводится в подчёркнутую (нижнюю) ячейку памяти программ. На этом снимке только что введена команда БП 59, и ЭКВМ готова вводить новую команду в пустую ячейку 0098.
За Новосибирск говорить сложно. В первые годы они ругали копирайт и выступали за повторное использование своих, да и вообще всех наработок мира. Значительная часть МК-161 сама слямжена с советских ПМК. Ограничения касались лишь кода прошивки ЭКВМ, который здесь не при чём. Тот же eMKatic полностью копирует дизайн МК-161. Что сейчас у них на уме, непредсказуемо, так как с сообществом разработчики общаться перестали. Если начнутся претензии, разработать новый дизайн труда не составит.
Submitted by Vitasam on вт, 29/09/2020 - 22:09 Permalink
3 строки + статус строка мне нравится больше. Насчет кнопок - можно либо придумать свою комбинацию кнопок "что-то" + ШГ→ скачет на 3 шага. Либо даже добавить кнопки дополнительные
Submitted by AtH on ср, 30/09/2020 - 02:12 Permalink
ИПРГ нет в эмуляторе, зато ИП есть. Также есть Д в ГРД. По хорошему ещё потребуются ×, ÷, В↑, Fπ, КГ→М, ШГ←, F xʸ, F x², F 10ˣ, F ⟳, F x≥0, F x≠0, F √ , ↔ и K∧, K∨, K⊕. Неплохо было бы сделать З для КЗН.
Но одновременно этих символов на экране штучки 3-4, если не увлекаться колонкой ASCII. Или можно сделать творческий микс из русской и латинской мнемоник.
Submitted by AtH on ср, 30/09/2020 - 11:15 Permalink
Можно и на будущее оставить, конечно. Но железо 1.0 их вполне потянет, так как одновременно на экране будет всего чуть-чуть экзотических символов. Даже если в режиме F АВТ сделать статусную строку, эхо введённой команды.
Кстати, здесь есть выбор. Можно либо отображать все 4 регистра стека, либо RX, RY и две строки статуса.
Ещё в ЭКВМ есть режим ввода байтов для прямого редактирования памяти программ. Он может пригодиться, если в 16-страничном режиме команды 4F и 6F начнут обеспечивать доступ к 16-ому регистру.
Submitted by Vitasam on ср, 30/09/2020 - 11:45 Permalink
Даже интереснее оставаться в рамках железа 1.X ("синяя таблетка и экран 20x4) - спортивный азарт выдать все, что можно, из нерусифицированного и дешевого железа.
Железо 1.1 планируется тоже самое как сейчас 1.0, но с автономной клавиатурой из тактильных кнопок.
С раскладкой клавиатуры ориентироваться под что - сразу под МК52? Или нечто промежуточное между МК61 и чем?
Submitted by AtH on ср, 30/09/2020 - 12:05 Permalink
Раскладка — самое сложное. В своих проектах я сейчас ориентируюсь на горизонтальную клавиатуру МК-152. На клавишу ВЫХОД можно повестить меню, зависящее от проекта. Клавиши выбора (стрелочки) можно задействовать не только в нём.
В римейке МК-61 клавиша Р не используется. Её можно назначить на борьбу с Тьмой, а дальше как пойдёт.
Submitted by AtH on ср, 30/09/2020 - 10:40 Permalink
Нам наверняка захочется видеть на индикаторе EГГ0Г, а не EDD0D. Кто-то будет без ума от 3ГГ0Г’ов и прочих извращений.
Если в режиме программирования можно использовать шестнадцатеричную систему (в том числе для адресов A0-A4), то для логических операций в автоматическом режиме вместо неё будет старое доброе -, L, C, Г, E. Для борьбы с Тьмой и выхода из зависаний «пустышки» можно предусмотреть специальную кнопку безопасности, на ходу «лечащую» кольцо от фальшивых меток и перезагружающую процессоры.
Также можно предусмотреть работу в трёх режимах — Б3-34, МК-61 и новый на 112 шагов, 16 регистров. Программы во флэшке можно снабдить тэгом, для какого из этих режимов они разработаны.
Submitted by Vitasam on чт, 01/10/2020 - 00:12 Permalink
Как я понял, у меня европейская кодовая таблица: (ROM Code: A00).
Надо проверить, та ли она. Но спецсимволов там хватает, можно, наверное, что-то позабирать оттуда.
Да, глиф квадрата у меня дурацкий. Я символы этой онлайн-тулзой рисовал, квадрат лучше не придумал
Submitted by Vitasam on чт, 01/10/2020 - 08:41 Permalink
Да, я перепутал - у меня как раз А00, японский вариант:
В общем, для использования эти символы и 8 своих символов на одном экране (нельзя загрузить другие символы в тот же экран - старые символы "поломаются")
Submitted by AtH on чт, 01/10/2020 - 12:41 Permalink
Перед обновлением индикатора из теневого массива (K SCR) можно сбрасывать счётчик своих символов. Перед выводом символа из русского диапазона добавлять его глиф в 8 своих символов, если такого там ещё нет, и заменять для HD44780 код этого символа на код глифа.
Должно помочь, так как больше 8 своих символов одновременно на экране не будет. Такой «кэш 8 из 25» для имитации 25 глифов, когда железка поддерживает лишь 8. В прошивке у каждого русского символа будет свой постоянный код, но HD44780 знать эти коды не будет — только те, которые русским символам временно назначены при последнем обновлении индикатора.
Реально новых символов даже меньше 25, так как в японской раскладке есть минимум 6 заводских символов, которые можно использовать вместо своих глифов: ÷, Fπ, КГ→М, ШГ←, F 10ˣ, F √.
Submitted by Vitasam on чт, 01/10/2020 - 08:43 Permalink
матрицу клавиатуры (распаянную или, как я собираюсь, от настоящего МК52) и написать драйвер опроса клавиш. И все - можно начинать рисовать схему MK61 Gold :)
Submitted by AtH on сб, 03/10/2020 - 17:00 Permalink
Публикация неработающих исходников — хорошо, конечно. Но настоящий выпуск в мир это когда можно прислать денежку и получить готовый калькулятор, пусть и по почте.
Уверенности, что проект будет когда-нибудь доведён до этого этапа, пока нет. Поэтому и мой респект Новосибирску и Swiss Micro, что их проекты — не просто баловство «посмотрите, что я могу».
Большинство критиков МК-161, увы, выпустить серийную модель не могут. Обычное ведро с крабами. Надеюсь, этот проект однажды доведут до серийного продукта. И тогда будет, с чем МК-161 сравнивать.
Submitted by st on сб, 03/10/2020 - 19:10 Permalink
Отлично, теперь можно подумать о каком-то "железе", возможно малосерийном с алиэкспресса, чтобы сделать калькулятор. Готов поучаствовать, если нужно что-то заказать для опытных образцов.
Submitted by Vitasam on сб, 03/10/2020 - 20:13 Permalink
Отвечу тут сразу на оба комментария - этот и уважаемого AtH выше.
Ath:
Публикация неработающих исходников —
хорошо, конечно. Но настоящий выпуск в мир
это когда можно прислать денежку и
получить готовый калькулятор, пусть и по
почте.
Уверенности, что проект будет
когда-нибудь доведён до этого этапа, пока
нет. Поэтому и мой респект Новосибирску и
Swiss Micro, что их проекты — не просто
баловство «посмотрите, что я могу».
Большинство критиков МК-161, увы, выпустить
серийную модель не могут. Обычное ведро с
крабами. Надеюсь, этот проект однажды
доведут до серийного продукта. И тогда
будет, с чем МК-161 сравнивать.
Исходники вполне уже тянут на "хэлло ворлд". Для этого и выпущен в мир - мало ли, кто-то захочет присоединиться. Скорее всего, ни до чего уровня МК-161 или SwissMicros не дорастет, но если не пробовать, то точно не получится :)
st:
Отлично, теперь можно подумать о каком-то "железе", возможно малосерийном с алиэкспресса, чтобы сделать калькулятор. Готов поучаствовать, если нужно что-то заказать для опытных образцов.
Пока roadmap железа такой:
Нынешняя плата от stm32basic с PS/2 клавиатурой: HW 1.0
Такая же плата, но подпаянная к клавиатуре от MK52: HW 1.1
Схема железа HW 1.x стоит копейки - в сумме, наверное, евро 10 с алиэкспресс.
А дальше под вопросом. Для stm32basic-а на более мощном чипе stm32 (64КБ ОЗУ и 512 КБ флэш) я почти развел печатную плату с целью заказать пробную серию из 5 плат где-нибудь в Китае. Переделать эту схему под МК61S будет не очень сложно.
Submitted by st on вс, 04/10/2020 - 01:48 Permalink
И плату, и корпус неплохо бы заказать. Возможно, есть какие-то готовые полуфабрикаты на али. Может быть есть какие-то готовые модели, которые можно перепрограммировать на уровне прошивки и засунуть туда нужную.
Я пока думаю о промежуточном варианте - печатную плату развести и заказать, а корпус сделать на 3Д принтере. Модель корпуса тоже выложить в Thingverse.
Submitted by AtH on вс, 04/10/2020 - 18:42 Permalink
От МК-161 можно взять корпус, аккумулятор, клавиатуру и индикатор. При этом основную плату заменить на более мощную. Жаль, что по деньгам такой проект не самый оптимальный.
Также производство можно поднять самому или передать какой-либо уже существующей фирме, в Москве или Ленинграде. Можно и Новосибирск попросить. Жаль лишь, что новосибирский «патриотизм» на практике означает дурное отношение к соотечественникам и коллегам.
Submitted by Vitasam on вс, 04/10/2020 - 19:55 Permalink
Корпус МК161 в "Чип и Дипе" за 500 рублей продается.
Но если честно, второй "мультиметр" МК161-го мне лично не хочется. Хочу плоский корпус, в толщину экрана 20x4 плюс печатная плата
Submitted by AtH on вс, 04/10/2020 - 20:25 Permalink
1. В МК-161 хорош не сам корпус, а клавиатура, индикатор и аккумулятор. Они отечественные. И даже если клавиши хотелось бы не голые, а с толкателями, их раскладка близка проекту. Индикатор и аккумулятор выбраны так, чтобы поддерживать отечественного производителя.
2. Тонкий корпус хотелось бы. Но это — уровень больших корпораций вроде Apple и HP. Если мы хотим цену готового продукта держать скромной (10-20 т.р.), особых хотелок по поводу корпуса удовлетворить не получится.
Или, опять же, бросать отечественную «железную» компоненту (тем более, что есть риск, что выжившее при Путине производство окажется таким же фашистским и русофобским, как сами знаете кто) и договариваться со Swiss Micros или Китаем.
Submitted by AtH on вс, 04/10/2020 - 20:40 Permalink
Тем не менее, МК-161 выпускается. А критики — классические путинские крабы в ведре. Сами ничего за 20 лет не выпустили и тех, кто выпускает, стараются прищучить, заставить тоже сидеть на диване и смириться с разрушением отечественного производства.
Submitted by AtH on вс, 04/10/2020 - 21:06 Permalink
МК-161 — лучший отечественный ПМК. Потому, что других, к сожалению, здесь не выпускается. На мировом рынке у него есть достоинства (высокое быстродействие, совместимость с МК-61, низкая стоимость носителей УЗВМК-1, внешние интерфейсы, возможность объединения в сеть) и недостатки (брутальный стиль, высокая цена).
Тему на обсуждение автопрома прошу не менять. Сам я не автовладелец. Даже если вы захотите, подобно некоторым соотечественникам, сменить тему на сиськи-пиписьки, это будет более приемлемо — в интимных отношениях гомо сапиенс я разбираюсь лучше, чем в ваших Запорожцах и Мерседесах.
Submitted by AtH on вс, 04/10/2020 - 22:30 Permalink
При разработке железа, особенно с учётом будущего серийного производства, предлагаю учитывать возможный порт Каллисто на него. На этой стадии, когда будет работающее железо, и мне будет интересно подключиться к проекту.
Выпускать сильно разные модели ПМК мы вряд ли потянем. У Каллисто требования — алфавитная клавиатура. Клавиатура МК-161/152 (38 клавиш) это самый минимум. Лучше добавить несколько клавиш для знаков пунктуации в русском режиме. Также неплохо, если экран будет графический и не хуже экрана МК-161, а ПЗУ/флэш-памяти хватит для разумного подмножества Юникода. Внешние интерфейсы лучше не сокращать, а добавлять. Тачскрин для меня норм, удешевит устройство и решит проблему клавиатуры.
Каллисто будет включать ограниченный симулятор ЭКВМ. После избавления от дурного влияния Гарварда можно будет писать переносимый код ПМК средствами Каллисто — так, как на Форте делают вставки на ассемблере, где важно быстродействие. Быстродействие повысится за счёт реализации шитого кода (NEXT, CALL, RETURN, EXECUTE) на уровне команд ПМК, а не поверх них. Другими словами, программы из справочников Дьяконова, Цветкова, Трохименко можно будет включать в каллистянские приложения с минимумом изменений, как слова низкого уровня. Давать этим программам имена, объединять в библиотеки и строить из них более сложные приложения.
Submitted by Vitasam on вс, 04/10/2020 - 22:47 Permalink
лучше сразу ориентироваться на stm32basic HW 2.0:
stm32f103ret6: 72 МГц, 64К ОЗУ, 512К флэш; 320x240 цветной экран, qwerty клавиатура.
Вот этот комплект обойдется примерно в 25 евро с алиэкспресса (плата stm32 позади экрана):
Submitted by AtH on вс, 04/10/2020 - 23:03 Permalink
Такой комплект дёшев, но сильно крупнее МК-161. Это уже ноутбук, а не ПМК. Клавиатура должна быть сильно меньше. Идеал это форм-фактор айфона с тактильными клавишами. Которые приложение может убрать, если запросит полноэкранный вывод.
При этом можно вывести на весь экран графики и двигать их пальцами. Для внешней клавиатуры можно предусмотреть разъём или блутус, эта роскошь уже для стационара.
320×240 в цвете это хорошо. Детям нравится баловаться с графикой.
Submitted by AtH on вс, 04/10/2020 - 23:37 Permalink
Да, фотография с МК-61 поможет.
Смысл Каллисто — вывести отечественную индустрию из тупика, в который её загнал захват производительных сил воровской бандой Путина. Советские технологии, да и всю нашу страну разграбили и добивают жадные тупые казнокрады с отрицательной креативностью и религиозной претензией на эксклюзивное обладание единым источником всего творчества в России.
Поэтому и ориентация на отечественные технологии, а в перспективе и на отечественные комплектующие. Строить русский уровень поверх американского задачу не решит. Здесь и вопрос надёжности, и громадную долю нашего никакого финансирования забирает себе Калифорния — в том числе и от разработчиков $100 в год поверх $500 стоимости айфона.
Можно временно использовать айфон, как макет. Но на этом этапе к проекту присоединиться смогут далеко не все, в том числе из-за высокой стоимости макбуков — где запускается Xcode, «бесплатная» среда разработки. Отдельная дешёвая железка с возможностью метакомпиляции на борту решает большинство вопросов и возвращает творческие способности в руки самих людей, хотя в конечном итоге её лучше перевести на отечественные комплектующие.
Submitted by AtH on пн, 05/10/2020 - 09:59 Permalink
Очстранно. Индикатор хорош по размеру. Кнопки в голове не укладываются. Сразу много вопросов возникает. Они такие крохотные? Сколько их? Тоже без толкателей, как на МК-161? Это стандартная клавиатура или можно менять количество и расположение клавиш?
Для Каллисто русский язык нужен также, как и латинский. Есть несколько спецсимволов, унаследованных от ПМК, например ↔ и √. Отдельный ряд цифр, разумеется, поможет. Хотя есть сомнения, возможно ли его сохранить в русском режиме. В целом можно начинать с этим работать. Хотя надписей у клавиш будет много. Для экономии и без того скромной площади какие-то из них хотелось бы гравировать прямо на толкателях.
Submitted by Vitasam on пн, 05/10/2020 - 10:18 Permalink
Клавиатура из готовых, для модульного компьютера M5STACK 6 евро на али.
Кнопки без толкателей, обычные тактильные кнопки, чуть меньше тех, что в МК161. Теоретически поверх можно положить мембранную клавиатуру, как в МК152, соответственно нарисовать свою раскладку.
Драйвер дисплея у меня полностью отлажен и работает с Basic в stm32basic, до этой клавиатуры еще руки не дошли. Прошивку клавиатуры можно писать свою (ардуина), если нужен какой-то другой протокол.
Весь комплект легко упрячется в любой прямоугольный корпус, останется места для батареек или аккумулятора.
Из бюджетного и доступного, думаю, для Каллисто вряд ли найти платформу мощнее по такой цене.
Submitted by AtH on пн, 05/10/2020 - 15:10 Permalink
Понятно. Хорошо, буду учитывать параметры такой комплектации. В ближайших планах вынос драйвера клавиатуры с уровня ЯМК на уровень симулятора ЭКВМ. То есть интеграция в Каллисто этой или другой клавиатуры будет, как простая замена драйвера в виртуальной машине. Без изменения исходного кода транслятора.
Submitted by AtH on пн, 05/10/2020 - 10:30 Permalink
Чтобы Каллисто можно было разрабатывать на самой железке, есть требования по памяти. Исходник Каллисто Классик занимает 148 кБ. Самокомпилирующееся ядро может занять раза в три больше максимум. Если мы переходим на Юникод, это ещё в два раза увеличит исходник. Итого хотя бы 512 кБ, а лучше мегабайт — в идеале прямо в ОЗУ, но можно считывать с электронного диска блоками по 3Кб.
В ОЗУ должен быть уже откомпилированный код транслятора, причём дважды. Тот, который компилирует и тот, который компилируется. На МК-161 это 14096 байт (память программ + байтовые регистры) + 8000 байт (тысяча десятичных регистров). С тройным запасом получаем 130Кб на обе копии. К этому надо прибавить симулятор ЭКВМ и BIOS, тоже 64-128Кб.
Итого примерно мегабайт-полтора оперативки позволит сделать самокомпилирующееся ядро. Если сильно экономить и читать исходник блоками, то даже 256Кб может хватить. Флэш-память лучше несколько мегабайт минимум — хранить разные версии ядра, редактор и другие программы с исходным текстом.
Также нужна память для шрифтов Юникода. На растровый символ уходит примерно 8 байт шрифта 0, 20 байт шрифта 2 и 60 байт шрифта 3. Итого 88 байт на символ, 22 Кб на страницу из 256 символов. Если не извращаться с кэшем знакогенератора, то в 256Кб можно уложить 10-12 страниц. Для начала должно хватить и двух-трёх страниц.
Конечно, возможности подключать внешнюю клавиатуру и дисплей сделают разработку системы на борту куда комфортней. Это не обязательно встраивать в сам ПМК, можно предусмотреть стационарную док-станцию.
Edit. Так что 64К ОЗУ и 512К флэш — не роскошь. Но если не злоупотреблять Юникодом и экономно расходовать память, можно попробовать в эти ограничения уложиться.
Submitted by Vitasam on пн, 05/10/2020 - 13:15 Permalink
С такими требованиями к железу для разработки "на борту" проще сразу брать Raspberry Pi zero с теми же экраном и клавиатурой как на фото выше, будет ненамного дороже.
Submitted by AtH on пн, 05/10/2020 - 14:58 Permalink
Посмотрим, как там по быстродействию. Может, малинка и для ЭЛ (эмулятора Лазарева) будет лучшим решением.
На текущем этапе надо довести Каллисто до кроссплатформенности и метакомпиляции, на чём угодно. Тогда и будут ясны точные требования к ОЗУ, а не грубая оценка сверху. Релиз же хочется видеть на голом железе, а не поверх Линукса.
Малинка может стоять, например, в док-станции ПМК. Такую док-станцию с USB-клавиатурой и HDMI можно сделать даже для МК-161, пользуясь протоколом внешнего доступа.
Submitted by st on вс, 04/10/2020 - 20:41 Permalink
Медленный, три года назад назад Алексей digitalinvitro при моей минимальной поддержке оптимизировал программу для MSP430, но выжать удалось немного. Ветка на форуме. Ты ведь и сам участвовал, видимо забыл уже.
Submitted by Электромонтёр on вс, 04/10/2020 - 21:18 Permalink
Вижу, есть трудности с разводкой обвязки процессора.
Можно спокойно уменьшить толщину сигнальных дорожек и допустимый зазор между ними до 0,3/0,2 мм, это заведомо можно сделать на любом заводе. Диаметр пятачка/отверстия переходов можно 1,0/0,4 мм.
Мне месяца полтора назад в кустарных условиях удалось изготовить двустороннюю плату под микросхему в TQFP-48:
Толщина дорожек 0,3 мм, шаг выводов - 0,5 м. Пятачки переходов увеличены до 1,15мм, иначе даже Ф0,4 сверлом трудно просверлить нормально - рассогласование по сторонам у меня 0,15-0,2мм.
Но заказывать непременно с паяльной маской - иначе могут быть замыкания на плате при пайке.
Submitted by AtH on вс, 04/10/2020 - 18:38 Permalink
В DM41X есть клавиша DISP. Она переключает экран с отображения всего стека на отображение части стека — и справочной информации в служебных строках. При этом переключение незаметно для эмулятора. То есть можно посмотреть дополнительную информацию прямо во время ввода числа, и продолжить его вводить.
Также в DM41X выбрали отказаться от подписи регистров стека X, Y, Z и T, так как знающие обратную польскую запись и так это знают. Другим же надо чуть-чуть подучиться, перед использованием ПМК. В МК-161 регистры подписаны.
Submitted by AtH on вс, 04/10/2020 - 20:30 Permalink
Мне приятно смотреть на XYZT в МК-161. От надписи можно отказаться ради количества выводимых знаков, но в эмуляторе Лазарева число значащих цифр фиксировано.
С другой стороны, место справа от стека (не используется в DM41X) можно использовать для индикации Р-ГРД-Г, режима счёта по программе, нажатой префиксной клавиши и т.п.
То есть команда С/П в режиме ПРГ ввелась в память программ правильно - с кодом 50. После возвращения в режим АВТ команда В/O тоже, вроде, правильно сработала. А вот следующая за ней С/П выдала пустой экран с запятой, оставшейся после режима ПРГ.
Submitted by AtH on пн, 05/10/2020 - 23:45 Permalink
На вскидку:
1. Удобное хранение программ и связь с компьютером.
2. Декомпилятор, вставка и удаление команд, ввод шестнадцатеричных КОПов.
3. Антитьма и антипустышка для еггогологии. (Кнопка для приведения зависшего ПМК в чувство.)
4. Возможность просматривать/редактировать кольцо (если будет реализована), дешифровывать/генерировать «сверхчисла» и узнать чуть больше о ПМК.
5. Шестнадцатый регистр и 112 шагов, если добавить ещё одну страницу в кольцо.
6. Хоть в 2-3 раза, но быстрее.
7. Советские ПМК выходят из строя, а МК-161 позволить себе иметь может не каждый.
8. В отличии от ЭКВМ, полная совместимость.
9. Долгожданный проект. Его всё равно кому-то придётся делать, можно сделать раньше и побыстрее развить сцену ПМК.
10. На такой ПМК есть спрос.
11. Опыт его разработки и выпуска пригодится при создании прекрасного ПМК Будущего.
12. Просмотр и очистка стека возвратов.
Submitted by Vitasam on пн, 05/10/2020 - 23:53 Permalink
По поводу смысла - в целом да, смысла в такой цифровой ожившей копии больше, чем в симуляторах типа DM42 и МК161.
По поводу списка - 1), 2) 4), 5) еще сильно далеки от реализации.
По поводу быстродействия - глядя на текущий код эмулятора, есть подозрение, что его можно чуть чуть ускорить.
Надо "короткие" счастливые билеты захардкодить, чтобы по нажатию клавиши грузились из Си-шной структуры. Удобно для оптимизации быстродействия, чем руками набивать каждый раз
Submitted by st on вт, 06/10/2020 - 00:13 Permalink
Виталий, ты не посмотрел дискуссию с Алексеем по ссылке выше? Там ровно те же проблемы были, решались выкидыванием "лишнего" и вводом предвычисленных таблиц. Исходники Алексей влил на сурсфордж.
Submitted by st on вт, 06/10/2020 - 16:59 Permalink
Именно так, по 560 циклов на выполнение одного такта эмулятора - это тихий ужас. И есть подозрение, что проблема не в эмуляторе, а в прошивке и архитектуре МК61.
Submitted by AtH on вт, 06/10/2020 - 17:16 Permalink
Проблема в том, что никто ещё не сел за стол и не расписал алгоритмически ни одну из 256 команд. И даже ни одна из 128 синхрокоманд не записана в виде алгоритма, насколько я помню.
Уже 8 лет прошло, как опубликован микрокод. Но на разных языках (Си, C++, JavaScript) всё до сих пор эмулируется потактово, на уровне 68 микрокоманд. Прогресс только в мегагерцах у зарубежных процессоров, на которых идёт эмуляция.
Submitted by Vitasam on чт, 08/10/2020 - 23:43 Permalink
Шрифт заставки сейчас мне тоже не нравится, но тут проблема: количество уникальных глифов, из которых рисуется жирный шрифт, может быть не больше 8. Поэтому приветствуются варианты дизайнов, если получится что-то более лучшее :)
Submitted by digitalinvitro on чт, 08/10/2020 - 14:32 Permalink
А для каких stm32 это опция будет работать? Я правильно понимаю что -pipe оптимизация по конвейеру stm32? Действительно у stm32 есть зависимость от порядка следования команд?
Submitted by Vitasam on чт, 08/10/2020 - 23:52 Permalink
Добавил два UART принта - один, когда нажата клавиша C/П, а второй - когда режим работы по программе заканчивается (код в Гитлабе).
Терминал в Arduino IDE умеет подставлять штампы времени, что есть удобно для измерений.
Ниже размер бинарника прошивки при флагах -Os, -O2, -O3 и время работы "коротких" Счастливых билетов, соответственно. Измерения делал два раза - результат стабильный:
Submitted by Vitasam on вс, 11/10/2020 - 01:13 Permalink
MK61S HW 1.1:
В общем, принято решение, куда двигаться с версией HW 1.1 - это будет замена "материнской платы" МК52, с экраном 16х2. В идеале можно купить сломанный МК52, выкинуть потроха, оставив клавиатуру (там, к сожалению, понадобится небольшая пайка, так как шлейф клавиатуры припаян).
Submitted by st on вс, 11/10/2020 - 02:27 Permalink
Не хочешь попробовать корпус от МК61? МК52 жалко в том плане, что у него доп.возможности, отсутствующие в эмуляторе. Или надо будет симулировать переключатель "Д-П" и кнопки "||" "А|"
Submitted by Vitasam on вс, 11/10/2020 - 11:11 Permalink
Про корпус от МК61 думал, но есть несколько моментов:
1. ЖКИ дисплей, даже напильник не поможет. Других дешевых алфавитно-цифровых дисплеев нет на горизонте:
2. У меня есть два сломанных МК52, но нет сломанного МК61, а есть в коллекционном состоянии, рабочий. Под нож не буду.
3. Клавиатуры МК61 не хватит для дополнительных операций работы с SD-карточкой, в МК52 можно задействовать несколько.
А, в целом, согласен, раз у нас есть цифровая копия МК61, а не МК52, то и в корпус МК61 было бы лучше. Вопрос 1) надо поизучать, вдруг найдется OLED дисплей графический подходящий, тогда было бы аутентично - светящиеся цифры сквозь зеленое стекло МК61.
Вопрос 2) - ни у кого нет сломанной МК61? Я бы взял, с целью трансплантации.
P.S. А Ф.Лазарев не занимался реверс-инжинирингом чипов МК52?
Submitted by AtH on вс, 11/10/2020 - 03:17 Permalink
Тогда уж МК-52S. :-)
А две дополнительные клавиши пригодятся. По хорошему там больше клавиш потребуется. Ну или использовать 2-4-6-8 для навигации, а 5 и В↑ для выбора пунктов меню. Ноль для выхода, Сx для сброса в умолчания. Галочки можно ставить и снимать плюсом и минусом, ↔ меняет выбор на противоположный.
Submitted by Vitasam on вс, 11/10/2020 - 11:15 Permalink
МК52S было бы хорошо, если бы был реверс-инженерный эмулятор чипов МК52, я так понимаю, такой отсутсвует.
Насчет клавиатуры - если нужно больше кнопок (например, в Simpleputer stm32basic кнопок - 48 штук), то тогда надо просто делать свою собственную плату, с кнопками как на МК161, а корпус потом 3Д печатать
Submitted by AtH on вс, 11/10/2020 - 14:12 Permalink
В МК-52 только один новый чип К745ИК1801-2, для управления ППЗУ. Которое так себе идея. На советском безрыбье было шагом вперёд, но из-за ряда неуклюжих архитектурных решений (стирание построчно, а запись страницами по 7 шагов) добавление файловой системы (как в МК-161) будет правильным решением.
Маркировки основных трёх микроЭВМ (К745ИК1302-2, К745ИК1303-2 и К745ИК1306-2) у МК-61 и МК-52 совпадают. Скорее всего, их прошивки в этих калькуляторах не различались.
Submitted by Vitasam on вс, 11/10/2020 - 14:24 Permalink
А, ну тогда если добавить сохранение программ и данных на SD-карточку (это в планах - в stm32basic все работает - полноценная файловая система), тогда можно с честной совестью назвать эмулятор MK52S. Который в корпусе МК52
Submitted by Vitasam on пн, 12/10/2020 - 23:58 Permalink
Вариант компоновки МК61S, 3D.
Предполагается, что клавиатура - это накладка, сквозь которую торчат круглые шляпки тактовых кнопок, как в МК161 (рисовать было совсем невмоготу).
Верхний ряд из 5 кнопок может служить soft-menu кнопками, по 4 символа на название на экране.
Справа - разъем ST-Link + UART и сокет microSD карточки.
Плата ЦПУ втыкается в разъем дисплея "в горизонтальном" направлении - "пинхол"-коннектор на дисплее загнут Г-образно.
Submitted by AtH on вт, 13/10/2020 - 02:44 Permalink
Важно предусмотреть крепления плат и разъёмов. Я разбирал недорогую китайскую «банку», в которой забарахлил разъём USB. Там много чего крепилось просто на клею, а неисправный разъём USB держался только на припое — том же, через который шёл сигнал. Понятно, что неизбежное разбалтывание разъёма закономерно приводило к нарушению контакта.
По рисунку — справа от В↑ должно быть обозначение регистра e. Поскольку мы сделаем шестнадцатеричный ввод, f можно разместить на ×, как в МК-161. Также над ВП и Сx должны быть ⊕, СF, ИНВ.
Edit. До кучи: K∨, K∧ и F⟳.
Submitted by Vitasam on вт, 13/10/2020 - 09:10 Permalink
Крепления, конечно, нужны. Их можно организовать как традиционными винтами, так и пазами с защелками 3Д-корпуса, когда дело дойдет до плат с корпусом.
С рисунком клавиатуры - да, что-то пропущено (устал рисовать), какие-то символы не нашел, типа плюс в круге.
С кнопками тоже есть идеи не делать осточертевшие тактовые кнопки через дырки, а поставить на плату кнопки с крышечками, как на той I2C-клавиатуре, а кнопки напечатать как часть крышки, на гибких усах. Нормальные 3Д-принтеры такое умеют. И потом гравировкой нанести символы. Или, накладкой, на крайний случай.
Еще можно рядом с микроSD карточкой поставить USB разьем. В "синей таблетке" место еще есть, это нужно для зарядки аккмулятора и, в перспективе, с удобством работы как из Ардуино IDE - прошивка и работа с UART-терминалом.
Submitted by st on вт, 13/10/2020 - 14:43 Permalink
Хотел добавить одну мыслю, очевидную, наверное. В проекте МК61S не нужно стремиться к дешевизне, рыночек сбыта у этого устройства очень небольшой (десятки-сотни), поэтому максимизировать надо качество, за счет более высокой цены, конечно. В этом плане SwissMicros идут совершенно маркетинго-правильным путем.
Submitted by Vitasam on вт, 13/10/2020 - 16:35 Permalink
За и против высказанной мысли: да, рынок сбыта будет небольшой, сколько там наберется ретрогиков в русскоязычных интернетах, кто захочет купить или собрать?
Но разница в цене финального устройства, скажем 50 евро супротив 180 евро это существенная разница, которая сильно "отфильтрует" и так негустой рынок сбыта. Примеры перед глазами
Submitted by KPG on ср, 14/10/2020 - 19:09 Permalink
http://mecrisp.sourceforge.net/
По исходникам можно уточнить и лицензию этого Форта для STM32, MSP430 и вроде даже для AVR (помимо, например таких, как amForth, flashForth)
P.S.Ассемблерные исходники Форт ядра из этого проекта и Mecrisp-Cube по идее должны почти совпадать.
Submitted by AtH on ср, 14/10/2020 - 16:33 Permalink
Главная проблема Форта в МК61S — скромная цифровая клавиатура. Мне удалось её решить в Каллисто, но у МК-161 и кнопок побольше. Вторая проблема — отсутствие русского алфавита в знакогенераторе индикатора.
Задача по встраиванию Форта, работающего через терминал, вполне решаема. Но ПМК это всё же устройство, которое носишь в кармане и на котором работаешь автономно. Если есть десктоп, на нём самом можно Форт запускать, безо всякого ПМК.
Submitted by Vitasam on ср, 14/10/2020 - 16:45 Permalink
В последней редакции MK61S с экраном 20х4 кнопок планируется как в stm32basic Simpleputer - 48, форм-фактор - горизонтальный (МК52).
Из них 5 кнопок будут для soft-menu под экраном, остальные 43 - для нужд раскладки. Совершенно непонятно, как сделать раскладку, чтобы она была близка к калькуляторному. Как в TI-95?
Submitted by AtH on ср, 14/10/2020 - 17:03 Permalink
Советский ПМК это 6×5=30 клавиш. Зачем 48? Ну да, можно добавить ещё один ряд из 5 клавиш для меню. Но если делать эмуляцию МК-61, пусть расширенную, должна быть именно ПМКшная клавиатура — как на картинках выше.
Ввод букв потребуется только в файловой системе, для которой можно сделать экранную клавиатуру, как в ДОС МК-161. Полная алфавитная клавиатура потребуется в железке для Каллисто, где другие требования к ОЗУ и индикатору.
Submitted by AtH on ср, 14/10/2020 - 18:03 Permalink
Рассматривался ли вариант 6 мягких кнопок?
Дело в том, что один из вариантов экранной клавиатуры идёт именно через эти клавиши. Буква выбирается двумя нажатиями, первое выбирает диапазон. Пять клавиш дают 5×5=25 букв, что мало для русского алфавита. Шесть клавиш дадут 6×6=36 букв, что вполне достаточно. Конечно, русские имена файлов могут оказаться недопустимыми — все комплектующие и, наверное, библиотеки зарубежные. Вывод русских букв на индикатор тоже проблематичен.
Submitted by KPG on ср, 14/10/2020 - 19:15 Permalink
Снизу и сбоку индикатора располагаем кнопки
и при одновременном нажатии двух из них на пересечении подсвеченной буквы на экране её вводим.
(типа как в шахматах e2, e4 ... :)
Submitted by Vitasam on ср, 14/10/2020 - 21:30 Permalink
плотно поставить много софтовых кнопок это не ахти. Можно выбирать буквы кнопками ШГ-влево, ШГ-вправо, вверх, вниз.
Вот вариант с дополнительной софтовой кнопкой ALT:
Submitted by AtH on ср, 14/10/2020 - 22:39 Permalink
Тоже про такое решение думал. Можно назвать допкнопку Р, как в Б3-21 и МК-161. Ещё вариант — нарушить столбцы и разместить 6 чёрных клавиш на месте пяти.
Вот зачем А↑ и ↑↓ — не очень понятно. Стандартным способом эмулятору их не считать. Тогда уж надо переключатели Д-П, С-З-СЧ и прочую бяку. Вплоть до считывания БРП.
Submitted by Vitasam on ср, 14/10/2020 - 23:43 Permalink
Да, старые кнопки не нужны. Логичнее что-то общего назначения.
Вот с кнопками P и F1 ... F4:
Сейчас разрисовываю схему HW 1.1. Потом прикину, влезут ли дополнительные 10 кнопок. Я подумал, что оставлю матрицу основной клавиатуры как в МК52 - тогда те, кто захочет собрать свое железо при наличии сломанного МК52, смогут использовать последнего как донора.
Ещё вариант — нарушить столбцы и разместить 6 чёрных клавиш на месте пяти.
Будет плохо "делить" на 20 символов экрана. С 5-ю кнопками можно выделить по 4 символа на софт-меню.
Submitted by AtH on чт, 15/10/2020 - 02:50 Permalink
По клавишам:
F1 — ВЫХОД — главное меню с ДОС, просмотром / очисткой стека возвратов, настройкой и т.п., а также ESC
F2 — ВВОД — выбор пункта меню
F3 — DISP или ЭКР — переключение индикатора с отображения 4 регистров стека на отображение RX и служебной информации (и обратно)
F4 — СТ — Сброс Тьмы
Если понадобятся ещё клавиши, можно убрать ВВОД и использовать вместо него В↑. В МК-161 клавиша ВВОД выбирает и добавляет очередной символ в строку с именем файла, а В↑ завершает ввод имени. Сброс Тьмы на отдельной клавише выглядит красивой фишкой, но при необходимости эту функцию можно спрятать в меню системы.
Названия F1…F4 не очень удачны, так как Shift у нас называется F. То есть F3 это ln.
Submitted by Vitasam on чт, 15/10/2020 - 11:12 Permalink
Рисунок это все лишь примерно, для определения форм-фактора и раскладки клавиатуры.
Финальный дизайн будет плясать от размеров дисплея и кнопок.
Насчет надписей - мы решили замахнуться на качественную 3Д печать с "впуклой" гравировкой (самим принтером или лазерной гравировкой)
Submitted by AtH on чт, 15/10/2020 - 10:57 Permalink
Я её воспринял, как кнопку подсветки. Но она может быть кнопкой Турбо/Слоу. Впрочем, опцию аутентичной скорости можно и в меню спрятать.
Есть и другие варианты. Некоторые вставляют в калькуляторы часы с будильником. Секундомер для профилирования. Сохранение и восстановление сеанса. Много этих вещей тоже можно встроить в меню.
Submitted by Vitasam on пт, 16/10/2020 - 23:31 Permalink
На время отладки железа и софта данное железо (HW 1.1) будет называться "FrankenCalc MK52S":
Я сначала думал, что надо тащить поддержку всех "железяк" - HW1.0, HW 1.1 и т.п., но смысла нет - все-равно железки в единственных экземплярах. Когда появится первая массовая плата, тогда почищу код, оставлю только текущее железо
Submitted by Vitasam on ср, 11/11/2020 - 14:43 Permalink
можно разводить печатную плату. Уважаемый Digitalinvitro с коллегой придумали неплохую компоновку печатных плат - даже такой толстый экран как этот 20х4 компонуется в плоский корпус, примерно как 3D модель в заголовке форума. При этом сам вычислитель находится на "материнской плате", в которую втыкаются дисплей и плата клавиатуры - возможность апгрейда как дисплея, так и микроконтроллера.
Полноценная схема наш следующий шаг.
Эхо почти не влияет на скорость. Во-первых, USB COM-порт очень быстрый - все работает через прерывания, скорость порта 12 Мбит/с. Во-вторых, как видно на видео (с 44-й секунды) - во время счета по программе ничего не кидается ни на экран ни в СОМ-порт. Так что 3.8 ... 3.9 секунды это пока предел. Дальше надо думать в сторону распараллеливания, видимо.
P.S. Если портировать какой-нибудь симулятор вроде еМкатик, то скорость должна быть быстрее DM42 :)
Submitted by _nmr_ on вт, 17/11/2020 - 10:42 Permalink
Свои плюсы есть у обоих предложенных вариантов. Аккумуляторов АА, к примеру у меня - как у дурака фантиков, но и встроенный съемный литиевый тоже удобно. Литиевые бывают 18650, но размер неудобен.
Но как мне кажется, действуя по плану "Б", легче реализовать вопрос с питанием от USB: воткнули - идёт заряд, выткнули - не идёт.
Можно предположить, что все пространство под клавиатурой справа от дисплея можно отвести под плоский аккумулятор(ы). С учетом корпуса и толщины платы клавиатуры можно рассчитывать, наверное, миллиметров на 9-10 пространства.
Submitted by A.L. on вт, 17/11/2020 - 21:40 Permalink
https://yadi.sk/i/9nMasw8jPAWP4g
1. IMHO, два импульсных преобразователя - жирно и нет смысла.
2. USB и батарейка развязаны диодной сборкой шоттки, МАХ756 имеет рабочее напряжение от 0,7 до 5,5В, что прекрасно вписывается в схему. Питание получается от обоих интерфейсов.
3. 3.3В получаем с линейного микропотребляющго стабилизатора TPS76333, и этого вполне достаточно. Итоговый КПД, я полагаю, будет сравним с вашей версией, тем более что все боле менее серьезное потребление в виде подсветки и т.п. - от 5В.
4. По моему опыту подавать +3.3 на вход VBAT совместно с батарейкой - излишне, просто оставьте батарейку. Она будет работать годы.
5. Вместо BC547 c резисторами можно поставить PDTC143, в котором эти резисторы уже встроены.
6. MAX756 и 4 АА(ААА) вместе не дружат. Максимум три.
Submitted by Vitasam on вт, 17/11/2020 - 23:51 Permalink
Мои вопросы и комменты по пунктам:
1. IMHO, два импульсных преобразователя - жирно и нет смысла.
Понял, убираю, в пользу линейного стабилизатора.
2. USB и батарейка развязаны диодной сборкой шоттки, МАХ756 имеет рабочее напряжение от 0,7 до 5,5В, что прекрасно вписывается в схему. Питание получается от обоих интерфейсов.
Как такая сборка работает? При включении в USB 5 вольт с порта закроет "батарейный" диод и батарея отключится от схемы?
В KiCAD-е есть такая сборка, поставлю.
3. 3.3В получаем с линейного микропотребляющго стабилизатора TPS76333, и этого вполне достаточно. Итоговый КПД, я полагаю, будет сравним с вашей версией, тем более что все боле менее серьезное потребление в виде подсветки и т.п. - от 5В.
Согласен, главное - дисплей и подсветка, кушают напрямую от 5 вольт.
4. По моему опыту подавать +3.3 на вход VBAT совместно с батарейкой - излишне, просто оставьте батарейку. Она будет работать годы.
Отлично - чем меньше деталей, тем лучше.
5. Вместо BC547 c резисторами можно поставить PDTC143, в котором эти резисторы уже встроены.
Submitted by A.L. on ср, 18/11/2020 - 07:29 Permalink
2. Диод со стороны меньшего напряжения закроется большим.
3. TPS76333 нужно по входу и выходу в непосредственной близости обвязать конденсаторами - по входу - не менее 1мкф, по выходу не менее 4.7мкф.
5. PDTC143ZT - корпус SOT23, наиболее удобный для самостоятельного монтажа.
Submitted by A.L. on ср, 18/11/2020 - 09:15 Permalink
С10 - не более 0.1uF, STm32 формирует импульс сброса с кристалла, длительностью 20мкс, и 10мкф там не прокатит.
R1, R2, D3 не нужны.
Не вижу интерфейса внутрисхемной отладки (SWO(39), SWCLK(37), SWDIO(34), GND, VCC, RESET - вывести на разъём типа так http://voltozar.ru/image/data/Tovar/Instrument/ST-LINK-V2-MINI/interface...)или на любой вариант удобный для корпуса с любой распиновкой.
Пока вроде всё.
Submitted by Vitasam on ср, 18/11/2020 - 09:58 Permalink
Про R1, R2, D3 - вход NRST внутри со своей подтяжкой к питанию?
Интерфейс ST-Link еще не добавил на разъем.
Мысли про экономичность при работе от батареек посещают. Все-таки линейный преобразователь на 3.3в вместо импульсного - не будет потерь, по сравнению с оригинальной схемой на двух MAX756?
Submitted by Vitasam on ср, 18/11/2020 - 11:49 Permalink
Как-то многовато, 20 процентов.
Может таки вернуться к схеме с двумя DC-DC преобразователями на MAX756.
Чем этот вариант плох, не считая усложнения? По цене не сильно скажется, вроде
Эмулятор
Permalink
У нас есть эмулятор с консольным интерфейсом
Точно! Я и забыл уже
Permalink
Смотрю исходники.
А может уйти с Сорсфордж под SVN на тот же Гитлаб/Гитхаб под GIT?
Git
Permalink
Git есть и на сурсфордже, а на гитхабе у меня только портфолио
Я не нашел, как клонировать проект через
Permalink
GIT, только SVN.
Можно уйти в Гитлаб, там у меня тоже несколько хоббей
Git
Permalink
Я имею в виду, что на сурсфордже есть сервисы и SVN, и Git. Калькуляторный проект лежит в SVN. Его также можно checkout к себе, потом либо продолжать с этим депо (у тебя был доступ на запись), либо создать свой.
Да, понятно
Permalink
Да, понятно. Я клонирую себе сейчас локально с Сорсфорджа SVN-ом, а потом буду собирать все у себя в Гитлабе. Если что-то заработает, либо выложу обратно в сорсфордж, либо еще что.
А под какой лицензией исходники mk61 эмулятора?
Лицензия
Permalink
Лицензия - я даже не помню какая была. Сейчас прочел: GNU General Public License version 2.0 (GPLv2)
GPLv2
Permalink
У меня stm32basic под лицензией LGPLv2, это одна из самых свободных после самой свободной MIT лицензией. Секция 3 LGPL 2.1 говорит:
, так что окончательный код MK61S может быть под GPLv2, если я правильно понимаю
LGPL
Permalink
Насколько я помню, GPL от LGPL отличается тем, что если ты меняешь код, то при распространении конечного продукта должен его отдавать вместе с продуктом. В LGPL попроще, можно только бинарники.
Да, в LGPL можно только бинарники (+)
Permalink
поэтому MK61S надо делать под GPL, чтобы только сорсы :)
Примерно так
Permalink
GPL заражает свободой произведения, включающие код под GPL («авторское лево»). LGPL требует распространять исходники только самой библиотеки, а основная программа может быть под другой лицензией.
Конечно, в работы под GPL можно включать другие работы под менее строгой LGPL. Надо лишь помнить, что авторские права не передаются. Поэтому при публикации совместного произведения требуется либо учитывать LGPL (минимум включить в дистрибутив исходники библиотеки и текст LGPL), либо индивидуально договориться с автором о другом лицензировании.
Фуух
Permalink
Тонны ворнингов, но, вроде, удалось смешать в кучу C++ и C:
Бинарник сбилдился:
Терминал живой:
Ну ладно, начало обещающее, будем ковыряться пошагово
MK61S Hello World
Permalink
эмулятор, похоже, живой:


Теперь надо добавить вызов клавиатуры
Внушает
Permalink
Внушает оптимизм :) Эмулятор в консоли был работающий, интерфейс с консолью я отделил по максимуму, так что проблем перетащить само ядро не должно возникнуть.
Да, ядро достаточно локализовано
Permalink
Может, потом подзачищу код - уберу Commander, MK72 и т.п.
Полноэкранный редактор
Permalink
В DM41X полноэкранный редактор — графическая оболочка над эмулятором. Выдаваемая эмулятором информация о памяти программ расшифровывается на 4 строки экрана, а вводимые с клавиатуры команды передаются эмулятору. Есть не только клавиши вверх/вниз, отсутствовавшие на старой железке, но и комбинации клавиш для перехода на первую и последнюю строки программы.
При этом ощущение совершенно другое, удобнее смотреть и редактировать программу. Но одновременно и 100% совместимость со старым ПМК, так как в конечном итоге всё проходит через эмулятор.
Если делать римейк МК-61, как state of art, режим F ПРГ можно приблизить к такому же в МК-161. С таблицей декомпилятора и отображением мнемоники, на русском или английском языках. К каждому шагу можно отдельно (вне памяти эмулятора) хранить дополнительный байт, как в MKP — что хранится в ячейке, адрес или код операции. Это позволит реализовать вставку и удаление шага / команды.
Экран PRG
Permalink
Да, согласен. Ресурсов "синей таблетки" пока хватает, похоже, в крайнем случае, уйдем на RET6 чип с 512КБ флэш-памяти.

Типа такого варианта (обратный слэш кода 5С на шаге 01 почему-то онлайн генератор ЖКИ не смог отрисовать):
ЖКИ экраны 20x4, что находятся у меня, с латинским знакогенератором. Вроде, есть экраны с кириллицей в прошивке, у меня таких никогда не было.
Но у HD44780 контроллера дисплея есть память на 8 символов пользователя.
Вопрос - можно ли организовать интерфейс МК61S таким образом, что в каждый момент времени на экране будет не больше 8 русскоязычных символов? Тогда, теоретически, можно на лету подгружать русские символы.
P.S. Второй скриншот в начале форума я удалил - там баги были :)
P.P.S Производитель МК161 не будет против слизывания дизайна?
Дизайн ПРГ
Permalink
Можно и так. В этом случае эмулятору придётся скармливать ШГ→ , ШГ← для считывания четвёртого шага на виртуальный индикатор. Ну или обращаться к кольцу в обход эмулятора.
Проще, наверное, оставить классический вывод 3 шагов, посвятив каждому из них отдельную строку с адресом, кодом и мнемоникой. На четвёртой же выводить статусную информацию. Нажатые клавиши F, K, ИП и т.д. Примерно так и в МК-161 ввод устроен, только там шагов в два раза больше отображается. По правилам ЭКВМ новая команда вводится в подчёркнутую (нижнюю) ячейку памяти программ. На этом снимке только что введена команда БП 59, и ЭКВМ готова вводить новую команду в пустую ячейку 0098.
За Новосибирск говорить сложно. В первые годы они ругали копирайт и выступали за повторное использование своих, да и вообще всех наработок мира. Значительная часть МК-161 сама слямжена с советских ПМК. Ограничения касались лишь кода прошивки ЭКВМ, который здесь не при чём. Тот же eMKatic полностью копирует дизайн МК-161. Что сейчас у них на уме, непредсказуемо, так как с сообществом разработчики общаться перестали. Если начнутся претензии, разработать новый дизайн труда не составит.
3 строки + статус
Permalink
3 строки + статус строка мне нравится больше. Насчет кнопок - можно либо придумать свою комбинацию кнопок "что-то" + ШГ→ скачет на 3 шага. Либо даже добавить кнопки дополнительные
Русские команды на HD44780
Permalink
Есть такое подозрение, что можно уложиться русскими командами в 8 пользовательских знаков HD44780:
Даже с буквой Ш, которая не команда языка, всего 6 знаков надо
ПГИЧБШ + Д
Permalink
ИПРГ нет в эмуляторе, зато ИП есть. Также есть Д в ГРД. По хорошему ещё потребуются ×, ÷, В↑, Fπ, КГ→М, ШГ←, F xʸ, F x², F 10ˣ, F ⟳, F x≥0, F x≠0, F √ , ↔ и K∧, K∨, K⊕. Неплохо было бы сделать З для КЗН.
Но одновременно этих символов на экране штучки 3-4, если не увлекаться колонкой ASCII. Или можно сделать творческий микс из русской и латинской мнемоник.
ПГИЧБШ + Д
Permalink
ПГИЧБШ + Д наверное, будет достаточно на первый раз. То есть пока 7 символов. Остальное комбинацией с латиницей и цифрами, например, 3:
А зачем колонка ASCII для МК61? В ее языке же нет возможности выводить строки.
Эти символы
можно оставить для MK61S HW2.0 (у меня есть два экрана от DM42, 400x200 пикселей, суперконтрастный, но его сложнее подключать).
Режим HEX
Permalink
Можно и на будущее оставить, конечно. Но железо 1.0 их вполне потянет, так как одновременно на экране будет всего чуть-чуть экзотических символов. Даже если в режиме F АВТ сделать статусную строку, эхо введённой команды.
Кстати, здесь есть выбор. Можно либо отображать все 4 регистра стека, либо RX, RY и две строки статуса.
Ещё в ЭКВМ есть режим ввода байтов для прямого редактирования памяти программ. Он может пригодиться, если в 16-страничном режиме команды 4F и 6F начнут обеспечивать доступ к 16-ому регистру.
Да, скорее всего, потянет
Permalink
Даже интереснее оставаться в рамках железа 1.X ("синяя таблетка и экран 20x4) - спортивный азарт выдать все, что можно, из нерусифицированного и дешевого железа.
Железо 1.1 планируется тоже самое как сейчас 1.0, но с автономной клавиатурой из тактильных кнопок.
С раскладкой клавиатуры ориентироваться под что - сразу под МК52? Или нечто промежуточное между МК61 и чем?
Раскладка
Permalink
Раскладка — самое сложное. В своих проектах я сейчас ориентируюсь на горизонтальную клавиатуру МК-152. На клавишу ВЫХОД можно повестить меню, зависящее от проекта. Клавиши выбора (стрелочки) можно задействовать не только в нём.
В римейке МК-61 клавиша Р не используется. Её можно назначить на борьбу с Тьмой, а дальше как пойдёт.
Клавиатура
Permalink
Да, это идея. У меня есть дохлый 52й - возьму морду от него.
Stay tuned
MK61S: ввод цифр 0-9
Permalink
Ввод цифр 0-9 заработал:


Проблема EГГ0Г
Permalink
Нам наверняка захочется видеть на индикаторе EГГ0Г, а не EDD0D. Кто-то будет без ума от 3ГГ0Г’ов и прочих извращений.
Если в режиме программирования можно использовать шестнадцатеричную систему (в том числе для адресов A0-A4), то для логических операций в автоматическом режиме вместо неё будет старое доброе -, L, C, Г, E. Для борьбы с Тьмой и выхода из зависаний «пустышки» можно предусмотреть специальную кнопку безопасности, на ходу «лечащую» кольцо от фальшивых меток и перезагружающую процессоры.
Также можно предусмотреть работу в трёх режимах — Б3-34, МК-61 и новый на 112 шагов, 16 регистров. Программы во флэшке можно снабдить тэгом, для какого из этих режимов они разработаны.
Эксперимент с 8ю своими символами
Permalink
Сделал эксперимент с 8ю символами:
С динамической перезагрузкой пользовательской страницы памяти проблема, поизучаю
Красиво
Permalink
Индикатор как родной. Некоторые нужные символы, насколько я понял, в знакогенераторе уже есть.
Обновил список спецсимволов выше, стрелка влево тоже нужна. Но ↔ можно по бедности сделать из ←→.
На вики есть глиф квадрата, да и других символов. Правда, там двоичная кодировка по столбцам, а не строкам.
Кодовая таблица HD44780
Permalink
Как я понял, у меня европейская кодовая таблица: (ROM Code: A00).
Надо проверить, та ли она. Но спецсимволов там хватает, можно, наверное, что-то позабирать оттуда.
Да, глиф квадрата у меня дурацкий. Я символы этой онлайн-тулзой рисовал, квадрат лучше не придумал
A00
Permalink
По ссылке A00 японский знакогенератор, A02 — европейский.
В европейском побольше интересных символов, но и в японском есть несколько. Правда, коды этих символов не совпадают.
У меня А00
Permalink
Да, я перепутал - у меня как раз А00, японский вариант:



В общем, для использования эти символы и 8 своих символов на одном экране (нельзя загрузить другие символы в тот же экран - старые символы "поломаются")
Динамическая загрузка глифов
Permalink
Перед обновлением индикатора из теневого массива (K SCR) можно сбрасывать счётчик своих символов. Перед выводом символа из русского диапазона добавлять его глиф в 8 своих символов, если такого там ещё нет, и заменять для HD44780 код этого символа на код глифа.
Должно помочь, так как больше 8 своих символов одновременно на экране не будет. Такой «кэш 8 из 25» для имитации 25 глифов, когда железка поддерживает лишь 8. В прошивке у каждого русского символа будет свой постоянный код, но HD44780 знать эти коды не будет — только те, которые русским символам временно назначены при последнем обновлении индикатора.
Реально новых символов даже меньше 25, так как в японской раскладке есть минимум 6 заводских символов, которые можно использовать вместо своих глифов: ÷, Fπ, КГ→М, ШГ←, F 10ˣ, F √.
Возможно, так даже получится
Permalink
Возможно, так даже получится. Но это можно потом, пока надо делать основной функционал.
Впечатляет
Permalink
Впечатляет, прототип МК61 gold "в железе" работает!
Да, осталось подключить (+)
Permalink
матрицу клавиатуры (распаянную или, как я собираюсь, от настоящего МК52) и написать драйвер опроса клавиш. И все - можно начинать рисовать схему MK61 Gold :)
MK61S официально выпущен в мир
Permalink
MK61S официально выпущен в мир: Гитлаб проекта.
Ну так
Permalink
Публикация неработающих исходников — хорошо, конечно. Но настоящий выпуск в мир это когда можно прислать денежку и получить готовый калькулятор, пусть и по почте.
Уверенности, что проект будет когда-нибудь доведён до этого этапа, пока нет. Поэтому и мой респект Новосибирску и Swiss Micro, что их проекты — не просто баловство «посмотрите, что я могу».
Большинство критиков МК-161, увы, выпустить серийную модель не могут. Обычное ведро с крабами. Надеюсь, этот проект однажды доведут до серийного продукта. И тогда будет, с чем МК-161 сравнивать.
Отлично
Permalink
Отлично, теперь можно подумать о каком-то "железе", возможно малосерийном с алиэкспресса, чтобы сделать калькулятор. Готов поучаствовать, если нужно что-то заказать для опытных образцов.
Железо
Permalink
Отвечу тут сразу на оба комментария - этот и уважаемого AtH выше.
Ath:
Исходники вполне уже тянут на "хэлло ворлд". Для этого и выпущен в мир - мало ли, кто-то захочет присоединиться. Скорее всего, ни до чего уровня МК-161 или SwissMicros не дорастет, но если не пробовать, то точно не получится :)
st:
Пока roadmap железа такой:
Схема железа HW 1.x стоит копейки - в сумме, наверное, евро 10 с алиэкспресс.
А дальше под вопросом. Для stm32basic-а на более мощном чипе stm32 (64КБ ОЗУ и 512 КБ флэш) я почти развел печатную плату с целью заказать пробную серию из 5 плат где-нибудь в Китае. Переделать эту схему под МК61S будет не очень сложно.


И плату
Permalink
И плату, и корпус неплохо бы заказать. Возможно, есть какие-то готовые полуфабрикаты на али. Может быть есть какие-то готовые модели, которые можно перепрограммировать на уровне прошивки и засунуть туда нужную.
Готовые модели
Permalink
Готовых моделей, которые можно перешить самому, на ум приходят только три:
Полуфабрикатов я не встречал вообще, разве что DIY калькуляторы с али.
Я пока думаю о промежуточном варианте - печатную плату развести и заказать, а корпус сделать на 3Д принтере. Модель корпуса тоже выложить в Thingverse.
Эмулятор МК-61 в корпусе МК-161
Permalink
От МК-161 можно взять корпус, аккумулятор, клавиатуру и индикатор. При этом основную плату заменить на более мощную. Жаль, что по деньгам такой проект не самый оптимальный.
Также производство можно поднять самому или передать какой-либо уже существующей фирме, в Москве или Ленинграде. Можно и Новосибирск попросить. Жаль лишь, что новосибирский «патриотизм» на практике означает дурное отношение к соотечественникам и коллегам.
Корпус МК161
Permalink
Корпус МК161 в "Чип и Дипе" за 500 рублей продается.
Но если честно, второй "мультиметр" МК161-го мне лично не хочется. Хочу плоский корпус, в толщину экрана 20x4 плюс печатная плата
Хотелки
Permalink
1. В МК-161 хорош не сам корпус, а клавиатура, индикатор и аккумулятор. Они отечественные. И даже если клавиши хотелось бы не голые, а с толкателями, их раскладка близка проекту. Индикатор и аккумулятор выбраны так, чтобы поддерживать отечественного производителя.
2. Тонкий корпус хотелось бы. Но это — уровень больших корпораций вроде Apple и HP. Если мы хотим цену готового продукта держать скромной (10-20 т.р.), особых хотелок по поводу корпуса удовлетворить не получится.
Или, опять же, бросать отечественную «железную» компоненту (тем более, что есть риск, что выжившее при Путине производство окажется таким же фашистским и русофобским, как сами знаете кто) и договариваться со Swiss Micros или Китаем.
Не надо
Permalink
Не надо ничего внешнего брать от МК-161. Это пример, как не надо проектировать калькуляторы.
Теория и практика
Permalink
Тем не менее, МК-161 выпускается. А критики — классические путинские крабы в ведре. Сами ничего за 20 лет не выпустили и тех, кто выпускает, стараются прищучить, заставить тоже сидеть на диване и смириться с разрушением отечественного производства.
Я прошу
Permalink
Я прошу не переходить на аргументы уровня "Запорожец тоже ездит".
Запорожец
Permalink
МК-161 — лучший отечественный ПМК. Потому, что других, к сожалению, здесь не выпускается. На мировом рынке у него есть достоинства (высокое быстродействие, совместимость с МК-61, низкая стоимость носителей УЗВМК-1, внешние интерфейсы, возможность объединения в сеть) и недостатки (брутальный стиль, высокая цена).
Тему на обсуждение автопрома прошу не менять. Сам я не автовладелец. Даже если вы захотите, подобно некоторым соотечественникам, сменить тему на сиськи-пиписьки, это будет более приемлемо — в интимных отношениях гомо сапиенс я разбираюсь лучше, чем в ваших Запорожцах и Мерседесах.
Медленнее
Permalink
Это, кстати, под большим вопросом. Пока эмулятор, запущенный в stm32f103 (72 МГц), работает ощутимо медленно.
Я прав, что эмулятор Лазарева в том виде как он сейчас есть, ни в чем, кроме как на PC (в консоли или в бразуере) не запускался?
Доделаю парсинг клавиатуры, запущу 8 ферзей или "счастливые билеты", для проверки.
Скорость
Permalink
Эмулятор Лазарева очень медленный. Возможно, его можно ускорить, переписав на ассемблере — но потеряется кросс-платформенность.
МК-61+ (голд, S) не выйдет быстрее МК-161, но может оказаться быстрее МК-61. Скорость работы МК-161 достойна уважения.
Как бы не оказался медленнее оригинала :(
Permalink
Если вдруг окажется медленнее, надо будет уходить на другой чип, жертвовать кросс-платформенностью не хочется
Железка «на вырост»
Permalink
При разработке железа, особенно с учётом будущего серийного производства, предлагаю учитывать возможный порт Каллисто на него. На этой стадии, когда будет работающее железо, и мне будет интересно подключиться к проекту.
Выпускать сильно разные модели ПМК мы вряд ли потянем. У Каллисто требования — алфавитная клавиатура. Клавиатура МК-161/152 (38 клавиш) это самый минимум. Лучше добавить несколько клавиш для знаков пунктуации в русском режиме. Также неплохо, если экран будет графический и не хуже экрана МК-161, а ПЗУ/флэш-памяти хватит для разумного подмножества Юникода. Внешние интерфейсы лучше не сокращать, а добавлять. Тачскрин для меня норм, удешевит устройство и решит проблему клавиатуры.
Каллисто будет включать ограниченный симулятор ЭКВМ. После избавления от дурного влияния Гарварда можно будет писать переносимый код ПМК средствами Каллисто — так, как на Форте делают вставки на ассемблере, где важно быстродействие. Быстродействие повысится за счёт реализации шитого кода (NEXT, CALL, RETURN, EXECUTE) на уровне команд ПМК, а не поверх них. Другими словами, программы из справочников Дьяконова, Цветкова, Трохименко можно будет включать в каллистянские приложения с минимумом изменений, как слова низкого уровня. Давать этим программам имена, объединять в библиотеки и строить из них более сложные приложения.
Если учитывать Каллисто, то (+)
Permalink
лучше сразу ориентироваться на stm32basic HW 2.0:

stm32f103ret6: 72 МГц, 64К ОЗУ, 512К флэш; 320x240 цветной экран, qwerty клавиатура.
Вот этот комплект обойдется примерно в 25 евро с алиэкспресса (плата stm32 позади экрана):
Нужны коррективы
Permalink
Такой комплект дёшев, но сильно крупнее МК-161. Это уже ноутбук, а не ПМК. Клавиатура должна быть сильно меньше. Идеал это форм-фактор айфона с тактильными клавишами. Которые приложение может убрать, если запросит полноэкранный вывод.
При этом можно вывести на весь экран графики и двигать их пальцами. Для внешней клавиатуры можно предусмотреть разъём или блутус, эта роскошь уже для стационара.
320×240 в цвете это хорошо. Детям нравится баловаться с графикой.
Он меньше МК161 :D
Permalink
Он меньше МК161 :D - ширина клавиатуры 85 мм.
Могу сфотографировать завтра рядом с МК61 для мастшаба.
Если двигаться в сторону тачскрина с форм-фактором айфона - что мешает Каллисто портировать в iOS или Андроид?
Масштаб
Permalink
Да, фотография с МК-61 поможет.
Смысл Каллисто — вывести отечественную индустрию из тупика, в который её загнал захват производительных сил воровской бандой Путина. Советские технологии, да и всю нашу страну разграбили и добивают жадные тупые казнокрады с отрицательной креативностью и религиозной претензией на эксклюзивное обладание единым источником всего творчества в России.
Поэтому и ориентация на отечественные технологии, а в перспективе и на отечественные комплектующие. Строить русский уровень поверх американского задачу не решит. Здесь и вопрос надёжности, и громадную долю нашего никакого финансирования забирает себе Калифорния — в том числе и от разработчиков $100 в год поверх $500 стоимости айфона.
Можно временно использовать айфон, как макет. Но на этом этапе к проекту присоединиться смогут далеко не все, в том числе из-за высокой стоимости макбуков — где запускается Xcode, «бесплатная» среда разработки. Отдельная дешёвая железка с возможностью метакомпиляции на борту решает большинство вопросов и возвращает творческие способности в руки самих людей, хотя в конечном итоге её лучше перевести на отечественные комплектующие.
stm32basic HW 2.0 vs MK61
Permalink
stm32basic HW 2.0 vs MK61:

Кхм
Permalink
Очстранно. Индикатор хорош по размеру. Кнопки в голове не укладываются. Сразу много вопросов возникает. Они такие крохотные? Сколько их? Тоже без толкателей, как на МК-161? Это стандартная клавиатура или можно менять количество и расположение клавиш?
Для Каллисто русский язык нужен также, как и латинский. Есть несколько спецсимволов, унаследованных от ПМК, например ↔ и √. Отдельный ряд цифр, разумеется, поможет. Хотя есть сомнения, возможно ли его сохранить в русском режиме. В целом можно начинать с этим работать. Хотя надписей у клавиш будет много. Для экономии и без того скромной площади какие-то из них хотелось бы гравировать прямо на толкателях.
Клавиатура
Permalink
Клавиатура из готовых, для модульного компьютера M5STACK 6 евро на али.
Кнопки без толкателей, обычные тактильные кнопки, чуть меньше тех, что в МК161. Теоретически поверх можно положить мембранную клавиатуру, как в МК152, соответственно нарисовать свою раскладку.
Драйвер дисплея у меня полностью отлажен и работает с Basic в stm32basic, до этой клавиатуры еще руки не дошли. Прошивку клавиатуры можно писать свою (ардуина), если нужен какой-то другой протокол.
Весь комплект легко упрячется в любой прямоугольный корпус, останется места для батареек или аккумулятора.
Из бюджетного и доступного, думаю, для Каллисто вряд ли найти платформу мощнее по такой цене.
Китайское железо
Permalink
Понятно. Хорошо, буду учитывать параметры такой комплектации. В ближайших планах вынос драйвера клавиатуры с уровня ЯМК на уровень симулятора ЭКВМ. То есть интеграция в Каллисто этой или другой клавиатуры будет, как простая замена драйвера в виртуальной машине. Без изменения исходного кода транслятора.
Метакомпиляция на борту
Permalink
Чтобы Каллисто можно было разрабатывать на самой железке, есть требования по памяти. Исходник Каллисто Классик занимает 148 кБ. Самокомпилирующееся ядро может занять раза в три больше максимум. Если мы переходим на Юникод, это ещё в два раза увеличит исходник. Итого хотя бы 512 кБ, а лучше мегабайт — в идеале прямо в ОЗУ, но можно считывать с электронного диска блоками по 3Кб.
В ОЗУ должен быть уже откомпилированный код транслятора, причём дважды. Тот, который компилирует и тот, который компилируется. На МК-161 это 14096 байт (память программ + байтовые регистры) + 8000 байт (тысяча десятичных регистров). С тройным запасом получаем 130Кб на обе копии. К этому надо прибавить симулятор ЭКВМ и BIOS, тоже 64-128Кб.
Итого примерно мегабайт-полтора оперативки позволит сделать самокомпилирующееся ядро. Если сильно экономить и читать исходник блоками, то даже 256Кб может хватить. Флэш-память лучше несколько мегабайт минимум — хранить разные версии ядра, редактор и другие программы с исходным текстом.
Также нужна память для шрифтов Юникода. На растровый символ уходит примерно 8 байт шрифта 0, 20 байт шрифта 2 и 60 байт шрифта 3. Итого 88 байт на символ, 22 Кб на страницу из 256 символов. Если не извращаться с кэшем знакогенератора, то в 256Кб можно уложить 10-12 страниц. Для начала должно хватить и двух-трёх страниц.
Конечно, возможности подключать внешнюю клавиатуру и дисплей сделают разработку системы на борту куда комфортней. Это не обязательно встраивать в сам ПМК, можно предусмотреть стационарную док-станцию.
Edit. Так что 64К ОЗУ и 512К флэш — не роскошь. Но если не злоупотреблять Юникодом и экономно расходовать память, можно попробовать в эти ограничения уложиться.
На борту
Permalink
С такими требованиями к железу для разработки "на борту" проще сразу брать Raspberry Pi zero с теми же экраном и клавиатурой как на фото выше, будет ненамного дороже.
Но это все сильно в сторону от МК61S
Посмотрим
Permalink
Посмотрим, как там по быстродействию. Может, малинка и для ЭЛ (эмулятора Лазарева) будет лучшим решением.
На текущем этапе надо довести Каллисто до кроссплатформенности и метакомпиляции, на чём угодно. Тогда и будут ясны точные требования к ОЗУ, а не грубая оценка сверху. Релиз же хочется видеть на голом железе, а не поверх Линукса.
Малинка может стоять, например, в док-станции ПМК. Такую док-станцию с USB-клавиатурой и HDMI можно сделать даже для МК-161, пользуясь протоколом внешнего доступа.
Медленный
Permalink
Медленный, три года назад назад Алексей digitalinvitro при моей минимальной поддержке оптимизировал программу для MSP430, но выжать удалось немного. Ветка на форуме. Ты ведь и сам участвовал, видимо забыл уже.
Плата ретрокомпьютера
Permalink
Вижу, есть трудности с разводкой обвязки процессора.
Можно спокойно уменьшить толщину сигнальных дорожек и допустимый зазор между ними до 0,3/0,2 мм, это заведомо можно сделать на любом заводе. Диаметр пятачка/отверстия переходов можно 1,0/0,4 мм.
Мне месяца полтора назад в кустарных условиях удалось изготовить двустороннюю плату под микросхему в TQFP-48:

Толщина дорожек 0,3 мм, шаг выводов - 0,5 м. Пятачки переходов увеличены до 1,15мм, иначе даже Ф0,4 сверлом трудно просверлить нормально - рассогласование по сторонам у меня 0,15-0,2мм.
Но заказывать непременно с паяльной маской - иначе могут быть замыкания на плате при пайке.
Устройство работало :)
Сайт
Плата
Permalink
Не то слово :)
Поэтому, если вдруг дело дойдет до платы МК61S, сделать ее сообща максимально просто и качественно
Файлы
Permalink
Я посмотрел на гитхабе, там только кикадовский проект под синюю таблетку. А ты можешь файлы ретрокомпьютера с начатой печаткой мне на почту выслать?
Сайт
Выслал
Permalink
Привет,
выслал на почту
Принято
Permalink
Файлы пришли, всё открывается.
Сайт
Тест кв.корня из 687,43
Permalink
Тест кв.корня из 687,43 на MK61S и реальной МК61:


Клавиша DISP
Permalink
В DM41X есть клавиша DISP. Она переключает экран с отображения всего стека на отображение части стека — и справочной информации в служебных строках. При этом переключение незаметно для эмулятора. То есть можно посмотреть дополнительную информацию прямо во время ввода числа, и продолжить его вводить.
Также в DM41X выбрали отказаться от подписи регистров стека X, Y, Z и T, так как знающие обратную польскую запись и так это знают. Другим же надо чуть-чуть подучиться, перед использованием ПМК. В МК-161 регистры подписаны.
Отображение стека
Permalink
В DM42 буквы стека отображаются, но можно потом добавить отключение, примерно как в DM41X.
Эстетика
Permalink
Мне приятно смотреть на XYZT в МК-161. От надписи можно отказаться ради количества выводимых знаков, но в эмуляторе Лазарева число значащих цифр фиксировано.
С другой стороны, место справа от стека (не используется в DM41X) можно использовать для индикации Р-ГРД-Г, режима счёта по программе, нажатой префиксной клавиши и т.п.
Первые баги
Permalink
Первые баги.
Пробую программу:
Результат работы (с "ручными комментариями после #):
На экране:
То есть команда С/П в режиме ПРГ ввелась в память программ правильно - с кодом 50. После возвращения в режим АВТ команда В/O тоже, вроде, правильно сработала. А вот следующая за ней С/П выдала пустой экран с запятой, оставшейся после режима ПРГ.
Счастливые билеты на MK61S
Permalink
Версия 0.3.5 MK61S работает. "Короткие" счастливые билеты:
отработали за 15 секунд (прошивка с оптимизацией компиляции по размеру: -Os).
Оригинальный МК61 работает около 40 секунд, т.е. MK61S быстрее оригинала примерно в 2.6 раза. Как-то негусто.
Попробую с флагом оптимизации -O2.
Нормально
Permalink
Можно даже встроить замедление, для аутентичной скорости. В DM41X такой режим slow есть.
Нормального мало
Permalink
Нормального мало, надежда была хотя бы раз в 10 быстрее. Смысла в таком эмуляторе
Смысл
Permalink
На вскидку:
1. Удобное хранение программ и связь с компьютером.
2. Декомпилятор, вставка и удаление команд, ввод шестнадцатеричных КОПов.
3. Антитьма и антипустышка для еггогологии. (Кнопка для приведения зависшего ПМК в чувство.)
4. Возможность просматривать/редактировать кольцо (если будет реализована), дешифровывать/генерировать «сверхчисла» и узнать чуть больше о ПМК.
5. Шестнадцатый регистр и 112 шагов, если добавить ещё одну страницу в кольцо.
6. Хоть в 2-3 раза, но быстрее.
7. Советские ПМК выходят из строя, а МК-161 позволить себе иметь может не каждый.
8. В отличии от ЭКВМ, полная совместимость.
9. Долгожданный проект. Его всё равно кому-то придётся делать, можно сделать раньше и побыстрее развить сцену ПМК.
10. На такой ПМК есть спрос.
11. Опыт его разработки и выпуска пригодится при создании прекрасного ПМК Будущего.
12. Просмотр и очистка стека возвратов.
Смысл и список
Permalink
По поводу смысла - в целом да, смысла в такой цифровой ожившей копии больше, чем в симуляторах типа DM42 и МК161.
По поводу списка - 1), 2) 4), 5) еще сильно далеки от реализации.
По поводу быстродействия - глядя на текущий код эмулятора, есть подозрение, что его можно чуть чуть ускорить.
Надо "короткие" счастливые билеты захардкодить, чтобы по нажатию клавиши грузились из Си-шной структуры. Удобно для оптимизации быстродействия, чем руками набивать каждый раз
Тесты
Permalink
googletest, который у меня основной, видимо, будет тяжеловат, а вот Catch должен подойти, хотя он с IDE не интегрируется.
Оптимизация
Permalink
Виталий, ты не посмотрел дискуссию с Алексеем по ссылке выше? Там ровно те же проблемы были, решались выкидыванием "лишнего" и вводом предвычисленных таблиц. Исходники Алексей влил на сурсфордж.
Ага, общаемся с ним
Permalink
Да, мы с Алексеем общаемся уже на эту тему. Его исходники я в Гитлаб тоже залил.
У него на msp430 "короткие" билеты дали 17 секунд, почти сравнимо с более быстрым stm32. Надо его оптимизацию сюда повносить.
А то такие циклы на каждый тик выглядят грустно:
Именно
Permalink
Именно так, по 560 циклов на выполнение одного такта эмулятора - это тихий ужас. И есть подозрение, что проблема не в эмуляторе, а в прошивке и архитектуре МК61.
Проблема
Permalink
Проблема в том, что никто ещё не сел за стол и не расписал алгоритмически ни одну из 256 команд. И даже ни одна из 128 синхрокоманд не записана в виде алгоритма, насколько я помню.
Уже 8 лет прошло, как опубликован микрокод. Но на разных языках (Си, C++, JavaScript) всё до сих пор эмулируется потактово, на уровне 68 микрокоманд. Прогресс только в мегагерцах у зарубежных процессоров, на которых идёт эмуляция.
Оптимизированный код из mk61msp
Permalink
Код из mk61msp портировался. Новый результат "коротких" билетов с флагом -O2 - 8.5 секунд.
Итого: в 4.7 раза быстрее оригинала
И еще splash-screen:

Заставка
Permalink
Заставка очень к месту, но мне кажется, что каноичнее имитировать рубленый шрифт (ариал) МК 61 :) Как на оригинале
Шрифт заставки
Permalink
Шрифт заставки сейчас мне тоже не нравится, но тут проблема: количество уникальных глифов, из которых рисуется жирный шрифт, может быть не больше 8. Поэтому приветствуются варианты дизайнов, если получится что-то более лучшее :)
Флаги оптимизации
Permalink
а лучше
-О3 на билетах даёт ~40% прирост скорости по сравнению с -О2.
-Оs так и не нашёл, что означает.
Сайт
Флаги
Permalink
-Оs вроде дает самый маленький бинарник.
Флаги да, это потом тоже в планах, но пока надо из кода выжать все что можно
-pipe
Permalink
А для каких stm32 это опция будет работать? Я правильно понимаю что -pipe оптимизация по конвейеру stm32? Действительно у stm32 есть зависимость от порядка следования команд?
Флаг -pipe
Permalink
Я так понял флаг -pipe просто ускоряет компиляцию.
Сайт
Флаги O2 и O3
Permalink
Проверил сейчас последний код из Гитлаба, размеры бинарника при флагах O2 и O3:
При этом на быстродействии в "коротких" счастливых билетах почти не сказывается.
Проверка скорости
Permalink
Добавил два UART принта - один, когда нажата клавиша C/П, а второй - когда режим работы по программе заканчивается (код в Гитлабе).
Терминал в Arduino IDE умеет подставлять штампы времени, что есть удобно для измерений.
Ниже размер бинарника прошивки при флагах -Os, -O2, -O3 и время работы "коротких" Счастливых билетов, соответственно. Измерения делал два раза - результат стабильный:
-Os
mk61s_app.bin: 23788 bytes
Total: 8.4 sec
Total: 8.4 sec
-O2
mk61s_app.bin: 24736 bytes
Total: 8.4 sec
Total: 8.4 sec
-O3
mk61s_app.bin: 41564 bytes
Total: 8.1 sec
Total: 8.1 sec
Итого:
Прошивка -03 больше прошивки -Os в 1.75 раз, но при этом быстрее всего в 1.04 раза. И, соответственно, быстрее оригинала в 4.9 раза.
MK61S HW 1.1
Permalink
MK61S HW 1.1:

В общем, принято решение, куда двигаться с версией HW 1.1 - это будет замена "материнской платы" МК52, с экраном 16х2. В идеале можно купить сломанный МК52, выкинуть потроха, оставив клавиатуру (там, к сожалению, понадобится небольшая пайка, так как шлейф клавиатуры припаян).
МК61
Permalink
Не хочешь попробовать корпус от МК61? МК52 жалко в том плане, что у него доп.возможности, отсутствующие в эмуляторе. Или надо будет симулировать переключатель "Д-П" и кнопки "||" "А|"
Корпус от МК61
Permalink
Про корпус от МК61 думал, но есть несколько моментов:

1. ЖКИ дисплей, даже напильник не поможет. Других дешевых алфавитно-цифровых дисплеев нет на горизонте:
2. У меня есть два сломанных МК52, но нет сломанного МК61, а есть в коллекционном состоянии, рабочий. Под нож не буду.
3. Клавиатуры МК61 не хватит для дополнительных операций работы с SD-карточкой, в МК52 можно задействовать несколько.
А, в целом, согласен, раз у нас есть цифровая копия МК61, а не МК52, то и в корпус МК61 было бы лучше. Вопрос 1) надо поизучать, вдруг найдется OLED дисплей графический подходящий, тогда было бы аутентично - светящиеся цифры сквозь зеленое стекло МК61.
Вопрос 2) - ни у кого нет сломанной МК61? Я бы взял, с целью трансплантации.
P.S. А Ф.Лазарев не занимался реверс-инжинирингом чипов МК52?
Тогда уж
Permalink
Тогда уж МК-52S. :-)
А две дополнительные клавиши пригодятся. По хорошему там больше клавиш потребуется. Ну или использовать 2-4-6-8 для навигации, а 5 и В↑ для выбора пунктов меню. Ноль для выхода, Сx для сброса в умолчания. Галочки можно ставить и снимать плюсом и минусом, ↔ меняет выбор на противоположный.
МК52S
Permalink
МК52S было бы хорошо, если бы был реверс-инженерный эмулятор чипов МК52, я так понимаю, такой отсутсвует.
Насчет клавиатуры - если нужно больше кнопок (например, в Simpleputer stm32basic кнопок - 48 штук), то тогда надо просто делать свою собственную плату, с кнопками как на МК161, а корпус потом 3Д печатать
МК-52
Permalink
В МК-52 только один новый чип К745ИК1801-2, для управления ППЗУ. Которое так себе идея. На советском безрыбье было шагом вперёд, но из-за ряда неуклюжих архитектурных решений (стирание построчно, а запись страницами по 7 шагов) добавление файловой системы (как в МК-161) будет правильным решением.
Маркировки основных трёх микроЭВМ (К745ИК1302-2, К745ИК1303-2 и К745ИК1306-2) у МК-61 и МК-52 совпадают. Скорее всего, их прошивки в этих калькуляторах не различались.
МК52S
Permalink
А, ну тогда если добавить сохранение программ и данных на SD-карточку (это в планах - в stm32basic все работает - полноценная файловая система), тогда можно с честной совестью назвать эмулятор MK52S. Который в корпусе МК52
Вариант компоновки МК61S, 3D
Permalink
Вариант компоновки МК61S, 3D.





Предполагается, что клавиатура - это накладка, сквозь которую торчат круглые шляпки тактовых кнопок, как в МК161 (рисовать было совсем невмоготу).
Верхний ряд из 5 кнопок может служить soft-menu кнопками, по 4 символа на название на экране.
Справа - разъем ST-Link + UART и сокет microSD карточки.
Плата ЦПУ втыкается в разъем дисплея "в горизонтальном" направлении - "пинхол"-коннектор на дисплее загнут Г-образно.
Крепления
Permalink
Важно предусмотреть крепления плат и разъёмов. Я разбирал недорогую китайскую «банку», в которой забарахлил разъём USB. Там много чего крепилось просто на клею, а неисправный разъём USB держался только на припое — том же, через который шёл сигнал. Понятно, что неизбежное разбалтывание разъёма закономерно приводило к нарушению контакта.
По рисунку — справа от В↑ должно быть обозначение регистра e. Поскольку мы сделаем шестнадцатеричный ввод, f можно разместить на ×, как в МК-161. Также над ВП и Сx должны быть ⊕, СF, ИНВ.
Edit. До кучи: K∨, K∧ и F⟳.
Крепеж
Permalink
Крепления, конечно, нужны. Их можно организовать как традиционными винтами, так и пазами с защелками 3Д-корпуса, когда дело дойдет до плат с корпусом.
С рисунком клавиатуры - да, что-то пропущено (устал рисовать), какие-то символы не нашел, типа плюс в круге.
С кнопками тоже есть идеи не делать осточертевшие тактовые кнопки через дырки, а поставить на плату кнопки с крышечками, как на той I2C-клавиатуре, а кнопки напечатать как часть крышки, на гибких усах. Нормальные 3Д-принтеры такое умеют. И потом гравировкой нанести символы. Или, накладкой, на крайний случай.
Еще можно рядом с микроSD карточкой поставить USB разьем. В "синей таблетке" место еще есть, это нужно для зарядки аккмулятора и, в перспективе, с удобством работы как из Ардуино IDE - прошивка и работа с UART-терминалом.
Хотел добавить
Permalink
Хотел добавить одну мыслю, очевидную, наверное. В проекте МК61S не нужно стремиться к дешевизне, рыночек сбыта у этого устройства очень небольшой (десятки-сотни), поэтому максимизировать надо качество, за счет более высокой цены, конечно. В этом плане SwissMicros идут совершенно маркетинго-правильным путем.
За и против
Permalink
За и против высказанной мысли: да, рынок сбыта будет небольшой, сколько там наберется ретрогиков в русскоязычных интернетах, кто захочет купить или собрать?
Но разница в цене финального устройства, скажем 50 евро супротив 180 евро это существенная разница, которая сильно "отфильтрует" и так негустой рынок сбыта. Примеры перед глазами
Переход на stm32 Cube IDE
Permalink
Кодовая база MK61S переведена из libopencm3 в нормальный stm32 Cube IDE под Windows:

Может тогда и Форт в ядро добавить?
Permalink
Вот проект Форта с ассемблерным ядром от Mecrisp-Stellaris.
https://github.com/spyren/Mecrisp-Cube
Форт
Permalink
Теоретически можно - форк MK61S репозитория, добавление Форта и Pull request обратно, я интегрирую.
Вот только там чип более жирный:
И еще код Форта под лицензией GPLv3, вроде, нельзя 3 в 2, а наоборот можно
В исходниках Mecrisp-Stellaris чипы разные
Permalink
http://mecrisp.sourceforge.net/
По исходникам можно уточнить и лицензию этого Форта для STM32, MSP430 и вроде даже для AVR (помимо, например таких, как amForth, flashForth)
P.S.Ассемблерные исходники Форт ядра из этого проекта и Mecrisp-Cube по идее должны почти совпадать.
Форт в ПМК
Permalink
Главная проблема Форта в МК61S — скромная цифровая клавиатура. Мне удалось её решить в Каллисто, но у МК-161 и кнопок побольше. Вторая проблема — отсутствие русского алфавита в знакогенераторе индикатора.
Задача по встраиванию Форта, работающего через терминал, вполне решаема. Но ПМК это всё же устройство, которое носишь в кармане и на котором работаешь автономно. Если есть десктоп, на нём самом можно Форт запускать, безо всякого ПМК.
Клавиатура
Permalink
В последней редакции MK61S с экраном 20х4 кнопок планируется как в stm32basic Simpleputer - 48, форм-фактор - горизонтальный (МК52).
Из них 5 кнопок будут для soft-menu под экраном, остальные 43 - для нужд раскладки. Совершенно непонятно, как сделать раскладку, чтобы она была близка к калькуляторному. Как в TI-95?
Советский ПМК
Permalink
Советский ПМК это 6×5=30 клавиш. Зачем 48? Ну да, можно добавить ещё один ряд из 5 клавиш для меню. Но если делать эмуляцию МК-61, пусть расширенную, должна быть именно ПМКшная клавиатура — как на картинках выше.
Ввод букв потребуется только в файловой системе, для которой можно сделать экранную клавиатуру, как в ДОС МК-161. Полная алфавитная клавиатура потребуется в железке для Каллисто, где другие требования к ОЗУ и индикатору.
Разумный довод
Permalink
Разумный довод. С экраном 20х4 раскладка получается МК52я, можно оставить ее плюс 5 софтовых кнопок под экраном.
Софтовые кнопки
Permalink
Рассматривался ли вариант 6 мягких кнопок?
Дело в том, что один из вариантов экранной клавиатуры идёт именно через эти клавиши. Буква выбирается двумя нажатиями, первое выбирает диапазон. Пять клавиш дают 5×5=25 букв, что мало для русского алфавита. Шесть клавиш дадут 6×6=36 букв, что вполне достаточно. Конечно, русские имена файлов могут оказаться недопустимыми — все комплектующие и, наверное, библиотеки зарубежные. Вывод русских букв на индикатор тоже проблематичен.
А, как такой функционал клавиатуры?
Permalink
Снизу и сбоку индикатора располагаем кнопки
и при одновременном нажатии двух из них на пересечении подсвеченной буквы на экране её вводим.
(типа как в шахматах e2, e4 ... :)
Раскладка MK52S
Permalink
плотно поставить много софтовых кнопок это не ахти. Можно выбирать буквы кнопками ШГ-влево, ШГ-вправо, вверх, вниз.

Вот вариант с дополнительной софтовой кнопкой ALT:
Хорошее решение
Permalink
Тоже про такое решение думал. Можно назвать допкнопку Р, как в Б3-21 и МК-161. Ещё вариант — нарушить столбцы и разместить 6 чёрных клавиш на месте пяти.
Вот зачем А↑ и ↑↓ — не очень понятно. Стандартным способом эмулятору их не считать. Тогда уж надо переключатели Д-П, С-З-СЧ и прочую бяку. Вплоть до считывания БРП.
MK52S версии 2
Permalink
Да, старые кнопки не нужны. Логичнее что-то общего назначения.

Вот с кнопками P и F1 ... F4:
Сейчас разрисовываю схему HW 1.1. Потом прикину, влезут ли дополнительные 10 кнопок. Я подумал, что оставлю матрицу основной клавиатуры как в МК52 - тогда те, кто захочет собрать свое железо при наличии сломанного МК52, смогут использовать последнего как донора.
Будет плохо "делить" на 20 символов экрана. С 5-ю кнопками можно выделить по 4 символа на софт-меню.
F1,- F4
Permalink
могут быть для функций правого вертикального их расположения(высвечивания) на индикаторе
(или левого, или настраиваемого)
Допкнопки
Permalink
По клавишам:
F1 — ВЫХОД — главное меню с ДОС, просмотром / очисткой стека возвратов, настройкой и т.п., а также ESC
F2 — ВВОД — выбор пункта меню
F3 — DISP или ЭКР — переключение индикатора с отображения 4 регистров стека на отображение RX и служебной информации (и обратно)
F4 — СТ — Сброс Тьмы
Если понадобятся ещё клавиши, можно убрать ВВОД и использовать вместо него В↑. В МК-161 клавиша ВВОД выбирает и добавляет очередной символ в строку с именем файла, а В↑ завершает ввод имени. Сброс Тьмы на отдельной клавише выглядит красивой фишкой, но при необходимости эту функцию можно спрятать в меню системы.
Названия F1…F4 не очень удачны, так как Shift у нас называется F. То есть F3 это ln.
Названия F1..F3
Permalink
К текстам F1,F2... на сером фоне у меня слабость со школьных времен работы на Ямахах MSXII :)
Какие варианты есть?
Названия
Permalink
Слабость понимаю, но запутывать владельцев вряд ли оправданно. Советский вариант это Д1…Д4. Но выше я же привёл названия: ВЫХОД, ВВОД, ЭКР и СТ.
вых
Permalink
Да, как-то улетело из поля зрения на маленьком экране планшетки.
Тогда, может, покороче, чтобы влезло на кнопки:
Еще вопрос по софт-меню кнопке с кружочком, слева от р-грд-рад, что на нее можно повесить и как подписать?
Расстояние по вертикали между
Permalink
Расстояние по вертикали между клавишами не маловаты? Трудно будет разместить надписи, это ведь наклейки будут?
Расстояния между клавишами
Permalink
Рисунок это все лишь примерно, для определения форм-фактора и раскладки клавиатуры.
Финальный дизайн будет плясать от размеров дисплея и кнопок.
Насчет надписей - мы решили замахнуться на качественную 3Д печать с "впуклой" гравировкой (самим принтером или лазерной гравировкой)
Кружочек
Permalink
Я её воспринял, как кнопку подсветки. Но она может быть кнопкой Турбо/Слоу. Впрочем, опцию аутентичной скорости можно и в меню спрятать.
Есть и другие варианты. Некоторые вставляют в калькуляторы часы с будильником. Секундомер для профилирования. Сохранение и восстановление сеанса. Много этих вещей тоже можно встроить в меню.
Подсветка
Permalink
Кстати, да, кнопка подсветки не помешает. Оставлю как есть.
Обновил рисунок
Permalink
Обновил рисунок в readmi репозитория:
https://gitlab.com/vitasam/mk61s
BSD-3 лицензия внутри GPLv2
Permalink
Код из Stm32CubeIDE под лицензией BSD-3.
Насколько я понимаю, код под этой лицензий может быть использован в проекте под GPLv2 (так как BSD-3 более "разрешительная") ?
FPGA в железе калькулятора?
Permalink
Интересно, наверное, и для такого примерного использования.
Процессор Forth J1 в FPGA плате M02mini https://habr.com/ru/post/523348/
На Forth J1 написано Firmware камеры wge100 https://wiki.ros.org/wge100_camera_firmware
Статья по J1 http://euroforth.org/ef10/papers/bowman.pdf
P.S. а т.к. бывают такие маленькие ПЛИС, то может и не одну добавить?
на сайте отладочные платы с Intel Max 10 https://www.intel.ru/content/www/ru/ru/products/programmable/fpga/max-10...
FrankenCalc MK52S
Permalink
На время отладки железа и софта данное железо (HW 1.1) будет называться "FrankenCalc MK52S":

Я сначала думал, что надо тащить поддержку всех "железяк" - HW1.0, HW 1.1 и т.п., но смысла нет - все-равно железки в единственных экземплярах. Когда появится первая массовая плата, тогда почищу код, оставлю только текущее железо
Метафора
Permalink
Метафора как нельзя к месту :) Но я бы оптимистично сконцентрировался на истории о гадком утёнке.
Да, Гадкий Утенок 52S
Permalink
Да, Гадкий Утенок 52S лучше, но, к сожалению, не разместить русские буквы вместе с глифами на одном экране :)
MK61S за отчетный период
Permalink
Результаты нашей работы с уважаемым Digitalinvitro над MK61S за отчетный период:
Начинка
Permalink
Начинка, похоже, готова, дело за корпусом и компоновкой. А если отключить эхо, тест не будет идти побыстрее?
Начинка готова, осталось сложить в одну схему и (+)
Permalink
можно разводить печатную плату. Уважаемый Digitalinvitro с коллегой придумали неплохую компоновку печатных плат - даже такой толстый экран как этот 20х4 компонуется в плоский корпус, примерно как 3D модель в заголовке форума. При этом сам вычислитель находится на "материнской плате", в которую втыкаются дисплей и плата клавиатуры - возможность апгрейда как дисплея, так и микроконтроллера.
Полноценная схема наш следующий шаг.
Эхо почти не влияет на скорость. Во-первых, USB COM-порт очень быстрый - все работает через прерывания, скорость порта 12 Мбит/с. Во-вторых, как видно на видео (с 44-й секунды) - во время счета по программе ничего не кидается ни на экран ни в СОМ-порт. Так что 3.8 ... 3.9 секунды это пока предел. Дальше надо думать в сторону распараллеливания, видимо.
P.S. Если портировать какой-нибудь симулятор вроде еМкатик, то скорость должна быть быстрее DM42 :)
Требуется помощь зала (с)
Permalink
Требуется помощь зала (с)
Два открытых вопроса:
1) Что лучше - (а) дешевле и питаться от двух батареек АА или (б) дороже и сложнее схема, но литиевый аккумулятор?
2) Как сделать USB, чтобы работа (зарядка) была питанием от USB, если кабель воткнут в ПК?
Свои плюсы есть у обоих
Permalink
Свои плюсы есть у обоих предложенных вариантов. Аккумуляторов АА, к примеру у меня - как у дурака фантиков, но и встроенный съемный литиевый тоже удобно. Литиевые бывают 18650, но размер неудобен.
Но как мне кажется, действуя по плану "Б", легче реализовать вопрос с питанием от USB: воткнули - идёт заряд, выткнули - не идёт.
PS. Каковы ожидаемые размеры МК 52s?
Размеры МК61S (MK52S)
Permalink
Ожидаемые размеры - надо плясать от размеров дисплея:
Формфактор пока как в заголовке форума.
Можно предположить, что все пространство под клавиатурой справа от дисплея можно отвести под плоский аккумулятор(ы). С учетом корпуса и толщины платы клавиатуры можно рассчитывать, наверное, миллиметров на 9-10 пространства.
Батарейки
Permalink
Лучше от двух или даже трех ААА, т.к. АА более громоздкие. Подзарядка от USB, если вместо батареек вставлены аккумуляторы.
ААА батарейки
Permalink
Я тоже склоняюсь к батарейкам. 3 или даже 4 ААА вполне плоские.
Но даже с батарейками у меня не хватает опыта дорисовать схему USB цепей. Просьба к железячникам форума глянуть, что можно тут сделать.
По питанию мой вариант таков:
Permalink
https://yadi.sk/i/9nMasw8jPAWP4g
1. IMHO, два импульсных преобразователя - жирно и нет смысла.
2. USB и батарейка развязаны диодной сборкой шоттки, МАХ756 имеет рабочее напряжение от 0,7 до 5,5В, что прекрасно вписывается в схему. Питание получается от обоих интерфейсов.
3. 3.3В получаем с линейного микропотребляющго стабилизатора TPS76333, и этого вполне достаточно. Итоговый КПД, я полагаю, будет сравним с вашей версией, тем более что все боле менее серьезное потребление в виде подсветки и т.п. - от 5В.
4. По моему опыту подавать +3.3 на вход VBAT совместно с батарейкой - излишне, просто оставьте батарейку. Она будет работать годы.
5. Вместо BC547 c резисторами можно поставить PDTC143, в котором эти резисторы уже встроены.
6. MAX756 и 4 АА(ААА) вместе не дружат. Максимум три.
www.avl.by
Спасибо за советы! (+)
Permalink
Мои вопросы и комменты по пунктам:
Понял, убираю, в пользу линейного стабилизатора.
Как такая сборка работает? При включении в USB 5 вольт с порта закроет "батарейный" диод и батарея отключится от схемы?
В KiCAD-е есть такая сборка, поставлю.
Согласен, главное - дисплей и подсветка, кушают напрямую от 5 вольт.
Отлично - чем меньше деталей, тем лучше.
Такое? Какой буквенный индекс пойдет?
Хорошо. У меня как раз есть контейнер на 3 ААА для прототипа.
В общем, я перерерисую схему и выложу здесь снова для повторной проверки.
3. TPS76333 нужно по входу и
Permalink
2. Диод со стороны меньшего напряжения закроется большим.
3. TPS76333 нужно по входу и выходу в непосредственной близости обвязать конденсаторами - по входу - не менее 1мкф, по выходу не менее 4.7мкф.
5. PDTC143ZT - корпус SOT23, наиболее удобный для самостоятельного монтажа.
www.avl.by
Схема 2.0.3
Permalink
2 - понятно.
3,5 - нарисовал схему версии 2.0.3, примерно так?
Почти
Permalink
С10 - не более 0.1uF, STm32 формирует импульс сброса с кристалла, длительностью 20мкс, и 10мкф там не прокатит.
R1, R2, D3 не нужны.
Не вижу интерфейса внутрисхемной отладки (SWO(39), SWCLK(37), SWDIO(34), GND, VCC, RESET - вывести на разъём типа так http://voltozar.ru/image/data/Tovar/Instrument/ST-LINK-V2-MINI/interface...)или на любой вариант удобный для корпуса с любой распиновкой.
Пока вроде всё.
www.avl.by
экономичность при работе от батареек
Permalink
Про R1, R2, D3 - вход NRST внутри со своей подтяжкой к питанию?
Интерфейс ST-Link еще не добавил на разъем.
Мысли про экономичность при работе от батареек посещают. Все-таки линейный преобразователь на 3.3в вместо импульсного - не будет потерь, по сравнению с оригинальной схемой на двух MAX756?
Предполагается работа без подсветки дисплея
Будут. Процентов 20 или
Permalink
Будут. Процентов 20 или меньше. Не забываем про кпд второго преобразователя.
Навскидку, часов минимум 10-15 если считать все должно работать
www.avl.by
Как-то многовато
Permalink
Как-то многовато, 20 процентов.
Может таки вернуться к схеме с двумя DC-DC преобразователями на MAX756.
Чем этот вариант плох, не считая усложнения? По цене не сильно скажется, вроде
Попробуйте
Permalink
Но тогда DCDC включать не друг за другом, а параллельно
www.avl.by
Параллельное включение
Permalink
Так в версии 2.0.0 DC/DC у меня параллельно были включены:

Попробую все в одну кучу нарисовать
Распайка в домашних условиях
Permalink
А еще вопрос - stm32f411 как в Black Pill можно в домашних условиях распаять? При условии заводской печатной платы?
А разъем USB-C?
Распайка
Permalink
STM - nонкое жало и хороший флюс. + сильная лупа для просмотра пайки. Или фен + паяльная паста пожиже.
USB C - то же самое, непросто, но можно.
www.avl.by
Спасибо
Permalink
Спасибо!
Тогда попробую замахнуться в разводке платы на USB-C. Очень понравилось в "черной таблетке", да и под рукой обычно USB-C кабель только нынче