-
- Научись формулировать вопрос так, чтоб он хотя бы был понятен. Если
прерывание в процессоре строго фронтом одной полярности, то её
можно обеспечить одним лог. элементом ИЛИ-НЕ (XOR). Если проблема в
дребезге (колесо остановили между двумя состояниями и оно ловит
любую вибрацию), то нужна более сложная логика, выдающая импульс
только при смене состояния обоих выходов. Что опять же можно
реализовать на CPLD, на дискретной логике, на логической ячейке в
некоторых контроллерах. fk0(72 знак., 11.08.2020 13:16)
- Формулирую: как сделать так чтобы подтяжки эекодера не грели небо и
при этом контроллер мог проснуться от крутилки (rising or falling)? - Moлoдoй кoллeгa(11.08.2020 18:36)
- Всё равно ничего непонятно. Зачем подтяжки должны кого-то греть,
зачем они вообще нужны? У тебя вход ноги МК -- потенциальный, через
него ток же не втекает. Вниз контакты валкодера тянут, а вверх
резистор? Резистор тебе не сделать относительно высокоомным, т.к.
будет реагировать на помехи? Самое простое -- работать по опросу
("управляемая подтяжка"), а не прерыванию, просто ~20 раз в секунду
проверять вручную. Подали лог. 1 на верхний вывод резистора,
проверили напряжение fk0(262 знак., 11.08.2020 19:47)
- Чего не понятно? Прикрутить мощный магнит к энкодеру, на печатной
плате катушку с выпрямителем. Делов то. ;-) - BlackMorda(12.08.2020 11:40)
- Energy harvesting? - Nikolay_Po(12.08.2020 11:45)
- Я думал что это будет шутка. Энергию не собирать а сделать "импульс
будильник" без затрат от основной батареи. - BlackMorda(12.08.2020 11:51)
- Кстати неплохая идея, проблема что нужно "изобретать" магнитик с катушкой. - Moлoдoй кoллeгa(12.08.2020 18:22)
- Да ладно, шутка. Модники уже в подошву кроссовок такие штуки вставляют, используя светодиоды в качестве нагрузки. - Kpoк(12.08.2020 17:14)
- Я думал что это будет шутка. Энергию не собирать а сделать "импульс
будильник" без затрат от основной батареи. - BlackMorda(12.08.2020 11:51)
- Energy harvesting? - Nikolay_Po(12.08.2020 11:45)
- Суть вопроса, это избавится от потребления тока подтяжками. - Moлoдoй кoллeгa(11.08.2020 23:30)
- Сделать "хилую" подтяжку (мегаомную) в параллель с одногейтовым bus-hold'ом на нужный ток? Что-то на манер порта у 51-го... - ToчкaOпopы(12.08.2020 10:05, )
- Чего не понятно? Прикрутить мощный магнит к энкодеру, на печатной
плате катушку с выпрямителем. Делов то. ;-) - BlackMorda(12.08.2020 11:40)
- Сделать "управляемые" подтяжки, с выводов процессора, перед сном
ставить в положение, соответствующее положению энкодера,
просыпаться от перехода. - AlexBi_(11.08.2020 19:31, )
- Если на выходе "00" нужно отключить обе подтяжки, без оных энкодер бесполезен, перехода не будет. - Moлoдoй кoллeгa(11.08.2020 19:36)
- Всё равно ничего непонятно. Зачем подтяжки должны кого-то греть,
зачем они вообще нужны? У тебя вход ноги МК -- потенциальный, через
него ток же не втекает. Вниз контакты валкодера тянут, а вверх
резистор? Резистор тебе не сделать относительно высокоомным, т.к.
будет реагировать на помехи? Самое простое -- работать по опросу
("управляемая подтяжка"), а не прерыванию, просто ~20 раз в секунду
проверять вручную. Подали лог. 1 на верхний вывод резистора,
проверили напряжение fk0(262 знак., 11.08.2020 19:47)
- Формулирую: как сделать так чтобы подтяжки эекодера не грели небо и
при этом контроллер мог проснуться от крутилки (rising or falling)? - Moлoдoй кoллeгa(11.08.2020 18:36)
- Нет красивого решения, переключение в 0 легко: контакт с
высокоомной подтяжкой >> конденсатор > вход активный
низкий с подтяжкой, а вот из 0 в 1 сложно, т.к. подтяжка контакта
должна быть на порядок сильнее подтяжки входа. Если притянуть 1 МОм
контакт (3 мкА) и 10 МОм вход, то будет срабатывать от всякой
фигни. - VLLV(11.08.2020 12:28)
- Похоже на то, нужен энкодер с "01" и "10" состояниями и отключать
одну подтяжеку перед сном. - Moлoдoй кoллeгa(11.08.2020 19:08)
- Тут есть нюанс - если пропуски импульсов допускаются, то на не
просыпание при переходе в одном направлении можно забить,
получается "элегантная победа". - VLLV(12.08.2020 10:57)
- Пропуски допускаются, проблема найти нужный энкодер. - Moлoдoй кoллeгa(12.08.2020 18:19)
- Тут есть нюанс - если пропуски импульсов допускаются, то на не
просыпание при переходе в одном направлении можно забить,
получается "элегантная победа". - VLLV(12.08.2020 10:57)
- Похоже на то, нужен энкодер с "01" и "10" состояниями и отключать
одну подтяжеку перед сном. - Moлoдoй кoллeгa(11.08.2020 19:08)
- на PIC с "независимой периферией" (CIP) легко делается (см. ). При
небольшой модификации подтяжку контактов энкодера можно сделать
импульсной, тогда потребление 1-2-3uA (в зависимости от величины
подтягивающих резисторов и скважности). Работает "само,
автоматически, в Sleep". Пробуждение только в момент изменения
состояния, причем без программного декодирования - сразу видите в
какую сторону вращение. - Илья(11.08.2020 10:27, ссылка)
- Спасибо за идею с импульсной подтяжной. - Moлoдoй кoллeгa(11.08.2020 19:06)
- А просто будить тот же пик несколько раз в секунду и проверять
состояние программно -- будет ли значительно больше усреднённое
потребление? При условии, что пик работает от внутреннего
низкочастотного генератора. - fk0(11.08.2020 13:18)
- А зачем? Это нужно проснуться, подать на ногу +V, подождать,
прочитать порт и если изменения не было - уснуть (перед этим
выключив +V, чтобы не текло). Это как просыпаться ночью раз в пол
часа и смотреть на часы - пора вставать или нет, вместо того чтобы
проснуться по будильнику)) Периферия сама может обслуживать задачу. Илья(610 знак., 11.08.2020 14:03)
- В том-то и дело, что мелкому PIC18 или PIC24 совершенно не затратно проснуться лишний раз (у него RAM сохранняется, в отличии от ARM'ов). И не нужен спец. процессор с модной логической ячейкой (которую можно на что-то другое ещё пустить). Да, больше. Но больше насколько? Если те же 10%, то это скорей не существенно. - fk0(11.08.2020 14:37)
- А зачем? Это нужно проснуться, подать на ногу +V, подождать,
прочитать порт и если изменения не было - уснуть (перед этим
выключив +V, чтобы не текло). Это как просыпаться ночью раз в пол
часа и смотреть на часы - пора вставать или нет, вместо того чтобы
проснуться по будильнику)) Периферия сама может обслуживать задачу. Илья(610 знак., 11.08.2020 14:03)
- Может кнопкой энкодера будить? - BlackMorda(11.08.2020 09:09)
- Это можно, но хотелось именно крутилкой. - Moлoдoй кoллeгa(11.08.2020 09:19)
- Пробуждение прерыванием от изменения уровня, а затем обычная
обработка? - Yurasvs(11.08.2020 09:30)
- Да - Moлoдoй кoллeгa(11.08.2020 09:34)
- Пробуждение прерыванием от изменения уровня, а затем обычная
обработка? - Yurasvs(11.08.2020 09:30)
- Это можно, но хотелось именно крутилкой. - Moлoдoй кoллeгa(11.08.2020 09:19)
- Научись формулировать вопрос так, чтоб он хотя бы был понятен. Если
прерывание в процессоре строго фронтом одной полярности, то её
можно обеспечить одним лог. элементом ИЛИ-НЕ (XOR). Если проблема в
дребезге (колесо остановили между двумя состояниями и оно ловит
любую вибрацию), то нужна более сложная логика, выдающая импульс
только при смене состояния обоих выходов. Что опять же можно
реализовать на CPLD, на дискретной логике, на логической ячейке в
некоторых контроллерах. fk0(72 знак., 11.08.2020 13:16)