ramlamyammambam

Калькулятор вполне работает

« previous entry | next entry »
2014 янв 18 | 22:35

Самодельный калькулятор МК-54 с наклейками на клавиши.

Самодельный калькулятор вполне дозрел. За отчетный период:

(1) Прошивка переделана на МК-61. Это ее немного замедлило, так как приходится моделировать три микросхемы ИК13 вместо двух. Впрочем можно собрать и МК-54, добавив флаг -DMK_54 в Makefile.

(2) Программа сохраняется в flash-памяти микроконтроллера, так что отключение питания ее не стирает.

(3) Наступила определенность с выбором микроконтроллера: PIC32MX220F032B. На microchipdirect такой стоит $2.74. Flash-память команд размером 32 кбайт используется на 91%. Память данных 8 кбайт вообще с избытком. Старшие модели MX230F064B и MX250F128B тоже годятся. Готовую прошивку можно взять здесь: mk61-mx220-12mhz.hex.

(3) Наклейки на кнопки несколько улучшили внешний вид. Наклейки печатались посредством цветного принтера на самоклеящейся бумаге 3M и обрезались ножницами. Поверх наклеивался дополнительный защитный квадратик скотча. Выглядит неидеально, но вполне надежно.

(4) Добавлен протокол общения с компьютером через USB. Тип устройства USB HID не требует установки драйвера под Windows. Идентификаторы устройства VID/PID = ca1c/0061 для МК-61 и ca1c/0054 для МК-54. Протокол очень простой: шлем устройству пакет в 64 байта, ожидаем 64 байта в ответ.

(5) Сделана утилита pmktool, которая умеет показывать текущий стек, регистры, программу, и загружать новую программу по USB. Содержит простой ассемблер и дизассемблер. Утилита в стиле command line, работает под Linux, Windows и Mac OS X. Готовый бинарник для Windows есть здесь: pmktool.exe. Исходники открытые: желающие могут добавить GUI.

(6) В качестве пробы ассемблера была адаптирована самая первая из известных игр для МК-61: "Колхоз", позднее известная как "Остров". Оригинал можно посмотреть на сайте Евгения Кузниченко, адаптированный текст здесь.

(7) Для оценки скорости вычислений был запущен классический тест "8 ферзей", взятый с сайта Сергея Тарасова arbinada. Адаптированный текст здесь. Время выполнения составило 1 час 19 минут 30 секунд. Известно, что на оригинальном МК-56 потребовалось три часа девять минут, то есть реплика в 2.4 раза быстрее.

(8) Написан тест, демонстрирующий забавную недокументированную особенность калькуляторов этого семейства: главные и побочные ветви выполнения. Поведение в точности соответствует ожидаемому. Спасибо 1500py470 за подсказку.

(9) Измерен ток потребления: от 29 до 35 мА, в зависимости от количества светящихся разрядов на индикаторе. При емкости батареек 2000мАч получится порядка 60 часов работы. Оригинальный МК-61 кушает 90 мА.

(10) Проект перенесен на отдельный сайт: https://mk-61.googlecode.com/. Там сложены все исходники и документация, осталось только дорисовать принципиальную схему.

Предыдущие сообщения:
http://ramlamyammambam.livejournal.com/266692.html
http://ramlamyammambam.livejournal.com/266277.html

Ссылка | оставить комментарий | Поделиться

Comments {15}

Notes of a degraded "slave-holder"

(без темы)

from: raydac
date: 2014 янв 19 7:31 (UTC)
Ссылка

там смотрю схема оригинального мк, а твоя схема где?

Ответить | Ветвь дискуссии

Сергей

(без темы)

from: ramlamyammambam
date: 2014 янв 19 8:07 (UTC)
Ссылка

Еще не нарисовал... Дело в том, что переключатель Р/ГРАД/Г еще не приехал с ебея, эта часть пока не доделана.

Ответить | Уровень выше | Ветвь дискуссии

Notes of a degraded "slave-holder"

(без темы)

from: raydac
date: 2014 янв 19 10:24 (UTC)
Ссылка

а чем программишь PICи?

Ответить | Уровень выше | Ветвь дискуссии

Сергей

(без темы)

from: ramlamyammambam
date: 2014 янв 19 17:40 (UTC)
Ссылка

GCC из chipKIT MPIDE toolchain.
http://chipkit.s3.amazonaws.com/index.html

Из всего пакета нужен только каталог pic32-tools. Я его обычно копирую в /usr/local/ для простоты, и зову /usr/local/pic32-tools/bin/pic32-gcc из Makefile.

Ответить | Уровень выше | Ветвь дискуссии

Mike Potanin

(без темы)

from: potan
date: 2014 янв 19 9:47 (UTC)
Ссылка

Великолепно!
А что по деньгам получается?

Ответить | Ветвь дискуссии

Сергей

(без темы)

from: ramlamyammambam
date: 2014 янв 19 19:34 (UTC)
Ссылка

Самый большой расход это кнопки, в районе 4 баксов за десяток или два.
http://www.ebay.com/itm/321238164566
http://www.ebay.com/itm/230913922410
http://www.ebay.com/itm/310570944935

Пара макетных плат чуть дороже бакса каждая.
http://www.ebay.com/itm/161045257958

Три 4-разрядных индикатора меньше бакса за штуку.
http://www.ebay.com/itm/10-X-0-36-7-Segment-Super-4-LED-Display-CA-CC-ge-/251165430775

Про процессор я уже писал. Все остальное мелочевка: пара 74HC595N, стабилизатор LD1117V33, разъем USB, кварц 12МГц, конденсаторы.

Ответить | Уровень выше | Ветвь дискуссии

Amarao

(без темы)

from: amarao_san
date: 2014 янв 19 12:02 (UTC)
Ссылка

А почему не github?

Ответить | Ветвь дискуссии

Сергей

(без темы)

from: ramlamyammambam
date: 2014 янв 19 17:25 (UTC)
Ссылка

Как-то мне Subversion и Googlecode привычнее.

Ответить | Уровень выше | Ветвь дискуссии

Клапауций

(без темы)

from: klapaucy
date: 2014 янв 20 5:34 (UTC)
Ссылка

Приятно увидеть...

Ответить | Ветвь дискуссии

Сергей

(без темы)

from: ramlamyammambam
date: 2014 янв 20 6:37 (UTC)
Ссылка

Кнопочки понажимать вообще кайф. :)

Ответить | Уровень выше | Ветвь дискуссии

vitasam

(без темы)

from: vitasam
date: 2014 янв 21 12:58 (UTC)
Ссылка

А вот вопрос по USBHID - если его использовать в клммерческих устройствах, нужна ли лицензия? Вроде GPL там где-то пробегал

Ответить | Ветвь дискуссии

Сергей

(без темы)

from: ramlamyammambam
date: 2014 фев 8 1:35 (UTC)
Ссылка

Для коммерческих устройств надо покупать VID - Vendor Identifier. Цена вопроса 4 тысячи баксов.

Ответить | Уровень выше | Ветвь дискуссии

webushka

(без темы)

from: webushka
date: 2014 фев 20 21:26 (UTC)
Ссылка

Хорошая штука была microchipdirect, Жалко она у нас больше недоступна, приходится на фарнелл ходить.

Ответить | Ветвь дискуссии

Сергей

(без темы)

from: ramlamyammambam
date: 2014 фев 20 21:38 (UTC)
Ссылка

Что-то не сложилось у них с доставкой в Россию. А обещали вроде. Но mx220 и mx250 появились на ebay, поштучно:
http://www.ebay.com/itm/PIC32MX220F032B-I-SP-Microchip-MCU-32kB-Flash-8kB-RAM-USB-2-3-3-6V-DIP28-/221373574429
http://www.ebay.com/itm/PIC32MX250F128B-50I-SP-Microchip-MCU-128kB-Flash-32kB-RAM-USB-2-3-3-6V-DIP28-/221368507256

Кстати, PCB уже разведена, герберы можно взять здесь: https://code.google.com/p/mk-61/source/browse/#svn%2Ftrunk%2Fboard%2Fgerbers

Схема: https://mk-61.googlecode.com/svn/trunk/board/replica61-schematics.pdf

Edited at 2014-02-20 21:41 (UTC)

Ответить | Уровень выше | Ветвь дискуссии

webushka

(без темы)

from: webushka
date: 2014 фев 20 22:03 (UTC)
Ссылка

С доставкой в Россию у них не сложилось ровно одно - все заказы от частных лиц из отсюда - перехватывает эксклюзивный говнодистрибьютор из питера под названием Гамма (которая gamma.spb.ru). Который деньги за доставку к заказу суммирует, получает, но потом оказывается, что это доставка до их офиса. Дальше сами, ногами заходите и получайте.
Они мне так уже полтора года заказ с microchipdirect везут. Сначала для них было шоком, что я из другого города. Потом они таки преправили заказ в Москву и предлагали мне зайти к ним в представительство ровно на другом конце города и ещё полчаса на оленях от метро. И строго в рабочее время.
Я похихикал с идиотов и забил на покупки этим путём.

Ответить | Уровень выше | Ветвь дискуссии