если не ставить целью повторить дизайн LCD дисплея МК-85, который представляет из себя Франкенштейна - где собраны в одно совершенно разнородные индикаторы: строка ввода/результатов вычислений, индикаторы режимов клавиатуры, индикаторы режимов работы, количество свободных байт ОЗУ. то думаю, что однострочный дисплей на ~16-ть символов(строка ввода, количество свободных байт ОЗУ) и светодиодная индикация остального - будет смотреться вполне эргономично.
Attachments:
WEG010008AL.jpg [ 81.98 KiB | Viewed 14266 times ]
Чото я не могу найти такие двойные кнопочки как на схеме МК-85
Piotr Piatek предложил решить проблему отсутствия двухконтактных кнопочек вот таким способом
При этом правда потребуется 110 диодов...
как бы "да", но результат более чем странен - 110 диодов.
~~~~~~~~~~~~~~~~~~~~~ переписал ТУ: ввод данных в порт клавиатуры Т36ВМ1-2.
уровень "0" на линиях BPP1-BPP3 активирует выборку комбинации из двух "0" на линиях KB0-KB10, которая распознаётся как ввод символа клавы.
адепты минимализма могут просто подключить, подтянутые к питанию, кнопки к BPP1-BPP3, BON(включить), BOFF(выключить), BSTOP(стоп), BKB2-BKB8 и рулить клавой аккордами из трёх кнопок.
остальным предоставлена гибкая возможность ввода данных в порт клавиатуры в меру своей испорченности ассемблером AVR или Arduino.
!в реале не тестировал - проект в процессе разработки.
Attachments:
MK-85_PCB_keyboard.png [ 40.17 KiB | Viewed 13998 times ]
MK-85_keyboard.png [ 180.98 KiB | Viewed 14000 times ]
Достаточно 60 диодов, так как можно применить общую пару диодов для 3 кнопок.
ну, ок. результат становится наполовину странным.
я предлагаю интерфейс ввода данных, к которому можно подключить любую балалайку, генерящую аккорды нажатия кнопок - можно простую двумерную матрицу любой размерности без диодов с программной отработкой режима 1-Key Rollover для ручного набора или любым иным доступным ползателю образом.
piotr433 wrote:
А ещё существуют двойные диоды в одном корпусе, например
а, ещё должны существовать кнопки с двумя парами контактов в одном корпусе - тогда диоды не нужны.
Подожду релиза, попробую повторить в варианте atmega8 на внутреннем RC.
код можно считать УЖЕ финальным - максимально оптимизирован и предельно честно транслирует в дисплей ровно то, что было передано.
аппаратно - осталось продумать шину питания. на данный момент блок 2(регистры) питается от шины питания процессора МК-85, а блок 1 (ATmega8-OLED) от отдельного источника(USB или другое).
пока не складывается в общую картину, как безопасно выключать весь колхоз, оставляя питание на процессоре МК-85.
когда процессор находится в состоянии "вкл", то отключать питание блок 1, 2 небезопасно - пины процессора SYNC, AD, SHIFT будут перегружены током паразитной утечки напряжения. отключение только блока 1 - безопасно. пины регистров блока 2 достаточно мощные.
рассмариваю варианты: 1. программно уводить ATmega8 в сон и программно выключать OLED. 2. заюзать пин процессора 0V2 и им рулить ключом отрубающим питание, но я не уверен, насколько это безопасно - как корректно работает этот пин, если в процессоре произойдёт какой-либо программно-аппаратный сбой - типа зависнет или что-то подобное.
рассмариваю варианты: 1. программно уводить ATmega8 в сон и программно выключать OLED.
ATmega8 отлично засыпает и что-то там микропотребляет, но программно-выключенный OLED жрёт 5мА. так, что - этот вариант не катит.
ок. пока актуален хардкорный вариант: - питание всего от шины питания процессора. - батарей нет. - соответственно, программы в RAM не сохраняются после отключения питания.
остаётся вариант с использованием 0V2, но это какое-то палево - рисковать рано или поздно словить глюк процессора и спалить линию данных дисплея.
~~~~~~~~~~~~~~~~~~~~~~~~ кто в курсе, как программно загнать OLED-дисплей в режим SLEEP - поделитесь.
01 Nov 2018 14:55
jdigreze
God
Joined: 02 Jan 2006 02:28 Posts: 1390 Location: Abakan
но программно-выключенный OLED жрёт 5мА. так, что - этот вариант не катит.
А если питание на OLED пустить через мосфет, а им пусть рулит атмега?
та, это "да" - но производитель как бы попытался сделать недо-sleep:
Quote:
Бит PWR позволяет отключать внутренний DC/DC-преобразователь напряжения для питания формирователей тока OLED. PWR=”1”, DCDC включен. PWR=”0”, DCDC выключен. Это позволяет уменьшать энергопотребление модуля в спящих режимах прибора.
как вариант - я неправильно отключаю дисплей:
Code:
oled.command(0x08); // выключить экран
это по рекомендациям с тырнетов. но! в библиотеке LiquidCrystal существует
кнопки "ON", "OFF" соответственно - активируют или усыпляют дисплей. если этот функционал не требуется, то просто - повесить кнопки на шину питания VCC.
возможные варианты аппаратной реализации:
внешний дисплей-приставка к МК-85 устройство в отдельном корпусе, подключающееся к МК-85 посредством разъёма типа mini-USB(5-pin) !важно: помнить, что общая шина питания у МК-85 - "+", поэтому металлический корпус разъёма должен быть подключен не классически - к GND, а к VCC. что бы при любых раскладах, первым был подключен общий провод шины питания. !важно: что бы не рисковать сжечь торчащие наружу из разъёма пины процессора, рекомендуется установить в МК-85 какой-либо буфер(CD4010, например) перед разъёмом. этот вариант реализации позволяет сохранить оригинальное батарейное питание - в случае питания от батарей, дисплей-приставка просто не подключается/отключается посредством разъёма.
встроенный в МК-85 дисплей, заменяющий или дополняющий основной из названия понятно - дисплей встроен. этот вариант реализации подразумевает модернизацию батарейного питания и замены его, на что-то более ёмкое - аккумуляторы, например. дисплей в спящем режиме потребляет ~5мА, что не совсем "ужас-ужас" катастрофично для современных аккумуляторов. если нет желания заморачиваться, то можно поступить просто - отказаться от батарейного питания.
#если что-то непонятно или есть идеи - с удовольствием выслушаю. спасибо.
Users browsing this forum: No registered users and 33 guests
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum