Перейти к содержимому

Вопрос по модификации устройств с целью запоминания состояния


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 14

#1 dark256

dark256

    Продвинутый пользователь

  • Участник
  • PipPipPip
  • 167 сообщений

Отправлено 21 Октябрь 2022 - 12:19

Несколько корявый заголовок, но...
Суть в чем. Дома имеется довольно много всяких USB устройств типа... ммм.... ну, скажем, светильников.
Чтобы светильник работал как тебе хочется, в общем случае надо понажимать на пульте много
разных кнопок. Но когда его вынимаешь из розетки, он эту настройку забывает.
А некоторые устройства - помнят.
Причем дорогущая кольцевая сэлфи-лампа состояние забывает, а коврик для мышки с подсветкой
за 250 рублей - помнит. Обычные цокольные лампы с пультом, за 900 рублей - выключатель включил, пульт понажимал,
потом свет выключил и по новой. Раздражает. Лишние телодвижения :)

Собственно вопрос - можно ли устройство доработать, чтобы оно своё состояние вспоминало после отключения питания?

В данном случае интересует:
А. Посредство чего именно реализуется такое "сохранение памяти"
Б. Возможен ли вариант, что в схеме просто не добавлен этот "запоминающий модуль" в целях удешевления и как такая "пустышка" может выглядеть на плате
В. Общий принцип добавления в схему такой запоминалки, даже если конструктивно установка модуля изначально не предусмотрена

Заранее благодарен :)
Прикрепленный файл  GlovesHard.jpg   125,24К   13 Количество загрузок:

#2 Naevus

Naevus

    Продвинутый пользователь

  • Участник
  • PipPipPip
  • 2 190 сообщений

Отправлено 22 Октябрь 2022 - 07:03

dark256, в общем случае - никак, невозможен, непредусмотрено.

#3 mchel

mchel

    Новичок

  • На проверке
  • Pip
  • 1 сообщений

Отправлено 22 Октябрь 2022 - 10:01

А. Состояние сохраняется в энергонезависимой памяти, называется EEPROM. Она может быть как внутри управляющего микроконтроллера, так и ввиде отдельной микросхемы.
Б. Такой вариант теоретически возможен, но вероятность его очень мала, мне не встречалось ни разу.
В:
1. Разбираем устройство, срисовываем схему и выясняем на каких компонентах оно сдедано.
2. Если удаётся идентифицировать управляющий микроконтроллер, и он поддаётся перепрошивке, и на него есть документация и инструменты разработки, и у него есть встроенная EEPROM то переходим к пункту 4.
3. Если у микроконтроллера нет маркировки, это какаято заказная, непрошиваемая микросхема без документации, то проще передетать устройство на подходящем, доступном мк. Для простых устройств проще заново разработать всю плату, либо сделать плату-переходник, впаиваемую на место оригинального мк.
4. Тщательно изучаем и записываем поведение оригинального устройства.
5. Пишем прошивку имитирующую поведение оригинального устройства.
6. После этого остаётся самое простое - дописать функцию сохранения состояния.

#4 Kupo_Moogle

Kupo_Moogle

    Новичок

  • Участник
  • Pip
  • 8 сообщений

Отправлено 23 Октябрь 2022 - 05:09

В основном запоминают состояние только те устройства, которые продолжают получать питание.
Вынимаете из розетки = сброс.
Вывод - продолжать подавать питание, не выключать из розеток и разъемов. Либо вскрыть устройство, и изучив схему, выяснить, что у контроллера есть нога, сохранение напряжения на которой позволяет помнить настройку.

#5 dark256

dark256

    Продвинутый пользователь

  • Участник
  • PipPipPip
  • 167 сообщений

Отправлено 23 Октябрь 2022 - 21:33

Просмотр сообщенияKupo_Moogle (23 Октябрь 2022 - 05:09) писал(а):

В основном запоминают состояние только те устройства, которые продолжают получать питание.
Вынимаете из розетки = сброс.
Вывод - продолжать подавать питание, не выключать из розеток и разъемов. Либо вскрыть устройство, и изучив схему, выяснить, что у контроллера есть нога, сохранение напряжения на которой позволяет помнить настройку.

Ага. Логично. То есть если на эту ногу повесить какое-то устройство, подающее напряжение для сохранения паитания, проблема может быть решена?
То есть аккумулятор+схема заряда, да?
Можете привести какие-нибудь примреы такого?
Вроде был какой-то электронный сингл-компонент, типа конденсатора, но как-то иначе назывался...

Сообщение отредактировано.


#6 dinozauer

dinozauer

    Пользователь

  • Участник
  • PipPip
  • 11 сообщений

Отправлено 24 Октябрь 2022 - 09:19

Просмотр сообщенияdark256 сказал:

Вроде был какой-то электронный сингл-компонент, типа конденсатора, но как-то иначе назывался...
Ионистр называется, но и он потребует минимальной "обвязки".

#7 Naevus

Naevus

    Продвинутый пользователь

  • Участник
  • PipPipPip
  • 2 190 сообщений

Отправлено 24 Октябрь 2022 - 12:40

Просмотр сообщенияdark256 сказал:

если на эту ногу повесить какое-то устройство, подающее напряжение для сохранения паитания, проблема может быть решена?
проблема может быть решена только для устройств, предусматиривающих такой способ "сохранения" настроек. Вы же упорно пытаетесь применить частные советы к собственным "общим" девайсам )"общим" для нас, т.к. вы упорно не желаете рассекретить их схемотехнику). Именно поэтому я и сказал что в ОБЩЕМ случае искомое вами невозможно.

Просмотр сообщенияdark256 сказал:

Можете привести какие-нибудь примреы такого?
Ну например, "Радиоконструктор старт 7231" - для резервирования настроек достаточно было на питание подвесить три кроны. (схемы гуглятся)
Или, например, любая метеринская плата со времен IBM PC AT имеет на борту батарейку для сохранения настроек биоса и RTC (схемы гуглятся)

#8 dark256

dark256

    Продвинутый пользователь

  • Участник
  • PipPipPip
  • 167 сообщений

Отправлено 24 Октябрь 2022 - 22:40

Просмотр сообщенияNaevus (24 Октябрь 2022 - 12:40) писал(а):

Просмотр сообщенияdark256 сказал:

если на эту ногу повесить какое-то устройство, подающее напряжение для сохранения паитания, проблема может быть решена?
проблема может быть решена только для устройств, предусматиривающих такой способ "сохранения" настроек. Вы же упорно пытаетесь применить частные советы к собственным "общим" девайсам )"общим" для нас, т.к. вы упорно не желаете рассекретить их схемотехнику). Именно поэтому я и сказал что в ОБЩЕМ случае искомое вами невозможно.

Просмотр сообщенияdark256 сказал:

Можете привести какие-нибудь примреы такого?
Ну например, "Радиоконструктор старт 7231" - для резервирования настроек достаточно было на питание подвесить три кроны. (схемы гуглятся)
Или, например, любая метеринская плата со времен IBM PC AT имеет на борту батарейку для сохранения настроек биоса и RTC (схемы гуглятся)

Да, про батарейки на мат.платах я немножко в курсе.
Просто предложенный общий случай с перепрошивкой контроллеров - сложноват для меня.
Поэтому я ищу спобсобы применения более простых и доступных методик.

"Повесить 3 кроны" - да, мне понятно.
"Определить протокол работы микроконтроллера и перешить EEPROM" - слегка сложновато :)
Поэтому сначала попробую что попроще.

#9 Naevus

Naevus

    Продвинутый пользователь

  • Участник
  • PipPipPip
  • 2 190 сообщений

Отправлено 30 Октябрь 2022 - 10:44

Просмотр сообщенияdark256 сказал:

Определить протокол работы микроконтроллера и перешить EEPROM" - слегка сложновато
Еще раз - поскольку вы упорно не желаете нам сообщать хоть какие то подробности ваших девайсов - у меня, например, есть обоснованные сомнения в том, что на них вообще есть микроконтроллер и/или что его возможно перепрошить...

ps А самый очевидный вариант не рассматриваете? Поскольку приведение девайса к нужному вам состоянию происходит путем нажатия неких кнопок в определенном порядке - не проще ли эмулировать этот порядок нажатия при подаче питания?

#10 uncle_sem

uncle_sem

    Продвинутый пользователь

  • Участник
  • PipPipPip
  • 231 сообщений

Отправлено 31 Октябрь 2022 - 13:45

Просмотр сообщенияNaevus (30 Октябрь 2022 - 10:44) писал(а):

Просмотр сообщенияdark256 сказал:

Определить протокол работы микроконтроллера и перешить EEPROM" - слегка сложновато
Еще раз - поскольку вы упорно не желаете нам сообщать хоть какие то подробности ваших девайсов - у меня, например, есть обоснованные сомнения в том, что на них вообще есть микроконтроллер и/или что его возможно перепрошить...

ps А самый очевидный вариант не рассматриваете? Поскольку приведение девайса к нужному вам состоянию происходит путем нажатия неких кнопок в определенном порядке - не проще ли эмулировать этот порядок нажатия при подаче питания?
человек не умеет в микроконтроллеры, как он эти кнопки эмулировать будет?

#11 Naevus

Naevus

    Продвинутый пользователь

  • Участник
  • PipPipPip
  • 2 190 сообщений

Отправлено 31 Октябрь 2022 - 17:17

Просмотр сообщенияuncle_sem сказал:

как он эти кнопки эмулировать будет?
Если бы мне поставили такую задачу, когда я не умел микроконтроддеры (и даже триггеры на двух транзисторах) я бы взял моторчик от любимой игрушки, вместе с редуктором, насадил на вал барабан с вбитыми в него гвоздиками и заставил гвоздики нажимать кнопки (или замыкать контакты непосредственно)
ps Это просто первое что пришло в голову

#12 dark256

dark256

    Продвинутый пользователь

  • Участник
  • PipPipPip
  • 167 сообщений

Отправлено 01 Ноябрь 2022 - 23:16

Просмотр сообщенияNaevus (30 Октябрь 2022 - 10:44) писал(а):

Просмотр сообщенияdark256 сказал:

Определить протокол работы микроконтроллера и перешить EEPROM" - слегка сложновато
Еще раз - поскольку вы упорно не желаете нам сообщать хоть какие то подробности ваших девайсов - у меня, например, есть обоснованные сомнения в том, что на них вообще есть микроконтроллер и/или что его возможно перепрошить...

ps А самый очевидный вариант не рассматриваете? Поскольку приведение девайса к нужному вам состоянию происходит путем нажатия неких кнопок в определенном порядке - не проще ли эмулировать этот порядок нажатия при подаче питания?

Подробности - ок. Понял. Чуть позже, сорри.

Просмотр сообщенияuncle_sem (31 Октябрь 2022 - 13:45) писал(а):

Просмотр сообщенияNaevus (30 Октябрь 2022 - 10:44) писал(а):

Просмотр сообщенияdark256 сказал:

Определить протокол работы микроконтроллера и перешить EEPROM" - слегка сложновато
Еще раз - поскольку вы упорно не желаете нам сообщать хоть какие то подробности ваших девайсов - у меня, например, есть обоснованные сомнения в том, что на них вообще есть микроконтроллер и/или что его возможно перепрошить...

ps А самый очевидный вариант не рассматриваете? Поскольку приведение девайса к нужному вам состоянию происходит путем нажатия неких кнопок в определенном порядке - не проще ли эмулировать этот порядок нажатия при подаче питания?
человек не умеет в микроконтроллеры, как он эти кнопки эмулировать будет?

Ну... чутка немножко понятия есть.... даже уже проект родился:
генератор на к155ла3 и счётчик. Досчитал и остановился.
Но.... Это не влезет в корпус устройства :))))

#13 VivaCuba

VivaCuba

    Новичок

  • На проверке
  • Pip
  • 1 сообщений

Отправлено 06 Ноябрь 2022 - 19:13

Просмотр сообщенияdark256 (21 Октябрь 2022 - 12:19) писал(а):

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

Просмотр сообщенияdark256 (21 Октябрь 2022 - 12:19) писал(а):

Собственно вопрос - можно ли устройство доработать, чтобы оно своё состояние вспоминало после отключения питания?
Прежде чем получится это сделать для одного устройства, несколько таких же сгорят в процессе доработки. Нужно пойти иным путём, что-то типа "Алиса, настрой кольцевую лампу на первый пресет". Вместо Алисы может быть полностью локальное решение, таких есть некоторое количество, но я в этом разбираюсь ещё меньше, чем добавлении памяти в лампу :D

Просмотр сообщенияdark256 (21 Октябрь 2022 - 12:19) писал(а):

В данном случае интересует:
А. Посредство чего именно реализуется такое "сохранение памяти"
Скорее не так. Надо поинтересоваться тем, что должно делать устройство при включении. А должно оно выполнить инициализацию, прочитав свой код из ПЗУ. Если в ПЗУ нет ничего про чтение настроек из каких-то регистров, кусков памяти или портов, то придётся написать новую программу и поместить в ПЗУ.
Скорее всего, у той же кольцевой лампы всё плохо с ПЗУ, или оно не единое целое и у некоторых компонентов есть свои ПЗУ. Например, ИК-приёмник знает что надо сделать если примет нужную последовательность.
Можно поискать спецификации на все микросхемы лампы и по ним прикинуть количество памяти, где используется и подобное. Если память можно перезаписать на программаторе, то придётся возиться с чужим двоичным кодом и получать интересную профессию. Если найдется абстрактная сотня свободных байтов, код ИК-приёмника можно будет слегка изменить, поставив безусловный переход на свой инициализатор, который по завершении прыгает на оригинальный код. Лет 20 назад я бы счёл это интересной и решаемой задачей, а сейчас я просто забью :ph34r:

Просмотр сообщенияdark256 (21 Октябрь 2022 - 12:19) писал(а):

Б. Возможен ли вариант, что в схеме просто не добавлен этот "запоминающий модуль" в целях удешевления и как такая "пустышка" может выглядеть на плате
Именно так и есть.

Просмотр сообщенияdark256 (21 Октябрь 2022 - 12:19) писал(а):

В. Общий принцип добавления в схему такой запоминалки, даже если конструктивно установка модуля изначально не предусмотрена
Общего принципа нет. Есть варианты:
  • Сменить код прошивки в какой-либо компоненте

  • Добавить свою микросхему в разрыв некоторых дорожек: отключить подачу питания, когда прибор отключают, перестать заряжать батарейку питающую память, которую теперь питают от батарейки

  • На внешнем устройстве проводить инициализацию сброшенного девайса


#14 Nuts_

Nuts_

    Новичок

  • Участник
  • Pip
  • 5 сообщений

Отправлено 09 Ноябрь 2022 - 14:17

dark256, в случае контроллеров это не "сложновато", это конкретно сложно.
весьма лишь немногие могут залезть в двоичную прошивку, понять что там и как и тем более че то доделать, иногда гораздо проще создать свою с 0

#15 dark256

dark256

    Продвинутый пользователь

  • Участник
  • PipPipPip
  • 167 сообщений

Отправлено 10 Ноябрь 2022 - 15:23

Просмотр сообщенияNuts_ (09 Ноябрь 2022 - 14:17) писал(а):

dark256, в случае контроллеров это не "сложновато", это конкретно сложно.
весьма лишь немногие могут залезть в двоичную прошивку, понять что там и как и тем более че то доделать, иногда гораздо проще создать свою с 0

Я примерно представляю :))) Когда-то давно ковырялся с этим. Что там происходит сейчас - представляю....
Хотя с другой стороны - Ардуино - тот же контроллер. Хотя - да. Код не двоичный.