![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)

Самодельный калькулятор вполне дозрел. За отчетный период:
(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 ферзей", взятый с сайта Сергея Тарасова
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
(8) Написан тест, демонстрирующий забавную недокументированную особенность калькуляторов этого семейства: главные и побочные ветви выполнения. Поведение в точности соответствует ожидаемому. Спасибо
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
(9) Измерен ток потребления: от 29 до 35 мА, в зависимости от количества светящихся разрядов на индикаторе. При емкости батареек 2000мАч получится порядка 60 часов работы. Оригинальный МК-61 кушает 90 мА.
(10) Проект перенесен на отдельный сайт: https://github.com/sergev/mk-61. Там сложены все исходники и документация, а также принципиальная схема (PDF) и чертежи разведенной платы, готовые к производству (replica61.zip).
Предыдущие сообщения:
http://ramlamyammambam.livejournal.com/266692.html
http://ramlamyammambam.livejournal.com/266277.html
no subject
Date: 2014-01-19 07:31 (UTC)no subject
Date: 2014-01-19 08:07 (UTC)no subject
Date: 2014-01-19 10:24 (UTC)no subject
Date: 2014-01-19 17:40 (UTC)http://chipkit.s3.amazonaws.com/index.html
Из всего пакета нужен только каталог pic32-tools. Я его обычно копирую в /usr/local/ для простоты, и зову /usr/local/pic32-tools/bin/pic32-gcc из Makefile.
no subject
Date: 2014-01-19 09:47 (UTC)А что по деньгам получается?
no subject
Date: 2014-01-19 19:34 (UTC)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МГц, конденсаторы.
no subject
Date: 2014-01-19 12:02 (UTC)no subject
Date: 2014-01-19 17:25 (UTC)no subject
Date: 2014-01-20 05:34 (UTC)no subject
Date: 2014-01-20 06:37 (UTC)no subject
Date: 2014-01-21 12:58 (UTC)no subject
Date: 2014-02-08 01:35 (UTC)no subject
Date: 2014-02-20 21:26 (UTC)no subject
Date: 2014-02-20 21:38 (UTC)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
no subject
Date: 2014-02-20 22:03 (UTC)Они мне так уже полтора года заказ с microchipdirect везут. Сначала для них было шоком, что я из другого города. Потом они таки преправили заказ в Москву и предлагали мне зайти к ним в представительство ровно на другом конце города и ещё полчаса на оленях от метро. И строго в рабочее время.
Я похихикал с идиотов и забил на покупки этим путём.
мк 61
Date: 2015-06-23 12:30 (UTC)Проект переехал на Github
Date: 2015-06-24 02:20 (UTC)Смотрите здесь: https://github.com/sergev/mk-61
Ссылки я сейчас поправлю.
Re: Проект переехал на Github
Date: 2015-06-29 09:17 (UTC)Re: Проект переехал на Github
Date: 2015-06-29 09:29 (UTC)Re: Проект переехал на Github
Date: 2015-06-29 09:40 (UTC)no subject
Date: 2015-06-30 00:08 (UTC)Утилита pic32prog отлично прошивает микроконтроллеры PIC32 через PICkit2: https://github.com/sergev/pic32prog/wiki
no subject
Date: 2015-06-30 00:04 (UTC)Но там и нету никакого особого ноу хау, в схеме.
Можно использовать любой микроконтроллер с любым графическим экранчиком.
Вся суть в софте, в прошивке калькулятора.
Можно и к этому экранчик подключить.
Исходники открытые - дерзайте!
Re: Проект переехал на Github
Date: 2015-06-29 23:59 (UTC)Re: Проект переехал на Github
Date: 2015-07-23 07:04 (UTC)no subject
Date: 2015-07-24 03:18 (UTC)ICSP это разъём, которым PICkit3 подключается к плате.
Для прошивания PICkit3 вполне подойдёт.
Я покупал кнопки через Ebay. Их там много имеется, например:
http://www.ebay.com/itm/Tactile-Push-Button-Switch-Momentary-Tact-Cap-12x12x7-3mm-KeyCaps-Assorted-Kit-/281472143056
На AliExpress тоже большой выбор:
http://www.aliexpress.com/w/wholesale-Push-Button-Switches-20Pcs-Momentary-Tactile-cap.html
мк 61
Date: 2015-08-17 21:58 (UTC)no subject
Date: 2015-09-09 19:24 (UTC)(1) Разъем J4 это USB Type B (как на принтерах) или microUSB Type B (как на мобильных телефонах), как вам удобнее. Через этот порт с помощью утилиты pmktool (https://github.com/sergev/mk-61/tree/master/pmktool) можно считывать и записывать программу калькулятора, а также его состояние - числа на индикаторе, в стеке и памяти.
(2) P1 Header2 это вход питания от батарейки или внешнего источника. Дипазон напряжений определяется преобразоваталем 78L33: от 5V до 30V. Трех аккумуляторов по 1.2V может не хватить, лучше четыре.
(3) Есть Gerber-файлы, готовые к производству. Я по ним уже заказывал платы, так что они точно корректные.
Можно использовать и PIC32MX220F032B в корпусе QFN, там те же ножки, если удастся её запаять. И программируется она так же.
Технически нет проблем подключить экран от Нокии. Сигналы SEG_B, SEG_C, SEG_D, SEG_E, SEG_F, SEG_G в этом случае отвобождаются, и их можно использовать для управления графическим экраном. Но это уже заметная софтверная разработка. Пробуйте: идущий да осилит.
мк-61
Date: 2015-09-30 00:36 (UTC)no subject
Date: 2015-10-01 04:52 (UTC)Я сделал фотку - смотрите в моем последнем посте: http://ramlamyammambam.livejournal.com/362030.html
Это первый вариант платы, с несколькими ошибками и разъёмом microUSB. В новой версии ошибки исправлены и разъём заменён на полноразмерный USB. Новый вариант платы я не запускал в производство, поэтому фотки нету.
Крым сейчас мертвая зона, к сожалению. Но другого варианта нету. Делать вариант для атмеги я не буду. Считаю, что калькулятор я разработал, исходники выпустил в народ, и этим выполнил свою миссию. :)
Про токоограничительные резисторы вы правильно говорите. На схеме они стоят: R2-R9.
мк 61
Date: 2015-10-03 21:07 (UTC)Re: мк 61
Date: 2015-10-03 22:03 (UTC)Re: мк 61
Date: 2015-10-14 01:06 (UTC)Re: мк 61
Date: 2015-10-14 18:43 (UTC)Re: мк-61
Date: 2015-12-31 09:04 (UTC)Re: мк-61
Date: 2016-01-10 19:25 (UTC)